A4.3 機器學習方法(HL)
機器學習方法(Machine learning approaches)介紹各類常見演算法的原理與適用情境:迴歸用線性迴歸、分類用 k-NN 與決策樹、分群用 k-means,以及神經網路與基因演算法。本子題只有 HL 需要學,重點是理解每種方法「如何學習」以及「何時適合使用」,而不是背公式。
HL 專屬子題
A4.3 整個子題只出現在 HL 考卷。SL 學生若有餘力,建議讀「神經網路」一節,有助於理解案例研究中的生成式 AI。
線性迴歸如何預測數值?
線性迴歸(linear regression) 找一條最符合資料的直線 y = mx + b,用來預測連續數值。演算法調整斜率 m 與截距 b,使所有資料點與直線之間的 誤差平方和最小(最小平方法)。
- 適合:特徵與目標大致呈線性關係,例如讀書時數與考試分數。
- 限制:無法表現非線性關係,容易受離群值影響。
k-NN 如何分類?
k-近鄰演算法(k-Nearest Neighbours, k-NN) 要分類新資料時,找出訓練資料中距離最近的 k 個點,以多數決決定類別。
- 計算新資料與每個訓練資料的距離(常用歐氏距離)。
- 取最近的 k 個。
-
這 k 個中最多的類別就是預測結果。
-
k 太小容易受雜訊影響(過擬合),k 太大邊界過於平滑(欠擬合);k 常取奇數避免平手。
- 不需要訓練階段,但預測時要和所有資料比距離,資料量大時很慢;特徵必須先正規化(見 A4.2)。
決策樹如何做決定?
決策樹(decision tree) 用一連串「是/否」問題把資料分類,例如「年收入 > 50 萬?」「有房貸?」。演算法在每個節點挑選最能把資料分開的特徵(例如用 Gini 不純度或資訊增益衡量)。
- 優點:結果容易解釋,人可以看懂決策路徑,適合需要說明理由的情境(貸款審核)。
- 缺點:樹太深容易過擬合,可以限制深度或使用 隨機森林(random forest) 結合多棵樹。
k-means 如何分群?
k-means 是非監督式分群演算法,把資料分成 k 群:
- 隨機選 k 個點作為群中心(centroid)。
- 每個資料點分配給最近的群中心。
- 重新計算每群的平均位置作為新群中心。
- 重複步驟 2–3,直到群中心不再明顯移動。
k 需要事先決定,可用「手肘法(elbow method)」觀察 k 增加時群內誤差下降的轉折點。
神經網路如何學習?
人工神經網路(artificial neural network) 由多層 神經元(neuron) 組成:
- 輸入層 接收特徵,隱藏層 逐層萃取特徵,輸出層 給出預測。
- 每條連線有 權重(weight),每個神經元把輸入加權總和加上 偏差(bias),經過 激活函數(activation function,例如 ReLU、sigmoid) 產生輸出。
- 訓練:前向傳播(forward propagation)計算預測 → 用 損失函數(loss function) 衡量誤差 → 反向傳播(backpropagation) 計算每個權重對誤差的影響 → 用 梯度下降(gradient descent) 微調權重。重複大量次數後,網路逐漸學會正確對應。
常見變形:
- 卷積神經網路(Convolutional Neural Network, CNN):用卷積濾鏡擷取影像中的邊緣、形狀,適合影像辨識。
- 循環神經網路(RNN)/Transformer:處理文字、語音等序列資料,現代大型語言模型以 Transformer 為基礎。
- 生成式模型:例如擴散模型(diffusion model)從雜訊逐步產生圖片,是 AI 繪圖的核心技術。
基因演算法如何找答案?
基因演算法(genetic algorithm) 模仿生物演化來搜尋最佳解,適合可能解非常多、無法逐一嘗試的最佳化問題(例如排課表、路線規劃):
- 初始化:隨機產生一群候選解(族群,population),每個解用「染色體」表示。
- 適應度評估(fitness):用適應度函數評分每個解。
- 選擇(selection):適應度高的解較有機會被選為父母。
- 交配(crossover):組合兩個父母的部分基因產生子代。
- 突變(mutation):以低機率隨機改變基因,維持多樣性、避免卡在局部最佳解。
- 重複 2–5 直到達到滿意解或指定世代數。
演算法怎麼選?
| 方法 | 學習類型 | 問題 | 可解釋性 | 典型用途 |
|---|---|---|---|---|
| 線性迴歸 | 監督式 | 迴歸 | 高 | 銷售預測、房價 |
| k-NN | 監督式 | 分類 | 中 | 推薦、簡單分類 |
| 決策樹 | 監督式 | 分類/迴歸 | 高 | 信用審核、醫療診斷輔助 |
| k-means | 非監督式 | 分群 | 中 | 顧客分群 |
| 神經網路 | 監督式為主 | 分類/迴歸/生成 | 低(黑箱) | 影像、語音、語言、生成式 AI |
| 基因演算法 | 最佳化搜尋 | 最佳化 | 中 | 排程、設計最佳化 |
| 強化學習 | 強化學習 | 決策策略 | 低 | 遊戲 AI、機器人 |
推薦影音
線性迴歸
簡述:StatQuest 說明最小平方法如何找出最佳直線,以及 R² 代表什麼,對應本頁線性迴歸一節。
k-近鄰演算法
簡述:用簡單圖形示範 k-NN 如何依最近的鄰居投票分類,以及 k 值大小的影響,只有幾分鐘。
決策樹
簡述:示範決策樹如何用 Gini 不純度選擇分裂特徵,一步步長出整棵樹。
k-means 分群
簡述:用動畫呈現 k-means 反覆分配資料點與移動群中心的過程,並說明如何選擇 k。
什麼是神經網路?(3Blue1Brown)
簡述:以手寫數字辨識為例,用精美動畫說明神經元、權重、偏差與層的概念,是理解神經網路最受推薦的影片之一。
梯度下降:神經網路如何學習
簡述:3Blue1Brown 系列第二集,說明損失函數與梯度下降如何一步步調整權重,對應本頁「訓練」的流程。
用 Python 實作基因演算法
簡述:Kie Codes 從零用 Python 寫出基因演算法解背包問題,清楚示範族群、適應度、選擇、交配與突變如何轉成程式碼。
練習題
練習 1:選擇演算法
為下列情境各選一種演算法並說明理由:(a) 銀行必須向客戶解釋貸款被拒的原因;(b) 把 10 萬名會員分成行銷族群;(c) 辨識 X 光片中的肺部異常。
參考答案
(a) 決策樹,決策路徑可解釋;(b) k-means,沒有標籤的分群問題;(c) 卷積神經網路(CNN),擅長處理影像。
練習 2:手算 k-NN
訓練資料:A(1, 1) 紅、B(2, 1) 紅、C(5, 5) 藍、D(6, 5) 藍、E(5, 6) 藍。用 k = 3 分類新點 P(4, 4)。
參考答案
距離平方:A = 9 + 9 = 18、B = 4 + 9 = 13、C = 1 + 1 = 2、D = 4 + 1 = 5、E = 1 + 4 = 5。最近 3 個為 C、D、E,皆為藍,所以 P 分類為 藍。
練習 3:神經網路訓練
依序寫出神經網路一次訓練迭代的四個步驟。
參考答案
(1) 前向傳播:輸入經各層計算得到預測;(2) 用損失函數計算預測與正確答案的誤差;(3) 反向傳播:計算誤差對每個權重的梯度;(4) 梯度下降:依梯度方向小幅調整權重與偏差。
練習 4:基因演算法的突變
如果把基因演算法的突變率設為 0,可能發生什麼問題?
參考答案
族群會逐漸變得相同,失去多樣性,只能組合既有的基因,容易卡在局部最佳解(local optimum),找不到更好的全域解。