首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >神经网络学习快速、误报

神经网络学习快速、误报
EN

Stack Overflow用户
提问于 2014-04-11 10:35:41
回答 2查看 1.4K关注 0票数 4

我最近开始实现一个前馈神经网络,我使用反向传播作为学习方法。我一直在使用en/backprop.html作为向导。

然而,在经历了第一个时代之后,我的错误是0。在将网络用于实际目的之前,我尝试了简单的网络结构:

  • 4个二进制输入,1,1,0,0。
  • 隐藏层2层,每层4个神经元。
  • 1输出神经元,1.0应=有效输入。

每个训练阶段运行测试输入(1,1,0,0),计算输出误差(sigmoid导数* (1.0 - sigmoid)),反向传播误差并最终调整权重。

每个神经元的新重量=权重+ learning_rate *神经元的误差*输入的权重。

每个隐神经元的误差=(所有输出神经元的误差*连接权之和)*神经元的乙状结肠导数。

问题是,我的学习速度必须是0.0001,我才能看到不同时代之间在降低错误方面的任何“进步”。在本例中,错误开始于~30.0左右。任何更高的学习率和错误都会在第一次通过后导致0,从而导致误报。

同样,当我用我的真实数据(一组来自样本的32个音频特性--每个隐藏层有32个神经元)--来尝试这个网络时,我得到同样的问题。到任何噪声都会触发假阳性的地步。这可能是一个输入特性问题,但当我使用高音音符进行测试时,我可以清楚地看到原始数据与低音调数据的不同。

我是个神经网络新手,所以我几乎肯定我的网络有问题。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2014-07-22 05:12:07

尽管声明您使用的是标准的前馈/反向支持的NN方法,但您还没有描述如何实际实现这一方法。你提到你使用“星系”链接作为指南,但我注意到,在“星系”页面上,没有提到对节点的偏差。也许你还没有包括这个重要的组成部分?关于Nate应用于NN节点的偏差的作用有一个很好的讨论,参见Role of Bias in Neural Networks

接下来,与其使用两个隐藏层,不如只使用一个隐藏层。您可能需要增加该层中的节点数量,但是对于大多数实际问题,您应该能够通过一个隐藏层获得一个很好的解决方案。它将很可能是更稳定的,并肯定会使你更容易跟踪什么是正在发生的背后支柱。

票数 0
EN

Stack Overflow用户

发布于 2018-04-30 06:59:52

对我来说0.0001听起来是合理的。您可能会摆动其他常量,或者用不同的随机集为初始神经网络权重注入种子。

如果你的训练数据是正常的,那么在你得到正确的神经网络之前,做上千个或更多的刺激是完全正常的。

有许多技术,以获得更快的最终结果。例如,作为激活函数,您可以使用TanH或Relu,您也可以在x个周期内从0.001减少到0.0001,或者根据错误率降低。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23010207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档