教材: 【機器學習2021】類神經網路訓練不起來怎麼辦 (一): 局部最小值 (local minima) 與鞍點 (saddle point)

【機器學習2021】類神經網路訓練不起來怎麼辦 (一): 局部最小值 (local minima) 與鞍點 (saddle point)

如何把Optimization的Gradient Descent做得更好?

怎麼發覺Optimization做得不好?

  1. 把該模型和簡單模型(Linear Model, Shallow network)的Loss比較,若比簡單模型的Loss還差就是了
  2. 不管怎麼訓練,模型的Loss就是居高不下

<aside> 📒 以上兩點,就是gradient對loss的微分$\cong$0,他已經找不到哪邊的斜率較低了 →即critical point local minima, saddle point(鞍點)是標準例子

</aside>

那麼,要如何辨別critical point是local minima 還是 saddle point?

在這之前,先來看看Tayler Series Approximation

$$ L(\theta)\approx L(\theta')+ (\theta-\theta')^Tg+\frac{1}{2}(\theta-\theta')^T H(\theta-\theta') $$

  1. $L(\theta)$的式子也許寫不出來,但可以利用附近的$L(\theta')$來表示
  2. $g$(gradient): vector(向量),彌補$\theta', \theta$之間的距離,一次微分
  3. $H$(hessian): matrix(矩陣),裡面有二次微分

<aside> 📢 懶人包: $H$矩陣(Hessian)的所有eigen value(特徵值)計算出來 若為正→ Local minima 若為負→ Local maxima 若時而正時而負 → Saddle point

</aside>

Saddle Point(鞍點)

【機器學習2021】類神經網路訓練不起來怎麼辦 (一): 局部最小值 (local minima) 與鞍點 (saddle point)