形式比较复杂,参数也非常多,所以直接进行数学上的求解,非常困难
为了利用计算机算法解决这一问题,计算机科学家们提出了梯度下降算法(gradientdescent)
这个算法本质上是在多维空间中沿着各个维度的切线贡献的方向,每次向下迈出微小的一步,从而最终抵达最小值
由于多维空间在视觉上无法体现,所以人们通常会退到三维空间进行类比当C(w,b)只有两个参数的时候,它的函数图像可以在三维空间里呈现
就好像一个小球在山谷的斜坡上向下不停地滚动,最终就有可能到达谷底这个理解重新推广到多维空间内也基本成立
而由于训练样本的数量很大(上万,几十万,甚至更多),直接根据前面的C(w,b)进行计算,计算量会很大,导致学习过程很慢
、于是就出现了随机梯度下降(stochasticgradientdescent)算法,是对于梯度下降的一个近似
在这个算法中,每次学习不再针对所有的训练集,而是从训练集中随机选择一部分来计算C(w,b),下一次学习再从剩下的训练集中随机选择一部分来计算,直到把整个训练集用光然后再不断重复这一过程
深度神经网络(具有多个hiddenlayer)比浅层神经网络有更多结构上的优势,它有能力从多个层次上进行抽象
从上个世纪八九十年代开始,研究人员们不断尝试将随机梯度下降算法应用于深度神经网络的训练,但却碰到了梯度消失(vanishinggradient)或梯度爆发(explodinggradient)的问题,导致学习过程异常缓慢,深度神经网络基本不可用
然而,从2006年开始,人们开始使用一些新的技术来训练深度网络,不断取得了突破这些技术包括但不限于:
采用卷积网络(convolutionalnetworks);
Regularization(dropout);
Rectifiedlinearunits;
利用GPU获得更强的计算能力等
深度学习的优点显而易见:这是一种全新的编程方式,它不需要我们直接为要解决的问题设计算法和编程,而是针对训练过程编程
网络在训练过程中就能自己学习到解决问题的正确方法,这使得我们可以用简单的算法来解决复杂的问题,而且在很多领域胜过了传统方法
而训练数据在这个过程发挥了更重要的作用:简单的算法加上复杂的数据,可能远胜于复杂的算法加上简单的数据
深度网络往往包含大量的参数,这从哲学原则上不符合奥卡姆剃刀原则,通常人们要在调整这些参数上面