詳細解釋
非凸優化(Non-Convex Optimization)是目標函數有多個局部最優的優化問題,是深度學習中的常見挑戰,因為神經網絡的損失函數通常非凸。
與凸優化的對比:
- 凸優化:任何局部最優都是全局最優,有高效算法保證
- 非凸優化:多個局部最優,可能陷入其中
- 深度學習:幾乎所有問題都是非凸
為何神經網絡非凸:
- 激活函數:ReLU、Sigmoid等引入非線性
- 層次組合:多層函數組合產生複雜曲面
- 參數冗餘:同一函數多種參數表示
- 對稱性:神經元排列組合產生等價解
挑戰:
- 局部最小值:優化可能停在非全局最優
- 鞍點:梯度為零但不是極值點(某些方向上凸,某些方向下凸)
- 平台區:梯度極小的平坦區域,優化停滯
- 曲率變化:Hessian矩陣條件數差,優化困難
實際觀察:
- 局部最小值問題不大:大量實驗表明不同初始化收斂到相似性能
- 鞍點更常見:尤其在參數量大的網絡中
- 損失景觀複雜:但隨機梯度下降似乎能找到好解
應對策略:
- 隨機初始化:多次運行選擇最佳
- 隨機梯度下降(隨機梯度下降):噪聲幫助跳出淺層局部最優
- 動量(動量):累積動量越過小障礙
- 學習率調度:初期大學習率探索,後期小學習率精細調整
- 批次正規化(批次正規化 (Batch Norm / BN)):平滑損失曲面
理論研究:
- 過參數化:參數多於樣本時,局部最優接近全局最優
- 無壞局部最小值:某些條件下所有局部最優都好
- 雙重下降:過參數化可能先升後降
實踐建議:
- 不必擔心找到全局最優
- 專注於找到好的泛化解
- 使用標準優化器和實踐
非凸優化是深度學習的理論挑戰,但實踐中SGD效果良好。