Esta seção explica os casos de falha da retropropagação e a maneira mais comum de regularizar uma rede neural.
Casos de falha
Há várias maneiras comuns de a retropropagação dar errado.
Gradientes desaparecem
Os gradientes das camadas mais baixas (mais próximos da entrada) podem ficar muito pequenos. Em redes profundas, a computação desses gradientes pode envolver tomar o produto de muitos termos pequenos.
Quando os gradientes desaparecem em direção a 0 para as camadas inferiores, elas são treinadas muito lentamente ou não são treinadas.
A função de ativação ReLU pode ajudar a evitar o sumiço de gradientes.
Gradientes em explosão
Se os pesos em uma rede forem muito grandes, os gradientes das camadas menores envolverão produtos de muitos termos grandes. Nesse caso, é possível ter gradientes em explosão, que são muito grandes para convergir.
A normalização em lote pode ajudar a evitar a explosão de gradientes, além de reduzir a taxa de aprendizado.
Unidades de ReLU inativas
Quando a soma ponderada de uma unidade de ReLU fica abaixo de 0, a unidade de ReLU pode ficar travada. Ela gera 0 ativação, o que não contribui mais para a saída da rede, e os gradientes não podem mais fluir por ela durante a retropropagação. Com uma fonte de gradientes cortada, a entrada para a ReLU pode nunca mudar o suficiente para fazer com que a soma ponderada volte a 0.
Reduzir a taxa de aprendizado pode ajudar a evitar que as unidades ReLU sejam desativadas.
Regularização de dropout
No entanto, outra forma de regularização, chamada Dropout, é útil para redes neurais. Ela funciona com a "eliminação" aleatória de ativações de unidade em uma rede para uma única etapa do gradiente. Quanto mais desistências, mais forte a regularização:
- 0,0 = sem regularização de dropout.
- 1,0 = Remover tudo. O modelo não aprende nada.
- Valores entre 0,0 e 1,0 = mais úteis.