Skip to content
所有分類

learning

261 篇文章

台大 AI/ML 課程導讀:李宏毅、林軒田、陳縕儂的課,校外到底拿得到哪些?

台大的 AI/ML 課散在電機系與資工系,官方用「機器學習與人工智慧」領域專長把它們排成四層。校外最完整的是李宏毅:ML 2026 Spring 與生成式 AI 與機器學習導論 2025 Fall 都公開投影片、錄影、作業 PDF 與 Colab,只差評分平台。林軒田的錄影齊全,Fall 2024 的 HW0–HW7 題目也留在課程頁;陳縕儂的課錄影齊全,作業大多只公開說明影片;Coursera 自 2025 年 8 月起改為只能免費看第一單元。

台灣其他學校 AI 公開課地圖:從 TAICA 課程清單找出清大、政大、成大、北科的公開課

台大以外的台灣 AI 公開課,大多出自教育部成立的 TAICA 聯盟。每學期的課程清單會寫明每門主導課從哪裡直播,填 YouTube 的課,錄影通常校外也看得到。校外能完整自學的有兩門:清大高宏宇《自然語言處理》Fall 2025 與政大蔡炎龍《生成式 AI》Spring 2025,都是 A3。成大朱威達《人工智慧導論》、北科韓秉軒《智慧人機互動》、清大胡敏君《機器導航與探索》錄影齊全,作業留在 NTU COOL,列 A2。陽明交大的 TAICA 課都是英文授課,深度學習的錄影沒有公開列出,Physical AI 剛開學,都沒有進主表。

CS189 有三個版本:Spring 2026 底本、Spring 2025 經典版、Fall 2026 進行中

Berkeley CS189 在網路上同時有好幾個學期的版本。本系列之後的講次與作業導讀以 Spring 2026(Listgarten/Dimakis)為底本:講義、25 支講課影片、附解答的 discussion、HW1–5 題目與期中考解答都能匿名取得,判為 A3。Spring 2025(Shewchuk)是另一條經典路線,SVM、決策樹、PCA、boosting 只有它講;Fall 2025 的作業資料夾匿名打開是空的,所以不選;Fall 2026 還在進行中,只拿來對照。

CS189 Spring 2026 HW1 導讀:線代/微積分/機率熱身 + Fashion coding

CS189 Spring 2026 HW1 分三塊:10 題書面數學熱身(線性方程組、特徵分解求矩陣冪次極限、SVD、翻轉影像的矩陣、偏微分、遞迴式連鎖律、四題機率含癌症篩檢的 Bayes),加上兩本公開在 Modal 上的 Fashion-MNIST notebook:Part 1 練 pandas/Plotly/K-means/MLP/矩陣做影像增強/tensor 謎題,Part 2 做價格回歸、MAE/MSE/R²、混淆矩陣,最後處理一份被旋轉過的秘密測試集。截止 2/20,沒有官方解答。

CS189 Spring 2026 HW2 導讀:Chatbot Arena 論文題、回歸、MLE/MAP、GMM 到 flow matching

HW2 是一份純書面作業,共 10 題。前半練讀論文(Chatbot Arena)和回歸、MLE/MAP 的基本推導,後半兩大題最重:Mixed Feelings 從 k-means 對離群值的脆弱一路推到 robust k-means 和加了均勻背景的 GMM;Watch Me Flow Dat 證明 conditional flow matching 和離散化後的 MLE 是同一個目標。題目 PDF 和 LaTeX 範本都能匿名下載,沒有官方解答。

CS189 Spring 2026 HW3 導讀:從零寫 autograd(BearTensor)、Newton 法、資訊瓶頸

HW3 分兩半:書面四題從 logistic regression 的 Newton 法、座標下降的收斂分析,走到反向傳播/VJP/隱式微分,最後用資訊瓶頸重新看「深度網路在壓縮什麼」;notebook 要你用 NumPy 寫出 BearTensor 計算圖、拓撲排序反向傳播、SGD/Momentum/Adam,再拿它訓練紅酒品質回歸,選做 Muon。題目與 notebook 全部公開,官方解答與 hidden tests 不公開。

CS189 Spring 2026 HW4 導讀:ResNet/Transformer 論文題與 CNN、ResNet、Transformer、DNABERT、ConvNeXt 實作

HW4 分三份:書面題帶你用「問題 → 現有做法 → 提案 → 方法 → 貢獻」的順序讀 ResNet 與《Attention Is All You Need》;4.1 notebook 用 PyTorch 寫 CNN、ResNet-18,再從 softmax 一路拼出 encoder-decoder transformer,在 TinyStories 上訓練並生成故事;4.2 notebook 把 DNA 切成 6-mer 餵給預訓練 DNABERT 分物種,把聲音轉成頻譜圖交給 ConvNeXt,比較從零訓練、凍結 backbone、全解凍三種微調。兩個 Kaggle 競賽,5/1 截止。校外讀者拿得到題目,拿不到課程資料包與測試。

CS189 Spring 2026 HW5(選修)導讀:生物自監督 InfoNCE、diffusion 理論、LLM fine-tuning + Kaggle

HW5 是 Spring 2026 唯一標成選修的作業,5/11 到期,和期末考同一天。書面有三塊:用 scRNA-seq 當背景推 InfoNCE 的梯度與負樣本數的取捨;證明最佳去噪器是條件期望、推到 continuity equation;把 flow matching 的直線路徑推廣成一般插值。Notebook 則是完整的 LLM 微調流程:固定用 Qwen2.5-0.5B-Instruct,把 MMLU machine_learning 轉成 chat 格式,用 TRL 的 SFTTrainer 全參數微調,比較微調前後在 CS189 考題上的準確率,最後對 169 題測試集提交 Kaggle,同時要防 catastrophic forgetting。官方附 hw5-sol.pdf,只涵蓋書面題。

CS189 Spring 2026 Lec 1–3:ML 問題框架、資料工具、術語與技巧

CS189 Spring 2026 的前三講不急著推公式,先教你怎麼判斷一個問題該不該用 ML、怎麼用 pandas 和 Plotly 看資料、怎麼用 scikit-learn 走完一次訓練、驗證、測試的流程。Lec 1 只有投影片沒有錄影;Lec 2–3 有投影片與影片;Discussion 1 是微積分、線代、機率的熱身,附解答與 walkthrough。這三講是 HW1 的直接前置。

CS189 Spring 2026 Lec 4–7:K-means、機率複習、MLE、多變量高斯與 GMM

CS189 Spring 2026 第 4–7 講用一條線串起非監督式學習:先用 K-means 分群,指出它的弱點(硬指派、沒有機率框架、只適合體積相近的圓形群),再複習機率、引入最大概似估計(MLE)與多變量高斯,最後把 K-means 改寫成高斯混合模型(GMM)。GMM 的 log-likelihood 沒有封閉解,這個缺口正好把課程帶向梯度下降。四講都有投影片與影片,Discussion 2–3 附解答與 walkthrough。

CS189 Spring 2026 Lec 7–10:線性回歸、最小平方的幾何、正則化

CS189 Spring 2026 用四講把線性回歸講成同一件事的三個角度:高斯雜訊下的 MLE 等於最小平方;最小平方的解是把 y 正交投影到 X 的欄空間;特徵共線或參數太多時,用 ridge(等於高斯先驗的 MAP)或 lasso(等於 Laplace 先驗)把解拉回來,λ 則交給驗證集決定。講義、影片、Discussion 3–4 解答都能匿名取得。

CS189 Spring 2026 Lec 11–12:分類、生成式分類器、logistic regression、ROC

CS189 Spring 2026 Lec 11–12 把分類拆成兩條路:生成式先為每一類建 p(x|y)(GDA:共變異數相同得 LDA、線性邊界,不同得 QDA、二次邊界),判別式直接建 p(y|x)(logistic regression:sigmoid、softmax、交叉熵 MLE,沒有封閉解要靠梯度下降)。兩者的橋是:LDA 的後驗一定能寫成 logistic 形式,反過來不成立。評估方面,準確率在類別不平衡時會騙人,ROC/AUC 掃過所有門檻、不看校準,PR 曲線則在意類別比例。

CS189 Spring 2026 Lec 13、15:收斂、Momentum、Adam、SGD

CS189 Spring 2026 用兩講處理梯度下降。Lec 13 從 Hessian 的特徵值推出學習率上限和條件數,再一路講到 momentum、學習率排程、AdaGrad/RMSProp/Adam 與 mini-batch SGD。Lec 15 由 Dimakis 用一個小資料表手算梯度重走一遍。兩份講義、錄影、Lec 13 的手寫稿,以及 Discussion 6、7(附解答)都能匿名取得。

CS189 Spring 2026 Lec 14、16:MLE vs MAP、bias-variance、熵與 KL,期中自評

Lec 14 把 ridge 重新解釋成「最小平方 + 高斯先驗」的 MAP,再拆解 bias-variance,最後借 Chatbot Arena 示範怎麼讀論文。Lec 16 從壓縮講熵,接到 KL、cross-entropy,再回到 logistic regression 的損失函數。3/17 的期中考題與官方解答都公開在考古題資料夾:6 題、56 分、110 分鐘,另有 6 支逐題講解影片,可以照著模擬一次。

CS189 Spring 2026 Lec 17–18:深度、萬能近似、激活函數與反向傳播

Lec 17 用 XOR 說明為什麼線性模型、甚至多層線性模型都學不會非線性邊界,只要一層 ReLU 就能解;萬能近似定理保證「存在」,但不告訴你怎麼找權重、要多寬。Lec 18 把 chain rule 系統化成計算圖上的反向傳播:多條路徑的梯度相加,成本和參數數量成線性,有限差分則是平方。Discussion 8 讓你親手證明 GD 收斂速率與一維 ReLU 萬能近似。

CS189 Spring 2026 Lec 19–20:初始化、BatchNorm、CNN、early stopping 與 double descent

