故事的開始從想看懂生成式模型的 flow matching 方法.
搜尋一下需要的數學知識, 大概還需要補 ordinary/partial differential equations, vector calculus (Gauss divergence theorem, Continuity equation), numerical methods for solving PDEs.
這些知識正好就是 Coursera 這門專項課的內容: Mathematics for Engineers Specialization by Prof. Jeffrey R. Chasnov
用了四個月的時間很充實又愉快的學習了四門課程
好啦我承認也花了點上班時間來學習 😆, 主要假日盡量投入, 確實有點辛苦
說一下四門課的心得內容:
Matrix Algebra for Engineers [筆記]
輕鬆愉快的線性代數複習體驗, 雖然沒有涵蓋以前學到的所有內容, 但重要的基礎內容都有包含
這邊特別推薦一下周老師的網頁: https://ccjou.wordpress.com/, 搭配一起學習會更扎實!Differential Equations for Engineers [筆記]
我以前從來沒學過 differential equations, 因此這門課對我來說大部分是全新的知識, 算是圓了以前就想接觸看看微分方程的願望吧!
整體感覺就是 Ansatz, Ansatz and Ansatz…
過程大概是這種感覺, 首先讓我們猜猜這個 ODE 的解長什麼樣
假設長這樣, 我們代入 boundary conditions 和使用 superposition 就能得到一般解的結果… done
(學了整個課程感覺針對不同類別的 ODE 猜不同的長相, 但解的流程大部分如上述. 好奇這樣能把所有可能的解的長相都找到嗎?)Vector Calculus for Engineers [筆記]
我太喜歡這部分了! Divergence, Curl, Laplace operators. Line and surface integral. Gauss divergence theorem, Continuity equation, Stokes’ theorem. 每樣都給讓我感受到數學很美. 看透了這部分再去讀 flow matching 感覺視野都打開了.Numerical Methods for Engineers [筆記]
這門課相當於總結了之前那三門課的實務層面, 不過我一開始在猶豫要不要花時間學
原因是這門課使用 Matlab. 以前確實用比較熟練, 但現在都是 Python, 可能 Matlab 都忘了差不多了, 譬如很基本的一件事是 Matlab indexing 從 $1$ 開始…
後來想說反正讓 AI 去幫忙我這邊的 Matlab coding, 正好也體驗一下用 AI 輔助學習效果如何.
結論是好棒棒! 方便👍🏻!
回到這門課, 對於理解真的實作會遇到什麼問題, 這門課給出實際的解法. 譬如, 如果矩陣比較大的時候 Gauss elimination 容易數值不穩定, 所以需要 partial pivoting. 怎麼做 root finding? 積分到底要怎麼做? 還有最重要的 ODE/PDE 怎麼數值模擬 (well known Runge Kutta Methods)?
對於想了解背後實作秘密的人, 且喜歡追根究底的人, 應該會學得挺開心的. 😃 至少我是拉!
最後真的很感謝 Prof. Jeffrey R. Chasnov 提供這麼精彩的課程, 不僅課程內容在 Youtube 能免費全部看到, 使用的課本教材也都免費
🎉一路上收穫滿滿, 受用無窮🎉
2025/03/13