我正在学习(从今天开始)神经网络,并且可以完成一个 2x2x1 网络(前向数据馈送和后向错误传播),该网络可以学习一组输入的 AND 操作。它还使用随机参数避开任何局部最小值。我的第一个来源是: http: //www.codeproject.com/Articles/14342/Designing-And-Implementing-A-Neural-Network-Librar
问题是:它使用输入 (0,0) 学习 0 和 0,但是当我给出 (0,1) 时,它忘记了 0 和 0,然后学习 0 和 1。这是一个普通的新手错误吗?
我尝试了什么:
loop for 10000 times
learn 0 and 0
end loop
loop for 10000 times
learn 0 and 1 (forgets 0 and 0)
end loop
loop for 10000 times
learn 1 and 0 (forgets 0 and 1)
end loop
loop for 10000 times
learn 1 and 1 (forgets 1 and 0)
end loop
only one set is learned
fail
试验二:
loop for 10000 times
learn 0 and 0
learn 0 and 1
learn 1 and 0
learn 1 and 1
end loop
gives same result for all input combinations.
fail.
每个神经元的激活函数:双曲正切
2x2 结构:全对
2x1 结构:全对
随机学习率:是的,小到足以远离爆炸性迭代(每次迭代)
每个神经元的随机偏差:是的,在 -0.5 和 +0.5 之间(刚开始)
随机权重:是的,介于 -0.5 和 +0.5 之间(刚开始)
编辑:对所有隐藏层和输出层对进行偏差和权重更新。
编辑:所有神经元(隐藏+输出)使用相同的激活函数。