我正在尝试使用来自维基百科的文本来训练 RNN,但我无法让 RNN 收敛。我尝试增加批量大小,但似乎没有帮助。所有数据在使用之前都是热编码的,我正在使用这样实现的 Adam 优化器。
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 设置为 0.9,beta2 设置为 0.999,alpha 设置为 0.001。当我用 50,000 训练它时,我得到了非常高的成本波动,而且它似乎从未显着降低(只是有时由于波动(我以最低的成本获得权重))。在勾画出迭代的成本后,我得到了这样的图表:
平均而言,它似乎在增加,但似乎在大幅波动时才减少。我可以改变什么来获得更好的成功并让它趋于一致?
谢谢你的帮助