Lec 19 先收尾反向傳播,接著處理「怎麼讓梯度一直流得動」:全零初始化會讓所有單元學成一樣,要用小的隨機值(ReLU 用 He 初始化);batch norm 用 mini-batch 的平均與變異數正規化 pre-activation。後半進入 CNN:局部連接加權重共享,讓同一個特徵偵測器掃過整張圖。Lec 20 補完 pooling、receptive field 與 CNN 的訓練,再談 early stopping、dropout,以及和傳統 bias-variance 圖不一樣的 double descent。

CS189 Spring 2026 Lec 21–22:Transformers

Lec 21 先講 CNN 缺什麼:只有頂層看得到整張圖。接著用 TF-IDF、RNN 看圖說話、soft attention 鋪路。Lec 22 從「軟性字典查詢」推出 self-attention:Q、K、V 三個線性層,SoftMax(QKᵀ/√D)V,再加上多頭、MLP、殘差與 LayerNorm,組成 transformer layer。attention 本身不看順序,所以需要位置編碼。Discussion 10 手算一次 QKV,並證明為什麼要除以 √D。

CS189 Spring 2026 Lec 23–24:LLM 訓練與應用、自監督學習

Lec 23 把 transformer 接成一個會預測下一個 token 的模型:切 token、查 embedding、疊 L 層 masked attention,最後乘回 embedding 表做 softmax,用交叉熵(也就是 MLE)訓練。預訓練只給知識,要會聊天還需要 SFT、LoRA、RLHF、DPO;推論時再靠 in-context learning、RAG、chain-of-thought 與工具呼叫。Lec 24 把「自己造一個假的監督任務」推廣到影像:自編碼器、上色、補洞、旋轉、拼圖、聚類,最後到對比學習、SimCLR 與 CLIP。Discussion 11 練位置編碼、RoPE、causal mask 與 KV cache。

CS189 Spring 2026 Lec 25–27:蛋白質工程的 AI、agents 與環境,以及完課路線

最後三講把前面學的東西用在兩個前線。Lec 25 講蛋白質:AlphaFold2 解了「序列→結構」,但工程上真正卡的是「哪條序列有我要的功能」,而設計等於在 20^L 的離散空間裡當模型的對手;講義把條件生成 p(x|y) 收斂成三條統計上正確的路,最後都回到 Bayes rule。Lec 26 是線上 guest lecture,沒有公開教材。Lec 27 先定義 agent(LLM 在迴圈裡用工具、自己決定下一步),再說「資料被環境取代」:環境 = Docker + 任務 + verifier,拿來做 SFT、RL(RLVR、GRPO)或不動權重的 GEPA。期末自評用 Fall 2025 與 Spring 2025 期末考加解答,Spring 2026 期末沒有公開。

CMU 07-380 HW1 導讀:Logic and the Hybrid Wumpus Agent,邏輯推論加 A* 規劃

HW1 程式作業把 Lec2 的 entailment 做成一個 Pacman 版 Wumpus agent:Q1–Q2 用 Expr 和 pycosat 暖身,Q3–Q5 寫 PKE 感知規則、建 KB、用兩次 SAT 呼叫判斷 SAFE/NOT_SAFE/UNSURE,Q6–Q7 用現成的 A* 輔助函式組出 exploration agent 和三層策略的 hybrid agent。starter 與本機 autograder 可匿名下載;Gradescope 上的線上題只限校內。本文不附解答。

CMU 07-380 HW2 導讀:Classical and Motion Planning,從 robot-cook PDDL 到 RRT* 再到 LP 圖解

07-380 HW2 分三塊:程式作業先寫煎餅機器人的 PDDL,交給 unified-planning+Fast Downward 求最優計畫,再在 rrt.py 實作 RRT 與 RRT*(Q2–Q7);書面作業考 GraphPlan、一題 LP 建模與兩題 LP 圖解;另有只限校內的 Gradescope 線上題。本文只講題目結構、需要的概念與本機 autograder 怎麼跑,不附解答。

CMU 07-380 HW3 導讀:Optimization,自己寫 LP 求解器和 branch and bound,書面串起 PCA 與 MAP

HW3 分三塊:程式作業要你用頂點枚舉寫出 LP 求解器,再在上面疊 branch and bound 解整數規劃,外加三題文字建模;書面四題分別是整數規劃手算、Amazon 送貨路線的倫理、PCA 的 SVD 計算,以及證明 Laplace 先驗等價 L1。截止日是 10/1,本文只講結構和需要的概念,不給解答。

CMU 07-380 Lecture 1 導讀:Introduction,AI & ML II 接在 07-280 之後要解什麼問題

07-380 Lec1 沒有演算法,重點是三件事:「智慧=在不確定性下把任務做好」這條主線、投影片上那張把 07-280 與 07-380 主題分色的 AI/ML 泡泡圖,以及 Quiz 55%、沒有期末考、Project 收尾的評分結構。校外讀者先用這講替後面 25 講定位。

CMU 07-380 Lecture 2 導讀:Logical Agents,用 model checking、DPLL 與 forward chaining 證明安全格

Lec2 把踩地雷和 Wumpus World 的「這格安不安全」寫成 entailment 問題:KB ⊨ α 等價於 KB ∧ ¬α 不可滿足。能回答它的有三種做法:暴力列舉 model 的 TT-ENTAILS、在回溯上加提早終止、pure symbol、unit clause 的 DPLL,以及只吃 definite clause、線性時間的 forward chaining。Resolution 放在附錄,標示 out of scope。

CMU 07-380 Lecture 3 導讀:Classical Planning,PDDL、狀態空間搜尋與 relaxation heuristic

07-380 Lec3 把命題邏輯的 successor-state axioms 換成 STRIPS 的 pre/add/del 三個集合,規劃就變回狀態空間搜尋;搜尋太大時,GraphPlan 允許動作同時發生、事實只增不減,delete relaxation 再把刪除效果整個拿掉,換來 FF 與 Fast Downward 使用的 heuristic。

CMU 07-380 Lecture 4 導讀:Motion Planning,RRT 在連續空間用取樣找路

07-380 Lec4 後半把規劃搬到連續的 configuration space:狀態沒辦法枚舉,RRT 就隨機取樣、從樹上最近的節點往樣本延伸一小段,並檢查整段不碰撞。RRT 是 probabilistically complete 但不最優;RRT* 用樹上的路徑成本幫新節點選父節點、再重接鄰居,讓路徑隨樣本增加收斂到最優。

CMU 07-380 Lecture 5 導讀:Linear Programming,為什麼最優解落在可行域的頂點

07-380 Lec5 用 Diet Problem 把一段文字題寫成 min cᵀx s.t. Ax ⪯ b,再畫成圖:每條限制是一個半平面,cost 是一個方向,等成本線垂直於 c。沿著 −c 推到最後一刻碰到可行域的地方,一定包含某個頂點,所以演算法只要看限制邊界的交點:頂點枚舉全部檢查,simplex 從一個頂點貪心走到鄰居。

CMU 07-380 Lecture 6 導讀:Integer Programming,先鬆弛成 LP 再用 branch and bound 分支

07-380 Lec6 在 LP 上多加一條 x ∈ ℤᴺ,頂點解就可能不是整數,而且在 LP 解附近找整數點也不保證對。解法是先把整數限制拿掉(relaxation),用 LP 算出下界,再對某個非整數座標分成 xᵢ ≤ floor 與 xᵢ ≥ ceil 兩支,全部丟進依 LP 目標值排序的 priority queue;第一個被取出的整數解就是最優解。

CMU 07-380 Lecture 7 導讀:Low Rank Optimization,PCA 的重建誤差、投影變異數與 LoRA

07-380 Lec7 把 PCA 放進「低秩最佳化」的框架:找一個 rank 不超過 r 的矩陣去逼近原資料。對單位向量 v,每個點的重建誤差等於 ‖x‖² 減去投影長度的平方,所以最小化重建誤差和最大化投影變異數是同一個問題;用 Lagrange 乘數解出來,答案是共變異數矩陣的特徵向量,也可以直接從 SVD 的 V 讀出。課站把 LoRA 論文列為延伸閱讀,它的 ΔW = BA 就是同一個低秩想法用在權重更新上。

CMU 07-380 Lecture 8 導讀:MAP,先驗怎麼進入估計,為什麼等價於正則化

Lecture 8 把 MLE 的 argmax p(D|θ) 換成 argmax p(θ|D):先驗 p(θ) 乘進 likelihood,取負 log 之後就變成目標函數裡多出來的一項。用 trick coin 看先驗怎麼被資料蓋過,用 Beta 先驗算出點擊率,再把線性迴歸的高斯先驗、Laplace 先驗對到 L2、L1 正則化。

CMU 07-380 Lecture 9 導讀:Probabilistic Generative Models,Naive Bayes 與 Gaussian Discriminant Analysis

Lecture 9 不再直接學 p(y|x),改成先學類別先驗 p(y) 和類別條件分佈 p(x|y),再用 Bayes rule 反推。這樣做要付出更強的假設,換來的是能生成新資料、資料少時比較穩。Naive Bayes 用條件獨立把參數砍到可估計,GDA 用多變量高斯處理連續特徵,共變異數一不一樣決定邊界是直線還是曲線。

CMU 07-380 Lecture 10 導讀(pre-reading 版):Bayes Nets 用圖把聯合分佈拆成條件機率表

07-380 Lec10 的投影片目前還沒上課站,本文只依 PR6 Bayes Nets 預讀筆記與 15-281 Bayes Net Demo:聯合分佈能回答任何 query,但沒人給你、也大到存不下;Bayes net 把它寫成「每個節點給定父節點」的條件機率表乘積,少畫的邊就是獨立性假設。

CMU 07-380 階段回顧:從確定性推理與優化轉進不確定性

07-380 前十講依課站 Schedule 分成 Reasoning Under Certainty、Optimization、Reasoning Under Uncertainty 三段:先用邏輯證明、用搜尋規劃,再把問題寫成有限制的目標函數,最後在 MAP 讓先驗進場、轉向機率模型。HW1 檢查邏輯+搜尋、HW2 檢查規劃+LP 圖解、HW3 檢查求解器實作+PCA 與 MAP 推導。

