AI 與機器學習基礎:從問題類型到模型評估
本頁為依教材與考古題整理的原創摘要;考古題答案經技術覆核,但不是官方答案。
第一次接觸也沒關係
這堂先懂這些詞
先記住白話意思,不必急著背英文。看到正文時,再把正式名稱接回來。
混淆矩陣
也會看到:confusion matrix、TP、FP、FN、TN、precision、recall、accuracy把二元分類的預測與真實結果交叉整理成四格,再由四格計算評估指標。
- 生活例子:
- 像把警報分成真的有火、誤報、漏報與正確未報四種結果。
- 別搞混:
- Precision、recall 與 accuracy 回答不同問題,不能互相代換。
線性迴歸
也會看到:linear regression、intercept、slope用一條線性的計算式,描述輸入改變時預測值如何跟著改變。
- 生活例子:
- 用「基本車資+每公里費用」預估計程車費。
- 別搞混:
- 係數表示模型中的預測關係,不能單憑它斷定因果。
過度擬合與模型評估
也會看到:overfitting、training set、validation set、test set、precision、recall過度擬合是模型太會記訓練資料卻不會應付新資料,需用未參與訓練的資料與合適指標檢查。
- 生活例子:
- 背熟題庫答案卻遇到改寫題就不會,是過度擬合的生活版。
- 別搞混:
- 訓練分數高不等於模型好;accuracy 也不適合所有不平衡問題。
強化學習
也會看到:reinforcement learning、agent、environment、reward、policy讓 agent 在環境中嘗試 action,根據 reward 學習能累積長期報酬的策略。
- 生活例子:
- 像練習遊戲時不逐步給標準答案,而依最後得分調整下一次玩法。
- 別搞混:
- Reward 是行動後的回饋,不等於每一步都有正確 label,也不代表只追求眼前得分。
監督式與非監督式學習
也會看到:supervised learning、unsupervised learning、label、監督式學習、非監督式學習監督式學習從有答案標籤的例子學預測,非監督式學習則從無標籤資料找結構。
- 生活例子:
- 用已標垃圾郵件訓練分類器是監督式;自動把客群分群是非監督式。
- 別搞混:
- 監督式不是有人每一步盯著模型,非監督式也不是完全沒有目標。
圖靈測試
也會看到:Turing test只看機器表現出的對話行為,測試人是否能把它和真人區分。
- 生活例子:
- 像只隔著客服聊天室判斷對面是真人還是機器人。
- 別搞混:
- 通過測試不等於證明機器有意識,也不代表所有事情都做得好。
從 Turing test 與 AI 問題定義出發,區分 supervised、unsupervised 與 reinforcement learning,理解 linear regression 的預測形式,再以 confusion matrix 推導 precision、recall 與 accuracy。真題答案只有非官方技術覆核,Big Data 與 disputed 題不列入 refs。
先抓住這幾件事
- 說明 Turing test 評估的是可觀察行為,而不是直接證明機器具有意識
- 依資料與回饋形式區分 supervised、unsupervised 與 reinforcement learning
- 解讀 linear regression 的輸入、輸出、係數與預測值
- 由 confusion matrix 計算 precision、recall 與 accuracy,並判斷指標限制
先想像這個場景
園遊會的智慧助手試營運
學校想在園遊會啟用一個智慧助手:它要能回答訪客、把攤位資料分組、預估備料量,還要判斷哪些人需要服務台協助。與其先問它『到底聰不聰明』,籌備組先設計可觀察的任務、不同形式的回饋,以及最後一次不偷看的驗收。
先別急著往下看,花十秒想一想:
助手在籌備資料上幾乎全對,但正式園遊會常判錯。你會繼續用同一批資料調整,還是保留一批從未參與訓練與調整、且接近正式情境的資料,最後才驗收?
把故事換成電腦語言
| 生活中的角色 | 對應到 | 技術概念 |
|---|---|---|
| 訪客只透過對話窗口評估助手,無法查看它內部怎麼運作 | Turing test 的可觀察行為 | |
| 拿附有『垃圾/回收』答案的照片教分類;另把沒有答案的攤位依消費型態自動分群;遊戲助手則依得分調整策略 | Supervised、unsupervised、reinforcement learning | |
| 籌備組用『固定基本量+每增加一名預估訪客所增加的飲料杯數』估算需求 | Linear regression 的 intercept、slope 與 prediction | |
| 舊資料用來練習、另一批資料用來挑設定,封存資料只在最後驗收 | Training、validation、test 與泛化 | |
| 服務台把『需要協助/不需協助』的預測與實際狀況交叉記成四格表 | TP、FP、FN、TN 與 precision、recall、accuracy |
題目出現這些字,先想到
- 題目問 Turing test 或 CAPTCHA:先抓 human-versus-machine 的可觀察行為;不要推論 consciousness 或 AGI。
- 題目要分 supervised/unsupervised/reinforcement:找 label、沒有 target、或 reward;不要只看應用名稱。
- 看到 y-hat=b0+b1x 或問 slope:代入計算 prediction;slope 是其他條件假設下 x 每增一單位的預測變化,不是因果證明。
- 看到 TP、FP、FN、TN:Precision 分母是 TP+FP,recall 分母是 TP+FN,accuracy 分子是 TP+TN;類別不平衡時別只看 accuracy。
1.AI 問題先從可觀察目標開始
Artificial intelligence(AI)泛指讓機器執行感知、推理、搜尋、學習或決策等原本需要人類智慧才能完成之工作的技術總稱。AI 的定義在學術上並無唯一共識,但核心特徵是以可觀察、可量化的任務表現來評估,而非直接檢驗機器是否具備意識或情感。 Turing test 是最經典的評估框架:一位人類評估者透過文字對話,嘗試分辨對方是人還是機器。如果評估者無法可靠區分,則認為機器通過測試。關鍵在於 Turing test 只評估外在行為是否像人,不檢查機器內部的實作方式或是否真正「理解」。通過 Turing test 不代表機器具備 artificial general intelligence(AGI)或意識。 CAPTCHA 則把方向反過來:它設計出對人類容易但對自動程式困難的挑戰(如辨識扭曲文字、點選含紅綠燈的圖片),用來確認使用者是人類而非 bot。但隨著深度學習模型能力提升,許多 CAPTCHA 已被攻破,因此 CAPTCHA 的有效性取決於當下技術水準,不是永久有效的機制。 【考古題常見陷阱】題目問「以下何者最能描述 Turing test」時,常有選項暗示 Turing test 證明意識或 AGI — 這是錯的。Turing test 只證明「行為上無法區分」,不是「本質上相同」。另一個陷阱是把 CAPTCHA 當成訓練 AI 模型的方法(reCAPTCHA v2 確實有副產品用途,但 CAPTCHA 的設計目的是驗證身分)。
- Turing test 評估外在行為是否像人,不檢查內部實作方式
- 通過單一測試不代表具備 artificial general intelligence
- CAPTCHA 是 human-versus-machine discrimination 的應用,不是訓練演算法
- AI 問題還常以 state、action、goal 與 evaluation criterion 描述
2.從回饋形式區分學習典範
Supervised learning 的核心是從帶有正確答案(target label)的訓練資料中,學習 input → output 的映射函數 f: X → Y。訓練過程中,模型看到每筆資料的 input x 和對應的正確 output y,透過最小化預測值 f(x) 和真實值 y 之間的誤差(loss function)來調整參數。根據 output 型態分為兩大類:Classification 輸出離散類別(如垃圾郵件偵測輸出 spam/not-spam),Regression 輸出連續數值(如房價預測輸出 $425,000)。 Unsupervised learning 的訓練資料沒有 target label,模型的任務是從資料本身發現結構或規律。最常見的 task 是 clustering(把相似的資料點歸為同一群),例如把顧客按消費行為分成幾個群組。其他 unsupervised task 包括降維(dimensionality reduction)和關聯規則探勘。 Reinforcement learning(RL)中,agent 在 environment 中執行 action,根據收到的 reward signal 學習能最大化長期累積報酬的 policy。RL 的回饋不是每一步的標準答案,而是延遲的數值獎勵,例如圍棋 agent 在整盤結束後才知道輸贏。 【關鍵區分】判斷學習類型看兩件事:(1) 訓練資料有沒有 label?有 → supervised;沒有 → unsupervised。(2) 回饋形式是什麼?正確答案 → supervised;reward signal → RL。考古題常用情境描述考,例如「某系統依據過往交易紀錄(含違約標記)預測客戶是否會違約」— 有歷史 label → supervised classification。Clustering 看起來也在「分類」,但它的訓練資料沒有預先標注的群組 → unsupervised。
- Classification 預測離散類別,例如 spam/not spam
- Regression 預測連續數值,例如價格或需求量
- Clustering 是常見 unsupervised task,不需要預先提供每筆資料的正確群組
- Reinforcement learning 的 supervision 來自 reward signal,不是每一步的標準答案
把顧客依消費行為自動分成幾個群組,屬於哪種學習?
3.Linear regression 把關係寫成可計算模型
Linear regression 用線性方程描述一個 dependent variable(被解釋變數 y)與一個或多個 independent variables(特徵 x)之間的關係。最簡單的形式是 simple linear regression:ŷ = β₀ + β₁x,其中 β₀ 是 intercept(截距,當 x=0 時的預測值),β₁ 是 slope(斜率,x 每增加一單位對 ŷ 的影響)。 訓練過程的目標是找到使 loss function 最小的參數值。最常用的 loss 是 MSE(Mean Squared Error)= Σ(yᵢ - ŷᵢ)² / n。可用 normal equation(解析解)或 gradient descent(迭代法)求解。Normal equation 是求參數的數學方法,不是另一種預測問題類型。 【具體範例】房價模型 ŷ = 100 + 15x(萬元),x 是坪數。當 x=20 時,ŷ = 100 + 15×20 = 400 萬元。Slope 15 表示「在此模型假設下,坪數每增加 1 坪,預測房價增加 15 萬元」。這是模型中的關聯解讀,不是因果證明 — 可能是坪數大的房子地段也好,真正影響價格的是地段而非坪數。 Multiple linear regression 有多個 feature:ŷ = β₀ + β₁x₁ + β₂x₂ + ... + βₚxₚ。「線性」指的是對參數(β)線性,不代表只能有一個 feature。考古題常混淆「多元」(多個 feature)和「非線性」(對 x 取平方等),前者仍是 linear regression。 【考試連結】看到 ŷ = b₀ + b₁x 類型的題目,先代入數值算預測值,再解釋 slope 的意義。注意不要把「相關」說成「因果」。
- y-hat 是模型預測,不一定等於實際 y
- Slope 表示其他條件固定時,x 增加一單位所對應的預測變化
- 多元 linear regression 仍對參數保持線性,不代表只能有一個 feature
- Normal equation 是求參數的方法之一,不是另一種預測問題類型
4.訓練表現不等於泛化能力
模型在 training data 上表現好,不代表它能在未見過的新資料上也表現好。如果模型只是「背答案」— 記住訓練樣本的每個細節(包括噪音),它在訓練集上可能接近完美,但面對新資料時表現急劇下降。這種現象叫做 overfitting(過擬合)。相反地,如果模型太簡單,連訓練資料中的基本規律都學不到,叫做 underfitting(欠擬合)。 為了評估模型的泛化能力,標準做法是把資料切成三份:Training set 用來訓練模型參數;Validation set 用來選擇模型架構或調整 hyperparameters(如 learning rate、regularization 強度);Test set 只在最後評估一次,不能反覆拿來調參,否則會造成 information leakage — 測試資訊洩漏進模型選擇過程,導致離線評估過度樂觀。 【降低 overfitting 的常見方法】(1) Regularization:在 loss function 中加入參數大小的懲罰項(如 L1、L2),限制模型複雜度。(2) 增加訓練資料量或使用 data augmentation。(3) 降低模型複雜度(如減少神經網路層數或參數量)。(4) Early stopping:在 validation loss 開始上升時停止訓練。(5) Dropout:隨機關閉部分神經元,減少共適應。 【Data leakage 範例】在做時間序列預測時,如果用未來的資料當 feature 訓練模型(例如用明天的股價預測今天的趨勢),就是 data leakage。考古題可能問「為什麼模型離線表現好但上線後很差」,答案通常指向 data leakage 或訓練資料分布與實際部署情境不同。
- Test set 不應反覆拿來調參,否則會把測試資訊洩漏進模型選擇
- Underfitting 表示模型連 training pattern 都無法充分學到
- Data leakage 會讓離線評估過度樂觀
- 評估資料分布應盡量代表模型實際部署情境
模型在 training set 上 accuracy 99%,test set 上只有 60%。這是什麼問題?怎麼緩解?
5.用 Confusion Matrix 選對指標
Binary classification 將模型的每個預測結果和實際標籤交叉比對,歸入四個格子:True Positive(TP,預測 positive 且正確)、False Positive(FP,預測 positive 但錯誤,又稱 Type I error)、False Negative(FN,預測 negative 但錯誤,又稱 Type II error)、True Negative(TN,預測 negative 且正確)。這四個數字排成的 2×2 矩陣就是 confusion matrix。 三個核心指標: • Precision = TP / (TP + FP):在所有被模型判為 positive 的案例中,有多少真的是 positive?回答「模型說的話可不可信」。 • Recall = TP / (TP + FN):在所有實際為 positive 的案例中,模型找到了多少?回答「模型有沒有漏掉」。也叫 Sensitivity 或 True Positive Rate。 • Accuracy = (TP + TN) / (TP + FP + FN + TN):全部案例中判對的比例。 【具體計算】假設 TP=40、FP=10、FN=20、TN=30,總計 100 筆。Precision = 40/50 = 0.80;Recall = 40/60 ≈ 0.667;Accuracy = 70/100 = 0.70。三個指標回答不同問題,不能只看最高的那個。 【class imbalance 陷阱】如果 100 筆資料中有 95 筆是 negative,模型全部猜 negative 就能得到 accuracy = 0.95,但它完全沒有找到任何 positive case(recall = 0)。這就是為什麼在不平衡資料集上,accuracy 可能具有誤導性,必須同時看 precision 和 recall。考古題最常考的計算錯誤是把 precision 和 recall 的分母對調(precision 分母是 TP+FP,recall 分母是 TP+FN)。
- False positive 會降低 precision
- False negative 會降低 recall
- Accuracy 的分母是全部案例,分子是 TP+TN
- 沒有脫離情境永遠最好的單一 metric
調整 Confusion Matrix 四格,觀察 Precision / Recall / Accuracy 變化
銀行詐騙偵測模型,漏掉一筆詐騙(FN)的代價遠大於誤判正常交易(FP)。應優先提高?
一起拆題目
範例 1:將三個任務分類:①以已標註郵件訓練 spam classifier;②把沒有標籤的客戶依行為分群;③遊戲 agent 依勝負 reward 學習策略。
- ① 有 input 與正確 class label,屬 supervised classification。
- ② 沒有目標群組標籤,要求從資料找結構,屬 unsupervised clustering。
- ③ agent 透過 action、environment 與 reward 學習 policy,屬 reinforcement learning。
所以答案是:① supervised learning;② unsupervised learning;③ reinforcement learning。判斷依據是提供的回饋形式,不是應用領域名稱。
範例 2:房價模型為 y-hat=100+15x,y-hat 單位為萬元,x 是坪數。當 x=20 時預測多少?Slope 15 如何解讀?
- 代入 x=20:y-hat=100+15×20。
- 15×20=300,因此預測為 400 萬元。
- Slope 15 表示在此模型與其他條件假設下,坪數每增加 1 坪,預測房價增加 15 萬元。
- 這是模型中的關聯解讀,單靠 regression coefficient 不能證明增加坪數造成價格上升。
所以答案是:預測 400 萬元;slope 表示每增加 1 坪,模型預測值增加 15 萬元。
範例 3:某 classifier 有 TP=40、FP=10、FN=20、TN=30。計算 precision、recall 與 accuracy。
- Precision=TP/(TP+FP)=40/(40+10)=0.80。
- Recall=TP/(TP+FN)=40/(40+20)=2/3,約 0.667。
- Accuracy=(TP+TN)/(TP+FP+FN+TN)=(40+30)/100=0.70。
- 三個值回答不同問題,不能只因 precision 最高就宣稱模型整體最好。
所以答案是:Precision=0.80,recall≈0.667,accuracy=0.70。
這裡最容易選錯
- 把 Turing test 當成能直接證明意識或 AGI 的測驗
- 以為 supervised learning 只做 classification,忽略 regression 也是 supervised task
- 把 clustering 與 classification 混淆;前者通常沒有預先提供 class labels
- 把 linear regression 的相關係數或 slope 直接解讀成因果關係
- 反覆用 test set 選模型,造成 evaluation leakage
- 把 precision 的分母寫成 TP+FN,與 recall 對調
- 在高度 class imbalance 的資料上只看 accuracy
換你快速判斷
先在心中作答,再展開答案。答不出來時,回頭找本課的對照關係。
1Turing test 真正評估的是什麼?
評估機器的可觀察回應是否讓人類評估者難以把它與人類區分。
它不直接檢查 consciousness,也不保證通過者具備所有領域的 general intelligence。CAPTCHA 則常把 human/machine discrimination 用於存取控制。
2Linear regression 通常屬於哪一種 learning paradigm?判斷依據是什麼?
通常屬於 supervised learning,因為訓練 examples 同時提供 input features 與連續 target values。
Supervised learning 的關鍵是有 target feedback;target 是連續數值時,linear regression 用來學習 input 到數值 output 的關係。
3Linear regression 解決哪一類問題?
以線性方程估計一個連續 dependent variable 與一個或多個 features 的關係,常用於連續數值預測。
y-hat=b0+b1x 中 b0 是 intercept、b1 是 slope;linear 指模型對參數呈線性,不代表只能有一個 feature。
4Precision 與 recall 的分母分別是什麼?
Precision 的分母是 TP+FP;recall 的分母是 TP+FN。
Precision 問預測 positive 有多準;recall 問實際 positive 找回多少。FP 增加會壓低 precision,FN 增加會壓低 recall。
5Binary classification 的 accuracy 公式是什麼?
Accuracy=(TP+TN)/(TP+FP+FN+TN)。
它計算全部案例中預測正確的比例;類別不平衡時,即使完全忽略少數類別也可能得到高 accuracy。
6為何類別不平衡時不能只看 accuracy?
模型即使幾乎都猜多數類別,也可能得到很高 accuracy,卻完全找不到少數類別;應依錯誤成本同時看 precision、recall 等指標。
Accuracy 計算全部案例的正確比例,無法單獨顯示 false positive 與 false negative 的代價。Confusion matrix 能讓各類錯誤分開檢查。
7用 state-space 描述 AI 搜尋問題時,最少要先定義哪些元素?
至少要定義初始狀態、可用動作與狀態轉移,以及判斷是否到達目標的 goal test;若要比較解的優劣,還需定義 path cost 或評估準則。
搜尋是在狀態空間中套用動作,尋找能通過 goal test 的路徑。Heuristic 可估計距離或成本以引導搜尋,但它不是 goal test,也不等於正確性證明。
最後用考古題驗證
本課連結的題目都已通過可重現的技術覆核,可逐題練習與判分。
開始本課考古題練習參考來源
- Computer Science: An Overview, 13th Edition — J. Glenn Brookshear
- Machine Learning 2021 Spring — 李宏毅