# 課程目標與範圍

* 一堂課搞懂機器學習與深度學習的基本概念,聚焦「如何用資料找出函式 F」
* 不以語言模型為例,改用跨領域範例說明「找函式」的普適性
* 課程分上下兩部分:原理講解與實作練習
# 生成式 AI 中的函式 F 回顧
* F:輸入未完成句子 X,輸出下一個 token
* 過去已剖析 F 的結構與運作,今天重點在「如何從資料中學到 F」
# 用資料找函式=機器學習
* 機器學習:透過資料尋找能滿足目標的函式
* 同一套方法可應用於語言、影像、時間序列等多種任務
# 範例任務:投影片 → 上課時長(Regression)

* 輸入 X:一份投影片
* 輸出 Y:老師實際會講多久(數值)
* 問題型態:輸出為連續數值,屬於回歸(Regression)
* 動機:可預估「什麼時候下課」
# 學習的三步驟(Learning/Training)

* 步驟一:定義要找的函式好壞標準(目標/評估)
* 步驟二:劃定可選的函式集合(模型/假設空間)
* 步驟三:在集合中找出表現最好的函式
# 第一步:定義目標與評估

* 準備一批「輸入投影片」與其「真實上課時長」
* 將輸入丟給候選函式 F 得到預測,再與正解比較

* 以距離/相似度的平均作為單一分數(Evaluation Metric)
* 分數越小越好時稱為 Loss/Cost;越大越好可稱為 Objective
# Loss 與 MSE


* 本課採用 Loss,並以 Mean Squared Error(MSE)為例
* 計算方式:各樣本的(預測−真值)平方後平均
* MSE 小表示預測更精準
# 訓練資料(Training Data)

* 用於定義與計算 Loss 的資料集合(輸入 X、標籤 Y)
* 訓練資料決定了學習時優化的方向與目標
# 第二步:把輸入變成可用的數字(特徵)

* 函式輸入必須是數值,需將投影片轉為特徵(Feature)
* 例:頁數 x1、總字數 x2、標題長度 x3、是否包含「learning」x4(0/1)
* 以向量形式表示一份投影片,供模型計算
# 線性回歸示例與參數

* 假設關係:y = w1·x1 + b(頁數與時長近似成正比,另加固定開場時間 b)
* w1、b 為未知參數(parameters),待由資料學出
* 這個式子對應到「一個函式集合」:每組 w1、b 對應一個函式
# 函式集合的彈性與設計

* 可擴充為 y = w1·x1 + w2·x2 + b,或加入更複雜交互項
* 人類可依對任務的理解來設計哪些特徵/形式應納入
* 不同設計=不同搜尋範圍,影響最終可學到的函式
# 模型(Model)的意涵

* 常用來指「候選函式的集合(假設空間)」或「學到的單一函式」
* 核心精神:用較簡單的數學結構近似複雜現實
* 將人類對任務的領域知識(domain knowledge)放入第二步的模型設計,有助於學習效果
---
# 步驟三目標:最小化 Loss

* 在既定模型範圍內,找出讓 loss 最小的參數組合
* 已知如何計算 loss 與候選函式集合;任務是選出最低 loss 的函式
# Loss 與記號

* 資料:第 i 堂課投影片頁數 X1^(i),真實時長 Y_hat^(i)
* 模型:Y^(i) = W1 * X1^(i) + B
* Loss(MSE):L = (1/n) * Σ[i=1..n] ( W1*X1^(i) + B − Y_hat^(i) )^2
# Loss 是參數的函式

* 換不同的 W1、B 會得到不同的 L
* 目標:找到 (W1*, B*) 使 L(W1, B) 最小,也就是 (W1*, B*) = argmin L(W1, B)
# 暴力搜尋與 Loss Surface


* 朴素法:在猜測範圍內枚舉 W1、B,逐點計算 L,取最小
* 視覺化概念:以 W1、B 當平面軸、L 當高度或等高線(loss surface)
* 觀察:W1 對 L 的影響通常比 B 大,兩者之間也會互相影響(等高線呈斜向)
# 線性回歸的特例

* 線性回歸 + MSE 有公式解(closed-form solution)
* 一般任務的模型或 loss 較複雜,未必有公式解
# 梯度下降(直覺)

* 從任一初始點出發,沿「讓 L 變小」的方向反覆更新
* 可能停在局部極小值(local minimum),未必到達全域極小值(global minimum)
# 斜率、偏微分與梯度


* 方向由「切線斜率」決定;切線斜率就是偏微分:dL/dW1、dL/dB
* 多參數把所有偏微分組成向量 ∇L(gradient)
* 深度學習框架能自動計算梯度(自動微分)
# 參數更新規則

* 單參數:W ← W − η * dL/dW
* 多參數向量化:Θ ← Θ − η * ∇L(Θ)
* 每次更新稱為一次 iteration/update,重複直到斜率接近 0 或達到停止條件
# Learning Rate(η)
* η 太大:容易跨過谷底、發散、參數爆炸、出現 NaN
* η 太小:在梯度很小區域前進極慢,需要大量步數
* 難同時兼顧速度與穩定性,調參不易
---
# 兩參數情境與梯度

* 參數包含 W1 與 B,起始值以上標 0 表示(W1^(0), B^(0))
* 在當前點計算偏微分:dL/dW1 與 dL/dB
* 將各偏微分收集成向量稱為梯度(gradient)
# 自動微分與工具
* 深度學習框架(例:PyTorch)可自動計算梯度,無需手算
* 重點在於定義好 Loss 與模型,再呼叫框架取得梯度
# 參數更新規則(純文字)
* W1 ← W1 − η * dL/dW1
* B ← B − η * dL/dB
* 每次更新稱為一次 iteration / update;更新後以上標 1、2、3…標記(W1^(1), B^(1) 等)
# 高維向量化觀點


* 將所有參數聚成 Θ(例如語言模型可達數十億維)
* 以梯度向量 G 表示所有偏微分:G = ∇L(Θ)
* 向量化更新:Θ ← Θ − η * G;重複計算梯度與更新
---
# 梯度下降實作示例(兩參數)

* 參數:W1 與 B;初始設定例:W1=1、B=15
* 在當前點計算梯度 dL/dW1、dL/dB,沿可使 Loss 下降的方向更新
* 學習率 η 決定每次更新步伐大小
# 學習率過大(η 太大)的症狀

* 一步跨過谷底、越界到「地圖外」,參數劇烈震盪
* 容易數值發散,出現 NaN,訓練直接崩潰
* 直觀觀察:一步就從谷左跳到谷右,再下一步失控
# 學習率過小(η 太小)的症狀

* 下降極慢,在梯度很小區域幾乎不動
* 需大量步數才有可見進展(例:100 步才到谷底、1000 步才剛轉彎)
* 訓練時間長,進展不明顯
# 速度與穩定性的兩難
* 想加快進度提高 η,容易暴走;降低 η 又會極慢
* 實務上難以一次「調到剛好」,需反覆調整
# 低維「開天眼」與高維現實

