1. 程式人生 > >機器學習與深度學習系列連載: 第二部分 深度學習(二)梯度下降

機器學習與深度學習系列連載: 第二部分 深度學習(二)梯度下降

梯度下降 Gradient Decent

我們回憶深度學習“三板斧”,

  1. 選擇神經網路
  2. 定義神經網路的好壞
  3. 選擇最好的引數集合

其中步驟三,如何選擇神經網路的好壞呢?
在這裡插入圖片描述

梯度下降是目前,最有效的方法之一。

方法:我們舉兩個引數的例子 θ 1 \theta1 , θ

2 \theta2 , 損失函式是L。那麼它的梯度是:
在這裡插入圖片描述

那我為了求得最小值,我們有:
在這裡插入圖片描述

引數不斷被梯度乘以學習率η 迭代
在這裡插入圖片描述

那麼上述公示公為什麼是減號,不是加號呢?
我們定義 θ \theta 改變的方向是movement的方向, 而gradient的方向是等高線的法線方向
在這裡插入圖片描述

基礎的Gradient Decent已經介紹完了,接下來,我們一起探討GD的使用技巧。

Learning rate學習率的設定

Learning Rate η 如果設定不好,Loss反而增大
在這裡插入圖片描述

自適應的學習率 adaptive learning rate

很多小夥伴在機器學習程式碼中,學習率一般都是設定為一個固定的數值(需要不斷調參)。
根據學習經驗,一般的我們有如下結論:

  1. 訓練剛開始的時候,學習率較大,
  2. 經過幾輪訓練後,結果慢慢接近的時候,需要調小學習率
    在這裡插入圖片描述

Adagrad 的學習率是現有學習率 除以 導數的平方和的開根號

在這裡插入圖片描述

Stochastic Gradient Decent (SGD)

讓訓練更加快速

一般的GD方法是所有的訓練資料後,進行一次引數更新
在這裡插入圖片描述

SGD是一個樣本就可以更新引數,
在這裡插入圖片描述

GD和SGD的對比效果:
在這裡插入圖片描述

特徵裁剪 Feature Scaling

讓不同維度的資料,有相同的變化幅度
在這裡插入圖片描述

訓練的時候,哪一個好train,一目瞭然
在這裡插入圖片描述

歸一化方法:
在這裡插入圖片描述

總結: Gradient Decent 是機器學習、深度學習求解Optimal問題的“普世”方法,但是也會遇到很多問題,
例如local minima 和 saddle point 的問題。 我們以後會展開討論。

在這裡插入圖片描述

本專欄圖片、公式很多來自臺灣大學李弘毅老師、斯坦福大學cs229,斯坦福大學cs231n 、斯坦福大學cs224n課程。在這裡,感謝這些經典課程,向他們致敬!