Problema de gradiente de desaparecimento - Vanishing gradient problem

No aprendizado de máquina , o problema do gradiente de desaparecimento é encontrado ao treinar redes neurais artificiais com métodos de aprendizagem baseados em gradiente e retropropagação . Em tais métodos, cada um dos pesos da rede neural recebe uma atualização proporcional à derivada parcial da função de erro em relação ao peso atual em cada iteração de treinamento. O problema é que, em alguns casos, o gradiente será extremamente pequeno, evitando efetivamente que o peso mude de valor. Na pior das hipóteses, isso pode impedir completamente o treinamento adicional da rede neural. Como um exemplo da causa do problema, as funções de ativação tradicionais , como a função tangente hiperbólica , têm gradientes na faixa (0,1] , e a retropropagação calcula gradientes pela regra da cadeia . Isso tem o efeito de multiplicar n desses pequenos números para calcular gradientes das camadas iniciais em uma rede de n camadas , o que significa que o gradiente (sinal de erro) diminui exponencialmente com n, enquanto as camadas iniciais treinam muito lentamente.

A propagação reversa permitiu aos pesquisadores treinar redes neurais artificiais profundas supervisionadas do zero, inicialmente com pouco sucesso. A tese diplom de Hochreiter de 1991 identificou formalmente a razão para essa falha no "problema do gradiente de desaparecimento", que afeta não apenas as redes feedforward de muitas camadas , mas também as redes recorrentes . Os últimos são treinados desdobrando-os em redes feedforward muito profundas, onde uma nova camada é criada para cada etapa de tempo de uma sequência de entrada processada pela rede. (A combinação de desdobramento e retropropagação é denominada retropropagação ao longo do tempo .)

Quando funções de ativação são usadas cujas derivadas podem assumir valores maiores, corre-se o risco de encontrar o problema de gradiente explosivo relacionado .

Ilustração extremamente simplificada em redes neurais recorrentes

Em redes neurais recorrentes, após as etapas, há multiplicações repetidas de uma matriz com um vetor para os estados ocultos: O vetor de saída oculto da camada depende da saída oculta da camada anterior . Podemos simplificar a discussão negligenciando extremamente a função não linear , o viés e observando que a matriz de ponderação ( ) é sempre a mesma. Nesse caso, a saída final é apenas: onde está a entrada inicial para a rede. Se puder ser diagonalizado, então (devido a ) é claro que os autovalores menores que 1 decaem exponencialmente com a profundidade n, enquanto os autovalores maiores que 1 explodem exponencialmente com a profundidade n.

Soluções

Hierarquia multinível

Para contornar este problema, vários métodos foram propostos. Um é a hierarquia de redes de vários níveis de Jürgen Schmidhuber (1992) pré-treinada um nível de cada vez por meio do aprendizado não supervisionado , ajustado por retropropagação . Aqui, cada nível aprende uma representação compactada das observações que é alimentada para o próximo nível.

Abordagem relacionada

Idéias semelhantes têm sido usadas em redes neurais feed-forward para pré-treinamento não supervisionado para estruturar uma rede neural, tornando-a primeiro a aprender detectores de recursos geralmente úteis . Em seguida, a rede é treinada posteriormente por retropropagação supervisionada para classificar os dados rotulados. O modelo de rede de crenças profundas de Hinton et al. (2006) envolve aprender a 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 Boltzmann restrita para modelar cada nova camada de recursos de nível superior. Cada nova camada garante um aumento no limite inferior da probabilidade de log dos dados, melhorando assim o modelo, se treinado adequadamente. Uma vez que muitas camadas tenham sido aprendidas, a arquitetura profunda pode ser usada como um modelo generativo , reproduzindo os dados ao fazer a amostragem do modelo (uma "passagem ancestral") a partir das ativações de recursos de nível superior. Hinton relata que seus modelos são extratores de recursos eficazes em dados estruturados de alta dimensão.

Memória longa de curto prazo

Outra técnica particularmente usada para redes neurais recorrentes é a rede de memória de longo prazo (LSTM) de 1997 por Hochreiter & Schmidhuber . Em 2009, redes LSTM multidimensionais profundas demonstraram o poder do aprendizado profundo com muitas camadas não lineares, ao vencer três competições do ICDAR 2009 em reconhecimento de caligrafia conectada , sem nenhum conhecimento prévio sobre os três idiomas diferentes a serem aprendidos.

Hardware mais rápido

Os avanços do hardware significaram que, de 1991 a 2015, o poder do computador (especialmente fornecido por GPUs ) aumentou cerca de um milhão de vezes, tornando a retropropagação padrão viável para redes várias camadas mais profundas do que quando o problema do gradiente de desaparecimento foi reconhecido. Schmidhuber observa que isso "é basicamente o que está ganhando muitas das competições de reconhecimento de imagem agora", mas que "realmente não supera o problema de uma forma fundamental", uma vez que os modelos originais que lidam com o problema do gradiente de desaparecimento de Hinton e outros foram treinados em um processador Xeon , não GPUs.

Redes residuais

Uma das maneiras mais novas e eficazes de resolver o problema do gradiente de desaparecimento é com redes neurais residuais , ou ResNets (não deve ser confundido com redes neurais recorrentes). ResNets referem-se a redes neurais em que conexões ignoradas ou conexões residuais fazem parte da arquitetura da rede. Essas conexões de salto permitem que as informações de gradiente passem pelas camadas, criando "rodovias" de informações, onde a saída de uma camada / ativação anterior é adicionada à saída de uma camada mais profunda. Isso permite que as informações das partes anteriores da rede sejam passadas para as partes mais profundas da rede, ajudando a manter a propagação do sinal mesmo em redes mais profundas. As conexões de salto são um componente crítico do que permitiu o treinamento bem-sucedido de redes neurais mais profundas.

ResNets gerou menor erro de treinamento (e erro de teste) do que suas contrapartes mais rasas simplesmente reintroduzindo saídas de camadas mais rasas na rede para compensar os dados desaparecidos. Observe que ResNets são um conjunto de redes relativamente rasas e não resolvem o problema do gradiente de desaparecimento preservando o fluxo de gradiente em toda a profundidade da rede - em vez disso, eles evitam o problema simplesmente construindo conjuntos de muitas redes curtas juntas. (Conjunto por construção)

Outras funções de ativação

Retificadores como ReLU sofrem menos com o problema do gradiente de desaparecimento, porque eles saturam apenas em uma direção.

De outros

Behnke confiou apenas no sinal do gradiente ( Rprop ) ao treinar sua pirâmide de abstração neural para resolver problemas como reconstrução de imagens e localização de faces.

As redes neurais também podem ser otimizadas usando um algoritmo de busca universal no espaço dos pesos da rede neural, por exemplo, suposição aleatória ou algoritmo genético mais sistematicamente . Esta abordagem não é baseada em gradiente e evita o problema do gradiente de desaparecimento.

Veja também

Referências