No aprendizado de máquina, o problema do desvanecimento do gradiente (vanishing gradient problem) é o problema de magnitudes de gradiente amplamente divergentes entre as camadas iniciais e finais, encontrado ao treinar redes neurais com retropropagação (backpropagation). Nesses métodos, os pesos da rede neural são atualizados proporcionalmente à sua derivada parcial da função de perda. À medida que o número de etapas de propagação para a frente em uma rede aumenta, por exemplo, devido a uma maior profundidade da rede, os gradientes dos pesos iniciais são calculados com cada vez mais multiplicações. Essas multiplicações reduzem a magnitude do gradiente. Consequentemente, os gradientes dos pesos iniciais serão exponencialmente menores do que os gradientes dos pesos finais. Essa diferença na magnitude do gradiente pode introduzir instabilidade no processo de treinamento, retardá-lo ou interrompê-lo totalmente. Por exemplo, considere a função de ativação tangente hiperbólica. Os gradientes desta função estão no intervalo [0, 1]. O produto da multiplicação repetida com tais gradientes diminui exponencialmente. O problema inverso, quando os gradientes de peso nas camadas iniciais se tornam exponencialmente maiores, é chamado de problema da explosão do gradiente (exploding gradient problem).
A retropropagação permitiu aos pesquisadores treinar redes neurais artificiais profundas supervisionadas a partir do zero, inicialmente com pouco sucesso. A tese de diploma de 1991 de Hochreiter identificou formalmente o motivo dessa falha no "problema do desvanecimento do gradiente", que não afeta apenas redes feedforward de muitas camadas, mas também redes recorrentes. Estas últimas são treinadas desdobrando-as em redes feedforward muito profundas, onde uma nova camada é criada para cada passo de tempo de uma sequência de entrada processada pela rede (a combinação de desdobramento e retropropagação é chamada de retropropagação através do tempo).
Modelos prototípicos Esta seção é baseada no artigo On the difficulty of training Recurrent Neural Networks de Pascanu, Mikolov e Bengio.
Modelo de rede recorrente Uma rede recorrente genérica tem estados ocultos entradas e saídas Seja parametrizada por de modo que o sistema evolui como
Frequentemente, a saída é uma função de como algum O problema do desvanecimento do gradiente já se apresenta claramente quando , então simplificamos nossa notação para o caso especial com:
Agora, considere sua diferencial:
O treinamento da rede requer que definamos uma função de perda (loss function) a ser minimizada. Seja , então minimizá-la por descida de gradiente resulta em
onde é a taxa de aprendizado.
O problema do desvanecimento/explosão do gradiente aparece porque existem multiplicações repetidas, da forma
Exemplo: rede recorrente com ativação sigmoide Para um exemplo concreto, considere uma rede recorrente típica definida por
onde é o parâmetro da rede, é a função de ativação sigmoide, aplicada a cada coordenada do vetor separadamente, e é o vetor de viés (bias).
Então, , e assim
Como a norma de operador da multiplicação acima é limitada superiormente por . Portanto, se o raio espectral de for , então para um grande, a multiplicação acima tem a norma de operador limitada superiormente por . Este é o problema prototípico do desvanecimento do gradiente.
O efeito de um gradiente que desvanece é que a rede não pode aprender efeitos de longo alcance. Lembre-se da Equação ():Os componentes de são apenas componentes de e , então se são limitados, então também é limitado por algum , e assim os termos em decaem como . Isso significa que, efetivamente, é afetado apenas pelos primeiros termos na soma.
Se , a análise acima não funciona muito bem. Para o problema prototípico da explosão do gradiente, o próximo modelo é mais claro.
Modelo de sistemas dinâmicos thumb|Diagrama de bifurcação da rede recorrente de um neurônio. O eixo horizontal é b, e o eixo vertical é x. A curva preta é o conjunto de equilíbrios estáveis e instáveis.
Note que o sistema exibe histerese, e pode ser usado como uma memória de um bit.
Seguindo (Doya, 1993), considere esta rede recorrente de um neurônio com ativação sigmoide:
No limite pequeno de , a dinâmica da rede torna-se
Considere primeiro o caso autônomo, com Defina e varie em . Conforme diminui, o sistema tem 1 ponto estável, depois tem 2 pontos estáveis e 1 ponto instável, e finalmente tem 1 ponto estável novamente. Explicitamente, os pontos estáveis são
Agora considere e , onde é grande o suficiente para que o sistema tenha se estabelecido em um dos pontos estáveis.
Se colocar o sistema muito perto de um ponto instável, então uma minúscula variação em ou faria mover-se de um ponto estável para o outro. Isso faz com que e sejam ambos muito grandes, um caso de explosão do gradiente.
Se colocar o sistema longe de um ponto instável, então uma pequena variação em não teria efeito sobre , fazendo , um caso de desvanecimento do gradiente.
Note que, neste caso, nem decai para zero nem explode para o infinito. De fato, é o único gradiente bem comportado, o que explica por que as primeiras pesquisas se concentraram em aprender ou projetar sistemas de redes recorrentes que pudessem realizar cálculos de longo alcance (como emitir a primeira entrada que vê no final de um episódio) moldando seus atratores estáveis.
Para o caso geral, a intuição ainda se mantém ( Figuras 3, 4 e 5).
Modelo geométrico Continue usando a rede de um neurônio acima, fixando , e considere uma função de perda definida por . Isso produz uma paisagem de perda bastante patológica: à medida que se aproxima de por cima, a perda se aproxima de zero, mas assim que cruza , a bacia do atrator muda e a perda salta para 0.50.
Consequentemente, tentar treinar por descida de gradiente seria "bater em uma parede na paisagem de perda", e causaria a explosão do gradiente. Uma situação ligeiramente mais complexa é traçada na Figura 6.
Soluções
Para superar este problema, vários métodos foram propostos.
RNN Para as redes neurais recorrentes, a rede de memória de longo e curto prazo (LSTM) foi projetada para resolver o problema (Hochreiter & Schmidhuber, 1997).
Para o problema da explosão do gradiente, (Pascanu et al, 2012) recomendaram o corte do gradiente (gradient clipping), o que significa dividir o vetor gradiente por se . Isso restringe os vetores gradientes a uma bola de raio .
Normalização em lote A normalização em lote (batch normalization) é um método padrão para resolver tanto o problema da explosão quanto o do desvanecimento do gradiente.
Hierarquia multinível Na hierarquia multinível de redes (Schmidhuber, 1992), pré-treinada um nível de cada vez através de aprendizado não supervisionado, ajustada (fine-tuned) através de retropropagação (backpropagation).J. Schmidhuber., "Learning complex, extended sequences using the principle of history compression," Neural Computation, 4, pp. 234–242, 1992. Aqui, cada nível aprende uma representação comprimida das observações que é alimentada para o próximo nível.
Rede de crenças profundas Ideias semelhantes foram usadas em redes neurais de alimentação direta (feed-forward) para pré-treinamento não supervisionado para estruturar uma rede neural, fazendo-a primeiro aprender detectores de características geralmente úteis. Em seguida, a rede é treinada ainda mais por retropropagação supervisionada para classificar dados rotulados. O modelo de rede de crenças profundas (deep belief network) de Hinton et al. (2006) envolve o aprendizado da distribuição de uma representação de alto nível usando camadas sucessivas de variáveis latentes binárias ou de valor real. Ele usa uma máquina de Boltzmann restrita para modelar cada nova camada de características de nível superior. Cada nova camada garante um aumento no limite inferior da log-verossimilhança dos dados, melhorando assim o modelo, se treinado adequadamente. Uma vez que um número suficiente de camadas tenha sido aprendido, a arquitetura profunda pode ser usada como um modelo generativo, reproduzindo os dados ao realizar uma amostragem descendente do modelo (uma "passagem ancestral") a partir das ativações de características do nível superior. Hinton relata que seus modelos são extratores de características eficazes sobre dados estruturados e de alta dimensão.
Hardware mais rápido Os avanços de hardware significaram que, de 1991 a 2015, o poder de computação (especialmente o fornecido por GPUs) aumentou cerca de um milhão de vezes, tornando a retropropagação padrão viável para redes com várias camadas a mais do que quando o problema do desvanecimento do gradiente foi reconhecido. Schmidhuber observa que isso "é basicamente o que está ganhando muitas das competições de reconhecimento de imagens agora", mas que "não supera realmente o problema de forma fundamental" já que os modelos originais que abordavam o problema do desvanecimento do gradiente de Hinton e outros foram treinados em um processador Xeon, não em GPUs.
Conexão residual Conexões residuais, ou conexões de salto (skip connections), referem-se ao motivo arquitetônico de onde é um módulo de rede neural arbitrário. Isso resulta no gradiente de , onde a matriz identidade não sofre com o desvanecimento ou explosão do gradiente. Durante a retropropagação, parte do gradiente flui através das conexões residuais.
Concretamente, seja a rede neural (sem conexões residuais) , então, com conexões residuais, o gradiente da saída em relação às ativações na camada é . O gradiente, portanto, não desvanece em redes arbitrariamente profundas.
Redes feedforward com conexões residuais podem ser consideradas como um conjunto (ensemble) de redes relativamente rasas. Nessa perspectiva, elas resolvem o problema do desvanecimento do gradiente por serem equivalentes a conjuntos de muitas redes rasas, para as quais não há problema de desvanecimento do gradiente.
Outras funções de ativação Retificadores como a ReLU sofrem menos com o problema do desvanecimento do gradiente, porque eles apenas saturam em uma direção.
Inicialização de pesos A inicialização de pesos é outra abordagem que foi proposta para reduzir o problema do desvanecimento do gradiente em redes profundas.
Kumar sugeriu que a distribuição dos pesos iniciais deveria variar de acordo com a função de ativação usada e propôs inicializar os pesos em redes com a função de ativação logística usando uma distribuição gaussiana com média zero e um desvio padrão de , onde é o número de neurônios em uma camada.Kumar, Siddharth Krishna. "On weight initialization in deep neural networks." arXiv preprint arXiv:1704.08863 (2017).
Recentemente, Yilmaz e Poli realizaram uma análise teórica sobre como os gradientes são afetados pela média dos pesos iniciais em redes neurais profundas usando a função de ativação logística e descobriram que os gradientes não desvanecem se a média dos pesos iniciais for definida de acordo com a fórmula: . Esta estratégia simples permite que redes com 10 ou 15 camadas ocultas sejam treinadas de forma muito eficiente e eficaz usando a retropropagação padrão.
Outros Behnke baseou-se apenas no sinal do gradiente (Rprop) ao treinar sua Pirâmide de Abstração Neural para resolver problemas como reconstrução de imagem e localização de rostos.
As redes neurais também podem ser otimizadas usando um algoritmo de busca universal no espaço de pesos da rede neural, por exemplo, palpite aleatório ou mais sistematicamente por algoritmos genéticos. Esta abordagem não é baseada em gradiente e evita o problema do desvanecimento do gradiente.
Categoria:Inteligência artificial Categoria:Computação científica Categoria:Computação