[新手入門] 中級科目三:費曼學習法,6 個故事讓你讀完就懂

科目三是中級三科裡技術細節最密的一科,CNN、LSTM、Transformer、VGG16、正則化、優化器、程式碼判讀,名詞滿天飛,但這些名詞背後的直覺其實很簡單,用日常比喻就能搞懂。

以下內容根據 114 年第二次 AI 應用規劃師中級能力鑑定科目三(機器學習技術與應用)的 50 題公告試題整理而成。

想要直接聽可以點 NotebookLM Podcast 連結跳到文章最後面。

故事一:看任務挑模型,不是看誰潮

想像你要寄東西,小包裹用便利商店、大箱子用宅配、冷凍食品用冷鏈物流。你不會因為「冷鏈物流最高級」就拿它寄一封信。挑 AI 模型也一樣:任務的形狀決定模型的選擇

模型選擇圖解:CNN、LSTM、Transformer、傳統 ML 四種模型的核心機制與最佳適用情境比較

四個模型家族

CNN(卷積神經網路)= 用放大鏡掃圖片

想像你在一張超大照片裡找 Wally。你不會一次看整張圖,你會用眼睛一小塊一小塊地掃。CNN 做的事完全一樣:用一個小框框(卷積核)在圖片上滑動,每次只看一小塊(這叫區域感知,Local Receptive Field),而且不管掃到哪個角落都用同一套規則(這叫參數共享,Parameter Sharing)。CNN 適合影像分類、物件偵測、瑕疵檢測。CNN 不是自動有旋轉不變性(那需要資料增強),也沒有捨棄激活函數(它用 ReLU)。

LSTM = 有記憶的讀者

普通 RNN 像金魚,讀完前面的內容很快就忘了。LSTM 加了三個閘門(Gate):忘記門決定丟掉什麼舊資訊、輸入門決定寫入什麼新資訊、輸出門決定傳出什麼。適合時間序列預測(未來七天電力需求)、語音辨識、文字生成。看到「未來趨勢」「時間序列」「序列預測」就先想 LSTM。

Transformer = 同時看全文的讀者

LSTM 一個字一個字往前讀,Transformer 整句話同時看,用多頭注意力(Multi-head Attention)讓不同的「注意力頭」同時捕捉不同層次的關聯。為什麼要多頭?一組看語意、一組看位置、一組看其他關聯,比單頭更全面。多頭的目的不是減少參數或避免梯度消失。

傳統 ML 跟機率模型 = 各有專長的工匠

決策樹用資訊增益遞迴分裂,適合需要可解釋性的場景(醫療診斷)。邏輯迴歸是金融信用評分的標配(監管要可解釋)。貝氏定理用條件機率分類(給定行為特徵,顧客購買的機率)。Monte Carlo 用隨機抽樣模擬不確定變數(太陽能發電量預測)。AutoML 適合短時間比較多種模型、缺乏專職工程師的場景。

費曼檢查點:看到「預測未來七天電力需求」,你能不能 3 秒內說出「LSTM」?看到「影像辨識」說出「CNN」?看到「監管要可解釋」說出「邏輯迴歸或決策樹」?

故事二:訓練的平衡術,過擬合跟學不夠

想像你在準備考試,只讀課本不做題 = 欠擬合(Underfitting)。把考古題答案全背下來但換題就不會 = 過擬合(Overfitting)

好的學習是「理解原理,遇到新題也能推理」,AI 訓練也一樣。

訓練平衡術概念圖:天秤與曲線說明 Underfitting、Optimal、Overfitting 三種狀態的差異

四類調控工具

四類調控工具圖解:L1/L2 正則化旋鈕、Dropout 斷路器、SGD/RMSProp/Adam 優化器引擎、Early Stopping 雷達

正則化 = 限制模型不要太任性

L1(Lasso)在損失函數加上參數絕對值的懲罰。效果是把不重要的特徵係數壓到 0,等於自動做特徵選擇。

L2(Ridge)加上參數平方的懲罰,把所有參數拉小但不歸零。考試問「避免過擬合同時自動篩選特徵」,答案是 L1。