learningguide

論文工作流三件套:Google Scholar 找、Moonlight 讀、CorTeX 寫

把論文工作流拆成三個動作——找、讀、寫,各推薦一個工具:Google Scholar 搜論文、Moonlight AI 讀論文、CorTeX 協作寫論文。三個工具免費就能用,合在一起覆蓋從文獻探索到投稿的完整流程。

learningguide

上班族英文口說怎麼練:跟讀、情境模擬、AI App 與職場句型

每天 30 分鐘、持續 12 週,用跟讀法+情境模擬+AI App 三件組合,讓職場英文從「聽得懂但說不出來」變成能開會能簡報。

A/B testing 怎麼把產品改動變成可推論的效果?

A/B testing 怎麼把產品改動變成可推論的效果? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

多組平均不能一直 t-test:ANOVA 在保護什麼?

ANOVA 先檢查三組以上平均是否有整體差異,避免你用一堆兩兩 t 檢定把 false positive 風險一路放大。

大樣本近似為什麼常能用,又什麼時候不能亂用?

大樣本近似為什麼常能用,又什麼時候不能亂用? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

Bayesian inference 怎麼把 prior、資料與 posterior 串起來?

Bayesian inference 怎麼把 prior、資料與 posterior 串起來? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

點估計的 bias、variance、consistency 各在檢查什麼?

bias 看估計中心有沒有歪,variance 看抽樣波動,MSE 合併兩者,consistency 則問樣本變大時估計量會不會靠近真值。

不知道公式分布時,bootstrap 怎麼用重抽樣估不確定性?

不知道公式分布時,bootstrap 怎麼用重抽樣估不確定性? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

因果推論入門:為什麼預測準不代表真的有效?

因果推論入門:為什麼預測準不代表真的有效? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

卡方題怎麼判斷是在考適合度還是獨立性?

卡方檢定處理類別資料的次數差異;先分清楚一個變數對理論比例的適合度,還是兩個類別變數之間的獨立性。

Bernoulli、Binomial、Normal、Poisson 什麼時候該出場?

分布不是公式清單,而是資料生成情境的名字。這篇用 Bernoulli、Binomial、Normal、Poisson 說明如何從題目敘述選分布。

信賴區間怎麼寫,才不是只背上下界公式?

信賴區間把點估計放回抽樣波動裡看;會寫上下界只是第一步,真正要會的是解釋標準誤、臨界值與 coverage。

看到一份資料,第一眼要先看哪些統計量?

資料型態決定你能用什麼統計工具。這篇從類別、數值、計數與時間資料開始,說明平均數、比例、變異數、列聯表在考題和 ML 資料檢查中的用途。

Delta method 怎麼估 F1、ratio 這類非線性指標的不確定性?

Delta method 怎麼估 F1、ratio 這類非線性指標的不確定性? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

好估計量怎麼判斷:不偏、變異、MSE 要看哪個?

估計量是用樣本推母體的計算規則;判斷它好不好,要一起看 bias、variance 與 MSE。

混合題來了,要怎麼在 30 秒內判斷工具?

考前最後階段要練的是題型辨識:先判斷資料型態、未知量與決策目標,再選公式,最後用語境結論收束。

期望值和變異數在考題與模型評估中各代表什麼?

期望值描述長期平均,變異數描述波動大小。這篇用離散分布算例說明 E[X]、E[X^2]、Var(X),並接到平均 loss 和模型穩定度。

實驗設計怎麼讓結果可以被解讀,而不是只像相關?

實驗設計怎麼讓結果可以被解讀,而不是只像相關? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

Fisher information 怎麼告訴你參數估得穩不穩?

Fisher information 用 likelihood 的曲率衡量資料對參數的定位能力;資訊越大,MLE 的標準誤通常越小。

信賴區間不只 t 表:一般建構到底怎麼想?

信賴區間不只 t 表:一般建構到底怎麼想? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

GLM 怎麼依資料型態選分布和 link function?

GLM 怎麼依資料型態選分布和 link function? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

假設檢定從 H0 到 p 值,到底要做哪個決策?

假設檢定是一套在不確定資料中做決策的流程:先寫 H0/H1,再用檢定統計量與 p 值判斷資料是否足夠反駁原假設。

估計、檢定、likelihood、Bayes 要怎麼放在同一張推論地圖?

估計、檢定、likelihood、Bayes 要怎麼放在同一張推論地圖? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

Likelihood ratio test 怎麼比較兩個巢狀模型?

LRT 比較受限模型和完整模型的 log likelihood 差;只有在 nested model 與近似條件成立時,常見卡方參考分布才有意義。

OLS 的假設壞掉時,迴歸線還能怎麼用?

OLS 的假設壞掉時,迴歸線還能怎麼用? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

分類模型為什麼要先學 log odds?

logistic regression 把線性分數接到 0 到 1 的機率;讀懂 odds、log odds、odds ratio,才不會把分類模型係數解釋錯。

Logistic regression 怎麼從機率走到 threshold 和錯誤成本?

Logistic regression 怎麼從機率走到 threshold 和錯誤成本? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

MAP 為什麼會把先驗變成 regularization?

MAP 為什麼會把先驗變成 regularization? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

Matching 和 weighting 怎麼讓觀察資料比較像實驗?

Matching 和 weighting 怎麼讓觀察資料比較像實驗? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

MLE 為什麼是在問:哪個參數最可能生成這批資料?

MLE 把資料固定、比較不同參數讓這批資料出現的合理程度;log likelihood 讓乘積變加總,也接上 ML 的 negative log loss。

Method of Moments 為什麼是用樣本矩對母體矩?

Method of Moments 用樣本矩對上理論母體矩,再解出參數;它不一定最有效率,但很適合建立參數估計的第一個直覺。

缺資料不只是空格:它會怎麼扭曲統計和模型?

缺資料不只是空格:它會怎麼扭曲統計和模型? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

ML/AI 評估報告怎麼寫,才不只是貼排行榜分數?

ML/AI 評估報告怎麼寫,才不只是貼排行榜分數? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

殘差、outlier、leverage 在告訴你模型哪裡壞了?

殘差、outlier、leverage 在告訴你模型哪裡壞了? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

多變量分析怎麼整理一起變動的特徵?

多變量分析怎麼整理一起變動的特徵? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

Neyman-Pearson 觀點在說哪一種最佳檢定?

Neyman-Pearson 把檢定看成決策規則:在固定第一型錯誤 alpha 下,選出 power 最高的拒絕區域。

Nonparametric methods 少做哪些分布假設?彈性又要付出什麼代價?

Nonparametric methods 少做哪些分布假設?彈性又要付出什麼代價? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

台大資管 114–115 統計考古題要怎麼拆,不要只背答案?

考古題的價值是訓練拆題紀律,不是用兩年題型猜完整範圍;每題都要回到資料型態、未知量、工具、計算與語境結論。

聯合分布和 PMF 轉換題,怎麼不漏格?

聯合 PMF 題要把所有格子列完;邊際化、條件機率和變數轉換,本質上都是對原始格子的加總與重新分組。

條件機率、獨立、貝氏:考題到底在換哪個視角?

機率題的難點常在視角,不在公式。這篇用事件、條件機率、獨立與 Bayes rule,說明考題如何從原因到結果、再從結果反推原因。

樣本、統計量、抽樣分布三者怎麼分清楚?

樣本是資料,統計量是樣本的函數,抽樣分布是統計量在重複抽樣下的分布;這三者分清楚,推論公式才會有意義。

PMF、PDF、CDF 怎麼把機率變成可計算的題目?

隨機變數把事件結果轉成數字。這篇用 PMF、PDF、CDF 說明離散與連續機率怎麼計算,並接到模型分數、threshold 和 token 機率分布。

迴歸表的 coef、SE、t、F、R2 要怎麼一起讀?

迴歸表不是 p 值清單;coef、SE、t、F、R2 分別回答效果大小、不確定性、單一係數、整體模型與樣本內解釋力。

Ridge、Lasso、weight decay 為什麼能讓模型穩一點?

Ridge、Lasso、weight decay 為什麼能讓模型穩一點? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

統計與 ML 評估怎麼做才重跑得出同一個結論?

統計與 ML 評估怎麼做才重跑得出同一個結論? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

為什麼只看樣本,也能推回母體或模型表現?

抽樣讓樣本統計量有波動,標準誤描述這個波動。這篇分清楚 SD、SE、抽樣分布與 CLT,並接到 benchmark 分數的不確定性。

抽樣分配怎麼從公式變成考試可用的判斷?

抽樣分配描述統計量在重複抽樣下的波動;平均、比例、變異數各有常用分布,信賴區間和檢定都從這裡長出來。

讀完 53 篇後,怎麼把統計接到 ML、因果與數理統計?

讀完 53 篇後,怎麼把統計接到 ML、因果與數理統計? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

一條迴歸線怎麼變成預測、解釋與誤差?

簡單線性迴歸用一個 X 描述 Y 的平均變化;斜率、截距、殘差和平方誤差共同構成最小的 supervised learning 模型。

Monte Carlo 怎麼用重複模擬回答算不動的統計問題?

Monte Carlo 怎麼用重複模擬回答算不動的統計問題? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

統計學從哪裡開始讀,才接得上考試和 ML/AI?

準備統計學不要從背公式開始。這篇先建立讀書順序:資料、機率、抽樣、推論、迴歸,再接到模型評估、A/B testing 與 ML/AI 的不確定性判斷。

時間序列為什麼不能隨機切資料?

時間序列為什麼不能隨機切資料? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

兩組平均或比例差異,該用哪一種比較題型?

兩組比較要先判斷 outcome 是數值還是比例、兩組資料是否獨立;這一步會決定標準誤、檢定統計量與結論可信度。

變數選擇怎麼避免把訓練資料背起來?

變數選擇怎麼避免把訓練資料背起來? 這篇會從考試題型、核心直覺、手算例子一路接到 ML/AI 的實際工作流。