* 低維例子可畫 Loss surface,便於判斷「夠低即可停」
* 高維情境無法暴搜與視覺化,只能從 Loss 曲線推斷
* Loss 幾乎不降時,難判斷是局部極小值還是暫時變慢
# 小結:訓練的核心難題
* 學習率設定影響巨大:太大發散,太小停滯
* 沒有通用的固定值,需依任務與資料特性試調
---
# 參數更新太慢的原因

* 計算一次整體 Loss 需掃過所有資料,成本高
* 大型任務(如語言模型)資料量龐大,完整計算一次 Loss 不切實際
# 用 Mini-batch/SGD 加速

* 將全部資料 N 切成多個 batch,每個 batch 含 B 筆
* 以單一 batch 算出 L_k,立刻計算梯度並更新參數,再處理下一個 batch
* 不切 batch 稱 Full Batch;batch size = 1 稱 Stochastic Gradient Descent (SGD)
# Epoch 與更新次數

* Epoch:所有 batch 都被用過一次
* 每個 Epoch 的更新次數為 N/B
* 例:N=1000、B=100 → 每個 Epoch 參數更新 10 次
# Batch Size 的利弊

* 小 batch:更新頻繁、前進快,但方向噪聲大、路徑擺盪
* 大 batch:方向穩定、單步成本高、前進慢
* Full Batch 與 SGD 是兩極,中間值需折衷
# Shuffle 的必要性

* 每個 Epoch 重新打亂樣本與 batch 組合
* 降低固定同組的偏差,抽樣分佈更接近全資料
# 線性回歸初次結果(以 ML 2021 訓練)

* 模型:y = 1.67*x1 + 4.85
* 訓練集 MSE ≈ 240(約 15 分鐘誤差)
* 驗證集(本課 0–4 講)MSE ≈ 1143,高估嚴重,泛化差
---
# 結果回顧(以 ML 2021 訓練)

* 模型:y = 1.67*x1 + 4.85(x1=頁數,y=時長/分鐘)
* 訓練集 MSE ≈ 240 → 約 15 分鐘誤差(因為 240 ≈ 15²)
* 視覺觀察:多數點落在趨勢附近,但誤差不小
# 為什麼不能直接拿去測試

* 正式測試前需要「驗證」(validation),先用未參與訓練的資料檢查泛化
* 比喻:測試=大考;驗證=模擬考,錯了可以回頭修正
# 驗證資料與結果(本課 0–4 講)

* 驗證輸入:本課已上 5 次的投影片頁數(例:27、35、97…)
* 預測輸出:50、63、167(舉例)
* 驗證集 MSE ≈ 1143,遠高於訓練集 → 明顯高估、泛化失敗
---
# 驗證失敗的原因與資料問題



* 將機器學習 2021 的課程資料用來預測「生成式 AI 與機器學習導論 2025」時,結果極差。
* 繪圖後發現藍色(ML 2021)與綠色(2025 導論課)點分布不同。
* 導論課(綠點)在相同投影片頁數下課程時長更短。
* 導論課需更多投影片才能講同樣長度的課。
* 因此,訓練資料(ML 2021)與實際應用場景(導論課)屬性不同,導致 Loss 大幅上升。
* 結論:第一步「目標設定」出錯,因為選錯訓練資料。
# 修正步驟一:更換訓練資料


* 將訓練資料改為「生成式 AI 導論 2024」課程。
* 該課程性質與「生成式 AI 與機器學習導論 2025」較相近。
* 訓練後模型:y = 0.78x₁ + 12.85
* 意涵:導論課每頁投影片平均講 0.78 分鐘。
* 訓練集 Loss = 71,驗證集 Loss = 122。
* 相比舊模型(訓練 240、驗證 1143),大幅改善。
* 預測誤差約為 11 分鐘,模型更貼近真實。
# 重點觀念
* Validation 必做,用來提早發現泛化問題
* Domain Shift 會讓「在 A 訓練、到 B 使用」失準
* 合適的訓練分佈比單純壓低訓練 Loss 更關鍵
---
# 改進步驟二:擴大函式空間


* 原本模型限制為 y = w₁x₁ + b(線性函式),只能表示直線關係。
* 若真實關係是彎曲的函數,線性模型再怎麼調也逼不近
* 需要擴大候選函式集合
# 想法:用分段線性曲線逼近任意函數


* 在 x–y 平面上取更多節點,把相鄰節點以直線連接成分段線性(piecewise linear)曲線
* 節點越多,分段線性曲線對原函數的近似越好
# 分段線性 = 常數項 + 多個「山坡函式」

* 任何分段線性曲線都可表示為:常數項 + 許多「山坡形」函式的加總
* 每段線段由一個「山坡函式」負責,段與段的轉折點由其轉折位置對應
# 山坡函式可由兩個「折線基底」相減組成

* 山坡形狀 = 兩個只有單一轉折點的「折線基底」的組合
* 折線基底以「過某一門檻後呈線性、未過門檻為 0」的形式表達
# 折線基底的數學型(ReLU 形式)

* 折線函數數學形式為:C × max(0, w₁x₁ + b)。
* 參數意義:w1 控制斜率,b 控制轉折(門檻)位置,c 控制段的高度/權重
* 轉折向上或向下由 c 的正負決定
* 該函式即為常見的 **ReLU(Rectified Linear Unit)**。
*
# ReLU 函數與神經網路的形成

* ReLU:若輸入 < 0 → 輸出 0;若輸入 > 0 → 輸出輸入值。
* 不同的 w₁、b、C 可生成不同形狀的曲線。
* 將多個 ReLU 加總可逼近任何函數:
y = b + Σ cᵢ × max(0, wᵢx + bᵢ)
* 若使用多個輸入特徵(如 x₁=頁數、x₂=字數),輸入可視為向量。
* 函數可表為:y = cᵀσ(Wx + b),其中 σ 為 ReLU。
----
# ReLU 基本概念(單一特徵)

* 形式:a = max(0, w*x1 + b),輸入 ≤ 0 輸出 0,輸入 > 0 輸出等於輸入
* 名稱:Rectified Linear Unit(ReLU)
* 加權輸出:y = b0 + Σ ci * max(0, wi*x1 + bi);以多個 ReLU 疊加近似曲線
# 多個 ReLU 範例(H=3)

* 三個子函式:a1, a2, a3 各由不同的 w、b 經 ReLU 得到
* 各自乘上 c1, c2, c3 後相加,再加常數 b0,得到最終 y
* H 越大,可描述的分段線性轉折越多,近似能力越強
# 多特徵輸入(x1, x2, …)

* 將多個特徵視為向量 x,分別乘上對應權重再加偏置後過 ReLU
* 例:x = [x1, x2]^T,經 Wx + b → ReLU → a,再線性組合為輸出
* Feature 取用需依任務理解進行選擇(feature selection)
# 向量化/矩陣表示
* 一層計算:a = ReLU(Wx + b)
* 輸出層:y = c^T a + b0
* 全流程皆為「矩陣相乘+向量相加+逐元素 ReLU」
# 疊層(多層表達力)

