【问题标题】:My RPROP neural network gets stuck我的 RPROP 神经网络卡住了
【发布时间】:2015-04-06 15:05:33
【问题描述】:

由于算法的实现是正确的(我检查了数百次),我想我误解了一些理论事实。
我想:
假设 j 指的是隐藏层侧,而 k 指的是输出层
∂E/∂wjk 通过以下方式计算:

outputNeuron[k].errInfo=(target[k]-outputNeuron[k].out)*derivate_of_sigmoid(outputNeuron[q].in);
∂E/∂wjk=outputNeuron[k].errInfo*hiddenNeuron[j].out;

对于∂E/∂wij,其中“i”指的是输入层,“j”指的是隐藏层,它有点长。
每个隐藏单元 (Zj, j = 1, ... ,p) 对其求和 增量输入(来自输出层中的单元),

errorInfo_in[j]=summation from k=1 to m(number of output units) of: outputNeuron[k].errInfo*w[j][k]

然后我计算隐藏单元的错误信息:

hiddenNeuron[j].errInfo=errorInfo_in[j]*derivated_sigmoid(hiddenNeuron[j].in);

最后的∂E/∂wij是:

hiddenNeuron[j].errInfo*x[i](其中x[i]是一个输入单元的输出)

我按照此处的描述应用 RPROP http://www.inf.fu-berlin.de/lehre/WS06/Musterererkennung/Paper/rprop.pdf
对于输入和隐藏以及隐藏输出之间的所有权重。
我正在尝试识别由 '#' 和 '-' 组成的字母,9(rows)x7(columns)。
几个时期后,MSE 卡在 172。
我知道 RPROP 是批量学习,但我正在使用在线学习,因为我读到它仍然有效。

【问题讨论】:

    标签: artificial-intelligence neural-network gradient-descent


    【解决方案1】:

    RPROP 不适用于纯在线学习,它可能适用于小批量学习,前提是小批量足够大。 MSE 的绝对值不能很好地指示任何事情,尤其是在黄金标准值未知的自定义数据集上。

    最好先在逻辑门(AND、OR、XOR)等简单事物上测试新实现的 NN 算法,然后再转向更复杂的事物。这样,您将始终对自己的代码和方法充满信心。对于字符识别任务,您可能还想在众所周知的数据集(例如 MNIST)上进行测试,其中预期结果是已知的,您可以将您的结果与以前的工作进行比较。

    对于分类任务,人们通常希望衡量分类的准确性,因为它是比 MSE 更好的性能指标。

    【讨论】:

      猜你喜欢
      • 2018-03-21
      • 2017-02-09
      • 1970-01-01
      • 2013-02-01
      • 2017-06-26
      • 2016-03-07
      • 1970-01-01
      • 2021-09-07
      • 2019-04-11
      相关资源
      最近更新 更多