我已经建立了自己的神经网络,但我遇到了一个奇怪的问题。
该网络是一个非常简单的具有反向传播学习的前馈 1-N-1 网络。Sigmoid 用作激活函数。
我的训练集是用 [-PI, PI] 与其 [0,1] 标度正弦值之间的随机值生成的(这是因为“Sigmoid-net”仅产生 [0,1] 和未标度正弦函数之间的值产生 [-1,1] 之间的值)。
使用该训练集,网络设置为 1-10-1,学习率为 0.5,一切正常,网络学习了 sin-function。但是..如果我对 COSINE 函数以同样的方式做所有事情,网络就不会学习它。没有任何隐藏层大小或学习率的设置。
有任何想法吗?我错过了什么吗?
编辑:我的问题似乎与这个小程序所见的相似。除非首先为权重教授“更简单”的东西(例如 1400 个二次函数循环),否则它似乎不会学习正弦函数。小程序中的所有其他设置都可以保持初始状态。因此,在正弦或余弦的情况下,在找到解决方案之前,权重似乎需要一些提升以至少部分正确的方向。为什么是这样?