* 可將 a 當新輸入,再做 a' = ReLU(W' a + b'),層層堆疊
* 多層可表達更複雜的分段線性結構與非線性關係
# 命名與結構

* Neuron(神經元):線性組合(Wx + b)接 ReLU 的基本單元
* Layer(層):多個 Neuron 並列構成;輸入層之外稱 Hidden Layer
* Neural Network(類神經網路):多層 Neuron 組成;Hidden Layer 多即為 Deep Learning
# 為何深度學習更強
* 單一線性模型只能表示直線;多 ReLU 可組出分段線性曲線
* H 越大、層越多,可近似更複雜的函數(理論上神經元無限時可近似任意函數)
* 實務中神經元有限,但相較線性模型,神經網路的函數集合大幅擴張
# 反向傳播(Backpropagation)

* 是計算神經網路中所有參數梯度的演算法。
* 實質上仍是 Gradient Descent,只是利用鏈式法則高效求梯度。
* 現代深度學習框架(如 PyTorch、TensorFlow)已自動實作。
* 使用者通常無需手動撰寫 Backpropagation。
# 理論與實務
* 理論上,若神經元數量足夠多,神經網路可逼近任何函數(Universal Approximation)。
* 實際上受限於計算與資料,僅能近似。
* 與線性模型相比,神經網路能涵蓋更多非線性函數。
* 訓練過程仍採 Gradient Descent,只是需更高效的梯度計算方式。
---
# Deep Learning 與 Loss 曲線

* 使用具有 Hidden Layer 的 Neural Network(H=100),因參數量龐大只能觀察 Loss 曲線。
* 每次更新參數後記錄訓練 Loss,隨 Epoch 增加 Loss 逐漸下降但趨緩。
* Full-batch 訓練每個 Epoch 更新一次,最終 Training Loss 為 80。
* 理論上 Neural Network 能表達 Linear Model,因此 Loss 不應比線性模型(71)更高。
# Optimization 問題


* Neural Network 範圍更大卻 Loss 較高,代表優化出問題。
* 可能原因包括 Local Minima、Saddle Point、Gradient 過小。
* 小 Gradient 造成 Loss 下降緩慢,訓練者誤以為已收斂而過早停止。
* Optimization 容易失敗,尤其在 Neural Network 中。
# 透過簡單模型建立基準

* 建議先用 Linear Model 建立 Loss 基準(如 70)。
* 若更大模型的 Loss 反而高於基準,代表優化問題非模型容量問題。
* 小模型提供參考範圍,協助判斷大模型表現是否合理。
# 改進 Optimization
* 調整 hyperparameter(learning rate、epoch、batch size)。
* 經過多次調整後 Loss 從 80 降到 41,確認 Neural Network 可達更低 Loss。
* 模型學得非線性曲線,能表現頁數與時長的非線性關係。
# Feature 改良

* 單一 feature(頁數)不足以準確預測課程時長。
* 加入總字數作為第二個 feature 效果有限,因頁數與總字數高度相關。
* 新增「每頁平均字數」作為 feature,Loss 從 41 降到 22,顯著改善。
# Overfitting 現象



* Training Loss 22,Validation Loss 卻達 1300,出現嚴重 Overfitting。
* 模型在訓練資料上表現極好,但在未見資料上失效。
* 範圍越大越容易 Overfitting,模型可能只記住訓練資料。
# Overfitting 理解與例子

* 若模型能表達所有函數,會選出訓練 Loss 為零但無泛化能力的 Lazy 函數。
* Overfitting 意指訓練與驗證差距極大。
* 理論分析詳見機器學習 2022 課程內容。
# Overfitting 與駕訓班比喻

* 訓練過程如駕訓班練車,驗證如正式考試。
* 若依賴貼紙等輔助記號,只能在熟悉場地成功,換場地即失效。
* 對應到模型僅記得訓練樣本而無法泛化。
# Early Stopping


* 在訓練過程中同時計算 Validation Loss。
* Validation Loss 在約 20 個 Epoch 時最低,之後急劇上升。
* 提早停止訓練可防止 Overfitting,稱為 Early Stopping。
# 過度使用 Validation 的風險

* 多次在 Validation Set 上調整模型,最終可能 Overfit 在 Validation Set。
* 若無限制地使用 Validation,模型可能僅在驗證資料上表現良好。
# Overfitting 到 Testing Set

* 若不斷使用測試資料進行評估,也可能 Overfit 到 Testing Set。
* 模型最終只在該測試集上表現好,實際應用仍表現差。
# Benchmark 與 Overfitting

* 長期重複測試導致模型在 Benchmark 上表現異常好。
* 例:2019 年 BERT 在 SQuAD 上超越人類表現,但實際能力不符。
* 因模型能無限調整參數反覆測試,而人類僅測一次。
# Public Set 與 Private Set 設計

* 為防止 Overfitting,競賽資料分為 Public Set 與 Private Set。
* Public Set 可有限次上傳測試,Private Set 僅有一次機會。
* Public Set 相當於有限次驗證集,Private Set 才代表真實泛化能力。
# 訓練與驗證的循環
* 模型訓練需在三步驟與驗證間不斷往返調整。
* 不斷嘗試不同模型範圍、Hyperparameter、Early Stopping。
* 目標是在 Validation Set 上找到 Loss 也低的函式。
---
# 實作任務說明
* 目標:根據投影片資料(頁數、字數等)預測李宏毅老師上課時間。
* 資料來源:機器學習 2021、生成式 AI 導論 2024、生成式 AI 與機器學習導論 2025。
* 使用 2021 資料作訓練集,2025 資料作驗證集。
* 輸入變數 X_train、X_val,輸出變數 Y_train、Y_val。
# 步驟一:定義 Loss 函式
* 採用 Mean Squared Error(MSE)作為評估指標。
* 公式:Loss = mean((Y_predict − Y_true)²)。
* 當模型預測完全正確時 Loss = 0,隨機預測則會導致 Loss 極大。
# 步驟二:定義模型範圍

* 使用線性模型 y = W₁x₁ + b。
* 改變 W₁ 與 b 可得到不同函式。
* 使用不同 W₁、b 的組合繪出多條直線,確認函式族為線性集合。
# 步驟三:尋找最佳參數(暴力搜尋)


