我的RPROP神经网络卡住了

时间:2015-04-06 15:05:33

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

由于算法的实施是正确的(我检查了数百次),我想我误解了一些理论事实。
我想是的:
假设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]   (where x[i] is the output of an input unit)

我按照此处所述应用RPROP http://www.inf.fu-berlin.de/lehre/WS06/Musterererkennung/Paper/rprop.pdf
对于输入和隐藏输出之间的所有权重,以及隐藏的输出 我试图识别由#'#'和' - ' ,9(行)x7(列)。
经过几个世纪,MSE才陷入172 我知道RPROP是批量学习,但我使用在线学习,因为我读到它无论如何都有效。

1 个答案:

答案 0 :(得分:1)

RPROP在纯粹的在线学习中效果不佳,它可能适用于小批量学习,只要小批量足够大。 MSE的绝对值是任何事物的不良指标,尤其是在金标准值未知的自定义数据集上。

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

对于分类任务,通常需要测量分类的准确性,因为它比MSE更好的性能指标。