首页 文章

神经网络学习快,误报

提问于
浏览
4

我_1127812_m使用反向传播作为学习方法 . 我一直在使用http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html作为指导 .

然而,在第一个纪元之后,我的错误是0.在使用网络实现我的真实目的之前,我尝试过简单的网络结构:

  • 4个二进制输入,1,1,0,0 .

  • 2个隐藏层,每个4个神经元 .

  • 1输出神经元,1.0应=有效输入 .

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

每个神经元的新体重=体重learning_rate 神经元的误差对体重的输入 .

每个隐藏神经元的误差=(所有输出神经元误差的总和*连接的重量)*神经元的S形导数 .

问题是我的学习率必须为0.0001才能让我在降低错误方面看到时代之间的任何“进展” . 在这种情况下,错误从~30.0左右开始 . 任何更高的学习率和错误在第一次通过后导致0,从而导致误报 .

此外,当我用我的真实数据(一组32个音频特征来自样本 - 每个隐藏层有32个神经元)尝试这个网络时 - I get the same issue . 到任何噪音都会触发 false positive 的程度 . 可能这可能是输入功能问题,但是当我使用高音调音符进行测试时,我可以清楚地看到原始数据与低音调数据不同 .

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

2 回答

  • 0

    尽管声明您使用的是前馈/后退的标准NN方法,但您尚未描述实际实现此方法的方法 . 您提到您使用"galaxy"链接作为指南,但我注意到,在"galaxy"页面上,没有提到对节点应用偏差 . 也许你没有包括这个重要的组成部分?关于Nate Kohl应用于NN节点的偏见的作用有一个很好的讨论,见Role of Bias in Neural Networks .

    接下来,尝试仅使用一个隐藏层,而不是使用两个隐藏层 . 您可能必须增加该层中的节点数,但是对于大多数实际问题,您应该能够仅使用一个隐藏层获得一个好的解决方案 . 它很可能会更稳定,并且肯定会让你更容易跟踪backprop发生的事情 .

  • 0

    那么0.0001对我来说听起来很合理 . 你可以摆动其他常数或用不同的随机集种子化初始神经网络权重 .

    如果您的列车数据没问题,那么在您获得正确的神经网络之前,做到一千次或更多的烦恼是完全正常的 .

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

相关问题