Dropout 是訓練時隨機關掉一部分神經元,強迫網路不依賴特定路徑。程式碼長這樣:mask = np.random.binomial(1, p, size=x.shape); return x * mask / p。除以 p 是為了保持期望值不變(inverted dropout)。推論時不做 Dropout,直接回傳 x。

優化器 = 調整學習步伐的方式

SGD 是最基本的梯度下降。Adam 同時內建動量(一階矩)跟自適應學習率(二階矩),大部分情況的首選。RMSProp 的核心考點是根據平方梯度調整有效學習率;但在 PyTorch 等框架中 RMSProp 也有 momentum 參數(預設為 0),所以不能說「RMSProp 永遠沒有動量」。考試問「哪個優化器內建動量機制」,答案是 Adam。

學習率跟早停 = 步伐大小跟何時收手

學習率太大會來回震盪、太小會學很慢。早停(Early Stopping)監控驗證集損失,連續多輪沒改善就停止。注意:監控的是驗證集損失,不是訓練集(訓練集會一直降)、也不是測試集(測試集要留到最後用)。

非線性激活 = 讓模型能學複雜東西

如果只用線性激活函數,不管疊幾層,模型本質上還是線性的。改用 ReLU 等非線性激活,才能學到複雜特徵。模型準確率停滯不前,第一個該檢查的就是有沒有用非線性激活。

注意:「擴增輸入特徵變數提升模型表達能力」不是防過擬合,反而會加劇過擬合。

費曼檢查點:你能不能向朋友解釋「L1 跟 L2 差在哪裡」?(L1 把不重要的剪到 0,L2 把全部壓小但不歸零。)

故事三:成績單怎麼看,指標與驗證

模型訓練完了要打分數,但用錯成績單會被騙。

Accuracy 的陷阱

罕見疾病確診率只有 3%。模型全部猜「沒病」也有 97% Accuracy。但它一個病人都沒抓到。所以在類別高度不平衡時,不應只用 Accuracy 作為主要評估指標,應改看或搭配 F1、Precision、Recall、PR-AUC 等更能反映少數類別表現的指標。

F1 = 2 × Precision × Recall /(Precision + Recall)。Precision = 0.8、Recall = 0.6 時,F1 = 2 × 0.8 × 0.6 / 1.4 ≈ 0.686。考試給數字就要能算。

R² = 0.85 不是「模型準確率 85%」,是「模型解釋了 85% 的變異量」。剩下 15% 是模型無法解釋的部分。

Accuracy 陷阱圖解:以不平衡資料 97% 健康為例說明 Accuracy 會說謊,附 F1 Score 計算步驟與 R² 意義

驗證方式的選擇

K-fold 是基本款。類別不平衡時用分層 K-fold(Stratified K-Fold),確保每折比例一致。時間序列資料用時間序列交叉驗證(Time Series CV),避免用未來預測過去。

資料極少又不平衡時(150 筆、陽性 8%),依官方答案選「分層留一法」。因為小資料要盡量保留訓練資料,不平衡資料又要避免少數類在切分時被完全漏掉。但不要理解成「每一個 leave-one-out 驗證折都能保持完整類別比例」,因為每折只有一筆驗證資料,分層的效果體現在訓練集的切法上。

交叉驗證與不平衡處理圖解:K-Fold、Stratified K-Fold、Time Series CV 驗證方法,以及 SMOTE 插值生成合成樣本原理

不平衡的處理

SMOTE 用插值生成合成少數類樣本、調整類別權重讓模型對少數類更敏感、欠採樣多數類都有效。但「使用 Accuracy 作為評估指標」是最不適合的做法。

費曼檢查點:你能不能解釋「為什麼 Accuracy 在不平衡資料上會騙人」?(因為全猜多數類就能拿到很高的 Accuracy,但完全沒抓到少數類。)

故事四:資料偏了,模型就歪了

廚師再厲害,食材壞了也煮不出好菜。模型再先進,資料有偏誤就不可能公平。

資料偏誤診斷圖解:三大偏誤(取樣、標籤、特徵)、距離與互動特徵處理、PCA 降維與 DBSCAN 分群

三種偏誤來源

取樣偏差(Sampling Bias):訓練資料只用活躍顧客,模型對新會員就不準。這是訓練分佈跟推論分佈不一致。

