📉 梯度下降與數值最佳化

機器學習的本質就是一個最佳化問題:找到一組參數,讓損失函數的值最小。

本課程將從最基礎的梯度下降開始,一步步實作 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. 用動畫展示每一步的更新過程。」

🎯 課程大綱

  1. 梯度下降原理 — 從微積分直覺理解梯度,實作基本 GD 演算法
  2. Momentum 與 Adam — 加入動量與自適應學習率,解決 GD 的振盪與卡點問題
  3. SGD 與 Mini-Batch — 大規模資料下的隨機最佳化策略
  4. 自動微分 — 從零打造 autograd 引擎,理解 ML 框架的底層
  5. 實戰:線性回歸 — 整合所有最佳化器,從零訓練完整模型

你將學到

  • ✅ 梯度下降的數學原理與程式實作
  • ✅ 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 | | 第五章 | 線性迴歸實戰 |