作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现一个神经网络来识别非线性系统。我在 simulink 中实现了一个非常简单的系统,并根据其输入和输出的示例,我希望神经网络能够模仿其行为。系统如下
顶部的模式(以随机数作为输入的模式)生成训练集,而第二个模式(以斜坡作为输入)用于检查神经网络是否表现正常。该网络是一个两层网络,具有 tanh 节点的隐藏层和线性输出层。我已经实现了两个版本的网络,一个版本使用随机梯度下降(每一步更新),另一个版本则批量执行更新。目前我专注于迭代解决方案。我还实现了 this post 中描述的训练验证测试程序。 .
这里是网络参数:
我使用示例集的 80% 来训练神经网络,10% 来计算误差,剩下的 10% 来生成如下所示的输出。但是,我无法使网络针对不同类型的输入概括系统。
前两张图显示了训练阶段。左边是训练过程最后一次迭代的输出,右边是每个训练周期结束时误差平均值的图。最后两张图显示了网络在未见过的数据上的性能。右侧的图是使用来自示例集的输入数据获得的,该示例集未以任何方式用于训练。右边的结果是使用斜坡作为输入并将其与相同输入的系统输出进行比较而生成的。
我做错了什么?完整代码可见here
问候
安德里亚
最佳答案
原来问题是归一化问题。事实上,我使用经过预处理的引用信号和使用非标准化信号获得的输出信号来训练神经网络。这会在非线性系统中引起问题。现在,我使用标准化输入生成训练输出,一切正常。
如果有人需要更多详细信息,请随时与我联系
问候安德里亚
关于machine-learning - 神经网络系统识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29718582/
我是一名优秀的程序员,十分优秀!