統計學不是背公式:它到底在替你判斷什麼?

統計學的核心不是公式,而是判斷:描述資料、估計未知量、比較差異、檢查關聯,最後在不確定性下做決策。

CS188 Bayes Nets 與 Ghostbusters:看不見 Ghost 時怎麼推論

Lecture 13–18 與 Project 4 從 factor operations、variable elimination 走到 exact inference 與 particle filtering,讓 Pacman 用有雜訊的距離感測追蹤看不見的 ghosts。

CS188 結業路線:把 28 講與 P0–P5 變成作品集

Lecture 26–28 用核監測、AI safety 與課程回顧收尾;校外結業不該只算 autograder 分數,而要為 P1–P5 各留下模型假設、測試證據與失敗分析。

CS188 CSP 與多代理搜尋:Minimax、Alpha-Beta、Expectimax 怎麼選

Lecture 5–8 先用 CSP 練變數、限制與搜尋順序,再由 Project 2 實作 minimax、alpha-beta 與 expectimax;三者差別在對其他 agent 行為的假設。

CS188 決策與機器學習:從 VPI、Naive Bayes 到 Attention

Lecture 19–25 把 rational decisions、VPI 與 ML 接起來,Project 5 再用 PyTorch 實作 regression、分類、CNN、attention 與 optional character-GPT。

CS188 MDP 與強化學習:從 Value Iteration 到 Q-Learning

Lecture 9–12 與 Project 3 用同一個 Gridworld 對照已知模型的 value iteration、未知模型的 Q-learning,以及用 features 泛化的 approximate Q-learning。

CS188 搜尋與 Heuristic:從 DFS、BFS 到 A* 的 Pacman 實作

Lecture 1–4 與 Project 1 把 DFS、BFS、UCS、A*、state representation 和 heuristic 串成同一套搜尋工具;關鍵不是背演算法,而是看清楚 frontier、cost 與 state 各自改變什麼。

Berkeley CS188 Spring 2026:用 P0–P5 六個 Projects 學人工智慧

CS188 Spring 2026 公開 28 組錄影、27 組講義、11 組討論與 P0–P5 六個 projects;P0 是 Python/autograder tutorial,P1–P4 採 Pacman 情境,P5 是一般機器學習任務。

Berkeley CS189 Spring 2025 總覽:用 HW1–7 與 code/data 走完的機器學習,用 Fall 2026 看下一學期

CS189 在網路上有好幾個學期的版本。本系列從第 2 篇起以 Spring 2026(eecs189.org/sp26,A3)為底本,逐講、逐份作業導讀;Spring 2025(Shewchuk)是另一條經典路線,公開 25 講 notes、HW1–7 與歷屆考題,但正式錄影在 bCourses 要登入;Fall 2026 還在進行中,只拿來對照。本篇是系列入口與全系列目錄。

Berkeley CS285 L19–25:探索、RL 理論、多任務學習與開放問題

最後七講從 exploration 與理論界線,經兩講期中複習,走到 advanced exploration、multi-task RL 與仍未解決的研究問題。

Berkeley CS285 作業與期末專案:CPU、GPU、H100 成本分界

五份作業從 CPU 友善的 imitation learning 走到 H100 LLM RL 與六小時 offline RL runs;自學者應按成本分三階段,而非整套照搬。

Berkeley CS285 L1–4:模仿學習、分布偏移與 RL 基礎

前四講從 behavioral cloning 走到 MDP;HW1 再用 MSE policy、DAgger 與 flow matching,讓分布偏移從概念變成可觀察的失敗。

Berkeley CS285 L11–18:從變分推論、LLM RL 到 Offline RL

L11–18 把 control as inference、LLM RL、model-based RL 與 offline RL 接成一條主線,並用 HW4、HW5 呈現兩種高運算成本實作。

Berkeley CS285 L5–10:Policy Gradient、Actor-Critic、DQN 與 SAC

L5–10 用 policy-based 與 value-based 兩條路建立深度 RL 核心;HW2 可用 CPU,HW3 的 Atari 與 HalfCheetah 則約需數小時 GPU。

Berkeley CS285 Spring 2026 導讀:25 講、5 份作業與自學邊界

Spring 2026 CS185/285 公開 25 講投影片、9 組討論課資料、5 份作業與 starter code;當期錄影在 bCourses,HW4 預設 H100,不能把它包裝成零成本公開課。

Berkeley CS288(五):Inference-time Compute、Reasoning 與 Embodied Agents

15–18 組教材把 NLP 模型放進感知、推理、工具與環境迴圈;核心問題從下一個 token,轉成如何分配推論計算並驗證多步行動。

Berkeley CS288(一):從 n-gram、詞表示到文字分類

前四組教材先建立可計數、可表示、可分類的文字模型;A1 再要求從 n-gram、perceptron 做到 NBOW MLP。

Berkeley CS288 Spring 2026 導讀:18 組教材、三份作業與自學邊界

CS288 用 18 組公開投影片與三份作業,從 n-gram 走到 RAG、reasoning 與 agents;錄影需 Berkeley 登入,所以這是一條教材型 A3 路線。

Berkeley CS288(三):Pre-training、Post-training、Generation 與 Evaluation

08–12 組教材把 base model 變成可互動系統:預訓練決定基礎能力,post-training 改變行為,generation 與 evaluation 決定輸出如何被使用與判讀。

Berkeley CS288(四):Retrieval、RAG 與進階架構如何變成一個系統

13–14 組教材把模型接到外部知識;A3 要學生自行蒐集資料、標註 QA、建索引、做 ablation,並在 CPU 與延遲限制下交付 RAG。

Berkeley CS288(二):Sequence Models、Seq2Seq 與 Transformer

05–07 組教材把固定向量的分類器推進序列狀態、encoder-decoder,再用 attention 與 Transformer 改寫資訊路徑。

CMU 07-380 Fall 2026 總覽:首開 26 講從邏輯與規劃到擴散模型,HW 與 Project 尚未全開放

07-380 Fall 2026 是 CMU AI 新制第二門首開,26 講涵蓋邏輯、規劃、優化、機率圖、生成式與系統。依 2026-09-29 課站,Lec1–9 投影片、PR1–6 筆記、Rec1–5(含解答)與 HW1–3 已公開,本站已寫完對應的 14 篇逐講導讀;Lec10 之後的投影片、HW4–7 與 Final Project 還沒釋出,整門課仍是 A2。

CMU 10-301 HW1:先用數學與 Python 找出機器學習地基缺口

HW1 是 written+programming 作業:用機率、微積分、線代與 CS 題組檢查地基,再實作 majority-vote classifier。

CMU 10-301 HW2:從資訊量手算到完整 Decision Tree

HW2 要先用 entropy 與 mutual information 手算切分,再完成建樹、預測與評估的端到端分類器。

CMU 10-301 HW3:比較 K-NN、Perceptron 與 Linear Regression

HW3 是純 written 作業,以 decision tree 回顧,再比較 K-NN、Perceptron 與 Linear Regression 的 inductive bias、誤差與 model selection。

CMU 10-301 HW4:把 Logistic Regression 從 likelihood 寫成分類器

HW4 把機率解釋、cross-entropy 梯度與程式實作綁在一起,驗收的是一條可追蹤的訓練流程。

CMU 10-301 HW5:用 NumPy 拆開 Neural Network 與 Backpropagation

HW5 的價值在於不靠自動微分,親手追蹤 forward shapes、cache 與 backward gradients。

CMU 10-301 HW6:Learning Theory、MLE/MAP 與公平指標

HW6 把 generalization、MLE/MAP、probabilistic learning、公平指標與社會影響放在同一份 written 作業,逼你說清楚假設與取捨。

CMU 10-301 HW7:從基礎神經網路走到 Deep Learning

HW7 在 HW5 的 backpropagation 地基上加入深度模型的架構與訓練問題,重點是診斷而非只把網路加深。

CMU 10-301 HW8:從 MDP 到 Reinforcement Learning 更新規則

HW8 把 state、action、reward、transition 與 value update 接起來,驗收你能否區分環境動態、policy 與估計誤差。

CMU 10-301 HW9:用 Ensembles、k-Means、PCA 與推薦系統收束全課

最後一份 written 作業把 ensemble、clustering、representation 與 recommendation 並列,驗收你能否按問題結構選學習典範。

CMU 10-301/601 Spring 2026:用九份作業學完整機器學習

Spring 2026 的 10-301/601 公開 27 講教材與九份作業包;校外讀者能完成主要實作,但拿不到 Panopto、Piazza、Gradescope 與正式作業解答。

learningdeep-dive

CMU AI 核心改制:15-281+10-315 到 07-280+07-380,不只是換課號

CMU 在 2026 年把原本分開的廣義 AI 與 SCS 機器學習入口,重新整合成 07-280 → 07-380;這是內容與先修路線的重切,不是兩門課逐一改名。

Stanford CS107 Lecture 4:Bitwise operators、型別轉換與 bitmask

第四講先釐清 signed/unsigned 轉型不改 bits、混合比較可能改變數值意義,以及 sign extension、zero extension、truncation;再推導 AND、OR、NOT、XOR 與 bitmask 的讀取、設定、清除和集合操作。

Stanford CS107 Lecture 3:整數、位元組與 two's complement

第三講從 32/64-bit 位址空間出發,推導 unsigned 與 two's-complement signed integer 的範圍、反相加一與共用加法硬體,再分清 unsigned modulo 運算和 C signed overflow,最後用四組故障案例檢查模型。

Stanford CS107 Lecture 5:Bit shifts、bit tricks 與 GDB

第五講把 bitmask 推進到 left/right shift、power-of-two 與 popcount tricks,並用 absolute-value 範例揭示 signed intermediate 在 INT_MIN 會 overflow;後半建立 GDB 的 breakpoint、執行控制、格式化 print、memory examine 與 backtrace 工作流。

Stanford CS107 Lecture 2:第一支 C 程式,以及 binary 與 hexadecimal