* 設定 W₁ ∈ [0, 3]、b ∈ [0, 20],分別取多個點組合暴力搜尋。
* 計算每組參數對應的 Loss,繪出 Error Surface。
* 找出 Loss 最小點:W₁ = 1.67、b = 4.88,Loss ≈ 240。
* 可從 3D 圖與等高線圖觀察峽谷狀 Loss Surface,最低點即最佳解。
# 使用 Gradient Descent 優化
* 初始化參數:W₁=1、b=15。
* 建立 W₁_history、b_history、Loss_history 追蹤訓練過程。
* 設定 hyperparameter:learning rate = 0.0018、epoch = 100。
* 依公式計算梯度:
∂Loss/∂W₁ = (2/n) Σ (Y_pred − Y_true)X₁
∂Loss/∂b = (2/n) Σ (Y_pred − Y_true)
* 更新參數:
W₁ ← W₁ − lr × ∂Loss/∂W₁
b ← b − lr × ∂Loss/∂b。
# 結果與觀察
* Learning rate = 0.01 時數值爆炸,Loss 無限大。
* Learning rate = 0.0001 時訓練穩定,Loss ≈ 263。
* 窮舉法最佳 Loss 為 240,Gradient Descent 接近但未達最佳值。
* 增加 epoch(1 萬次)後 Loss 降至 249,下降速度極慢。
* Learning rate 太小導致收斂慢,太大則發散。
* 結論:Gradient Descent 成功但效率低,下週將改進優化方法。
---
# 實作階段:從線性模型到神經網路
* 目標:根據投影片資料(頁數、字數、平均字數)預測李宏毅老師上課時間。
* 資料來源:ML 2021(訓練)、生成式 AI 導論 2024(替代訓練)、生成式 AI 與機器學習導論 2025(驗證與測試)。
# Batch Size 與訓練流程

