ADADELTA在神经网络中保留随机初始化的权重

时间:2015-03-03 07:15:21

标签: machine-learning neural-network gradient-descent

我试图使用ADADELTA算法在MNIST数据集上训练一个隐藏层tanh神经网络。

以下是我的设置参数:

  • Tanh激活功能
  • 2个具有784个单位的隐藏层(与输入单元的数量相同)
  • 我在输出层使用具有交叉熵损失的softmax
  • 我用~15的扇度随机初始化权重,高斯分布权重,标准差为1 / sqrt(15)
  • 我使用的是10大小的小批量,50%的辍学率。
  • 我使用的是ADADELTA的默认参数(rho = 0.95,epsilon = 1e-6)
  • 我检查了我的衍生物与自动分化

如果我运行ADADELTA,首先它会增加错误,我可以看到第一层正在学习识别数字的形状。它在对数字进行分类方面做得不错。但是,当我长时间运行ADADELTA(30,000次迭代)时,很明显出现了问题。虽然目标函数在几百次迭代后停止改进(并且内部ADADELTA变量停止变化),但第一层权重仍然具有与它们初始化相同的稀疏噪声(尽管在该噪声之上学习了真实特征)。

为了说明我的意思,这里是网络可视化的示例输出。 Visualization of internal state

注意第一层权重中的像素噪声,尽管它们具有结构。这与他们初始化的噪音相同。

没有一个训练样例具有像这种噪声那样的不连续值,但由于某种原因,ADADELTA算法永远不会减少这些异常值权重以与其邻居一致。

发生了什么事?

0 个答案:

没有答案