機器學習2021 - 機器學習基本概念

機器學習2021 - 機器學習基本概念

機器學習2021 - 機器學習基本概念

內容擷取自影片1影片2

機器學習 (Machine Learning, ML) 概括來說,就是讓機器具備尋找一個函式 (Function) 的能力。這個函式能夠接收輸入(例如聲音訊號、圖片或圍棋盤面)並產生對應的輸出(例如文字、內容描述或下一步的落子位置)。

由於這些任務所需的函式往往極度複雜,人類無法手動寫出其數學方程式,因此我們期望藉由機器的力量來自動找到這個函式。

機器學習的三大類任務

隨著需要尋找的函式不同,機器學習的任務也分為不同的類別。

  1. 迴歸 (Regression) 迴歸任務的目標是找到一個函式,其輸出是一個數值 (scalar)。

• 範例: 預測未來某一時間的 PM2.5 數值。

• 函式結構: 輸入可能是今日的 PM2.5、平均溫度、臭氧濃度等,輸出則是明天中午 PM2.5 的數值。

  1. 分類 (Classification) 分類任務要求機器從人類事先準備好的一組選項(稱為類別 (classes) 或選項)中,選擇一個作為輸出。

• 範例: 電子郵件的垃圾郵件偵測。函式輸入是一封郵件,輸出是「是垃圾郵件」或「不是垃圾郵件」這兩個選項之一。

• 多選範例: AlphaGo 也可以視為一個分類問題,其選項是棋盤上 19 乘 19 個可落子的位置。

  1. 結構化學習 (Structured Learning) 除了迴歸和分類這兩大類任務之外,還有所謂的結構化學習,被稱為機器學習領域的「黑暗大陸」。

• 目標: 機器不只是輸出一個數字或一個選項,而是產生一個有結構的物件。

  • 範例: 讓機器畫一張圖、寫一篇文章,或者用更擬人化的說法,讓機器學會「創造」。
    機器尋找函式的三個基本步驟

無論是哪一種機器學習任務,機器尋找函式(或參數)的過程通常分為三個主要步驟。這裡以預測 YouTube 頻道隔天總點閱率的迴歸任務為例進行說明。

第一步:寫出一個帶有未知參數的函式 (Model)

首先,我們需要猜測欲尋找的函式的數學形式。

• 模型 (Model): 帶有未知參數的函式稱為模型。

• 假設: 假設隔天的點閱次數與前一天的點閱次數成線性關係,模型可寫成 y = b + w \times。

• 參數定義:

◦ 特徵 (Feature): 函式中已知的輸入資料,如前一天的點閱次數。

◦ 參數 (Parameter): 函式中未知的數值,需要透過資料找出。

◦ 權重 (Weight): 與特徵相乘的未知參數。

◦ 偏差 (Bias): 直接相加的未知參數。

• 領域知識 (Domain knowledge): 模型的初步猜測通常來自於對問題本質的了解。

第二步:定義一個損失函式 (Loss)

我們需要一個方法來評估一組參數的好壞。

• 損失函式 (Loss Function): 損失函式是一個以模型參數(如 b 和 w)為輸入的函式。

• Loss 的意義: 損失函式的輸出值代表當參數設定為某個數值時,這組數值的好壞程度。L越大代表這組參數越不好;L 越小代表越好。

• 計算方式: 使用訓練資料(例如頻道過去數年的點閱次數)進行計算。

◦ 訓練資料中的真實數值稱為標籤 (Label)。

◦ 計算模型預估的值 (y) 與真實標籤之間的差距。

◦ 常見的差距計算方法包括:

▪ 平均絕對誤差 (MAE): 計算 y與 \hat{y} 絕對值的差距。

▪ 均方誤差 (MSE): 計算 y 與 \hat{y}相減後取平方。

◦ 將所有訓練資料的誤差加總或取平均,就得到總損失 L。

• 誤差曲面 (Error Surface): 嘗試不同的參數組合並計算其 Loss 後,可以繪製出一個等高線圖,這張圖被稱為誤差曲面。

