Como treinar redes neurais: práticas recomendadas

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.