第二講把 C 放回 Unix 的歷史與開發環境:拆解 header、main、printf、argc/argv,走過 ssh、emacs、make 與執行檔,再用位值系統推導 8 bits = 1 byte、byte 的 256 種 pattern,以及 binary/hexadecimal 的雙向換算。

Stanford CS107 Lecture 1:從課程地圖走進 Unix 命令列

Winter 2026 第一講先回答 CS107 為何要往抽象層底下挖:從位元組、記憶體、組合語言到 heap allocator,再交代作業 40%、lab 10%、期中 20%、期末 30% 的課程制度,最後用 Unix 命令列替後續 C 開發暖身。

Harvard AI/ML 課程導讀:CS50 AI、CS181、CS182 的影片與作業是不是同一版?

Harvard 校外最完整的入口是 CS50 AI,但 Summer 2026 實際沿用 2020 錄影與作業資產,OCW 作業又已更新到不同版本;CS181 Spring 2026 公開當期作業與講義、沒有當期錄影,CS182 Fall 2026 則尚未完成開課。

learningdeep-dive

Pacman AI project 血統:Berkeley CS188 與 CMU 15-281 怎麼重組同一套教材

CMU 15-281 的 Search and Games 明確標示源自 Berkeley Pacman AI projects;官方課站另列一份零分 P0 tutorial,以及 P1–P5 五份 programming assignments。

Stanford CS103 Lecture 0:從集合語言走到 Cantor 對角線

從集合的元素、子集合與冪集開始,最後用 Cantor 對角線證明任何集合都不可能和自己的冪集一樣大。

Stanford CS103 Lecture 1:從 even/odd 定義寫出第一個直接證明

用偶數平方與兩奇數相加兩個例題,練習任取、假設、見證與 want-to-show 如何組成可逐行檢查的直接證明。

Stanford CS103 Lecture 2:否定、逆否證明與反證法

本講先精確刻畫蘊涵何時為假,再把量詞否定、逆否命題與反證法變成可檢查的證明工具。

Stanford CS103 Lecture 3:命題邏輯、真值表與等價式

命題邏輯把英文陳述抽象成真假變數,再用真值表檢查連接詞、翻譯方向與 De Morgan 等價式。

Stanford CS103 Lecture 4:一階邏輯的物件、量詞與型別

本講把命題邏輯擴充成能談論物件的一階邏輯:分清常數、predicate、function 與命題的型別,再用存在與全稱量詞表達 some 與 every。

Stanford CS103 Lecture 5:一階邏輯 II——巢狀量詞、否定與唯一性

把自然語言逐層翻成一階邏輯:辨認全稱與存在句型,再處理量詞順序、否定、限制量詞與唯一性。

Stanford CS103 Lecture 6:函數 I,從定義到單射與滿射證明

函數不只是一條公式:定義域、陪域、全域有定義與確定性缺一不可,而 involution、單射與滿射的量詞正好決定證明怎麼寫。

Stanford CS103 Lecture 7:函數 II——滿射、假設與函數合成

本講以滿射與鳥類證明釐清『假設』和『證明』的不同操作,再證明 involution 必為單射與滿射,並把同一套推理帶進函數合成。

Stanford CS103 Lecture 8:用雙射定義基數與 Cantor 對角論證

兩個集合等大,意思是它們之間存在雙射;Cantor 的對角集合則能對任意 S 到其冪集的函數造出一個漏接值。

Stanford CS103 Lecture 9:圖論 I

本講從圖與有向圖的形式定義,推進到獨立集、頂點覆蓋,以及兩者的補集關係。

Stanford CS103 Lecture 10:走訪、圖的補集與鴿籠原理

從 walk、path、cycle 與連通分量出發,以補圖必有一者連通、同度數節點、廣義鴿籠原理及朋友與陌生人定理練習完整證明。

Stanford CS103 Lecture 11:廣義鴿籠原理、Ramsey Theory 與平均負載

以廣義鴿籠原理證明六人派對必有三位共同朋友或共同陌生人,再用平均負載與反證解出電影偏好 puzzle。

Stanford CS103 Lecture 12:數學歸納法、假幣問題與不變量

數學歸納法不是把幾個案例排在一起,而是證明起點成立、任意一步能把真命題傳給下一步,再由歸納原理涵蓋所有自然數。

Stanford CS103 Lecture 13:數學歸納法 II

本講從「從上一講的標準歸納法出發」推進到「起點不必是零」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 14:有限自動機 I

本講從「為什麼先研究一台很弱的電腦」推進到「從裝置行為抽出狀態機」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 15:有限自動機 II

本講從「DFA 的形式定義把前半學期串起來」推進到「regular 語言 是「存在一台 DFA」」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 16:有限自動機 III

本講從「自動機階梯:能力要用語言區分」推進到「DFA transition table 是圖的精確轉寫」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 17:正規表示式

本講從「從 closure 性質 走向描述語言的語法」推進到「regex 是數學表示式,不等於某套程式庫」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 18:非正規語言

本講從「四種 regular 的說法已經等價」推進到「finite memory 的精確直覺」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 19:上下文無關語言

本講從「從有限狀態限制轉向遞迴結構」推進到「arithmetic grammar 的四組規則」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 20:圖靈機 I

本講從「為何 CFG 之後還要換模型」推進到「長加法揭示 local access 原則」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 21:圖靈機 II

本講從「sample TM:從最後一格回看第一格」推進到「TM 能做的工作遠超逐格配對」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 22:圖靈機 III

本講從「recognizer 與 decider 的快速量詞稽核」推進到「為何所有問題都能寫成 語言」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 23:不可解問題 I

本講從「從 R、RE 與 UTM 接回來」推進到「self-reference 回顧的三個程式」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 24:不可解問題 II

本講從「HALT 的定義與位置」推進到「為何 HALT 可辨識」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 25:不可解問題 III

本講從「Lava Diagram 的兩個辨識任務」推進到「Rice's Theorem 的 投影片 版判讀」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 26:複雜度理論

本講從「decidable 不等於 feasible」推進到「efficiency 要先選 resource」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 全課總結:四條知識主線與下一門課

最後一講把證明、圖論、自動機與可計算性重新接起來,再對照會直接使用這些基礎的 Stanford 後續課程。

Stanford CS107 Lecture 15:看懂 x86-64 addressing modes,分清位址和值

CS107 第 15 講把 x86-64 的 mov 拆成 immediate、register、absolute、indirect、displacement、indexed 與 scaled indexed operands,並以 D + R[b] + R[i]×s 統一解讀 pointer dereference 和 array access。

Stanford CS107 Lecture 16:從 subregister 到 ALU,讀懂 x86-64 算術與位元運算

CS107 第 16 講把 b/w/l/q 資料寬度、subregister、movs/movz、lea、呼叫慣例、算術邏輯與 shift 串成一套規則:先確定操作寬度,再追蹤來源、目的與是否真的讀取記憶體。

Stanford CS107 Lecture 18:從 condition codes 到 loops,讀懂 x86-64 條件控制

CS107 第 18 講以 ZF/SF/CF/OF 串起 cmp、test、signed/unsigned conditional jumps,再拆解 if、loops、dynamic instruction count、setcc 與 cmovcc。

Stanford CS107 Lecture 17:從乘除法到 %rip,讀懂 x86-64 control flow

CS107 第 17 講先完成 x86-64 的 full-width multiplication 與 division,再沿著 instruction bytes 追蹤 %rip,最後以 direct/indirect jmp 說明程式如何離開預設的順序執行。

Stanford CS107 Lecture 19:從 call/ret 到 calling convention,讀懂 x86-64 函式呼叫

CS107 第 19 講追蹤 %rsp、push/pop、call/ret、parameters、return values、stack locals 與 caller/callee register discipline,建立可跨函式維持資料與控制流的 ABI 契約。

Stanford CS107 Lecture 14:從 C 到 x86-64,第一次讀懂反組譯輸出

CS107 第 14 講用 sum_array 的 10 條 x86-64 指令拆開反組譯輸出:左側是位址與機器碼,右側是 AT&T assembly;讀者的任務是由 opcode、operand、register 與控制流程還原 C,而不是手寫組合語言。

Stanford CS107 Lecture 7:從字串搜尋到 Buffer Overflow,輸入驗證不是容量檢查

CS107 第 7 講先用 strchr、strstr、strspn 建立指標式字串掃描,再指出只驗證內容仍擋不住 buffer overflow:安全邊界必須同時涵蓋輸入規則、目的地容量、終止字元與記憶體檢測。

Stanford CS107 Lecture 25:Caching、Memory Hierarchy 與 Locality

CS107 第 25 講用精簡投影片建立 cache 的核心模型:記憶體存取成本不均,較小且較快的層級保存可能再次使用的資料,而 temporal 與 spatial locality 決定程式能否受益。

Stanford CS107 Lecture 6:C 字串不是型別,而是一份記憶體契約

CS107 第 6 講把 C 字串拆回 char 陣列、終止空字元與位址:strlen、strcmp、strcpy、strncpy、strcat 的每一個便利,都以呼叫者維持容量與終止條件為代價。

Stanford CS107 Lecture 24:先用 Callgrind 找熱點,再讀懂 GCC 做了哪些最佳化

CS107 第 24 講用矩陣乘法與 Callgrind 建立量測流程,再拆解 GCC 的 constant folding、共同子運算式消除、dead-code elimination、strength reduction、code motion 與遞迴轉迴圈;最佳化從瓶頸證據開始。

Stanford CS107 Lecture 23:把 realloc 留在原地,必須守住哪些 allocator 不變量

CS107 第 23 講把 explicit free list 推進到原地 realloc:縮小時切出可用區塊,放大時吞併右側 free blocks,做不到才配置、複製、釋放;每一步都要同時維持實體 heap 與邏輯 free list。

Stanford CS107 Lecture 12:Function Pointer 讓 Generic C 注入比較規則

CS107 第 12 講先用 char * 完成 byte-wise generic swap 與 rotate,再以 function pointer 把 bubble sort 的走訪機制和比較規則拆開;void * 解決資料型別,callback 解決行為差異。

