题主进行的是机器学习中手写体数字识别实战中的反向传播过程。
问题描述
使用反向传播进行参数训练时,得到的参数的代价无法得到下降,识别率无法提升,比如代价J总是停留在3.26以上,且测试时识别结果均为某一个数字,如果你遇到这个问题时,恭喜你将可能避免浪费许多时间。
最可能的原因
- 如果你没有进行梯度下降那就先添加梯度下降过程吧
- 权重参数未进行随机初始化
- 权重参数随机初始化所用的函数错误,即没有使参数真正的随机,即权重值都是相近的数
解决方法
检查权重初始化过程,如果是随机的,那就不是这个问题了。
if 非随机数,更换随机函数吧
初次实战,被随机函数坑惨了,不要使用numpy.random.random()函数构造随机数值矩阵