iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
AI & Data

30天搞懂機器學習是否搞錯了什麼系列 第 9

【Day 9】梯度下降法(Gradient Descent) --- Tip 2, 3

  • 分享至 

  • xImage
  •  

Tip 2:隨機梯度下降法(Stochastic Gradient Descent)

  • 提升訓練速度

隨機梯度下降法跟原本的Gradient Descent的差別在,它是每次隨機取樣一個 https://chart.googleapis.com/chart?cht=tx&chl=x%5En 出來去計算它的Loss,並更新參數,而Gradient Descent是去計算所有資料的Loss才去更新參數。

Tip 3 :特徵縮放(Feature Scaling)

假設我們Regression的function要輸入兩個feature https://chart.googleapis.com/chart?cht=tx&chl=x_1%2C%20x_2,那如果 https://chart.googleapis.com/chart?cht=tx&chl=x_1%2C%20x_2 分佈的範圍不一樣就建議把它們縮放(scaling)。

舉例來說如果 $https://chart.googleapis.com/chart?cht=tx&chl=x_1$ 的數值都是比較小的,https://chart.googleapis.com/chart?cht=tx&chl=x_2 的值都是比較大的,那假設我們把 https://chart.googleapis.com/chart?cht=tx&chl=w_1%2C%20w_2 的值都增加一個固定的值,https://chart.googleapis.com/chart?cht=tx&chl=w_1 對於 https://chart.googleapis.com/chart?cht=tx&chl=y 的影響會比較小,而 https://chart.googleapis.com/chart?cht=tx&chl=w_2 對於 https://chart.googleapis.com/chart?cht=tx&chl=y 的影響會比較大。
如果 https://chart.googleapis.com/chart?cht=tx&chl=x_1%2C%20x_2 的範圍是接近的,那它們對於Loss的影響力就會變得差不多,畫出來就會變成正圓形,這樣不管從什麼地方都可以很容易地到達最低點,因此就可以更容易、更有效地去更新參數。

常見做法

假設有 https://chart.googleapis.com/chart?cht=tx&chl=R 筆範本,每一筆範本裡都有一組feature。我們要做的就是去計算每一個dimension https://chart.googleapis.com/chart?cht=tx&chl=i 的平均值 https://chart.googleapis.com/chart?cht=tx&chl=m_i 以及標準差 https://chart.googleapis.com/chart?cht=tx&chl=%5Csigma_i,然後再將第 https://chart.googleapis.com/chart?cht=tx&chl=r 個範本的第 https://chart.googleapis.com/chart?cht=tx&chl=i 個component代入公是去做計算並更新,最後會發現所有dimension的平均值會是 0,而變異數會是 1。


參考資料

李宏毅老師 - ML Lecture 3-1


上一篇
【Day 8】梯度下降法(Gradient Descent) --- Tip 1
下一篇
【Day 10】分類(Classification)(上)
系列文
30天搞懂機器學習是否搞錯了什麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言