標籤偏差(Label Bias):人工標註帶有主觀偏見。歷史資料反映過去的偏見,模型學到「年輕人較容易違約」這種跟現實未必相符的關聯。

特徵偏誤/代理變數偏誤(Feature Bias):模型沒有直接使用敏感屬性,但某些特徵高度代理了敏感屬性(例如郵遞區號、消費地點),或特徵設計引入了不該有的資訊洩漏。

距離型模型(KNN、SVM)的特徵沒做縮放,會讓尺度大的特徵主導距離計算。互動特徵是兩個特徵做乘積捕捉交互效果,不是取平方、取對數或標準化。

PCA 三個特徵值 λ1=6、λ2=3、λ3=1,前兩個累積變異量 = (6+3)/10 = 90%,超過 80% 門檻,保留前兩個主成分合理。

DBSCAN 的雜訊點(Noise Point)= 鄰域內樣本數不足以形成核心點,也不在任何群集附近的孤立點。

費曼檢查點:你能不能用「只吃過中菜的人評法國料理」解釋取樣偏差?(訓練資料不能代表推論時要面對的整體分佈。)

故事五:透視 CNN 跟 VGG16

VGG16 是科目三的必考模型。它結構規則、細節多、容易出題。掌握四個直覺就能應付所有 VGG16 題目。

VGG16 透視圖:從卷積層到全連接層的完整架構,標註運算量最高在早期卷積層、參數量最多在全連接層

直覺一:參數量在全連接層爆量

卷積層每層參數量受限於 kernel size 跟 channel 數(例如 3×3 核從 64 到 128 channel 只有約 7 萬參數)。但全連接層的第一層從 25088(= 512 × 7 × 7)到 4096,參數量超過一億。CNN 模型參數最多的是全連接層,不是卷積層

直覺二:運算量在卷積層累積

FLOPs = 輸出特徵圖大小 × kernel 計算量。早期卷積層特徵圖很大(150×150),每層運算量很大。後期池化到 9×9 反而小。卷積層的累積運算量遠超全連接層。FLOPs 最多的是卷積層,參數量最多的是全連接層

直覺三:AdaptiveAvgPool2d 的特殊行為

MaxPool 之後特徵圖是 [512, 4, 4],但 AdaptiveAvgPool2d 強制輸出 [512, 7, 7]。它不管輸入大小,都調整到指定輸出大小。這讓 VGG16 在模型可運算的尺寸範圍內可以處理不同大小的輸入影像(PyTorch 的 VGG16 最小輸入尺寸為 32×32,預訓練推論標準前處理為 224×224)。攤平後的維度是 512 × 7 × 7 = 25088,不是 512 × 4 × 4。

直覺四:遷移學習的凍結語法

遷移學習 = 拿別人練好的底子,換成自己的任務。凍結卷積層(保留學到的影像特徵),只訓練最後的分類層。

正確寫法:for param in model.features.parameters(): param.requires_grad = False

model.requires_grad = False 不是凍結模型參數的正確寫法;它不會逐一修改 model 裡的 parameter。實務上也可使用 model.features.requires_grad_(False)。凍結 model.classifier 是反的(凍結分類層等於只訓練卷積層,跟遷移學習目的相反)。凍結 model.parameters() 是全凍結,什麼都不訓練。

VGG16 特殊行為與遷移學習語法圖解:AdaptiveAvgPool2d 強制壓縮功能、Transfer Learning 凍結卷積層的正確 PyTorch 寫法

費曼檢查點:你能不能回答「VGG16 裡參數最多的是哪裡?運算量最多的是哪裡?」(參數在全連接層,運算在卷積層。)

故事六:密碼學 + 程式碼判讀

科目三最後一組佔了將近四分之一(12 題),而且程式碼判讀跟隱私技術混在一起考。

隱私技術組合拳圖解:同態加密、非對稱加密、單向雜湊、對稱加密四種技術特性比較,附官方答案技術組合

隱私技術的組合拳

同態加密 = 加密狀態下也能算。不解密就能做運算,解密後結果正確。非對稱加密 = 公鑰上鎖、私鑰解鎖,用於安全通訊、金鑰交換、身分驗證。對稱加密 = 同一把鑰匙加解密,適合大量資料傳輸。單向雜湊 = 資料指紋,可檢查有沒有被竄改但不能還原。

