萌主天下无敌提示您:看后求收藏(略群小说www.luequn.com),接着再看更方便。
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)只有两个参数的时候,它的函数图像可以在三维空间里呈现。
就好像一个小球在山谷的斜坡上向下不停地滚动,最终就有可能到达谷底。这个理解重新推广到多维空间内也基本成立。
而由于训练样本的数量很大(上万,几十万,甚至更多),直接根据前面的C(w,b)进行计算,计算量会很大,导致学习过程很慢。
、于是就出现了随机梯度下降(stochasticgradientdescent)算法,是对于梯度下降的一个近似。