Marcelo Finger
Alan Barzilay

RNN's

Parte 04: Problemas Advindos da Recorrência

Conteúdos

  1. Recorrência Neural
  2. Treinamento Recorrente
  3. Modelos Sequência pra Sequência
  4. Problemas que Advem da Recorrência
  5. Soluções para Redes Profundas

Problemas de redes profundas

Vanishing & Exploding Gradient

O gradiente de uma camada é calculado pela regra da cadeia e portanto é um produto do gradiente de todas as camadas anteriores.

\frac{dW}{du} = \frac{dW}{dx} \frac{dx}{dy}\frac{dy}{dz} \frac{dz}{du}

Vanishing & Exploding Gradient

O que acontece com uma camada  se alguma das camadas anteriores possuir um gradiente muito pequeno? E se ele for muito grande?

\frac{dW}{du} = \frac{dW}{dx} \frac{dx}{dy}\frac{dy}{dz} \frac{dz}{du}

Exploding Gradient

Com um gradiente muito elevado é possível que ao realizarmos uma etapa de backpropagation tomemos um passo muito grande que gere um update ruim (aumente a Loss).

 

\theta ^{new} =\theta ^{old} \ -\ \alpha \nabla _{\theta } \ J( \theta )

Se o passo for acima de um limite definido, nós diminuímos a magnitude do passo e mantemos a direção.

Gradient Clipping

from tensorflow import keras

keras.optimizers.SGD(lr=0.01, momentum=0.9, clipnorm=1.0)

Vanishing Gradient

O gradiente pode ser visto como uma medida da influência do passado no futuro.

Com um gradiente baixo a influência passa a ser baixa. Impossível capturar relações distantes.

Vanishing Gradient

Isso é um problema apenas de redes recorrentes?

Não! Toda rede profunda sofre destas questões, mas redes recorrentes são especialmente instáveis devido a utilização da mesma matriz de pesos.

 

 

Imagem de um botão estilizado de volta para pagina inicial