【发布时间】:2018-05-10 04:54:00
【问题描述】:
我想实现一个简单的前馈神经网络来近似函数 y=f(x)=ax^2 其中 a 是一些常数,而 x 是输入值。
NN 有一个输入节点、一个具有 1-n 个节点的隐藏层和一个输出节点。例如,我输入值 2.0 -> NN 产生 4.0,然后我再次输入 3.0 -> NN 产生 9.0 或接近它等等。
如果我理解“在线训练”,则训练数据是逐个输入的 - 这意味着我输入值 2.0 -> 我使用梯度体面的值迭代 100 次,然后传递值 3.0,然后再迭代另一个100 次。
但是,当我尝试使用我的实验/学习 NN 执行此操作时 - 我输入值 2.0 -> 错误变得非常小 -> 输出非常接近 4.0。
现在,如果我想预测输入 3.0 -> NN 会产生 4.36 或其他东西,而不是 9.0。所以 NN 只是学习最后的训练值。
如何使用在线训练来获得一个神经网络,该神经网络在 [-d, d] 范围内逼近所需函数?我错过了什么?
我喜欢在线培训的原因是最终我想输入一个时间序列 - 并将该序列映射到所需的函数。这不是重点,但万一有人想知道。
任何建议将不胜感激。
更多信息 - 我使用 Sigmoid 函数激活隐藏层,使用线性函数激活输出层。
【问题讨论】:
标签: machine-learning neural-network