用BP神经网络去训练3755个手写汉字,测试的准确率为0,不知道问题出在哪里,求解?
检查下代码是否有问题,好好用一个手写字来测试下,观察BP将其诊断为了一个什么字。看看诊断出来的字和测试所用的字是相似的,还是完全不着边界。
然后再思考下为什么会出现这样的原因。
希望对你有帮助
用BP判断的话,因为你没提供建模信息,我也不好判断,我给一些建议吧。
我建议不要只用一个输出节点,比如输出1代表1,输出2代表2,这种连续型的输出对于网络的压力太大,建议用多个节点做输出层,用离散的形式当做输出结果,比如10个节点,第一个节点输出的值最大,就代表判断为0,第二个最大,判断为1,以此类推。建议响应函数用-1到1的S型曲线,表达式为
y=(2/(1+exp(-2x)))-1
这个函数比0到1的函数表达能力更强,它的导数是1 - y^2。
最后一个建议就是网络层数不要太多,2到4层即可,多了你的参数是浪费的,参考梯度扩散。
希望能帮到你