【问题标题】:Neural Network Error Trend神经网络错误趋势
【发布时间】:2015-10-17 03:37:16
【问题描述】:

我对神经网络比较陌生,所以当我在我的数据中遇到这种趋势时,我非常感兴趣。我有一个多层感知器网络,使用没有动量的反向传播。学习率为 0.02,训练中允许的最小误差范围为 0.01。网络必须学习如何正确地对两个布尔值(它们的值是 1 或 0)应用异或运算。有偏见的神经元来反驳异或问题不具有线性可分性的事实(不确定我是否正确地表达了这一点)。网络的神经元使用 Sigmoid 传递函数。我想知道为什么图表会以这种趋势增长。再次随机化网络的权重并再次训练后,图表总是这样显示。这是为什么?

【问题讨论】:

  • 您期待什么样的趋势?
  • @AndreaIacono 也许是递减线性图,还是指数衰减?

标签: java artificial-intelligence neural-network


【解决方案1】:

在我看来,这看起来是正确的,也许您只是误读了图表。在 x 轴上,您有迭代。您可以将其视为简化的时间轴。您的 y 轴是网络的误差(越低越好)。因此,随着训练过程中时间的推移,您的网络会产生更好的结果(错误更少)。

【讨论】:

  • 但是为什么中间有一个高原状的形状呢?
  • 可能有很多原因。 ANN 的训练几乎从来都不是线性的,并且有很多所谓的“平坦区域”,其中权重必须改变一个非常大的值才能影响误差的微小变化。许多不同的训练方法和权重更新规则试图以不同的方式处理这个问题。您是否尝试过更改学习率(通常称为 alpha 或 lambda)并查看是否可以摆脱平台期?
  • 在小cmets中很难解释,但可以想象训练算法是搜索输入参数的空间(表面)以找到最低误差。 XOR 的表面定义得很好,但是算法可能从对角线方向开始,并且可能下降得很少,要么从最小值的一侧弹回到另一侧,要么移动太慢。野外有很多可视化应该能够向您展示梯度下降如何花费很长时间。
猜你喜欢
  • 2017-11-20
  • 2021-03-11
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 2017-07-08
  • 1970-01-01
相关资源
最近更新 更多