Conjecture about deep learning
learning跟optimization不一样。实际上local minima不用担心,local minima跟global minima是差不多的。但如果在training set上找一个loss最小点,可能是local minima,而local minima的loss和global minima的loss其实差不多的,所以找到local minima也没关系。但如果是鞍点(saddle point)呢?这里来分析一下到底是鞍点还是local minima。
看海塞矩阵(是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率),如果network有N个参数,海塞矩阵则为NxN的对称矩阵,这样的矩阵可以得到N个相互正交的特征向量和对应的N不同的特征值,如果这N个特征值为正数(海塞矩阵正定),则该点为local minima。如果这N个特征值均为负数(海塞矩阵负定),该点为local maximum。如果这N个特征值有正有负,该点为saddle point。
假设这些特征值符合高斯分布,特征值为正为负的概率各位1/2,如下图,当network只有一个参数时,不可能为saddle point,要么是local minima,要么是local maxima。如果network有两个参数时,则saddle point的概率为1/2。当N=10时,几乎所有临界点都可能是saddle point了。
所以当网络很大的时候,几乎很难找到local minima了。
刚刚假设了特征值符合高斯分布,负值概率是1/2。现在我们假设特征值出现负值的概率是p,而p跟loss有关,假设loss越大,p越大。
loss大是训练刚开始的时候,loss大时epsilon也很大,如下图,海塞矩阵特征值的分布几乎一半是负的一般是正的,随着loss越来越小,epsilon越来越小,特征值的分布渐渐往正半轴偏,当epsilon为0时,特征值渐渐全是正的了,train到的critical point这时很容易是一个local minima。我们可以得出结论:saddle point很容易出现在loss大的地方,而local minima很容易出现在loss小的地方。
示意图如下:
bengio的实验如下,蓝色和绿色的loss(error)很高,看图可以看到海塞矩阵特征值分布有一部分是负的,有一部分是正的,这说明这两个都是saddle point。红色的critical point,loss很低,且它的特征值都是正的,说明这是个local minima。
实际实验如此:
如下图右,不同neuron数量的network它的loss分布如图所见,可以发现小network,loss可以很低,也可以很高,loss的分布非常的广,随着network越来越大,network的loss基本上越来越低,loss分布也越来越集中在小loss上。这说明local minima的loss集中在某一个value附近
CVPR 2017中有一篇论文讲只要network large enough,我们就可以通过gradient descent找到global minima。
因而我们有结论,大网络更容易train。
大网络 -> 大网络的loss分布在较小值附近 -> 小loss使得海塞矩阵特征值λ分布在正值的几率大 -> 不容易遇到saddle point -> 容易找到local minima。