Réseau neuronal récurrent (LSTM) ne converge pas pendant l'optimisation
-
01-11-2019 - |
Question
J'essaie de former un RNN avec du texte de Wikipedia mais j'ai du mal à faire converger le RNN. J'ai essayé d'augmenter la taille du lot, mais cela ne semble pas aider. Toutes les données sont codées à chaud avant d'être utilisées et j'utilise l'optimiseur ADAM qui est implémenté comme celui-ci.
for k in M.keys(): ##For k in weights
M[k] = beta1 * M[k] + (1-beta1)*grad[k]
R[k] = beta2 *R[k] + (1-beta2)*grad[k]**2
m_k = M[k] / (1-beta1**n)
r_k = R[k] / (1-beta2**n)
model[k] = model[k] - alpha * m_k / np.sqrt(r_k + 1e-8)
BETA1 est réglé sur 0,9, Beta2 à 0,999 et Alpha est réglé sur 0,001. Lorsque je l'entraîne pour 50 000, j'obtiens une très forte fluctuation du coût et cela ne semble jamais diminuer considérablement (seulement parfois en raison des fluctuations (et j'attrape les poids avec le coût le plus bas)). Après avoir esquissé le coût des itérations, je reçois un graphique comme celui-ci:
Il semble augmenter en moyenne ne semble que la diminution des grandes fluctuations. Que puis-je changer pour avoir un meilleur succès et le faire converger?
Merci pour toute aide
Pas de solution correcte