跨銀行風控平台需要的技術組合,依官方答案是:同態加密 + 非對稱加密 + 單向雜湊 + 對稱加密。MPC(安全多方計算)雖然也是隱私計算技術,但不是本題官方答案。

看數學公式辨識指標

sum((y_true - y_pred) ** 2) / len(y_true) = 平方誤差的平均 = MSE。開根號就是 RMSE。MAE 是絕對值的平均,公式不同。R² 是 1 − 殘差平方和 / 總平方和,結構完全不同。

看抽樣邏輯辨識正則化

mask = np.random.binomial(1, p, size=x.shape); return x * mask / p,訓練時用、推論時直接回傳 x = Dropout。注意:這段範例中的 p 是保留機率(keep probability);若使用 PyTorch 的 nn.Dropout(p),其中的 p 是丟棄機率(drop probability),定義相反。binomial(1, p) 是以機率 p 隨機抽 0 或 1 的 mask,除以 p 維持期望值。L1/L2 不用 binomial 抽樣、BatchNorm 用統計量不用隨機 mask。

numpy 跟條件機率

np.dot(v1, v2) 是向量內積:[1,2,3] · [4,5,6] = 1×4 + 2×5 + 3×6 = 32。v1 * v2 是元素相乘 = [4, 10, 18],不是內積。np.linalg.inv(A) 是反矩陣,不是行列式(那是 det)。np.linalg.eig(A) 是特徵值跟特徵向量。

Monte Carlo 計算 P(A|B) = A_and_B.sum() / B.sum(),不是除以 A、也不是除以兩者和。

Matplotlib 繪圖語法

畫訓練損失跟驗證損失的線條:plt.plot(epochs, loss, "b-", label="Training Loss") 是藍色實線,plt.plot(epochs, val_loss, "r--", label="Validation Loss") 是紅色虛線。"b-" = blue solid,"r--" = red dashed。不是兩條都紅色。

時間複雜度

逐一比對每位顧客跟其他所有顧客,組合數 ≈ n²/2 = O(n²)。資料量從 1 萬變 10 萬,時間變 100 倍。

程式碼判讀指南圖解:Dropout binomial 實作、MSE/RMSE 公式、Numpy 矩陣運算陷阱、matplotlib 繪圖語法

費曼檢查點:看到 np.random.binomial(1, p, size=x.shape) 加上除以 p,你能不能立刻說出「這是 Dropout」?

總結:6 個故事覆蓋 50 題

故事核心問題覆蓋題數
看任務挑模型CNN、LSTM、Transformer、傳統 ML約 9 題
訓練的平衡術L1/L2、Dropout、Adam、早停約 9 題
成績單怎麼看F1、R²、Accuracy 陷阱、交叉驗證約 9 題
資料偏了模型就歪了取樣/標籤/特徵偏差、PCA、DBSCAN約 6 題
透視 CNN 跟 VGG16參數量、運算量、凍結語法約 5 題
密碼學 + 程式碼判讀同態加密、numpy、Dropout、Matplotlib約 12 題

考前跑一遍 6 個費曼檢查點。

程式碼題每天練 3 到 5 題,實際在筆電上打一遍比看十題還有效,VGG16 跟 Dropout 這兩個題型練非常重要必考,祝各位考試順利!

費曼檢查點速查表:六個關鍵題型情境(時間序列、高可解釋性、正則化、不平衡資料、VGG16 運算量、Dropout 語法)對應秒選答案

NotebookLM Podcast

推薦閱讀

參考資料

iPAS 經濟部產業人才能力鑑定(2025). AI 應用規劃師中級能力鑑定考試簡章

iPAS 經濟部產業人才能力鑑定(2025). 114 年第二次 AI 應用規劃師中級能力鑑定公告試題|第三科:機器學習技術與應用


FAQ

科目三跟科目二最大的差別是什麼?

