今天讲网络训练不起来的第一种情况。如图中的黄色曲线,今天不管怎么训练,loss都和黄色曲线一样不会降低,那就是optimization做不好。优化是第三步,是在全域上寻找让loss最小的一组θ,但是我们知道梯度下降法他不是很完善,他在微分为0时就会停下来,这个点叫做critical point,
此时找到的还不一定是最小的loss。那么我们可以知道critical point的条件或者说特征就是g为0。让梯度下降的微分为0有两种情况,一种是local minima就是极值和最值的关系,这种情况是不能逃离的。还有一种就是这个马鞍,在相互正交的两个方向,分别是最大和最小,叫saddle point,像一个马鞍,这种情况是有可能逃离的,只要能找到正确的方向。
那么如何判断是哪一种情况呢,用数学可以解决。
首先L(θ)的曲线是很复杂的,写不出来也画不出来,但是数学上有一个叫做Tayler Series Approximation泰勒级数逼近的式子,可以让θ'逼近θ处的值。式子如下,首先让L(θ)≈L(θ'),然后用绿框和红框来补足差距。绿框就是微分,是(θ-θ')乘以梯度g这个向量,得到的补足就是图中的绿色线段。红框是二分之一的(θ-θ')乘以H这个矩阵,matrix就是矩阵的意思。这个矩阵是L(θ')在(i,j)这个点的二次偏导数。
那么如果θ'是critical point,那么梯度g就是0,所以我们只需要看红框这一项就可以了。从红框就可以判断出是图中哪一种类型,是否能逃脱,如何逃。
首先为了方便把(θ-θ')记为v,那么此时,如果红框这一项不管θ',也即v,取什么值,都大于零,那么L(θ)>L(θ')恒成立,那这个点就是local minima。反过来就是local maxima。如果红框这一项有时候大于0,有时又<0,那这个点就是马鞍点。
这里的H是一个矩阵,它是由四个二次微分项组成的。如下右图所示的图中,在原点处,(w1,w2)=(0,0),那么绿框的偏导也就是梯度g就为0,这就是一个critical point,然后求二次偏导组成H,因为这里的H的特征值λ有一正一负,所以这个点是saddle point。就是这样判断。
下面来讲判断出是马鞍点之后应该如何escape出来。
H矩阵是破局的关键,求出来λ之后,我们可以进一步得到很多个特征向量u。如下左图,如果让(θ-θ')记为v等于其中一个u,比如是λ<0的u,那么根据线性代数的变形,红框其实等于λ|u|²。那么这一项就<0,L(θ)<L(θ'),此时再让θ=θ'+u,我们就可以得到更小的L。
下右图是刚才哪个具体的实例,取原点的时候,H的特征值是2和-2,取-2的特征向量比如说[1,1]为u,那么沿着这个方向就可以降低loss。
但是实际中这样是不可行的,因为θ包含的参数太多了,不可能算得出来。
然后讲了一个很有趣的概念,说是任何一个local minima, 可能在更高一个的维度里面,只是saddle point,是可以走出来的,只是维度没达到而已。他讲了从石棺中取圣杯的故事,三维空间的石棺是封闭的,是一个走不出来的local minima,但是在神的眼里,在四维的空间中,他不是封闭的,是有路可走的saddle point。比如下图的左边,一维曲线的最低点,在二维中可能是一个鞍点。在右边,人们人为红点是走不出来的,那只是因为画不出来更高的维度而已。