《百面》-7.優化算法

1.有監督學習的損失函數

問題1:有監督學習涉及的損失函數有哪些?請列舉並簡述他們的特點。

答:1.二分類問題,Y={1,-1}

(1)0-1損失,非凸,非光滑,算法很難優化

L_{0-1}(f,y)=I_{P},I_{p}=fy\leq 0,當P爲真時取值爲1,否則爲0.

(2)Hinge,凸上界,在fy=1出不可導

L_{hinge}(f,y)=max\begin{Bmatrix} 0, & 1-fy \end{Bmatrix},

(3)Logistic,凸上界,處處光滑,可以使用梯度下降,因爲對所有樣本點都有所懲罰,所以對異常點更敏感

L_{logistic}(f,y)=log_{2}(1+exp(-fy))

(4)Cross Entropy,光滑凸上界

L_{cross entropy}(f,y)=-log_{2}(\frac{1+fy}{2})

2.迴歸問題

(1)平方損失函數,光滑,可以使用梯度下降。當預測值與真實值差距大,懲罰力度越大。對異常點較爲敏感

L_{square}(f,y)=(f-y)^{2}

(2)絕對損失函數,在f=y處無法求導。

L_{absolute}(f,y)=\left \| f-y \right \|

(3)Huber,在|f-y|較小的時候爲平方損失,在|f-y|較大時爲線性損失,處處可導,且對異常點魯棒

L_{Huber}(f,y)=\left\{\begin{matrix} (f-y)^{2} &\left \| f-y \right \| \leq \delta \\ 2\delta \left \| f-y \right \|-\delta ^{2} & \left \| f-y \right \|>\delta \end{matrix}\right.

2.機器學習中的優化問題

問題1:機器學習中的優化問題,那些是凸優化問題,哪些是非凸優化問題?

答:凸函數:函數L是凸函數當且僅當對定義域中的任意兩點x,y和任意實數\lambda\epsilon [0,1]總有

L(\lambda x+(1-\lambda )y)\leqslant \lambda L(x)+(1-\lambda )L(y)

凸優化:邏輯回顧、支持向量機、線性迴歸等線性模型。

非凸優化:低秩模型、深度神經網絡、主成分分析

3.經典優化算法

問題1:無約束優化問題的優化方法有哪些?

min L(\theta )

答:直接法和迭代法

直接法,就是直接給出優化問題最優解的方法。需要目標函數滿足兩個條件,1,L是凸函數。梯度爲0有解。

迭代法,就是迭代的修正對最優解的估計。分爲一階法和二階法。

假設當前對最優解的估計值爲\theta _{t},那麼最優化問題就是min L(\theta_{t}+\delta )

那麼對L做一階泰勒展開,得到\delta =-\alpha L^{`}   \theta _{t+!}=\theta _{t}+\delta ,就是梯度下降法

對L二階泰勒展開,得到\delta =-L^{``}L^{`}   \theta _{t+!}=\theta _{t}+\delta,就是牛頓法

牛頓法快於一階法,但是高維情況下,矩陣計算複雜度很大。而且當目標是非凸時,二階法很有可能收斂到鞍點。

4.梯度驗證

問題1:如何驗證求目標函數梯度功能的正確性?

\frac{\partial L(\theta )}{\partial \theta _{i}}=\lim_{h \mapsto 0 }\frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h}

\frac{\partial L(\theta )}{\partial \theta _{i}}\approx \frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h},利用泰勒展開來計算近似誤差。

L(\theta +he_{i})泰勒展開,

\frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h}=\frac{\partial L(\theta )}{\partial \theta _{i}}+\frac{1}{12}(L^{3}(p_{i})+L^{3}(q_{i}))h^{2}

當h充分小的時候,q、p都接近0,可以認爲h前的係數是常數M,因此近似式的誤差爲

|\frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h}-\frac{\partial L(\theta )}{\partial \theta _{i}}|\approx Mh^{2}

|\frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h}-\frac{\partial L(\theta )}{\partial \theta _{i}}|\leq h

如果對於某個下表i,該不等式不成立,則有兩種可能

(1)該下標對應M過大

(2)該梯度分量計算不正確

5.隨機梯度下降法

問題1:當訓練數據量特別大時,經典的梯度下降發存在什麼問題,需要做如何改進?

答:隨機梯度下降法:用單個訓練樣本的損失來近似平均損失

小批量梯度下降法:爲了降低隨機梯度的方差,從而使得迭代算法更穩定,同時處理若干個訓練數據,假設需要同時處理m個訓練數據

{(x_{i1},y_{i1})............(x_{im},y_{im})}

L(\theta )=\frac{1}{m}\sum_{j=1}^{m}L(f(x_{ij},y_{ij}),y_{ij})

\triangledown L(\theta )=\frac{1}{m}\sum_{j=1}^{m}\triangledown L(f(x_{ij},y_{ij}),y_{ij})

(1)如何選取參數m?

答:在不同的應用中,最優m通常不一樣,需要調參選取。一般選擇2的倍數,例如32、64、128、256

(2)如何挑選m個訓練數據?

答:先對數據隨機排序,然後按順序挑選m個

(3)如何選取學習率?

答:通常採用衰減學習速率的方法,一開始較大,然後減小

6.隨機梯度下降法的加速

問題1:隨機梯度下降法失效的原因——摸着石頭下山

答:隨機梯度下降每次僅僅隨機採樣一個樣本來估計當前梯度,計算速度快,內存小。但是每步接受的信息有限,造成目標函數曲線收斂的很不穩定,伴有劇烈波動。

問題2:解決之道——慣性保持和環境感知

答:

(1)動量方法

v_{t}=\gamma v_{t-1}+\eta g_{t}

\theta _{t+1}=\theta _{t}-v_{t}

前進步伐-v_{t} 有兩部分組成 ,一個是學習速率乘以梯度\eta g_{t},而是帶衰減速率的錢一次步伐v_{t-1}

(2)AdaGrad 方法

(3)Adam方法

7.L1正則化與稀疏性

問題1:L1正則化使得模型參數具有稀疏性的原理是什麼?

答:在二維的情況下,黃色的部分是L2和L1正則項約束後的解空間,綠色的等高線是凸優化問題中目標函數的等高線,L2正則項約束後的解空間是圓形,而L1正則項約束的解空間是多邊形。顯然,多邊形的解空間更容易在尖角處與等高線碰撞出稀疏解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章