🧒 十歲小孩版
🔗 原始文章:【生成式人工智慧與機器學習導論2025】第_6_講:一堂課搞懂訓練類神經網路的各種訣竅 | 台大李宏毅教授
嘿!你有沒有玩過那種「闖關遊戲」?主角要一路過關斬將,打敗大魔王才能救出公主。
今天我們要聊的「訓練 AI」,其實就超級像在玩一場闖關遊戲喔!只不過,主角不是你,而是一個叫做「類神經網路」的電腦大腦。我們要教它變聰明,但是這路上關卡超多,一不小心它就會卡關!
想像一下,如果你家的 Siri 每次都聽錯你說的話,或者手機相機把你的狗狗認成貓咪,是不是很阿雜?所以今天就要來學,怎麼把 AI 訓練得又強又聰明!
🎯 訓練 AI 會卡在哪兩種關卡?
在開始之前,我們要先學會看「AI 生病了沒」。AI 訓練失敗通常有兩種狀況:
狀況一:怎麼教都學不會(最佳化問題) 就像你在教小狗握手,但牠就是一直趴著不動。這時候我們要想辦法「讓牠聽得懂指令」。
狀況二:背書很厲害,考試就崩潰(泛化問題) 就像有人把課本背得滾瓜爛熟,但老師題目稍微換個方式問,他就答不出來。這種 AI 我們叫它「死讀書 AI」。
🤔 小朋友想想看:為什麼「只會背答案」不是真的聰明呢?真正的聰明應該是什麼樣子?
記住喔!這兩種病要用不同的藥治,吃錯藥會更慘!
🏃 訣竅一:怎麼讓 AI「走得更快更準」?
想像 AI 在學習,就像你蒙著眼睛在山谷裡找最低的地方(最低點就是答案)。你要一步一步摸索,每一步要跨多大呢?這就叫「學習率」。
🎒 背著各種裝備的探險家們
-
Adagrad(老派探險家):走過的路會記下來,走越多的方向就跨越小步。但缺點是——它什麼都記,連小學一年級的事都忘不掉,反應變超慢!
-
RMSprop(健忘探險家):只記得最近發生的事,比較能隨機應變。就像你只會記得這星期的功課,不會還記得去年的數學作業。
-
Momentum(慣性探險家):像溜滑梯一樣有「衝勁」!就算遇到小土堆,靠著衝力還是可以衝過去。
-
Adam(全能探險家):把上面兩個優點合在一起,現在最多人用的就是他啦!
🔥 暖身運動很重要!
你有沒有發現體育課一開始老師都會叫我們先暖身?AI 也一樣!
- Warm up:剛開始學習率小小的慢慢來,像熱身跑。
- Learning Rate Decay:快到終點時慢下來,免得衝過頭。就像你騎腳踏車快到家時要減速,不然會撞到牆!
🎮 訣竅二:讓 AI 變聰明的特殊訓練法
😵 Dropout:綁沙包練輕功
你看過武俠片嗎?高手練功都會在腳上綁沙包,這樣拿掉沙包時就超強!
Dropout 就是訓練時故意「關掉」一些 AI 的腦細胞,讓它在缺東缺西的情況下還是要學會。等正式考試時再全部打開,就會超強!
🎯 Pre-train:先學基本功
想一想,你要學寫作文之前,是不是要先會注音、認字?
AI 也一樣!先讓它做一些「基本練習」(例如判斷圖片有沒有被轉過來),之後再學困難的任務,就會學得超快!這招超猛,兩種病都能治!
🤔 小朋友想想看:你自己學東西的時候,有沒有「打好基礎再進階」的經驗呢?
🖼️ 訣竅三:看圖片的 AI 有特別招式——CNN
如果 AI 要看一張 1000x1000 的彩色照片,用普通方法要記 300 萬個數字!那跟把一整個圖書館都背起來沒兩樣~
CNN(卷積神經網路) 超聰明,它用了兩個偷懶(其實是很聰明)的方法:
-
小範圍偵查:不用看整張圖,每個小偵探只要盯著一小塊區域就好,像玩「威利在哪裡」只看一格一格找。
-
重複利用:在圖片左上角找「鳥嘴」的偵探,跟在右下角找「鳥嘴」的偵探,可以是同一個人!不用請兩個。
這樣一來,要記的東西少超多,AI 也不會變成死讀書 AI~
🛣️ 訣竅四:建一條「捷徑高速公路」
訓練很深的 AI(很多層的)時,常常會遇到一個問題:訊息傳到最後都「不見了」,就像傳話遊戲傳到最後變亂七八糟。
Skip Connection(跳躍連結) 就是蓋一條高速公路,讓訊息可以直接飛過去,不用一層一層慢慢傳。這招讓 AI 訓練變得超順!
📚 訣竅五:資料不夠?自己變出來!
🎨 Data Augmentation:資料魔術
如果你只有 10 張貓咪照片,怎麼讓 AI 學會認貓?
把照片變魔術:
- 左右翻一下 → 變成新照片!
- 模糊一點 → 變成新照片!
- 兩張混在一起(Mixup)→ 又是新照片!
就像你把一塊樂高積木拆了重組,可以拼出好多新花樣~
但要注意喔! 如果題目是「判斷鳥頭朝哪邊」,你把圖片左右翻,答案就變了啦!魔術要用得聰明。
🤔 小朋友想想看:如果要教 AI 認「左手」跟「右手」,可以把照片左右翻嗎?為什麼?
🎓 今天學到了什麼?
-
AI 生病分兩種:一種是「學不會」,一種是「只會背答案」,要對症下藥才有效!
-
好的學習方法很重要:就像探險家要有好裝備,AI 也要用對的「優化器」(像 Adam)才能走得又快又穩。
-
綁沙包練功有用:Dropout 故意讓 AI 訓練變難,它反而會變得更強大,上場考試不緊張!
-
看圖片要用 CNN:用「小範圍偵查」和「重複利用」的聰明方法,可以省超多力氣。
-
資料不夠自己變:把照片翻一翻、模糊一點,就能變出更多練習題,AI 就能見多識廣~
下次你用手機拍照自動分類、或跟 Siri 聊天的時候,記得喔——這背後有好多好多訓練 AI 的小訣竅在幫忙呢!✨
📺 原始影片:觀看原始影片
👨👩👧 家長版/進階版(點擊展開)
【生成式人工智慧與機器學習導論2025】第 6 講:一堂課搞懂訓練類神經網路的各種訣竅
【學習筆記】訓練類神經網路的核心訣竅與技術解析
核心總結 (Executive Summary)
本文件萃取自「生成式人工智慧與機器學習導論2025」第六講。核心主軸在於建立一套系統性的思維框架:當面對任何訓練類神經網路的新技巧時,都必須釐清該技巧改變了機器學習三步驟(定義損失函數、決定函式範圍、尋找最佳函式)中的哪一步,以及它所帶來的具體好處是為了解決「最佳化(Optimization)」問題(降低 Training Loss),還是為了解決「泛化(Generalization)」問題(縮小 Training 與 Validation Loss 的差距)。文件中詳細解析了優化器演進(Adagrad 到 Adam)、網路架構設計(CNN、Skip Connection)、以及資料與損失函數的微調(Cross-Entropy、Data Augmentation、Regularization)等超過 20 種以上的實戰技術與背後原理。
一、 評估訓練技巧的核心框架
在引入任何新技術前,必須填寫以下「靈魂拷問」表格。如果模型訓練不佳(Training Loss 降不下去),屬於**最佳化(Optimization)問題,需採用強化優化的技術;如果訓練極佳但測試極差(Overfitting),屬於泛化(Generalization)**問題,需採用強化泛化的技術。胡亂套用技術(例如在 Optimization 出問題時狂加資料或使用 Dropout)只會讓結果更糟。
技術名稱 改變了機器學習的哪一步驟? 帶來的主要好處是什麼? 優化器 (Optimizers) 步驟三:更好的搜尋函式方式 更好的 Optimization 學習率排程 (LR Scheduling) 步驟三:更好的搜尋函式方式 更好的 Optimization Dropout 步驟三:改變優化過程 更好的 Generalization 初始化 (Initialization) 步驟三:改變搜尋起點 更好的 Optimization 預訓練 (Pre-train) 步驟三:提供極佳的初始點 Optimization 與 Generalization 兼具 卷積神經網路 (CNN) 步驟二:縮小函式的選擇範圍 更好的 Generalization 跳躍連結 (Skip Connection) 步驟二:改變網路架構 更好的 Optimization 正規化 (Normalization) 步驟二:改變網路架構 更好的 Optimization (附帶 Generalization) 交叉熵 (Cross-Entropy) 步驟一:改變 Loss 函數定義 更好的 Optimization 資料擴增 (Data Augmentation) 步驟一:改變 Loss 的計算資料 更好的 Generalization 半監督學習 (Semi-supervised) 步驟一:改變 Loss 函數定義 更好的 Generalization L2 正規化 / Weight Decay 步驟一/三:改變 Loss / 更新規則 更好的 Generalization
二、 步驟三:更好的搜尋方式(Optimization 相關技術)
傳統的「無添加」梯度下降法(Vanilla Gradient Descent)所有參數共用同一個學習率(Learning Rate, LR),這會導致在地勢變化不同的維度上難以跨步(例如:X 軸梯度大需小 LR,Y 軸梯度小需大 LR)。為此,發展出了一系列的優化器(Optimizer)。
1. 動態調整學習率的優化器
- Adagrad (Adaptive Gradient):
- 原理:根據過去梯度的平方和開根號()來除以學習率。某個方向過去梯度算出來越大,整體的學習率就會變得越小。這實現了「因材施教」,讓每個參數維度(Dimension)都有專屬的學習率。
- 細節:因為分母會持續累加平方項, 只增不減,導致學習率隨著時間逐漸縮小。
- 盲點:面對複雜地形(如香蕉形狀的 Rosenbrock 函數),同一個方向的梯度大小可能隨時間劇變。Adagrad 累積了所有歷史梯度,對新變化的反應極度遲鈍。
- RMSprop:
- 原理:Adagrad 的進化版。不直接累加所有梯度的平方,而是引入衰減係數(),給予最近算出的梯度較大的影響力。(公式概念:)。
- 細節: 越小代表越看重最近的資訊。這使得模型能即時適應學習率的變化要求,在複雜的 Loss Surface 上走得更遠。
- Momentum (動量):
- 原理:解決梯度過小(如遇到 Saddle point 鞍點、Local minima 局部最小值)導致停止更新的問題。模擬物理動量,更新方向不再單純看當下梯度,而是看過去所有梯度的加總(或加權總和)。
- 細節:使用 參數調控歷史動量與新梯度的比例。即使當下梯度為 0,只要仍有動量,參數就能繼續更新,甚至翻過小山丘找到 Global minimum。
- Adam (Adaptive Moment Estimation):
- 原理:當今最普遍的預設優化器。本質上是 RMSprop (考慮梯度大小以控制 LR) 與 Momentum (考慮梯度方向以決定步伐) 的結合體。
2. 學習率排程 (Learning Rate Scheduling)
- Warm up (暖身):訓練初期先讓學習率逐漸「變大」,讓優化器在大範圍內探索地形,收集足夠的動量(Momentum)與方差()估測資訊。
- Learning Rate Decay (學習率衰減):訓練中後期,讓學習率逐漸「變小」,讓參數能平穩著陸在峽谷底部,避免在最佳解附近劇烈震盪。
3. Dropout 與 Initialization
- Dropout:
- 操作:訓練時「隨機丟棄」部分神經元,增加訓練難度(猶如練輕功時腳上綁沙袋);驗證與測試時則火力全開使用全部神經元。
- 用途:純粹為了 泛化(Generalization)。加入 Dropout 會讓 Training Loss 變高,但能拉近與 Validation Loss 的距離。
- 初始化 (Initialization):
- 起點決定終點。不同的隨機參數起點(例如何愷明提出的 Kaiming Initialization,根據輸入維度調整 Scale)可以帶來截然不同的訓練結果。即使有強大的 Optimizer,好的 Initialization 仍能帶領模型走到更平坦、更優秀的 Global Minimum(避免微小差距導致嚴重的 Overfitting)。
- 預訓練 (Pre-train / Self-supervised Learning):
- 原理:讓模型先做一個「藉口任務(Pretext Task)」(如下游任務是分類動物,先讓模型練習預測「圖片被旋轉了幾度」)。
- 優勢:提供極佳的參數初始點,是當今極少數能 同時提升 Optimization 與 Generalization 的神經大絕招。
三、 步驟二:決定函式的選擇範圍(架構相關技術)
直接使用全連接層(Multi-Layer Perceptron, MLP)處理影像會導致參數量爆炸(如 1000x1000 彩色圖片單一神經元需要 300 萬個參數),函式範圍過大極易 Overfitting。我們需要透過人類的領域知識(Domain Knowledge)來縮小範圍。
1. 卷積神經網路 (Convolutional Neural Networks, CNN)
- CNN 其實是 MLP 的「簡化限制版」,它透過兩個核心概念大幅縮小函式範圍,以提升 Generalization:
- 感受野 (Receptive Field):神經元不需要看整張圖片,只需負責守備一個局部小範圍(Kernel Size,如 3x3)。將範圍外的權重強制設為 0。
- 參數共享 (Parameter Sharing):在圖片不同位置偵測相同特徵(如鳥嘴)的神經元,強制共用同一組參數(Filter)。
- 結果:參數量大幅銳減,有效防止過擬合。
2. 跳躍連結 (Skip Connection / Residual Connection)
- 解決痛點:深度網路常見的「梯度消失(Gradient Vanishing)」與「梯度爆炸(Gradient Explode)」。這兩者同時存在導致學習率無論調大調小都會引發訓練災難。
- 原理:在 Layer 之間建立「高速公路」,將輸入直接與輸出相加()。
- 效用:低層參數的微小變化能直接傳遞到深層,讓原本崎嶇如山水畫的 Loss Surface 變得平坦,大幅強化 Optimization。
3. 正規化 (Normalization)
- 原理:強制將每一層的輸出限制在特定範圍內(例如強迫平均值為 0,變異數為 1),如 Batch Normalization 或 Layer Normalization。
- 效用:使不同維度的數值範圍接近,極大地降低了調校學習率的難度,主攻 Optimization(並附帶一點點 Generalization 效果,因為增加限制等於縮小了函式範圍)。
四、 步驟一:定義 Loss 函數與資料處理
1. 分類問題的 Loss:交叉熵 (Cross-Entropy)
- 痛點:分類問題的使用者最終看重的是「正確率(Accuracy)」,但 Accuracy 無法微分(參數微調時,只要沒跨過類別門檻,Accuracy 變化就是 0,梯度永遠為 0,無法進行梯度下降)。
- 解法:使用 Softmax 將模型輸出轉化為機率分佈,再計算與 Ground Truth(正確答案的機率分佈)的 交叉熵(Cross-Entropy)。
- 影響:這個轉換純粹是為了解決 Optimization 問題,實際上憑空製造了訓練(看 Cross-Entropy)與驗證(看 Accuracy)的誤差 Gap。
2. 資料擴增 (Data Augmentation)
- 原理:資料量不足導致 Overfitting 時的最粗暴解法。透過創造假資料增加多樣性。
- 方法:影像的左右翻轉、模糊化;語音的性別轉換、音量調整。還包含強大的 Mixup 技術(將兩張圖片的像素與其 Label 的機率分佈按比例混合相加)。
- 注意:Augmentation 必須符合人類邏輯(例如判斷鳥頭方向的任務不能隨便左右翻轉;語者辨識不能擅自改變性別)。這能強化 Generalization,但會讓 Optimization 變難。
3. 半監督學習 (Semi-supervised Learning)
- 原理:利用網路上無限的未標記資料(Unlabeled Data)加入 Loss 計算,提升 Generalization。
- 方法一(非黑即白假設):要求未標記資料通過模型後的輸出分佈「越尖銳越好」(Entropy 越小越好),強迫分類界線遠離資料密集區。
- 方法二(物以類聚假設):將特徵相近的資料在圖論(Graph)上連線,要求連線的資料點有極度接近的模型輸出。
4. 正規化項與權重衰減 (L2 Regularization / Weight Decay)
- 奧卡姆剃刀原則:在 Loss 一樣低的情況下,人類偏好「簡單(平滑)」的函式。實務上定義簡單就是「參數越接近 0 越好」。
- L2 Regularization:在 Loss 函數(大 L)後面加上一個與參數平方和相關的懲罰項(大 R)。
- Weight Decay:在參數更新的演算法步驟中,每次更新前直接把參數乘上一個小於 1 的數值(如 0.999)。
- AdamW:數學上 Weight Decay 與 L2 Regularization 等價。將 Weight Decay 正確地加入 Adam 演算法中,稱為 AdamW。它透過避免參數過大來強化 Generalization。
五、 延伸思考與關聯筆記建議
- Softmax 與 Cross-Entropy 的數學直覺:為什麼分類問題不選擇 MSE 而非要用 Cross-Entropy?背後的資訊理論(Information Theory)與 KL Divergence 關聯為何?
- 預訓練技術演進史:從 CV 到 NLP:文件中提到 Pre-train 是少數能同時改善泛化與最佳化的技術。從影像旋轉任務到 NLP 的 BERT(Masked Language Modeling),自監督學習是如何重塑現代 AI 基礎模型的?
- 殘差網路 (ResNet) 解決梯度消失的深度解析:深入探討 Skip Connection 的數學原理,為什麼簡單的加法操作能讓 Loss Surface 產生質變?這對 Transformer 架構(同樣大量使用殘差連結)有何啟發?
📋 來源聲明:本教材為非營利教育用途的高度轉化作品。原始出處標註於家長版中。