Stanford CS107 Lecture 13:從 Comparator 到完整 Generic Bubble Sort

CS107 第 13 講把 bool callback 升級成三向 comparator,再把 void *、element width 與 const void * callback 合併成完整 generic bubble sort,最後對照 qsort、bsearch、lfind 與 lsearch。

Stanford CS107 Lecture 11:void * 如何讓 C 擁有泛型,又不假裝型別還在

CS107 第 11 講先收完 calloc、strdup、free、realloc 的 heap 契約,再把 swap 從多份型別專用程式改造成 void * 加 byte count:C 的泛型不是保留未知型別,而是明確交接位址、寬度與解讀責任。

Stanford CS107 Lecture 21:Heap Allocator 的第一個設計,速度與空間為何互相拉扯

CS107 第 21 講從 allocator 的 alignment、throughput 與 utilization 目標出發,以 bump allocator 和 implicit free list 拆解 metadata、splitting、placement、內部與外部碎片,以及 free 後為何必須 coalesce。

Stanford CS107 Lecture 22:Explicit Free List 為何同時活在兩種順序裡

CS107 第 22 講把 implicit free list 改成 explicit free list:搜尋只拜訪可重用 blocks,但每塊 free memory 同時具有實體相鄰順序與邏輯鏈結順序,unlink、coalesce、reinsert 必須共同維持不變量。

Stanford CS107 Lecture 8:指標不是魔法,而是可被複製的位址

CS107 第 8 講從 & 取址與 * 解參照出發,說清楚 C 的 pointer parameter 為何仍是 pass-by-value,以及 int *、char *、char ** 如何分別修改 caller 擁有的 int、char 與 pointer。

Stanford CS107 Lecture 9:Array 不是 Pointer,但它們在運算式裡合作

CS107 第 9 講用 C strings 七條規則拆開 array object、pointer variable 與 string literal:array 常在運算式中退化成首元素指標,但儲存空間、可重新賦值性、可修改性與 sizeof 行為仍完全不同。

Stanford CS107 Lecture 20:Reverse Engineering 之後,先問 Privacy 與 Trust,再進 Heap Allocator

CS107 第 20 講把 reverse engineering 能力放回倫理脈絡:privacy 有個人與社會模型,trust 等於 reliance 加上 betrayal risk;接著複習 process memory,從 malloc client 轉成 heap allocator implementer。

Stanford CS107 Lecture 10:Stack 與 Heap 的差別不是速度,而是 Lifetime 與 Ownership

CS107 第 10 講從 sizeof 與 pointer arithmetic 走進 stack frame lifetime:回傳 local array 會留下 dangling pointer;malloc 讓資料跨越函式返回,但也把 NULL、容量計算、ownership、free 與 memory leak 交給程式設計者。

Stanford CS107 Lecture 26:Wrap-up,六個系統問題與下一站

CS107 第 26 講用六個大問題收束十週內容:representation、text、memory、generics、execution 與 allocation;它以 explicit allocator 檢查學習成果,並把後續路線指向 CS111 與其他 systems 課。

Stanford CS109 Lecture 1|What is Probability?:先把隨機問題列成結果集合,再談事件的機率。

先把隨機問題列成結果集合,再談事件的機率。

Stanford CS109 Lecture 2|Conditional Probability:條件不是裝飾,而是把樣本空間縮到已知資訊仍允許的部分。

條件不是裝飾,而是把樣本空間縮到已知資訊仍允許的部分。

Stanford CS109 Lecture 3|Bayes Theorem:Bayes 定理把容易建模的生成方向,翻成真正想問的推論方向。

Bayes 定理把容易建模的生成方向,翻成真正想問的推論方向。

Stanford CS109 Lecture 4|Counting and Combinatorics:先判斷順序是否重要、元素能否重複,公式才不會套錯。

先判斷順序是否重要、元素能否重複,公式才不會套錯。

Stanford CS109 Lecture 5|Random Variables and Expectation:隨機變數是把結果映成數字;期望值是加權平均,不保證會真的出現。

隨機變數是把結果映成數字;期望值是加權平均,不保證會真的出現。

Stanford CS109 Lecture 6|Moments:期望值、LOTUS 與線性性

期望值把分布壓成加權平均;LOTUS 處理變換後的值,linearity 則讓隨機變數的和即使不獨立也能直接計算。

Stanford CS109 Lecture 7|Variance 與 Poisson:從分散程度到稀有事件計數

先用 variance 描述隨機變數的分散程度,再用 Poisson 處理固定區間內的事件數,以及大 n、小 p 的二項近似。

Stanford CS109 Lecture 8|Continuous Random Variables:PDF、CDF、Uniform 與 Exponential

連續變數的單點機率為零,區間機率是 PDF 面積;CDF、Uniform 與 Exponential 則把面積、等待時間與 memorylessness 串起來。

Stanford CS109 Lecture 9|Normal Distribution:標準化、Φ 與 continuity correction

標準化把不同尺度的 Normal 變數轉成 Z;Φ、線性轉換與 continuity correction 再把區間與大型 binomial 變成可計算的機率。

Stanford CS109 Lecture 10|Probabilistic Models:joint、marginal、independence 與 Bayes

Joint distribution 保存多個變數的完整關係;marginal、conditional、independence 與 Bayes 都是從這份關係表取出不同問題的答案。

Stanford CS109 Lecture 11|Inference:prior × likelihood → normalize

Inference 把 hidden variable 的 prior 逐項乘上 observation likelihood,再正規化成 posterior;同一迴圈可處理多次觀察與離散化的連續 belief。

Stanford CS109 Lecture 12|General Inference:Bayesian networks、sampling 與 rare evidence

Bayesian network 用 conditional independence 分解巨大 joint;ancestral sampling 生成 joint samples,rejection sampling 再以 evidence 篩出 conditional。

Stanford CS109 Lecture 13|Multinomial:多類別計數、bag of words 與 log probability

Multinomial 把 binomial 的兩類計數推廣到多類;同一 PMF 也能把文件視為 word counts,配 Bayes 與 log-score 做 authorship inference。

Stanford CS109 Lecture 14|Beta:把未知 probability 變成可更新的 random variable

Beta distribution 表示對未知成功率的完整 belief;success/failure data 只需更新兩個參數,便能取得 posterior、平滑估計與 Thompson-sampling decision。

Stanford CS109 Lecture 15|Adding Random Variables 與 Central Limit Theorem

少數分布的 independent sums 有 closed form;一般 IID sums 則由 CLT 在大樣本下近似 Normal,離散 sums 還需 continuity correction。

Stanford CS109 Lecture 16|Bootstrapping:sampling statistics、error bars 與 p-values

Bootstrap 把 sample histogram 當作 population proxy,以 replacement 重抽並重算 statistic,近似 estimator 的 sampling distribution、error bar 與 null p-value。

Stanford CS109 Lecture 17|Algorithmic Analysis:conditional expectation、indicators 與 recursion

隨機程式的 expected cost 可依第一個 random choice 分情境;計數問題則拆成 indicators,兩者都靠 linearity,而不必硬求完整 distribution。

Stanford CS109 Lecture 18|Information Theory:surprise、entropy、information gain 與 KL

Surprise 把低機率事件轉成 bits;entropy 是 expected surprise,information gain 選擇最能降低 uncertainty 的問題,KL 則量化錯用 model distribution 的額外代價。

Stanford CS109 Lecture 19|Maximum Likelihood Estimation:固定資料,找最能解釋資料的參數

MLE 固定觀察資料、最佳化參數;log-likelihood 讓乘積變加總,但最大值也可能落在邊界。

Stanford CS109 Lecture 20|Logistic Regression:從 Bernoulli likelihood 推出 gradient

Logistic regression 用 sigmoid 把線性分數變成 Bernoulli 機率,而 gradient xⱼ(y-ŷ) 直接來自 log-likelihood 的 chain rule。

Stanford CS109 Lecture 21|Comparing Classifiers:accuracy 之外還要問 calibration、錯誤成本與 fairness

比較 classifier 不能只看 accuracy;還要用 held-out data、baseline、calibration、precision/recall 與明確的 fairness criterion。

Stanford CS109 Lecture 22|Deep Learning:用 chain rule 推出 backpropagation

Neural network 是堆疊的 logistic units;forward pass 算機率,backpropagation 重用 output error 來計算所有 gradients。

Stanford CS111 Lecture 1:作業系統的歷史、抽象化與三條課程主線

第 1 講沿 1940 年代共用 I/O 卡片、batch processing、multiprogramming 與個人電腦的演變,解釋 OS 的功能如何隨硬體成本與使用者需求逐層增加。

Stanford CS111 Lecture 2:行程與執行緒的執行抽象、狀態與切換

第 2 講先定義行程與執行緒的共享/私有狀態,再用 fork、execvp、waitpid 與 thread creation 說明核心如何建立執行單位。

Stanford CS111 Lecture 3:核心執行緒、使用者執行緒、context switch 與 dispatcher

第 3 講沿 running、blocked、ready 狀態轉移,拆解 PCB、context save/restore 與 dispatcher 如何完成一次 CPU 控制權交接。

Stanford CS111 Lecture 4:交錯執行、race condition、atomicity 與 critical section

第 4 講逐步拆解 Too Much Milk 的失敗排程,從具體 interleaving 推導 race condition、atomicity、critical section 與正確同步條件。

Stanford CS111 Lecture 5:mutex、condition variable 與 Mesa semantics

第 5 講用容量為 8 的環形 Pipe 證明:mutex 只提供互斥;condition variable 才能在 predicate 不成立時原子地釋放鎖並阻塞;Mesa semantics 下,wait 返回後必須用 while 重查條件。

Stanford CS111 Lecture 6:關中斷、原子指令、spinlock 與阻塞式 lock 的實作

第 6 講從單核心關中斷一路修到多核心 v5,追蹤 guard、lock 與 wait queue,說明 atomic exchange、spin、block 與 wakeup 如何避免 race 和 lost wakeup。

Stanford CS111 Lecture 7:Deadlock 的四個必要條件與全域鎖順序

