【发布时间】:2011-02-05 15:07:57
【问题描述】:
我尝试编写一个神经网络系统,但即使运行简单的 AND/OR/NOR 类型的问题,输出似乎也集中在 0.5(偏差为 -1)和 0.7(偏差为 1)左右。 它看起来并不完全“错误”...... AND 模式中的 1,1 确实看起来比其他模式更高,而 OR 中的 0,0 看起来更低,但它们仍然全部分组,因此值得商榷。
我想知道 a) 我是否犯了一些明显的错误或 b) 是否有任何关于调试神经网络的建议......因为你不能总是准确地追溯答案的来源......
谢谢!
迈克
【问题讨论】:
-
问这个可能有点晚了,但是我应该在我的“输出”上看到更多的范围,对吧?它不应该是……将 0.56 舍入为 1 并将 0.49 舍入为 0?每次我检查各个公式时,一切都很好,所以我认为这是实现而不是算法:)更烦人:)
-
您的 sigmoid 函数仅负责对值进行归一化,并且仅当它们在您的准确度阈值内时才应四舍五入。最初只是尝试产生一个非常小的均方根误差,当该误差低于阈值时,您才会将实例标记为正确分类。
-
我一直在玩它...我认为算法是正确的。 DeltaWeightHiddenToOutput ( getLearningRate() * dHiddenValues[j] * dErrorGradients[1][i] ) + ( dWeightDelta[1][j][i] * getMomentum() ); ErrorGradientForOutput = inline double CalculateErrorGradient ( double dExpected, double dOutput ) { return dOutput * ( 1 - dOutput) * ( dExpected - dOutput ); } ErrorHiddenLayers for ( unsigned int i = 0; i
-
它似乎适用于线性可分离的问题......最终......并且需要超过 15000 个 epoch 来学习......但对于 XOR 它似乎并没有接近......跨度>
标签: neural-network