The code says it implements the version of the LSTM from Graves et al. (2013), which I assume is this http://www.cs.toronto.edu/~graves/icassp_2013.pdf or http://www.cs.toronto.edu/~graves/asru_2013.pdf. However, it looks like the LSTM equations in those papers have both the output layer values and memory cell values from the previous time step as input to the gates.
E.g., in equation 3 of http://www.cs.toronto.edu/~graves/icassp_2013.pdf:
i_t = σ (W_xi xt + W_hi ht−1 + W_ci ct−1 + bi)
However, it looks like the code is doing the following:
i_t = σ (W_xi xt + W_hi ht−1 + bi)
Am I missing something here? Is there another LSTM paper this is based on?
I doubt there's much of a practical difference between these two formulations, but it would be good if the documentation were accuracy. Sorry if I'm misunderstanding something here (also sorry for the messy equations above).
The code says it implements the version of the LSTM from Graves et al. (2013), which I assume is this http://www.cs.toronto.edu/~graves/icassp_2013.pdf or http://www.cs.toronto.edu/~graves/asru_2013.pdf. However, it looks like the LSTM equations in those papers have both the output layer values and memory cell values from the previous time step as input to the gates.
E.g., in equation 3 of http://www.cs.toronto.edu/~graves/icassp_2013.pdf:
i_t = σ (W_xi xt + W_hi ht−1 + W_ci ct−1 + bi)
However, it looks like the code is doing the following:
i_t = σ (W_xi xt + W_hi ht−1 + bi)
Am I missing something here? Is there another LSTM paper this is based on?
I doubt there's much of a practical difference between these two formulations, but it would be good if the documentation were accuracy. Sorry if I'm misunderstanding something here (also sorry for the messy equations above).