第 7 講用 request/ownership graph 拆出 deadlock 的四個必要條件,再比較 detection、prevention 與 lock ranking;實務上最常破壞 circular wait,但代價是所有模組必須遵守同一個全域順序。

Stanford CS111 Lecture 8:FIFO、round robin、priority 與多核心排程

第 8 講從 FIFO、round robin 與不可實作的 SRPT,推到自適應 priority queues、BSD scheduler,再處理多核心 queue contention、core affinity 與 work-conserving 的衝突。

Stanford CS111 Lecture 9:object file、symbol、relocation、static 與 dynamic linking

第 9 講沿著 source→assembly→object→executable→process,拆解 linker 的三次掃描、symbol relocation,以及 dynamic loader 如何用 jump table 把 shared library 位址延後到啟動時解決。

Stanford CS111 Lecture 10:allocator 介面、free list、fragmentation 與 placement policy

第 10 講從 stack 的可預測 LIFO,推到 heap 的 free lists、first/best fit 與 slabs,再比較 reference counting 和 mark-and-sweep 如何在 dangling pointers、leaks、cycles、fragmentation 間取捨。

Stanford CS111 Lecture 11:Storage Reclamation、Reference Counting 與 GC

第 11 講的官方 PDF 與 Lecture 10 逐位元組相同;本文誠實保留此 artifact 缺口,聚焦後半的 reachability、dangling pointers、leaks、reference-count cycles 與 mark/compact GC。

Stanford CS111 Lecture 12:可信任的定義、隔離、驗證與從不信任建立信任

第 12 講把 trust 定義為自願承受 vulnerability,區分 over-trust 與 untrustworthiness,再用 assumption、inference、substitution 分析 Linux TCB、xz attack 與 AI code policy。

Stanford CS111 Lecture 13:位址空間、relocation、base-and-bound 與保護

第 13 講從 single-tasking 與 load-time relocation 的失敗出發,以 MMU 的 base/bound 建立 virtual/physical address spaces、透明隔離與 traps,再用 segmentation 解開單一連續區域的限制。

Stanford CS111 Lecture 14:segmentation、共享、稀疏位址空間與配置限制

Lecture 14 的官方 PDF 與 Lecture 13 逐位元組相同;本文明示此缺口,聚焦 segmentation 如何以多組 base/bound/protection 支援 growth、sharing、compaction,以及 fixed-count、fragmentation、rigid layout 限制。

Stanford CS111 Lecture 15:page、frame、page table、TLB 與多層頁表

第 15 講以固定大小 pages 消除跨 process external fragmentation,再拆解 x86-64 四層 page-table walk、sharing/aliasing 與 TLB,說明 translation speed、table sparsity、context switch 和 page size 的連動取捨。

Stanford CS111 Lecture 16:Page Fault、Demand Fetching 與 Prefetch

Demand paging 只在需要時載入頁面;present bit、精確例外與可重啟指令讓核心能從 executable、zero-fill 或 backing store 安全補頁。

Stanford CS111 Lecture 17:從 page fault 到 Clock,記憶體滿了該換掉誰?

第 17 講把 demand paging 分成 fetching 與 replacement:MIN 無法預知未來,精確 LRU 成本過高,Clock 只靠 reference/dirty bits 找夠舊的 page;active working sets 放不進 RAM 時,1% fault rate 就可能帶來約 1,000 倍 slowdown。

Stanford CS111 Lecture 18:磁碟幾何、Interrupt 與 DMA

磁碟把機械式 seek 與 rotation 隱藏成線性 block API;現代 I/O 再用 memory-mapped registers、DMA queues 與 interrupts,讓 CPU 只負責下命令和收完成通知。

Stanford CS111 Lecture 19:檔案抽象、配置策略與 FAT

檔案系統把耐久 byte collection 映射到磁碟 blocks;contiguous、linked 與 FAT 分別交換 locality、成長彈性、random access 與 metadata 成本。

Stanford CS111 Lecture 20:多層 Inode、Index Walk 與磁碟排程

4.3BSD inode 用 direct、single-indirect 與 double-indirect pointers 讓 lookup depth 隨檔案大小分級;FIFO、SPTF、SCAN 與 CSCAN 則交換 seek cost、公平性與等待時間。

Stanford CS111 Lecture 21:Block Cache、Free Bitmap 與 Delayed Allocation

Block cache 把熱索引留在 DRAM,bitmap 與保留空間維持配置選擇,fragments 和 delayed allocation 則用較晚、較完整的資訊換取 locality。

Stanford CS111 Lecture 22:Directory Lookup、Hard Link 與 Symbolic Link

Directory 把文字名稱映射到 file-system-local i-number;hard link 共享 inode 與 reference count,symbolic link 則保存 pathname,換得跨檔案系統能力但可能形成 loop 或 dangling link。

Stanford CS111 Lecture 23:從 fsck、Ordered Writes 到 Write-Ahead Logging

檔案系統一次操作會改動多個 block,崩潰卻可能發生在任兩次寫入之間;本講比較 fsck、ordered writes 與 write-ahead logging 如何交換復原時間、效能、耐久性與一致性。

Stanford CS111 Lecture 24:Journaling、Transaction 與 Checkpoint

第 24 講從 WAL 入口往下拆 transaction、idempotent replay 與 checkpoint,說明一致性不等於 durability,journal 也不能取代 fsync 與備份。

Stanford CS111 Lecture 25:Truth, Trust, and Technology——演算法、生成式 AI 與 deepfake 如何改寫信任

第 25 講把 trust 拆成假設、推論與替代三種建立方式,再檢視社群推薦、生成式 AI 與合成媒體如何放大過度信任;實務答案是保留來源、交叉驗證並協調責任。

Stanford CS111 Lecture 26:Flash Translation Layer、Garbage Collection 與 Wear Leveling

Flash 只能逐頁 program、整個 erase unit 清除;FTL 以 out-of-place mapping 隱藏不對稱,再用 garbage collection、temperature segregation、wear leveling 與 TRIM 管理放大成本。

Stanford CS111 Lecture 27:Trap-and-Emulate、Virtual I/O 與 Nested Page Tables

VM 把 process interface 擴成完整硬體介面;hypervisor 讓普通指令直接執行、攔截 privileged operations,並虛擬化 interrupts、I/O 與兩層位址轉譯。

Stanford CS111 Lecture 28:用四個觀念串起並行、記憶體與儲存

第 28 講把整學期收斂成並行、記憶體、儲存三條主線,再用 virtualization、atomicity、locality、layering 四個觀念解釋作業系統如何管理共享資源。

Berkeley AI/ML 課程導讀:從 CS61A 到 CS288,最新公開教材怎麼排

Berkeley 沒有獨立的大學部 AI 學位;可行路線是在 CS BA 或 EECS BS 的共同基礎上,從 CS188 的廣義 AI 或 CS189 的數學型 ML 入口,再分流到深度學習、NLP、視覺與強化學習。2025–2026 有不少 A3 公開課,但最新班次、最新穩定網址與最好用的自學版本並不總是同一個。

learningdeep-dive

CMU 的 AI 學位:全美第一個 AI 學士,把「AI 該學什麼」寫成了畢業要求

Stanford 沒有 AI 學位,AI 是 CS 底下的一條 track;CMU 2018 年開出全美第一個 B.S. in Artificial Intelligence,把 AI 拆成四個 cluster 並強制各修一門,還把倫理課列進畢業要求。碩士這條線則是 MSAII——不在 CS 系,在語言技術研究所,195 學分裡有 84 分是創業流程,最後要交一個能拿去募資的 capstone。查證時發現兩處官方頁面自己打架:AI Core 是 2 門還 3 門、總學分是 192 還 195。

CMU AI/ML 課程導讀:07-280 新主幹與校外可走的公開路線

CMU 現行 BSAI 已改成 07-280 → 07-380,再從 NLP/視覺核心與四個 AI clusters 延伸;07-380 已在 Fall 2026 首開,同學期還新開了研究所級的 11-768 AI Agents。07-280 Spring 2026 的殘留教材與 10-301/601 已能完整自學,15-281 則是仍有價值的退休舊路線。

learningdeep-dive

會議即內容工廠:AI Engineer 頻道的結構性優勢

AI Engineer YouTube 三年衝到 60 萬訂閱,不是因為他們很會做影片,而是因為他們根本不需要「做」影片——一年八場會議的錄影副產品,就是取之不盡的 YouTube 素材。內容創作的真正瓶頸不是技能,是結構。

世界名校 AI/CS 課程地圖:哪些課真的能公開自學?

這份地圖盤點 Stanford、CMU、MIT、UC Berkeley、Harvard 與台大在 2025–2026 年的 AI/CS 課程,將公開程度拆成 A0 課表可見、A1 課綱可見、A2 教材部分開放、A3 足以自學。課程官網存在、YouTube 播放清單存在,都不代表校外讀者真的拿得到當期影片、作業與起始碼。

MIT AI/ML 課程導讀:6-4 是正式 AI 學位,公開教材卻分散在三個年代

MIT 自 2022 年已有正式的 6-4 Artificial Intelligence and Decision Making 學位;但校外自學時,現行學位要求、2025–2026 課站與最好用的 OCW 版本往往不是同一套。真正可行的路線,是先照 6-4 的程式、演算法、線代與機率骨架打底,再依公開程度選 6.S191、6.3900、6.4110、6.7960、電腦視覺或機器人分支。

Stanford CS103 導讀:一門數學課,開學第一件事是裝 C++ 編譯器

CS103 前半教怎麼寫證明、後半教什麼證不出來,但外界最少提到的是它有 C++ 程式作業:PS0 就是裝 Qt Creator。它的真正資產是一整排自製的『Guide to X』講義與一份會拿來扣分的 Proofwriting Checklist,全部公開;解答與練習考題全部鎖在 Stanford 登入後面,而且鎖的理由寫在 Honor Code 裡。

Stanford CS107 導讀:同一門課的作業占比,在不同學期是 40% 對 20%

