Marcelo Finger Alan Barzilay
O gradiente de uma camada é calculado pela regra da cadeia e portanto é um produto do gradiente de todas as camadas anteriores.
O que acontece com uma camada se alguma das camadas anteriores possuir um gradiente muito pequeno? E se ele for muito grande?
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).
Â
Se o passo for acima de um limite definido, nós diminuÃmos a magnitude do passo e mantemos a direção.
from tensorflow import keras
keras.optimizers.SGD(lr=0.01, momentum=0.9, clipnorm=1.0)
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.
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.
Â
Â