科目二是大數據分析(pandas、seaborn、統計推論),科目三是機器學習技術(模型訓練、評估、深度學習、優化器)。兩科都有大量程式碼判讀題,但科目三更技術導向,要會看 Dropout 的數學定義、VGG16 的層結構摘要、PyTorch 的凍結語法。如果你只有時間準備其中一科,先看你比較弱的那科。

不會寫 PyTorch 跟 numpy 怎麼辦?

不需要會寫完整程式,只需要能讀懂。考試考的是辨識能力:看到 np.random.binomial 配除以 p 就知道是 Dropout、看到 sum((y_true – y_pred)**2) / len 就知道是 MSE、看到 for param in model.features.parameters() 就知道是凍結卷積層、看到 “b-” 就知道是藍色實線。考前把這些「程式碼 → 技術名詞」的配對記住就夠了。

VGG16 為什麼這麼常考?

因為它結構規則、細節多、容易出題。常考的四個點:參數量分佈(全連接層佔最多,第一個 Linear 就超過一億參數)、運算量分佈(卷積層佔最多,因為早期特徵圖很大)、AdaptiveAvgPool2d 把特徵圖整理成 7×7 讓分類器接固定維度、凍結語法 model.features.parameters() 凍結卷積層。把這四個直覺記熟,VGG16 相關題目都不會錯。

考前最後一天怎麼用這篇文章複習?

跑一遍 6 個故事結尾的「費曼檢查點」,每個問題用自己的話回答。能回答的跳過,卡住的就回去重讀那一段。程式碼題看一下 Dropout 寫法、MSE 公式、numpy 內積、Matplotlib 線條語法。VGG16 的四個直覺複習一遍。全部大約 30 分鐘。

L1 跟 L2 正則化差在哪裡?

用一句話記:L1(Lasso)把不重要的特徵係數壓到 0,等於自動做特徵選擇,適合懷疑很多特徵沒用的場景;L2(Ridge)把所有參數拉小但不歸零,適合所有特徵都有用但要避免某個參數爆走。考試問「避免過擬合同時自動篩選特徵」,答案一定是 L1。

科目三的程式碼判讀題佔多少比重?

大約 12 題,將近四分之一。這是科目三最密集的考區。程式碼題涵蓋 numpy 矩陣運算(內積 vs 元素相乘)、Dropout 的 binomial mask、MSE/RMSE 公式辨識、sklearn 的 cross_val_score、keras Dense 層的參數量計算、matplotlib 線條樣式。如果不熟這些語法,光讀概念也救不回來。考前至少留一天集中練程式碼題。

同態加密跟差分隱私差在哪裡?

同態加密是「加密狀態下也能做運算」,解密後結果正確,適合不想讓雲端看到原始資料的場景。差分隱私是「在統計結果裡加雜訊」,讓單一個人的資料不容易被反推出來,適合公開統計結果但要保護個資的場景。兩者保護的層面不同:同態加密保護運算過程,差分隱私保護統計輸出。考試問跨銀行協作的技術組合時,同態加密是其中一個組件。

不平衡資料除了 SMOTE 還有什麼方法?

三種主要方法:SMOTE 用插值生成合成少數類樣本、調整類別權重讓模型對少數類更敏感、欠採樣多數類平衡比例。評估時不要只用 Accuracy(不平衡時會騙人),應搭配 F1、Precision、Recall、PR-AUC 或混淆矩陣。考試最常考的反模式就是「不平衡資料只看 Accuracy」。

Adam 跟 RMSProp 差在哪裡?

Adam 同時內建一階矩(動量)跟二階矩(自適應學習率),是大部分情況的首選。RMSProp 的核心是根據平方梯度調整有效學習率,在 PyTorch 等框架中也有 momentum 參數(預設為 0),但不算「內建」動量。考試問「哪個優化器同時具備動量跟自適應學習率」,答案是 Adam。

這篇文章覆蓋了全部 50 題的概念嗎?

是的。6 個故事覆蓋了 114 年第二次公告試題全部 50 題的核心概念。每個故事不是逐題拆解,而是把相關概念歸納成連貫的理解線索。例如「訓練的平衡術」一次串起 L1、L2、Dropout、Adam、學習率、早停;「密碼學 + 程式碼判讀」一次串起同態加密、numpy、Dropout 偽碼、Matplotlib 語法。

Similar Posts