【李宏毅老師2021系列】機器學習基本概念簡介
Mar 12, 2022
這個系列是在觀看李宏毅老師2021系列的筆記,希望能用更濃縮的方式將內容整理下來。
模型是一個 Function,我們可以用它來預測許多事情。
Different types of Functions (Task)
- Regression:function會輸出連續性的數值。例:預測pm2.5的濃度
- Classification:給定特定的類別,function會輸出其中一個(binary/multiple classification)或某幾個 (multiple label)。例:alphaGo:將圍棋盤視為19x19個種類,預測下一步要落在哪一個類別。
- Structured Learning:除了上述的兩種,有很多的任務是落在這個領域,也就是function要產生結構化的物件。例:要機器學會畫畫、寫文章、創造等事情,比較像是我們平常聽到的人工智慧。
How to find a function
以預測youtube頻道點閱人數為例 (Regression Task)
1. Function with Unknown Parameters
- function:y = b + w*x1
- x1 就是依據 domain knowledge 的 feature (特徵),可多可少,至於要放哪些 feature 就會跟 domain knowledge 和 feature selection (特徵篩選)有關。這邊為了解釋老師僅把昨天的觀看人數當作 x1。
- b 是 bias、w 是 weight,機器要學習的就是這些參數。
2. Define Loss from Training Data
- Loss 也是一個function,輸入是 bias 和 weights, L(b, w)。
- Loss 是用來定義將訓練資料放入某一組參數後,這組參數有多好的function。
- 將每一組訓練資料都放入某一組參數後,會得到預測的y,計算真實的y (label)與預測的y (predict)的距離絕對值再取平均,就可以當作這組參數的loss值。
- 這種loss function叫做 Mean Absolute Error (MAE),另一種類似的叫做Mean Square Error (MSE),是取label y和 predict y距離的平方,這兩種適合用在 Regression 的任務。
- 若label y 和predict y 是機率的話,那就會使用 cross-entropy 作為 loss function。
- 下圖的error surface (紅色代表 loss值大、紫色代表 loss值小),因此我們就會根據loss function,假設初始值在黃色點,就會希望機器的學習曲線從黃色點移動到紫色點,就會找到loss較小的bias和weight。
3. Optimization
重要概念:Gradient Descent
學習步驟如下
- 根據不同的weight,會得到不同的loss。
- 剛開始會隨機挑選一個隨機的w值。
- 接著去計算這個w對於loss值的微分是多少,等於是去計算error surface的斜率,若斜率是負,那麼就去加大weight,反之亦然。
- w要調多大或調多小 (步伐大小),會根據斜率乘以learning rate (hyperparameters) 的結果決定。 (需自行設定的參數叫做 hyperparameters)
- 不斷地更新w。
- 理想上是當我們找到斜率等於0時,w就不會再更新了,而實際上通常我們可以設定training的epoch,當epoch結束,training就會結束。
備註:gradient descent會有local minima的問題,但並非實際上痛點,後續才會介紹。
local minima 問題:如下圖標示的點,local minima這個點相較於旁邊兩側,已經是loss最低的點,但卻不是整體最低的點。在這個點,因為gradient descent的步伐大小會上不去右側的上坡,因而無法找到整體最低的loss (global minima)。
機器在學習的 Error Surface
總結
機器學習的三個步驟:
- Function with Unknown Parameters
- Define Loss from Training Data
- Optimization