Marcelo Finger Alan Barzilay
Parte 2
Como vimos na aula passada, Redes Neurais Recorrentes sofrem de vanishing gradient.
A LSTM combate isso ao criar um cell state onde informações podem fluir de um estado anterior ao próximo, gerando uma espécie de memória na rede.
Forget gate
Input gate
Output gate
O que deve ser esquecido?
Decide o que apagar do cell state, valores próximos de 1 serão mantidos e próximos de 0 serão descartados.
'
\(\tilde{C}_t\) calcula candidatos a serem armazenados no cell state
O input gate decide quais desses valores candidatos devem ser atualizados no cell state
'
'
Os valores “selecionados” do cell state anterior e do candidato serão combinados para formar o novo cell state
Novamente uma sigmoide, “seleciona” os elementos do cell state que serão utilizados como output.
'
O forget gate decide o que manter das etapas anteriores, o input gate decide que informação manter da etapa atual e o output gate determina o próximo hidden state.
tf.keras.layers.LSTM(
units,
activation="tanh",
recurrent_activation="sigmoid",
use_bias=True,
kernel_initializer="glorot_uniform",
recurrent_initializer="orthogonal",
bias_initializer="zeros",
unit_forget_bias=True,
kernel_regularizer=None,
recurrent_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
kernel_constraint=None,
recurrent_constraint=None,
bias_constraint=None,
dropout=0.0,
recurrent_dropout=0.0,
implementation=2,
return_sequences=False,
return_state=False,
go_backwards=False,
stateful=False,
time_major=False,
unroll=False,
**kwargs
)