CS107 從 Unix 與 C 一路做到 x86-64 與自己寫 malloc,七份作業。但翻四個學期的封存 syllabus 會發現同一門課差很多:作業在三個學期占 40%,在 Summer 2026 只占 20%(多了 40% 的隨堂小考);重交政策只出現在 Cain 開的學期,Troccoli 那學期完全沒有。唯一不收遲交的是最後那份 heap allocator。而擋住自學者的不是評分器,是起始碼全在 AFS 上。

Stanford CS109 導讀:一門機率課把「怎麼用語言模型讀這一講」寫成了官方教材

CS109 在 2026 年夏季的每一講旁邊,掛了一份官方寫的 LLM Learning Guide——六個概念、每個概念一組 Learn 與 Test me 提示詞,逐週產出共 23 份 PDF。同一門課的榮譽守則第 4 條卻明文禁止拿 LLM 解作業,而成績有 65% 壓在現場考試。這兩件事是同一套設計的兩半。

Stanford CS111 導讀:九份作業拼成一部作業系統,但考試不考作業

CS111 的九份作業從 lambda 一路做到日誌式檔案系統的崩潰復原,但把官網逐頁讀完會看到三件課綱不寫的事:第三份作業是分水嶺,因為第四份會直接編譯你第三份的程式碼;期末考有一整塊在考倫理學名詞,公開的練習卷連解答都在;還有,把自己的程式碼貼給 AI 問問題,這門課白紙黑字寫成違反榮譽準則。

Stanford CS161 導讀:一門把「寫清楚」列為第三個學習目標的演算法課

CS161 第一堂投影片寫下的課程目標有三個:設計、分析、溝通。第三個才是作業不准手寫、要求寫得像給同事的備忘錄的原因。八份作業裡 HW2 是分水嶺,講義的 Python notebook 用來示範「量時間看不出誰比較快」,而暑期班是同課號、同課名、完全另寫一套的另一門課。

Stanford CS161 Lecture 1:為什麼分析演算法要從 Karatsuba 乘法開始

把兩個 n 位數各切成兩半,直覺分治仍要做 4 個子乘法,時間沒有離開 n²;Karatsuba 用 (a+b)(c+d)-ac-bd 算交叉項,把分支降到 3,得到約 n^1.585 的成長率。

Stanford CS161 Lecture 2:從 InsertionSort 證明到 MergeSort 的 n log n

第二講把「快」拆成可證明的最壞情況上界:InsertionSort 用迴圈不變量證正確、最壞為 n²;MergeSort 用遞迴不變量與每層 O(n) 的遞迴樹,得到 O(n log n)。

Stanford CS161 Lecture 3:Master Theorem 怎麼讀懂一棵遞迴樹

對 T(n)=aT(n/b)+O(n^d),真正的比較是分支成長 a 與單題工作縮小 b^d:a=b^d 時每層同重,a<b^d 時頂層主導,a>b^d 時葉層主導;不合模板就改用 substitution。

Stanford CS161 Lecture 4:Median of Medians 如何保證線性 Selection

Selection 不必先排序。Median of medians 每 5 個元素取中位數,再取這些中位數的中位數作 pivot,保證較大的遞迴側至多 7n/10+5;用 substitution 可證 worst-case O(n)。

Stanford CS161 Lecture 5:Randomized QuickSort 的期望時間怎麼證

Randomized QuickSort 對每個固定輸入都有 O(n log n) 期望時間,但最壞仍是 Θ(n²);正確證明不是把期望子問題大小代入 recurrence,而是計算每對元素被比較的機率。

Stanford CS161 Lecture 6:Sorting 下界與線性時間 Radix Sort

Ω(n log n) 只限制 comparison sorting。若整數 key 可直接索引 bucket,stable Counting Sort 可作為 Radix Sort 的內層;在 M≤n^c 等條件下能達 O(n)。

Stanford CS161 Lecture 7:二元搜尋樹、紅黑樹與最壞 O(log n) 的來源

一般 BST 的操作成本是 O(h),偏斜時會退化成 O(n);紅黑樹用五條顏色不變量把高度限制在 2 log₂(n+1),因此搜尋、插入與刪除都有最壞 O(log n) 保證。

Stanford CS161 Lecture 8:雜湊、碰撞與期望 O(1) 到底保證什麼

Universal hash family 只需讓任意兩個不同 key 的碰撞機率不超過 1/n,就能把某個 key 所在 bucket 的期望長度壓到 2 以下;這給的是 expected O(1),不是每次操作的最壞 O(1)。

Stanford CS161 Lecture 9:圖的表示、DFS、BFS 與兩種搜尋順序的證明

DFS 與 BFS 都在 adjacency list 上以 O(n+m) 掃完整張圖;DFS finish times 能為 DAG 產生拓撲順序,BFS layers 則精確等於無權圖的最短距離。

Stanford CS161 Lecture 10:兩次 DFS 為什麼能找出強連通分量

把每個 SCC 壓成一點後一定得到 DAG;第一趟 DFS 的 finish times 排出這些分量,第二趟在轉置圖按遞減順序搜尋,每棵 DFS tree 恰好是一個 SCC,總時間 O(n+m)。

Stanford CS161 Lecture 11:Dijkstra、Bellman–Ford 與鬆弛的兩種秩序

Dijkstra 每次確定最小 estimate,正確性依賴非負 edge weights;Bellman–Ford 不挑 vertex、反覆鬆弛所有 edges,以 O(nm) 換取負權支援並能偵測 source 可達的負環。

Stanford CS161 Lecture 12:用動態規劃重寫 Bellman–Ford 與 Floyd–Warshall

動態規劃先精確定義子問題,再用 optimal substructure 寫 recurrence,最後依相依順序填表;Bellman–Ford 以 edge 數分層,Floyd–Warshall 則以允許的中繼頂點分層。

Stanford CS161 Lecture 13:從 LCS、背包到樹上獨立集的動態規劃設計法

Lecture 13 把動態規劃整理成五步:選 state、寫 transition、填表、回復解、再優化實作。LCS 是 O(mn),兩種背包都是 O(nW) 的擬多項式時間,樹上最大權重獨立集則能在 O(|V|) 完成。

Stanford CS161 Lecture 14:貪婪演算法何時能從局部最佳走到全域最佳

貪婪演算法不是『每次挑看起來最好的』,而是每次只保留一個選擇,並用交換論證證明它不會排除最佳解。Lecture 14 以 activity selection、weighted completion time 與 Huffman coding 展示三種證明。

Stanford CS161 Lecture 15:用 cut property 證明 Prim 與 Kruskal

MST 的核心不是背兩支演算法,而是維持『目前選邊仍包含於某棵 MST』,再用 cut property 證明 Prim 與 Kruskal 每一步都安全。

Stanford CS161 Lecture 16:Ford–Fulkerson、殘餘網路與最大流最小割

Ford–Fulkerson 在殘餘網路沿 augmenting path 推流;找不到路時,可達集合形成與 flow 同值的 cut,同時證明最大流、最小割與兩者相等。

Stanford CS161 Lecture 17:Gale–Shapley、穩定配對與可撤銷的貪婪選擇

Deferred Acceptance 允許暫時接受後再反悔;proposal 的單調性證明它在 O(n²) 結束、產生 stable matching,且偏向 proposal 的一側。

Stanford CS161 Lecture 18:從演算法工具箱走向 LP、編碼與 ML

期末課以 slides 回顧 CS161 工具箱,再用 LP duality、Reed–Solomon 與 ML-assisted algorithms 指向後續方向;官方沒有提供 notes。

Stanford CS 課程導讀:按先修關係排一次,從 CS106A 到 CS336

Stanford CS 的骨架是 CS103、CS107、CS109、CS111、CS161;CS221 先修列出其中三門,另加 CS106B。本文依官方先修與編輯者建議順序排出主線,並標明公開教材與停開風險。

AI 時代,品味是放大器

AI 把執行成本壓到接近零,結果品味好的人產出更多價值,品味差的人產出更多垃圾。差別不在會不會用 AI,而在用之前腦中有沒有值得被放大的東西。這個系列記錄我系統性磨利判斷力的過程。

learningdeep-dive

數位學習之外,紙筆還剩下什麼:三個實體仍然有效的地方,與一個沒有

學習全面數位化之後,實體仍有明確效果的地方有三個:閱讀(紙勝螢幕 g ≈ −0.21,17 萬人樣本,需要捲動時擴大到 0.35–0.48)、作答時動筆(螢幕上題目越難反而越少用草稿紙)、畫圖(回憶率 45% 對比抄寫 20%)。反倒是最多人相信的「手寫筆記比較好記」,四份統合分析從 −0.008 到 +0.248 沒有共識。

AI 讓你在該困難的地方變順:生成式 AI 對學習做了什麼

AI 教育界被引用最多的那篇 meta-analysis(g = 0.867、瀏覽近 50 萬次)已於 2026 年 4 月被 Nature 撤稿。但正向結論沒被推翻——問題是它測的是「AI 在手時的表現」。Bastani 的 PNAS RCT 測了另一件事:練習時用 GPT-4 正確率 +48%,收走後考試比從沒用過的低 17%。

Learning How to Learn:拆解 417 萬人修過的學習課,哪些站得住、哪些是比喻

Dunlosky 2013 評比 10 種學習技術,判定為高效用的只有自我測驗與分散練習;學生最愛的重讀落在低效用層。但 2026 年的系統性回顧把效果量壓到 0.22–0.46,而 Pan & Rickard 的遷移 meta 校正發表偏誤後「往往顯示零遷移」——整套框架的名字本身,是被測得最不好看的一塊。

learningdeep-dive

2026 還在被討論的長青書單:用 Threads、Dcard、方格子的社群訊號選書

用 Threads、Dcard、PTT、方格子 2025 下半年到 2026 的討論證據,從生產力、人生設計、腦科學、心理、理財五個分類篩出 24 本還在被熱議的長青書。最強訊號:《Rewire—神經可塑性》擠進 2026 誠品、博客來上半年雙榜前三。