iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
AI & Data

Machine Learning for Dummies系列 第 8

[Day 8] 梯度下降法

  • 分享至 

  • xImage
  •  

前情提要

昨天的文章中,我們寫出了線性模型 y = a * x + b 的損失函數 (Loss function)

Imgur

而我們的任務就是要找到 Imgur 最低點,也就是找到能夠讓 L 最小的 a & b 的組合。如果在平面上作圖,把 a & b 當作是橫軸與縱軸,圖上的每一個位置都會有一個 L 的值。不同的地方有高有低,看起來就會像下面這個等高線圖:

Imgur

這圖看起來好像頗單純的,但在不同的問題上可能會長得像下面這樣:


(圖片來源)

什麼是梯度?

舉個例子來說,假如你在一座山上,這座山上的不同地方有不同的高低差。你現在所站在的這個地方,會有一個梯度,代表著你周圍地勢起伏的傾向。梯度帶有方向性、也帶有一個值,讓你知道起伏的程度,譬如往北邊走有 10% 的坡度,往東走有 5% 的坡度。

如果我們用數學座標來解釋,這張圖中 x 軸代表著位置,y 軸代表著高度,你會看到這張範例圖的兩邊高、中間低(你可以想像我們拿一把刀把整座山切開,這是某個方向的剖面圖,不過這張範例圖中間低的狀況應該是切到盆地了)

Imgur

這條線的式子很簡單,它是

Imgur

如果我們要找到 x = -2 以及 x = 1 這兩個位置的梯度(在這個平面上,也就是這兩個點的切線斜率)要怎麼算呢?

Imgur

這裡就需要動用到一點微積分了。將式子兩邊同時對 x 微分

Imgur

其結果就是

Imgur

這個式子告訴我們,如果我們要知道某一個點的梯度(切線斜率),就把 x 的值帶入上面這個式子。譬如 x = -2 這個點的梯度就是 -4 (上圖紅色線), x = 1 這個點的梯度就是 2 (上圖綠色線)

位置 梯度
-2 -4
1 2

你會發現這兩個點的梯度的大小不一樣之外,方向也不一樣(一正一負)

沿著梯度下降吧

所以,假設我們的任務是抵達圖形的最低點,如果我們知道目前所在地的梯度,那麼梯度這個資訊可以怎麼幫助我們呢?

很間單,我們就往梯度的反方向走吧!

假設我們現在在 x = 1 這個點,梯度是正 2,那麼我們就往負的方向走吧!這時候我們就可以往左邊跨出一步。要跨出多大步我們還不知道,不過我們可以先把這件事用數學式子表示如下:

Imgur

Imgur 代表我們原始的位置

Imgur 代表我們前進的方向與步伐大小,這裡我們除了使用原始位置的梯度(斜率)之外,還另外乘上了一個參數,來決定我們要跨出多大步。Imgur 則是代表這我們踏出一步後的位置

當我們到達 Imgur 之後,我們就可以重複 Imgur 式子讓我們不斷地踏出下一步。

Imgur

在這個示意圖上,你會發現我們不斷地踏出步伐往最低點前進,你也會發現每一步好像越來越小,那是因為越往下走梯度越小,因此跨出的步伐也就越小。如果我們真的幸運達到最低點了,那麼這個最低點的梯度將會是 0,也就是說,我們將不會再踏出任何一步。

這就是梯度下降法。

小結

所以我們會用梯度下降法,來幫我們找到 Loss function 的最小值。為什麼要找到 Loss function 的最小值?因為我們想找到最準的預測模型,來幫助阿鐵預測新車的油耗與里程之間的關係。

雖然談到第七天,還沒有看到機器的出現,不過你會發現我們慢慢的把問題數學化,變成未來機器可以幫助我們執行的算式。當機器透過梯度下降的方法,在大量的資料中找到一個預測模型,那麼這個機器就有能力針對未來的資料進行判斷,也就是「學會」了判斷的能力了。

未來我們將會用 python 實作梯度下降的方法來達到機器學習的目的。不過在那之前,再讓我們花一點點的時間來談談關於梯度下降的問題吧,我們明天見!


上一篇
[Day 7] 迴歸分析 (3)
下一篇
[Day 9] 梯度下降法會遇到的問題
系列文
Machine Learning for Dummies30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言