我正在使用Matlab ( github代码库 )。该网络的详细情况如下:
权重正在使用反向传播算法进行更新。
我能认出我在photoshop画的0,1,2,3,4,5,6,8。
然而,7,9没有被识别,但是在测试集上运行时,我只得到了749/10000错误,它正确地分类了9251/10000。
知道有什么不对劲吗?因为它是学习的,基于测试集的结果,它的学习是正确的。
发布于 2015-09-14 13:33:37
在您的代码中,我没有看到任何完全不正确的地方,但是还有很多可以改进的地方:
[-1, 1]中产生随机数。然后,您可以尝试将此间隔除以获得较小的权重(尝试将其除以大小的sqrt )。outputVector - targetVector。它可能不会有那么大的区别,但你可能想试试。1返回到下一层的神经元。您可以通过向输入数据添加另一个始终是1的特性来实现这一点。MNIST是一个大的数据集,更好的算法仍在研究中。你的网络很基本,很小,没有正则化,没有偏置神经元,也没有对经典梯度下降的改进。这并不奇怪,它的工作不太好:您可能需要一个更复杂的网络,以获得更好的结果。
发布于 2016-04-28 16:23:11
与神经网络或您的代码无关,但是这张KNN最近的数字的图片显示,一些MNIST数字很难识别:

https://stackoverflow.com/questions/32565438
复制相似问题