零点看书

字:
关灯 护眼
零点看书 > 我的超级黑科技帝国 > 第六百三十五章

第六百三十五章

第六百三十五章 (第1/2页)

对于这个神经网络的训练过程,就是要确定这11935个参数。
  
  训练的目标可以粗略概括为:对于每一个训练样本,对应的输出无限接近于1,而其它输出无限接近于0。
  
  根据MichaelNielsen给出的实验结果,以上述网络结构为基础,在未经过调优的情况下,可以轻松达到95%的正确识别率。而核心代码只有74行!
  
  在采用了深度学习的思路和卷积网络(convolutionalnetworks)之后,最终达到了99.67%的正确识别率。而针对MNIST数据集达到的历史最佳成绩是99.79%的识别率,是由LiWan,MatthewZeiler,SixinZhang,YannLeCun,和RobFergus在2013年做出的。
  
  考虑到这个数据集里还有一些类似如下这样难以辨认的数字,这个结果是相当惊人的!它已经超越了真正人眼的识别了。
  
  在这个过程中一步步调整权重和偏置参数的值,就必须引入梯度下降算法(gradientdescent)。
  
  在训练的过程中,我们的神经网络需要有一个实际可行的学习算法,来逐步调整参数。
  
  而最终的目的,是让网络的实际输出与期望输出能够尽量接近。我们需要找到一个表达式来对这种接近程度进行表征。这个表达式被称为代价函数(costfunction)
  
  x表示一个训练样本,即网络的输入。其实一个x代表784个输入。
  
  y(x)表示当输入为x的时候,期望的输出值;而a表示当输入为x的时候,实际的输出值。y(x)和a都分别代表10个输出值(以数学上的向量来表示)。而它们的差的平方,就表征了实际输出值和期望输出值的接近程度。越接近,这个差值就越小。
  
  n是训练样本的数量。假设有5万个训练样本,那么n就是5万。因为是多次训练,所以要除以n对所有训练样本求平均值。
  
  C(w,b)的表示法,是把costfunction看成是网络中所有权重w和偏置b的函数。为什么这样看呢?进行训练的时候,输入x是固定的(训练样本),不会变。在认为输入不变的情况下,这个式子就可以看成是w和b的函数。那么,式子右边的w和b在哪呢?实际上,在a里面。y(x)也是固定值,但a是w和b的函数。
  
  总结来说,C(w,b)表征了网络的实际输出值和期望输出值的接近程度。越接近,C(w,b)的值就越小。因此,学习的过程就是想办法降低C(w,b)的过程,而不管C(w,b)的表达形式如何,它是w和b的函数,这就变成了一个求函数最小值的最优化问题。
  
  由于C(w,b)的形式比较复杂,参数也非常多,所以直接进行数学上的求解,非常困难。
  
  为了利用计算机算法解决这一问题,计算机科学家们提出了梯度下降算法(gradientdescent)。
  
  这个算法本质上是在多维空间中沿着各个维度的切线贡献的方向,每次向下迈出微小的一步,从而最终抵达最小值。
  
  由于多维空间在视觉上无法体现,所以人们通常会退到三维空间进行类比。当C(w,b)只有两个参数的时候,它的函数图像可以在三维空间里呈现。
  
  就好像一个小球在山谷的斜坡上向下不停地滚动,最终就有可能到达谷底。这个理解重新推广到多维空间内也基本成立。
  
  

(本章未完,请点击下一页继续阅读)
『加入书签,方便阅读』
热门推荐
大魏读书人 诡诚杀 万界之从巨蟒开始 伊本毒物见你封喉 从傀儡皇子到黑夜君王 不科学御兽 晚唐浮生 成为圣人是一种什么体验? 谍战之巅 我在手术室打怪那些年