* Gradient 計算時原本對所有資料求和(Full Batch)。
* 若資料量龐大,訓練時間會過長。
* 改為使用 Batch,每看一部分資料就更新一次參數。
* Epoch:完整看完所有資料一次。
* 例:20 筆資料,Batch Size = 5 → 每個 Epoch 有 4 個 Batch。
* 每個 Epoch 前先 Shuffle 資料,確保每個 Batch 組合不同。
# Batch 訓練效果
* Batch Size = 20:等同 Full Batch,僅一次更新,Loss 約 450。
* Batch Size = 5:每 Epoch 更新 4 次,Loss 降到 100 以下。
* Batch Size = 1(SGD):更新頻繁但方向不穩,路徑「歪歪斜斜」。
* 實務中需平衡更新穩定性與速度,Batch Size 是超參數。
# 模型驗證與資料匹配
* 使用 ML 2021 訓練、2025 驗證時,Validation Loss ≈ 1000,模型失敗。
* 原因:訓練與驗證資料分布不同。
* 改用 2024 資料訓練後,Training Loss = 78,Validation Loss = 350。
* 模型泛化能力改善,但仍未理想。
# 擴充模型輸入
* 原始輸入:頁數(x₁)。
* 新增輸入:總字數(x₂)。
* 模型改為 y = w₁x₁ + w₂x₂ + b。
* 增加輸入後 Loss 從 77 降至 69。
# 特徵工程改良
* 總字數與頁數高度相關,造成梯度比例懸殊、訓練困難。
* 將總字數除以頁數,改用平均字數作為第二個特徵。
* 模型更穩定、Loss 降至 65。
* Validation Loss 從 350 降至 124,預測誤差約 11 分鐘。
# 擴大模型範圍:Neural Network
* 使用兩個輸入特徵(頁數與平均字數)。
* 結構:輸入層 → 隱藏層(100 neurons, ReLU)→ 輸出層。
* 參數:W、B、W'、B' 隨機初始化。
* ReLU 定義:x < 0 → 0;x ≥ 0 → x。
* 預測函式:y = W'·ReLU(Wx + b) + B'。
# 類神經網路訓練
* Learning Rate = 0.0001、Epoch = 10000。
* 使用 Backpropagation 計算梯度。
* 多次訓練結果差異大:Loss 介於 85~200。
* 原因:初始化不同導致收斂至不同區域。
* 類神經網路極度依賴初始參數與優化策略。
# 改用 Adam 優化
* Adam 採動態 Learning Rate,每個參數自動調整步伐。
* 配合適當初始化後,Loss 降至 21。
* 在 Training Set 上收斂良好。
# Validation 與 Early Stopping
* 同時計算 Training Loss 與 Validation Loss。
* Validation Loss 先降後升,在第 23 Epoch 最低(約 11)。
* 提前停止訓練(Early Stopping)以避免 Overfitting。
# 測試階段
* 驗證模型於實際課程表現。
* 今日課程共 84 頁投影片,總字數 3388。
* 真實講課時間:107 分鐘。
* 模型預測結果:**107 分鐘(完全一致)**。
* 結論:模型表現極佳,雖然結果可能有運氣成分,但驗證流程完整。
# 總結
* Batch 訓練提升效率與泛化能力。
* Feature 選擇影響模型可訓練性。
* Neural Network 能逼近更複雜關係,但需良好初始化與優化方法。
* Validation Loss 是防止 Overfitting 的關鍵監控指標。
* Early Stopping 與 Adam 是實務上常用且有效的技巧。
---
# Terminology
* 機器學習(Machine Learning):利用資料自動找出函式的技術,用以預測或分類。
* 深度學習(Deep Learning):以多層神經網路為基礎的機器學習方法,能自動學習特徵。
* 生成式人工智慧(Generative AI):能根據輸入自動生成文字、影像或音訊的人工智慧系統。
* 函式(Function):輸入變數後輸出結果的數學映射關係。
* Token(詞元):自然語言中最小的語意單位,如字、詞或符號。
* 語言模型(Language Model):根據前文預測下一個詞元的機器學習模型。
* 輸入(Input):函式或模型接收的資料或特徵。
* 輸出(Output):模型根據輸入所產生的結果。
* 參數(Parameter):模型中可調整的數值,用於描述函式行為。
* 訓練(Training):透過資料調整模型參數以最小化誤差的過程。
* 評估(Evaluation):測量模型表現好壞的過程。
* 損失函數(Loss Function):衡量預測與真實答案差距的函式。
* 目標函數(Objective Function):學習過程中要最大化或最小化的數值函式。
* 回歸(Regression):輸出為連續數值的預測任務。
* 分類(Classification):輸出為離散類別的預測任務。
* 均方誤差(Mean Squared Error, MSE):預測值與真實值差距平方的平均,用於回歸。
* 評估指標(Evaluation Metric):用以量化模型表現的數值指標。
* 訓練資料(Training Data):用於訓練模型的已知輸入與輸出資料。
* 驗證資料(Validation Data):用於調整模型參數的資料集。
* 測試資料(Test Data):用於最終評估模型泛化能力的資料。
* 特徵(Feature):輸入資料的數值化表示,用於模型計算。
* 權重(Weight):特徵對輸出影響的數值,為模型參數之一。
* 偏差(Bias):模型中加上的常數項,用於調整整體輸出。
* 線性回歸(Linear Regression):輸出為輸入線性組合的回歸模型。
* 模型(Model):表示輸入與輸出關係的數學結構或函式集合。
* 假設空間(Hypothesis Space):所有可能模型函式的集合。
* 損失最小化(Loss Minimization):尋找使損失函數最小的參數。
* 代價函數(Cost Function):與損失函數同義,用於衡量模型誤差。
* 參數估計(Parameter Estimation):從資料中推算模型參數的過程。
* 優化(Optimization):透過演算法尋找最佳參數以最小化損失。
* 梯度下降(Gradient Descent):利用梯度方向更新參數的優化方法。
* 過擬合(Overfitting):模型過度學習訓練資料,導致泛化能力下降。
* 欠擬合(Underfitting):模型過於簡單,無法捕捉資料結構。
* 泛化能力(Generalization Ability):模型對未知資料維持良好表現的能力。
* 特徵工程(Feature Engineering):設計與選擇有助模型學習的特徵。
* 標籤(Label):訓練資料中對應輸出的真實值。
* 資料集(Dataset):包含輸入與輸出樣本的集合。
* 模型訓練流程(Training Pipeline):從資料處理到模型訓練的完整過程。
* 評估函數(Evaluation Function):計算模型效能的函式。
* 誤差平方和(Sum of Squared Errors, SSE):各預測誤差平方的總和。
* 參數空間(Parameter Space):模型參數所有可能取值的集合。
* 內插(Interpolation):在訓練資料範圍內預測。
* 外推(Extrapolation):在訓練資料範圍外預測。
* 非線性模型(Nonlinear Model):輸入與輸出間關係非線性的模型。
* 正則化(Regularization):防止過擬合的技術,限制參數大小。
* 超參數(Hyperparameter):控制模型結構與學習行為的設定值。
* 隨機梯度下降(Stochastic Gradient Descent, SGD):使用隨機樣本估算梯度的優化方法。
* 目標函式優化(Objective Optimization):調整模型參數以達最佳目標值的過程。
* 函式擬合(Function Approximation):以數學函式逼近資料分布的過程。
* 領域知識(Domain Knowledge):人類對任務特性的先驗理解,用於模型設計。
* 模型假設(Model Assumption):對資料與輸出關係所做的數學假設。
* 最佳化(Optimization):尋找讓目標函數達到最小或最大值的參數過程。
* 損失函數(Loss Function):衡量模型預測與真實值差異的函式。
* 平均平方誤差(Mean Squared Error, MSE):誤差平方的平均值,用於回歸任務。
* 線性回歸(Linear Regression):假設輸出為輸入線性組合的模型。
* 參數(Parameter):決定模型行為的可調整變數。
* 權重(Weight):模型中乘於輸入特徵的參數。
* 偏差(Bias):模型輸出中固定加上的常數項。
* 偏微分(Partial Derivative):函數對某一變數的導數,用以衡量變化率。
* 梯度(Gradient):所有參數偏微分組成的向量,表示函數變化方向。
* 梯度下降法(Gradient Descent):根據梯度方向逐步調整參數以最小化損失的演算法。
* 學習率(Learning Rate):控制每次參數更新步伐大小的超參數。
* 迭代(Iteration):在訓練過程中每次更新參數的操作。
* 更新步驟(Update Step):利用梯度與學習率修正參數的過程。
* 全域最小值(Global Minimum):損失函數在整個參數空間中的最小值。
* 區域最小值(Local Minimum):在局部區域內損失最低但非全域最小的點。
* 損失曲面(Loss Surface):以顏色或高度顯示損失隨參數變化的圖像。
* 等高線圖(Contour Plot):用顏色或曲線表示損失函數等值的二維圖。
* 暴力搜尋(Brute Force Search):窮舉所有可能參數組合以找出最佳解的方法。
* 封閉形式解(Closed-form Solution):能以代數公式直接求得的最佳解。
* 向量化參數(Vectorized Parameters):將所有參數組成一個向量表示。
* 參數空間(Parameter Space):所有可能參數取值的集合。
* 初始值(Initialization):訓練開始前隨機設定參數的起始狀態。
* 學習率過大(Overstepping):步伐過大導致錯過最小值或訓練不穩定。
* 學習率過小(Understepping):步伐太小導致收斂速度緩慢。
* 收斂(Convergence):訓練過程中損失不再顯著下降的狀態。
* 發散(Divergence):因學習率過大導致損失爆炸或數值錯誤。
* NaN(Not a Number):數值錯誤導致模型無法繼續運算的結果。
* 梯度消失(Vanishing Gradient):梯度過小導致學習停滯的問題。
* 梯度爆炸(Exploding Gradient):梯度過大導致參數劇烈變化的問題。
* 偏導數(Partial Derivative Term):單一參數對損失影響的數值表達。
* 微分(Differentiation):計算函數變化率的數學操作。
* 自動微分(Automatic Differentiation):深度學習框架自動計算梯度的技術。
* PyTorch:常用的深度學習框架,支援自動微分與 GPU 加速。
* TensorFlow:Google 開發的深度學習框架,支援分散式訓練。
* 參數更新公式(Parameter Update Rule):每次根據梯度與學習率修正參數的數學表示。
* 目標函數(Objective Function):需要最小化或最大化的函數(通常為損失)。
* 模型參數向量(Model Parameter Vector):所有權重與偏差組成的高維向量。
* 梯度符號(Nabla Symbol, ∇):表示對所有參數取偏微分的運算符號。
* 梯度向量(Gradient Vector):由所有偏微分組成的方向向量。
* 更新規則(Update Rule):描述如何根據梯度調整參數的方程式。
* 收斂條件(Convergence Criterion):停止訓練的數值或梯度閾值。
* 局部最小陷阱(Local Minima Trap):模型困在非全域最小點無法繼續下降的現象。
* 平滑曲面(Smooth Surface):梯度連續變化、便於優化的損失曲面特性。
* 學習速率(Learning Speed):訓練過程中損失下降的速度。
* 超參數(Hyperparameter):需手動設定的模型控制參數,如學習率。
* 更新迭代次數(Number of Updates):訓練過程中執行的總更新步數。
* 調參(Hyperparameter Tuning):嘗試不同超參數組合以優化訓練表現的過程。
* 模型訓練穩定性(Training Stability):模型在訓練過程中避免發散的能力。
* 最佳化路徑(Optimization Path):參數在訓練過程中於參數空間移動的軌跡。
* 學習率衰減(Learning Rate Decay):隨著訓練逐步減小學習率以穩定收斂的技巧。
* 迷你批次(Mini-batch):將整個訓練資料集分割成多個小批次以加速運算。
* 批次大小(Batch Size):每次用於計算梯度的資料樣本數。
* 批次(Batch):一次訓練中使用的小型資料子集。
* 全批次(Full Batch):每次訓練都使用整個資料集來計算梯度。
* 隨機梯度下降(Stochastic Gradient Descent, SGD):每次僅用單筆資料更新參數的梯度下降法。
* 批次梯度下降(Batch Gradient Descent):使用部分資料(批次)估算梯度的訓練方式。
* 大批次訓練(Large Batch Training):使用大量資料於每次更新以提高穩定性。
* 小批次訓練(Small Batch Training):使用少量資料更新以增加更新頻率但波動較大。
* 模型擺盪(Parameter Oscillation):參數在訓練過程中因梯度不穩定而劇烈變化。
* 訓練穩定性(Training Stability):模型在更新過程中保持平滑與可控的能力。
* 更新頻率(Update Frequency):每個 epoch 中參數被更新的次數。
* 資料掃描(Data Pass):訓練中完整看過所有資料一次的過程。
* Epoch(訓練輪次):所有訓練資料被模型完整看過一次的單位。
* 訓練週期(Training Cycle):模型從一輪資料學習到更新的過程。
* 小批次更新(Mini-batch Update):基於部分資料的梯度更新操作。
* 梯度估計(Gradient Estimation):利用批次資料近似整體梯度的過程。
* 批次損失(Batch Loss):在單一批次資料上計算的平均損失。
* 全域損失(Global Loss):基於所有資料的平均損失。
* 抽樣誤差(Sampling Error):由於僅取部分資料導致的梯度偏差。
* 擬合穩定性(Fit Stability):模型在多批次間保持一致性的能力。
* 批次隨機化(Batch Shuffling):在每個 epoch 重新打亂資料以避免模式重複。
* 資料打亂(Data Shuffle):隨機排列樣本順序以提升模型泛化性。
* 超參數(Hyperparameter):需手動設定的訓練控制變數。
* 超參數調整(Hyperparameter Tuning):調整 learning rate、batch size 等以優化結果。
* 學習率(Learning Rate):控制每次梯度更新步長的參數。
* 更新步伐(Step Size):每次參數調整的實際變動量。
* 計算效率(Computational Efficiency):演算法在資源使用上的效率。
* 計算負擔(Computation Cost):模型訓練所需的時間與資源開銷。
* 訓練加速(Training Acceleration):透過批次或硬體優化加快學習過程。
* 震盪現象(Training Oscillation):模型在最小值附近不穩定震動的現象。
* 隨機性(Stochasticity):由隨機取樣產生的不確定性特性。
* 泛化誤差(Generalization Error):模型在未知資料上的預測誤差。
* 驗證資料集(Validation Set):用於調整模型與檢查過擬合的資料。
* 測試資料集(Test Set):最終評估模型表現的資料。
* 驗證階段(Validation Phase):評估訓練中模型性能的步驟。
* 驗證誤差(Validation Loss):模型在驗證資料上的損失值。
* 模型驗證(Model Validation):透過驗證資料檢查模型泛化能力的過程。
* 評估指標(Evaluation Metric):用於衡量模型表現的量化標準。
* 均方誤差(Mean Squared Error, MSE):預測與真值差的平方平均。
* 模型高估(Overestimation):模型預測值系統性偏高的現象。
* 模型低估(Underestimation):模型預測值系統性偏低的現象。
* 訓練誤差(Training Loss):模型在訓練資料上的平均損失。
* 模型誤差分析(Error Analysis):檢查模型預測錯誤來源的過程。
* 模型泛化(Model Generalization):模型適用於新資料的能力。
* 模擬考(Mock Evaluation):以驗證集模擬真實測試的檢驗方法。
* 真實測試(Final Testing):模型完成後在新資料上的最終評估。
* 訓練流程(Training Pipeline):從資料處理到模型驗證的完整步驟。
* 過擬合檢測(Overfitting Detection):透過驗證結果監測模型是否記憶訓練資料。
* 模型重新訓練(Retraining):根據驗證結果調整模型與超參數後再訓練。
* 誤差爆增(Error Spike):模型在驗證集上損失劇增的情況。
* 資料分佈(Data Distribution):訓練與驗證資料中樣本的統計分佈。
* 資料偏移(Data Shift):訓練資料與實際應用資料分佈不同導致模型表現下降的現象。
* 訓練資料選擇(Training Data Selection):挑選能代表實際應用情境的資料以提升泛化能力。
* 導論課程(Introductory Course):內容偏淺但概念需講清楚,通常需要較多投影片。
* 模型錯置(Model Misalignment):訓練目標與真實應用目標不一致造成效能不佳。
* 重新訓練(Retraining):更換資料或設定後重新訓練模型的過程。
* 模型調整(Model Adjustment):修改訓練資料、模型結構或超參數以改善表現。
* 函式空間(Function Space):模型可表達的所有函式集合。
* 線性模型(Linear Model):模型假設輸入與輸出間為線性關係。
* 非線性關係(Nonlinear Relationship):輸入與輸出間存在曲線或複雜關聯。
* 函式逼近(Function Approximation):用模型近似任意目標函式的能力。
* 分段線性函式(Piecewise Linear Function):由多個線段組成的曲線函式。
* 分段線性逼近(Piecewise Linear Approximation):用多段直線近似任意曲線的方法。
* 山坡函式(Hill Function):具有單一轉折的分段線性函式。
* 組合函式(Compositional Function):多個基礎函式線性組合成複雜曲線。
* 常數項(Constant Term):函式中的固定偏移值。
* 激活函式(Activation Function):在神經網路中引入非線性的函式。
* ReLU(Rectified Linear Unit):常用的激活函式,定義為 max(0, x)。
* 參數 C、W、b:分別控制輸出縮放、輸入斜率及偏移。
* 神經元(Neuron):輸入經權重加總後通過激活函式產生輸出的單位。
* 層(Layer):由多個神經元組成的運算單元集合。
* 隱藏層(Hidden Layer):輸入層與輸出層之間的中間層,用於特徵轉換。
* 深度學習(Deep Learning):含多層神經網路的學習方法。
* 神經網路(Neural Network):由多層神經元組成的可學習映射系統。
* 向量(Vector):一組有序數值,用於表示輸入或輸出。
* 矩陣(Matrix):用於描述多個神經元權重關係的數學結構。
* 向量運算(Vectorized Operation):以矩陣乘法方式同時計算多個輸入輸出。
* 前向傳播(Forward Propagation):資料自輸入經各層傳遞至輸出的過程。
* 反向傳播(Backpropagation):根據誤差計算梯度並更新參數的演算法。
* 參數共享(Parameter Sharing):多個輸入共享相同權重的設計方式。
* 權重矩陣(Weight Matrix):連接前後層神經元的權重集合。
* 偏置向量(Bias Vector):為每個神經元提供偏移值的向量。
* 輸出層(Output Layer):產生最終預測結果的網路層。
* 隱藏表示(Hidden Representation):網路中間層對輸入的內部表徵。
* 激活值(Activation Value):經激活函式後輸出的數值。
* 非線性轉換(Nonlinear Transformation):引入非線性以提升模型表達能力的過程。
* 通用近似定理(Universal Approximation Theorem):有限神經元的神經網路可逼近任意連續函數。
* 模型容量(Model Capacity):模型可擬合複雜函數的能力。
* 過度擬合(Overfitting):模型在訓練資料上表現過好而無法泛化的現象。
* 權重參數(Weight Parameters):控制輸入特徵對輸出的影響程度。
* 偏差參數(Bias Parameters):調整神經元輸出基準的參數。
* 向量轉置(Vector Transpose):將列向量與行向量互換的運算。
* 前饋神經網路(Feedforward Neural Network):資料只沿一方向流動的網路結構。
* 特徵選擇(Feature Selection):挑選對模型預測最有用的輸入變數。
* 特徵向量(Feature Vector):用於描述樣本的多維輸入資料。
* 線性組合(Linear Combination):多個輸入經加權求和後的結果。
* 激活函式符號 σ(Sigma):常用來表示 ReLU 或其他非線性函式。
* 多層感知器(Multilayer Perceptron, MLP):含多層全連接神經元的前饋網路。
* 網路深度(Network Depth):神經網路的層數。
* 網路寬度(Network Width):單層中神經元的數量。
* 函式逼近能力(Function Approximation Power):模型能模擬不同函數形狀的程度。
* 參數更新(Parameter Update):依據梯度與學習率調整權重與偏差的過程。
* 損失梯度(Loss Gradient):損失對模型參數的偏微分。
* 高維參數空間(High-dimensional Parameter Space):神經網路中大量參數構成的空間。
* 自動微分(Automatic Differentiation):框架自動計算梯度的技術(如 PyTorch、TensorFlow)。
* 訓練框架(Deep Learning Framework):用於構建與訓練神經網路的工具庫。
* 反向傳播實作(Backprop Implementation):框架內部自動進行梯度傳遞與參數更新的機制。
* 全批次訓練(Full-batch Training):一次使用所有訓練資料更新參數的方法。
* 損失曲線(Loss Curve):顯示訓練過程中損失值隨 epoch 變化的圖表。
* 訓練損失(Training Loss):模型在訓練資料上計算的誤差值。
* 驗證損失(Validation Loss):模型在驗證資料上計算的誤差值。
* 全域最小值(Global Minimum):損失函數在參數空間中的最低點。
* 區域最小值(Local Minimum):損失函數在某局部區域的最低點。
* 鞍點(Saddle Point):梯度為零但不是最小值的平坦區域。
* 梯度(Gradient):損失對模型參數的偏導數,用於指示下降方向。
* 梯度消失(Gradient Vanishing):梯度變得極小導致訓練停滯的問題。
* 優化(Optimization):尋找最佳參數以最小化損失函數的過程。
* 最佳化方法(Optimization Method):用於更新模型參數的演算法。
* 學習率(Learning Rate):控制參數更新步伐大小的超參數。
* 超參數(Hyperparameter):訓練前設定、不可透過學習自動獲得的參數。
* 迭代次數(Epochs):模型完整看過所有訓練資料的次數。
* 梯度下降(Gradient Descent):根據梯度方向更新參數的基本優化演算法。
* 隨機梯度下降(Stochastic Gradient Descent, SGD):每次用部分資料更新參數的演算法。
* 早停(Early Stopping):當驗證損失不再改善時提前停止訓練的方法。
* 損失函數(Loss Function):評估模型預測與實際值差距的函數。
* 訓練收斂(Training Convergence):損失值不再明顯下降的狀態。
* 過度擬合(Overfitting):模型過度學習訓練資料導致泛化能力下降的現象。
* 欠擬合(Underfitting):模型無法充分學習資料模式的現象。
* 模型容量(Model Capacity):模型能表示函數複雜度的能力。
* 泛化能力(Generalization Ability):模型在未見資料上維持表現的能力。
* 函式空間(Function Space):模型可表達的函數集合。
* 應用範圍(Hypothesis Space):模型假設可涵蓋的函式範圍。
* 測試資料(Test Set):最終評估模型效能的資料集。
* 驗證資料(Validation Set):用於調整超參數與監控過擬合的資料集。
* 公開測試集(Public Set):競賽中可重複測試的資料子集。
* 私有測試集(Private Set):最終評分使用的隱藏測試資料集。
* 基準測試(Benchmark):用於比較模型效能的標準資料集。
* 準確率(Accuracy):正確預測數量佔總預測數量的比例。
* 精確匹配率(Exact Match, EM):模型輸出與正確答案完全相符的比例。
* 過度測試(Over-testing):頻繁使用測試集導致模型對測試資料過擬合。
* 訓練循環(Training Loop):執行前向傳播、損失計算與參數更新的迴圈。
* 反向傳播(Backpropagation):計算梯度並更新參數的演算法。
* 深度學習(Deep Learning):含多層神經網路的學習方法。
* 神經網路(Neural Network):由神經元組成的非線性函數模型。
* 隱藏層(Hidden Layer):輸入與輸出之間進行特徵轉換的層。
* 激活函數(Activation Function):為網路引入非線性的函數。
* ReLU 函數(Rectified Linear Unit):輸出 max(0, x) 的常見激活函數。
* 模型初始化(Model Initialization):設定權重與偏置的初始值過程。
* 梯度爆炸(Gradient Explosion):梯度過大導致參數發散的現象。
* 批次大小(Batch Size):每次更新使用的訓練樣本數。
* 參數更新(Parameter Update):根據梯度與學習率調整權重的步驟。
* 訓練曲線(Training Curve):顯示訓練過程中損失或準確率變化的圖。
* 特徵工程(Feature Engineering):設計輸入變數以提升模型效能的過程。
* 特徵選擇(Feature Selection):挑選對預測最有幫助的輸入特徵。
* 平均字數特徵(Average Words per Slide Feature):每頁投影片平均字數的輸入特徵。
* 函式擬合(Function Fitting):用模型近似資料分佈或函式關係的過程。
* 模型比較(Model Comparison):對不同模型效能進行量化評估的過程。
* 均方誤差(Mean Squared Error, MSE):預測值與真實值差的平方平均,用於衡量模型準確度。
* 損失函數(Loss Function):量化模型預測誤差的函數。
* 線性模型(Linear Model):輸出為輸入變數線性組合的模型。
* 權重(Weight, W):控制輸入特徵影響力的參數。
* 偏置(Bias, B):調整模型輸出的常數項。
* 預測值(Prediction, Ŷ):模型根據輸入計算的輸出結果。
* 真實值(True Value, Y):實際的正確答案。
* 暴力搜尋(Brute Force Search):枚舉所有可能參數組合以尋找最佳解的方式。
* 誤差平面(Error Surface):以參數為軸、損失為高度的函數圖。
* 等高線圖(Contour Plot):顯示損失平面的等值線圖形。
* 參數空間(Parameter Space):模型參數可能取值的範圍。
* 全域最小值(Global Minimum):損失函數的最小可能值。
* 局部最小值(Local Minimum):局部範圍內的最小損失值。
* 梯度下降(Gradient Descent):根據梯度方向更新參數以最小化損失的演算法。
* 偏微分(Partial Derivative):對單一參數求導以獲得梯度分量的運算。
* 梯度(Gradient):損失對參數的偏導數集合。
* 學習率(Learning Rate):控制參數更新步伐大小的超參數。
* 超參數(Hyperparameter):需手動設定、影響訓練過程的控制參數。
* 迭代次數(Epochs):完整訓練集被模型看過一次的訓練輪數。
* 訓練資料(Training Data):用於學習模型參數的資料集。
* 驗證資料(Validation Data):用於調整模型參數與監控過擬合的資料集。
* 測試資料(Test Data):最終評估模型效能的資料集。
* 模型初始化(Model Initialization):設定模型權重與偏置初始值的過程。
* 參數更新(Parameter Update):根據梯度調整權重與偏置的步驟。
* 學習曲線(Learning Curve):顯示損失或準確率隨訓練輪數變化的圖形。
* 訓練收斂(Training Convergence):損失不再顯著下降的狀態。
* 過擬合(Overfitting):模型在訓練集上表現良好但泛化能力差的現象。
* 欠擬合(Underfitting):模型無法充分擬合訓練資料的情況。
* 泛化能力(Generalization Ability):模型在未見資料上保持效能的能力。
* 誤差下降(Loss Reduction):訓練過程中損失逐步降低的現象。
* 學習率爆炸(Learning Rate Explosion):學習率過大導致損失劇烈增長的問題。
* 收斂速度(Convergence Speed):模型訓練接近最優解的速度。
* 數值穩定性(Numerical Stability):演算法在計算過程中避免溢出或不穩定的能力。
* 特徵(Feature):作為模型輸入的可觀測變數。
* 標籤(Label):對應於輸入特徵的真實輸出值。
* 函式擬合(Function Fitting):以數學模型逼近資料中關係的過程。
* 最佳化問題(Optimization Problem):尋找最小化損失的參數組合的數學問題。
* 平方誤差(Squared Error):預測值與真實值差的平方。
* 平均值運算(Mean Operation):對多筆樣本的誤差取平均。
* 權重梯度(Weight Gradient):損失對權重的偏導數。
* 偏置梯度(Bias Gradient):損失對偏置的偏導數。
* 隨機初始化(Random Initialization):以亂數設定初始權重值的方法。
* 誤差分析(Error Analysis):檢視損失來源與模型缺陷的過程。
* 超參數調整(Hyperparameter Tuning):嘗試不同參數組合以改善模型效能。
* 學習率衰減(Learning Rate Decay):隨訓練進程逐步減小學習率的方法。
* 模型可視化(Model Visualization):用圖形方式呈現模型行為與訓練過程。
* 直線回歸(Linear Regression):透過線性關係預測連續目標變數的模型。
* 訓練歷史(Training History):訓練過程中記錄的損失與參數變化資料。
* 最小平方解(Least Squares Solution):以最小平方誤差為目標的最佳參數組合。
* 演算法收斂(Algorithm Convergence):訓練過程趨於穩定並接近最優解的狀態。
* 批次大小(Batch Size):每次參數更新時所使用的訓練樣本數量。
* 隨機梯度下降(Stochastic Gradient Descent, SGD):每次使用單一樣本進行參數更新的演算法。
* 小批次梯度下降(Mini-Batch Gradient Descent):使用多筆樣本組成的批次進行參數更新的方法。
* 全批次梯度下降(Full-Batch Gradient Descent):使用所有訓練資料一次性更新參數的方式。
* 隨機洗牌(Random Shuffle):在每個訓練週期開始前隨機打亂資料順序的過程。
* 前向傳播(Forward Pass):從輸入經過網路層層計算輸出預測的過程。
* 反向傳播(Backward Pass):計算損失對每個參數的梯度並反向傳遞的過程。
* 反向傳播演算法(Backpropagation):計算神經網路梯度的核心演算法。
* ReLU 函數(Rectified Linear Unit):非線性激活函數,將負值輸出為 0,正值保持不變。
* 激活函數(Activation Function):為模型引入非線性特性的函數。
* 隱藏層(Hidden Layer):輸入與輸出層之間的中間神經層。
* 神經元(Neuron):神經網路中的基本計算單元。
* 權重矩陣(Weight Matrix):連接不同層神經元之間的可學習參數。
* 偏置向量(Bias Vector):調整神經元輸出的偏移量。
* 向量化運算(Vectorized Computation):使用矩陣運算加速模型訓練的技術。
* 矩陣相乘(Matrix Multiplication):神經網路層間資料傳遞的基本運算。
* 前饋神經網路(Feedforward Neural Network):資料僅從輸入流向輸出的神經網路。
* 參數初始化(Parameter Initialization):為權重與偏置設定初始值的過程。
* Xavier 初始化(Xavier Initialization):一種保持層間輸出方差穩定的初始化方法。
* He 初始化(He Initialization):適用於 ReLU 激活函數的初始化策略。
* 過擬合(Overfitting):模型過度學習訓練資料細節導致泛化能力下降的現象。
* 欠擬合(Underfitting):模型未能充分學習資料模式的情況。
* 驗證集(Validation Set):用於調整模型超參數與監控過擬合的資料集。
* 測試集(Test Set):用於評估最終模型泛化能力的資料集。
* 訓練輪數(Epoch):模型完整看過一次訓練資料的次數。
* 動態學習率(Adaptive Learning Rate):根據訓練狀況自動調整學習率的策略。
* Adam 優化器(Adam Optimizer):一種結合動量與自適應學習率的參數更新方法。
* 動量法(Momentum):使用過去梯度加速收斂的最佳化技巧。
* 學習率衰減(Learning Rate Decay):隨訓練進程逐步減小學習率的策略。
* 梯度爆炸(Gradient Explosion):梯度值過大導致訓練不穩定的現象。
* 梯度消失(Gradient Vanishing):梯度過小導致參數無法有效更新的問題。
* 損失函數(Loss Function):衡量模型預測與真實值差異的函數。
* 均方誤差(Mean Squared Error, MSE):誤差平方的平均值,用於迴歸問題。
* 正規化(Regularization):防止模型過擬合的技術。
* L2 正規化(L2 Regularization):在損失函數中加入權重平方懲罰項。
* 批次歸一化(Batch Normalization):對每個批次的輸入進行標準化以穩定訓練。
* 激活圖(Activation Map):隱藏層輸出的可視化表示。
* 誤差曲面(Error Surface):參數與損失函數之間關係的多維空間圖。
* 損失收斂(Loss Convergence):損失值逐漸穩定於最小值的過程。
* 泛化能力(Generalization Ability):模型在未見資料上的表現能力。
* 超參數(Hyperparameter):需人工設定、影響訓練過程的參數。
* 模型選擇(Model Selection):選擇最佳模型與超參數組合的過程。
* 過程記錄(Training History):記錄訓練過程中損失與準確度變化的資料。
* 驗證曲線(Validation Curve):顯示不同超參數設定下模型效能的圖。
* 早停法(Early Stopping):在驗證集損失惡化前停止訓練的策略。
* 特徵縮放(Feature Scaling):將不同特徵值範圍調整至相似尺度的處理。
* 資料標準化(Data Normalization):對輸入資料進行均值為零、方差為一的轉換。
* 隨機初始化種子(Random Seed):控制隨機數生成結果可重現的設定。
* 模型穩定性(Model Stability):模型在不同初始化與資料擾動下結果的一致性。
* 泛化誤差(Generalization Error):模型在未知資料上預測的誤差。