第640章
对于这个神经网络的训练过程,就是要确定这11935个参数wandu8• com
训练的目标可以粗略概括为:对于每一个训练样本,对应的输出无限接近于1,而其它输出无限接近于0wandu8• com
根据MichaelNielsen给出的实验结果,以上述网络结构为基础,在未经过调优的情况下,可以轻松达到95%的正确识别率wandu8• com而核心代码只有74行!
在采用了深度学习的思路和卷积网络(convolutionalnetworks)之后,最终达到了%的正确识别率wandu8• com而针对MNIST数据集达到的历史最佳成绩是%的识别率,是由LiWan,MatthewZeiler,SixinZhang,YannLeCun,和RobFergus在2013年做出的wandu8• com
考虑到这个数据集里还有一些类似如下这样难以辨认的数字,这个结果是相当惊人的!它已经超越了真正人眼的识别了wandu8• com
在这个过程中一步步调整权重和偏置参数的值,就必须引入梯度下降算法(gradientdescent)wandu8• com
在训练的过程中,我们的神经网络需要有一个实际可行的学习算法,来逐步调整参数wandu8• com
而最终的目的,是让网络的实际输出与期望输出能够尽量接近wandu8• com我们需要找到一个表达式来对这种接近程度进行表征wandu8• com这个表达式被称为代价函数(costfunction)
x表示一个训练样本,即网络的输入wandu8• com其实一个x代表784个输入wandu8• com
y(x)表示当输入为x的时候,期望的输出值;而a表示当输入为x的时候,实际的输出值wandu8• comy(x)和a都分别代表10个输出值(以数学上的向量来表示)wandu8• com而它们的差的平方,就表征了实际输出值和期望输出值的接近程度wandu8• com越接近,这个差值就越小wandu8• com
n是训练样本的数量wandu8• com假设有5万个训练样本,那么n就是5万wandu8• com因为是多次训练,所以要除以n对所有训练样本求平均值wandu8• com
C(w,b)的表示法,是把costfunction看成是网络中所有权重w和偏置b的函数wandu8• com为什么这样看呢?进行训练的时候,输入x是固定的(训