第三步:最佳化 (Optimization)

這一步驟是解一個最佳化問題,目的是找到一組能讓 Loss 值最小化的參數 (w, b)。

• 梯度下降法 (Gradient Descent): 這是本課程唯一使用的最佳化方法。

• 運作原理:

  1. 隨機選取一個初始點 (w⁰, b⁰)。

  2. 計算 Loss 對於所有未知參數的微分(即梯度 Gradient)。梯度指出了參數應移動的方向。

  3. 根據梯度和學習速率更新參數。

▪ 更新公式:$w^{t+1} = w^t — \eta \times (\text{微分結果})$。

  1. 重複此過程,直到達到停止條件(例如達到預設的最大更新次數,或微分值趨近於零)。

• 超參數 (Hyperparameter): 在機器學習過程中,需要自行設定的數值,例如學習速率 ($\eta$)、模型層數或 Sigmoid 數目等。

• 局部最小值 (Local Minima): 梯度下降法可能遇到的問題是訓練停在局部最小值,而不是真正能讓 Loss 最小化的全域最小值 (Global Minima)。

線性模型的限制與深度學習的引入

基本的線性模型 (Linear Model),例如 y = b + w \times x_l,限制性很大,它只能模擬輸入 (x_l) 和輸出 (y) 之間的直線關係。

• 模型偏差 (Model Bias): 這種來自於模型本身的限制,使其無法模擬複雜的真實非線性狀況,稱為模型偏差。

• 解決方法: 我們需要一個更有彈性的函式。

構建複雜函式 (深度學習基礎)

一個複雜的曲線可以看作是由許多簡單的「藍色函式」(或稱 Hard Sigmoid)和一個常數項組合而成的。

• Sigmoid 函式: 一種 S 型函式,可以逼近這種藍色函式。

• 疊加 Sigmoid: 透過調整 Sigmoid 函式中的參數 (w, b, c),可以產生不同形狀的 Sigmoid。將足夠多的不同 Sigmoid 函式疊加起來,就可以逼近任何連續的曲線 (Continuous Function)。

神經網路與深度學習的架構

當我們將多個 Sigmoid 函式組合起來,形成一個更有彈性的模型時,就進入了神經網路的概念。

• 激活函式 (Activation Function): Sigmoid 或 校正線性單元 (Rectified Linear Unit, ReLU) 這些函式在機器學習中統稱為激活函式。

• 神經元 (Neuron): 每個 Sigmoid 或 ReLU 單元被稱為神經元。

• 類神經網路 (Neural Network): 許多神經元串聯起來,構成神經網路。

• 隱藏層 (Hidden Layer): 模型中位於輸入和輸出之間的每一排神經元稱為隱藏層。

• 深度學習 (Deep Learning): 當神經網路包含多個隱藏層(即將神經元反覆堆疊多次),網路變得「深」(Deep) 時,這項技術就被稱為深度學習。

訓練細節與過度擬合

在使用複雜模型進行最佳化時,雖然步驟仍是梯度下降,但參數數量大幅增加。

• 梯度 (Gradient): 將所有參數對 Loss 的微分值集合起來,形成一個向量,稱為梯度。

• 批次 (Batch): 實務上,通常不會用所有資料計算總 Loss ($L$),而是將資料分成小批次 (Batch),依序用每個 Batch 算出的 Loss ($L_1, L_2, \dots$) 來計算梯度並更新參數。

• 更新 (Update): 每更新一次參數稱為一次 Update。

• 週期 (Epoch): 將所有的 Batch 都看過一次稱為一個 Epoch。

過度擬合 (Overfitting)

在訓練模型時,可能會出現過度擬合的狀況。

• 定義: 過度擬合是指模型在訓練資料上的 Loss 雖然持續降低,但在未看過的資料(測試資料)上的 Loss 卻沒有變好,甚至變差。

• 模型選擇: 由於我們真正在意的是模型對未來、未看過資料的預測能力,因此在選擇模型時,應選擇在未看過資料上表現最好的模型。

Comments

Loading comments…

Leave a Comment