Draxler F, Veschgini K, Salmhofer M, et al. Essentially No Barriers in Neural Network Energy Landscape[C]. international conference on machine learning, 2018: 1308-1317.
梗概
作者認爲, 神經網絡中,假設θ1,θ2都是使得損失達到最小的參數,那麼通過一些手段,可以找到一個路徑(path),沿着這條路徑,其上的θ也會使得損失很小,幾乎與最小沒什麼區別.
並且作者給出瞭如何尋找,以及一種擴展方式.
可惜的是,這些都只是猜想,有許多事實支撐,但缺乏理論論證.
主要內容
path的定義
p(θ1,θ2)∗=pfromθ1toθ2argmin{θ∈pmaxL(θ)}.
可以說,這個定義非常之簡單粗暴了.
需要一提的,作者是θ∈p(θ1,θ2)∗中使得L(θ)到達最大的點爲鞍點,不過我不知道該怎麼證明.
稱此路徑爲MEP(minimum energy path).
path的逼近
上面的那個問題自然是很難求解的,所以不得不去尋找一個替代.
Mechanical Model
假設已經有一組點pi(N+2)個, p0=θ0,pN+1=θ2, 考慮下式:
E(p)=i=1∑NL(pi)+i=0∑N21k∥pi+1−pi∥2,
其中,k是人爲設定的值.
當k很小的時候,高能量(損失)的點之間的距離會拉大. 關於這個論點我有一點存疑,因爲我覺得如果k真的很小很小,那麼pi應該會縮在一起吧,比如倆端. 當k過大的時候,路徑會被縮短和拉緊(像彈簧),這點我是認同的,因爲p0,pN+1之間的線段會最短,這個肯定是不會太好的,因爲會錯過"鞍點".
Nudged Elastic Band
一個改進的版本是:
Fi=−∇piE(p)=FiL+FiS,
即把E(p)分成了倆個部分, 進一步:
FiNEB=FiL∣⊥+FiS∣∥.
也就是說,認爲第一部分∑L(pi)只提供一個垂直的力,而剩下的一部分只提供一個平行的力,就像一根彈性繩一樣,一方面有一個上下拉扯的力,另一方面有一個水平伸縮的力.
其中τ^i是路徑的切線方向. 如何定義這個方向呢:
N(x)將x歸一化.
作者說,這麼做,使得不會出現拉緊的情況了,值得商榷.
算法:
我奇怪的一點是,爲什麼更新pi的時候,只受到FiL∣⊥的作用,切線方向的力呢?
還有一個AutoNEB, 這個算法就是上面的擴展,使得我們自動增加點pi.
局部最優
作者說,通過上面的算法,往往會找到局部最優的MEP,但是呢,通過某些方法,我們也能使得這些局部最優顯得可靠.
假設A,B,C三個點,代表了三個最小的參數點, 而且我們有了局部最優的路徑LAB,LBC, 那麼:
這個結論是顯然的, 另外:
這個什麼意思呢,就是A→B→C也是A→C的一個路徑,所以自然有上式成立.
這個有什麼用呢?
假設我們有很多個最小值點t1,…,tN, 先利用算法找到t1到t2,…,tN的路徑,這個就像一棵樹(論文用樹來表示,其實圖更恰當吧). 可能絕大部分都是局部最優的,如何判斷這些局部最優的優劣性. 首先,選出每一條路徑中的最大能量點(“鞍點”)c2,…,cN, 不妨設t1→tk的路徑擁有這些點中最大的,也就是最壞的一個路徑. 我們可以試着從tk往其它的尋找路徑,如果能夠找到一個路徑(假設爲tj), tk→tj, 使得t1→tj→tk比直接t1→tk更優,那麼我們就找到一個更好的路徑,將其替換,以論下來,再對次劣的進行操作…
這樣子,我們就能夠有足夠的理由相信,這些局部最優的路徑是可靠的.
經過實驗,作者發現,越深,越寬(每層的神經元個數)的網絡,最優點之間的MEP越會展現出無障礙平坦的性質,即普遍的小損失.
如果確實如此,那麼我們就容易構造一族解,這樣網絡就更靈活了不是?