GD
θnext=θlast−ωf′(θi)
直到
f′(θnext)=0
對於一般的凸函數,其中的θ是一個關於x的函數
θi=g(xi)
也就是說,給定一個f(x)的時候,我們只能確定一個θ,只有全面的遍歷所有樣本,我們才能夠的到f(θ)
最小二乘法:J(θ)=21i=1∑m(fθ(xi)−yi)2
一次性全部展開
θnext==θlast−wf′(θi)θlast−wf′(g(xi))
但是一般來說,樣本不少,直接計算是在耗費資源。
更主要的是,爲了刨除一些特殊性質,會打亂樣本的順序進行再次訓練,以爲提高適應性。
假設樣本個數爲n,訓練次數爲m,總共重復計算量爲n×m
BGD
批量梯度下降,它的有優點在於把隨機樣本順序隱藏到了計算步驟當中。
假設總樣本爲S,個數爲n則每次訓練的樣本集爲Si,樣本爲ni{Si∈Sni≤n
當ni=n的時候,就成了一般的梯度下降方法了。
當pi∈Si的時候,得到的θ是僅適用於pi這些點的極值參數。
爲了適配全部的點,就應該多組的進行訓練,遍歷全部樣本。
它顯式的優勢在於,減少了每次計算的計算量,可以通過重複計算來慢慢增加精度。
隱式的優勢在於,它把一個一次性達成目的造成的大量計算,拆分成了分步達成,從時間上進行了分離。
把算力分步到了時間片上,相同算力條件下,每次的計算速度加快。
SGD
這個就更加賴皮了,如果把BGD
中每次批量的數據量設置爲1,也就是
ni=1
也就是每次只是計算一個點,它內在的原理是進一步發掘了計算結果的累加性
θnext=θlast−ωf′(θi)
不過計算過程中,樣本數據固定的話,每次只取一個樣本會增加循環的次數,增加額外開銷。
這種辦法適合單點計算量比較大的情況下使用,否則只會適得其反
θi=f(xi)
Adagrad
前面的優化辦法,都是對計算聚集的拆分辦法,還有一個關於學習率w的問題
紅到綠,步子跨大了,錯過了最低點。
關於學習率
- 學習率大了,收斂速度快,但是可能錯過極值點,還有反覆橫跳
- 學習率太小,收斂速度太慢,計算量大
- 全部參數使用同一個學習率,收斂慢
爲此,Adagrad
提出了一個適配的學習率
wi=∑ikg′(θi)2+εwk≤n
這樣一來前期時候可以設置一個較大的學習率,快速的收斂。
後期由於累積的梯度增大,學習率逐漸減小,不容易錯過極值反覆橫跳。
更主要的是,它不一定是一維的,每個維度之間的學習率是獨立的,不會在整體收斂情況下讓單一維度反覆橫跳。
其中的ε主要是爲了避免除0的情況
RMSprop
一個數字,一直分一半,最小是多少,需要多少次。
Adagrad
重心轉到了學習率上面,提出一個適配的學習率,解決了諸多問題,但是也引出了一個問題
後期學習率逐漸降低,而且降低的太過分了,當累加的梯度到一個很大的地步,每次的學習率就會極小。
一米的路程,如果一步一納米,也是很遠的路程。
所以RMSprop
提出這麼一個觀點,累加的梯度應該有一個時效性,太久遠的梯度影響應該減小。
wi=ρgi−1′(θi−1)+(1−ρ)gi′(θi)2+ε2
其中它的輔助參數只是取了上一次的梯度和當前的梯度加權和,通過ρ進行控制。
根據這種觀點,你還可以設計一個卷積函數參數t(n)
wi=∑kit(k−i)gi′(θi)+εw
讓輔助參數不那麼大,在收斂區域學習率不會過於小,導致收斂緩慢即可。
Momentum
山羊在陡峭的地方也站的很穩,站的很穩不一定就是最低點。
可能有很多的極值點,但並非就是全局最優解,Moment
的重心回到了全局最優解這個問題上面。
它樸素的思想是,容易逃離的就不是全局最優。
我們每次尋找下一個點都是根據這個表達式
θi=θi−1−wg′(θi−1)
當梯度趨於0,完全沒有逃離的辦法。
調整w,太大就會左右橫跳,太小就會陷入局部最優。
前面的辦法都是讓w
在初期保持較大值,快速收斂,後期減小,都沒有辦法逃離局部最優,變換模式單一。
也就是說,在梯度很小的時候,不一定要保持較低的學習率進行收斂,需要適應的調整,驗證一下是否全局最優。
vi=θi=avi−1−wg′(θi−1)θi−1+vi
全部放在一塊
θi=θi−1−wg′(θi−1)+avi−1
也就是說,它在最後加上另一個新的控制手段,以此來對極值點進行校驗。每次移動不由單一值控制,而是變成了
avi−1−wg′(θi−1)
之前的移動控制學習率的大小,通過之前梯度的影響進行計算。
但是梯度總會減小,偏移量也是一直減小的,無法對當前位置進行更好的調整。
現在加上了一個受之前狀態影響的偏移量,使得可以在梯度很小的時候也能夠進行偏移,逃離局部最優。
偏移的距離和上一次移動距離正相關,也就是說當梯度絕對值較大的時候偏移量也會比較大。
如果是全局最優,在反覆幾次偏離後,梯度逐漸減小,偏移逐漸減小,最終得到最優解。
如果是局部最優,就會偏移出局部區域,從而避免局部最優。
其中vi初始值爲0,a表示v的衰減率。
Adam
minim^n^θi+1=β1mi−1+(1−β1)g′(θi)=β2ni−1+(1−β2)g′(θi)2=1−β1imi=1−β2ini=θi−n^+εηm^
覺得複雜可以先這樣看看
y=kx+b⇒y=k(x+kb)
把原來的式子全部整合爲一個
θi+1=θi−1−β2iβ2ni−1+(1−β2)g′(θi)2+εη⎝⎛1−β1iβ1mi−1+(1−β1)g′(θi)⎠⎞
也就是說,Adam
是RMSprop
和Momentum
的整合。讓學習率w和偏移都進行一種變化的適配。
在收斂的同時,還能避免局部最優解的限制。