第640章-《我的超级黑科技帝国》
第(2/3)页
为了利用计算机算法解决这一问题,计算机科学家们提出了梯度下降算法(gradient descent)。
这个算法本质上是在多维空间中沿着各个维度的切线贡献的方向,每次向下迈出微小的一步,从而最终抵达最小值。
由于多维空间在视觉上无法体现,所以人们通常会退到三维空间进行类比。当c(w,b)只有两个参数的时候,它的函数图像可以在三维空间里呈现。
就好像一个小球在山谷的斜坡上向下不停地滚动,最终就有可能到达谷底。这个理解重新推广到多维空间内也基本成立。
而由于训练样本的数量很大(上万,几十万,甚至更多),直接根据前面的c(w,b)进行计算,计算量会很大,导致学习过程很慢。
、于是就出现了随机梯度下降(stochastic gradient descent)算法,是对于梯度下降的一个近似。
在这个算法中,每次学习不再针对所有的训练集,而是从训练集中随机选择一部分来计算c(w,b),下一次学习再从剩下的训练集中随机选择一部分来计算,直到把整个训练集用光。然后再不断重复这一过程。
深度神经网络(具有多个hidden layer)比浅层神经网络有更多结构上的优势,它有能力从多个层次上进行抽象。
从上个世纪八九十年代开始,研究人员们不断尝试将随机梯度下降算法应用于深度神经网络的训练,但却碰到了梯度消失(vanishing gradient)或梯度爆发(exploding gradient)的问题,导致学习过程异常缓慢,深度神经网络基本不可用。
然而,从2006年开始,人们开始使用一些新的技术来训练深度网络,不断取得了突破。这些技术包括但不限于:
采用卷积网络(convolutional orgworks);
regularization (dropout);
rectified linear units;
利用gpu获得更强的计算能力等。
第(2/3)页