📉 梯度下降與數值最佳化
機器學習的本質就是一個最佳化問題:找到一組參數,讓損失函數的值最小。
本課程將從最基礎的梯度下降開始,一步步實作 Momentum、RMSProp、Adam 等現代最佳化器,並用 Vibe Coding 視覺化它們的收斂行為。
🔥 Vibe Coding 核心 Prompt
【梯度下降詠唱範例】
「請幫我視覺化梯度下降的收斂過程:1. 建立一個二維的損失函數 f(x,y) = x² + 2y²。2. 從 (3, 4) 開始,使用學習率 lr=0.1 進行梯度下降。3. 用等高線圖顯示損失函數,並畫出參數的更新軌跡。4. 比較不同學習率 (0.01, 0.1, 0.5) 的收斂速度。5. 加入 Momentum 項,觀察振盪減少的效果。6. 用動畫展示每一步的更新過程。」
🎯 課程大綱
- 梯度下降原理 — 從微積分直覺理解梯度,實作基本 GD 演算法
- Momentum 與 Adam — 加入動量與自適應學習率,解決 GD 的振盪與卡點問題
- SGD 與 Mini-Batch — 大規模資料下的隨機最佳化策略
- 自動微分 — 從零打造 autograd 引擎,理解 ML 框架的底層
- 實戰:線性回歸 — 整合所有最佳化器,從零訓練完整模型
你將學到
- ✅ 梯度下降的數學原理與程式實作
- ✅ Momentum、RMSProp、Adam 等現代最佳化器的差異與選用時機
- ✅ Batch GD、SGD、Mini-Batch SGD 的取捨與收斂特性
- ✅ 自動微分引擎的實作原理(PyTorch/TensorFlow 的核心)
- ✅ 如何用 Vibe Coding 快速實驗最佳化演算法
- ✅ 學習率排程、梯度裁剪等實戰調參技巧
適合誰
- ML 初學者:想理解「訓練模型」背後到底發生什麼事
- 工程師:想跳脫套件黑盒子,親手實作最佳化演算法
- 接案開發者:需要為專案選擇合適的訓練策略與超參數
🔧 使用的技術
- 🐍 Python + NumPy — 從零實作,不依賴 ML 框架
- 📈 Matplotlib — 視覺化收斂曲線與參數軌跡
- 🤖 Scikit-Learn — 做為基準線比較
- 🎯 Vibe Coding — 用自然語言描述即可生成最佳化程式碼
梯度下降實戰要點
梯度下降是機器學習中最核心的最佳化演算法。理解它的變體(SGD、Momentum、Adam)對於訓練深度學習模型至關重要。
核心概念
- 梯度方向是函數增加最快的方向
- 學習率決定每一步的大小
- SGD 用隨機樣本近似梯度
- Momentum 加速收斂
- Adam 結合 Momentum + RMSProp
課程導覽
梯度下降是機器學習和深度學習的核心引擎。
| 章節 | 主題 | |:----|:----| | 第一章 | 梯度下降原理 | | 第二章 | Momentum 與 Adam | | 第三章 | 隨機梯度下降 SGD | | 第四章 | 自動微分 AutoDiff | | 第五章 | 線性迴歸實戰 |