手写数字识别的人工神经网络实践
1. 输入数据集调整
在处理人工神经网络(ANN)时,像素值通常在0到255的范围内。然而,这个范围远远超出了ANN可接受的数据输入范围。由于Sigmoid函数的限制作用,输入数据值超出±3会使函数输出饱和,从而导致ANN的学习功能失效,这种情况在通信电子术语中被称为动态范围耗尽。
为了解决这个问题,我们可以将输入数据值轻松调整到0.01到1.00的可接受范围内,且不会损失ANN的准确性。使用Python进行调整的语句如下:
adjustedRecord = (np.asfarray(record[1:])/255.0 * 0.99) + 0.01
2. 解读ANN输出数据值
ANN主要有两种功能:预测和分类。在手写数字识别项目中,我们使用的是分类类型的ANN,其目的是将数字化的手写数字分类到0到9这十个类别中。
由于输入数据值已调整到0.01到1.00的范围,ANN的输出值也应在此范围内。实际上,输出值的范围是从0.0到1.0,将输出下限从输入下限0.01降低到0.0,是因为某个输出节点可能完全没有输入。
在理想的手写数字识别ANN中,当训练集中的记录0输入到ANN时,输出会是一个特定的数据向量。但在现实中,输出向量可能如下所示:
0 178
0 052
0 027
0 035
0 042
0 686
0 109
0 063
0 051
0 018
其中有九个数
超级会员免费看
订阅专栏 解锁全文
2643

被折叠的 条评论
为什么被折叠?



