forward → L → backprop → g → optimizer → w+\text{forward}\ \to\ \mathcal L\ \to\ \text{backprop}\ \to\ g\ \to\ \text{optimizer}\ \to\ w^+
Ltrain≈0⇏Ltest≈0\mathcal L_{\mathrm{train}}\approx0\quad\not\Rightarrow\quad \mathcal L_{\mathrm{test}}\approx0

完整講解與原文對照 / Full explanation and source comparison

§7.3 其他收斂保證工作(簡要回顧)

§7.1–7.2 的 Proposition 4、5 只是冰山一角。文獻中還有許多在不同設定下的收斂分析:

激活函數方面

架構方面

其他理論方向

這些工作共同描繪出:在適當的過參數化、初始化與資料假設下,一階隨機優化在神經網路上並非「盲目碰運氣」,而是有愈來愈完整的理論支撐——儘管距離完全理解實務中的大規模訓練仍有差距。

§8 全章結論:從反傳播到平坦極小值再到收斂理論

本章以優化為主軸,串起深度學習訓練的完整工具鏈:

  1. 基礎:梯度下降與反向傳播
  2. 梯度下降(§2)是數值優化的基石;學習率 η\eta、線搜索、最陡下降、動量(§2.4)逐步精進更新方向。
  3. 反向傳播(§3)把鏈式法則系統化,讓多層網路能高效算梯度——這是訓練深度模型的 indispensable 核心。

  4. 規模化:SGD 與 mini-batch

  5. SGD(§4)用單樣本近似全梯度,降低每步成本;mini-batch SGD(§4.1)在效率與穩定間取平衡,並引入 epoch 概念。
  6. 收斂分析(§4.2)比較全梯度 GD 的 O(1/t)O(1/t) 與 SGD 的次線性/固定步長下的 O(η)O(\eta) 鄰域停滯。

  7. 自適應學習率

  8. AdaGrad(§5.1)累積歷史梯度平方,對活躍維度降步長。
  9. RMSProp(§5.2)改為指數移動平均,避免步長過快衰減。
  10. Adam(§5.3)結合動量與 RMSProp,含偏差修正,是現代框架的預設選項之一。

  11. 泛化導向優化:SAM 家族

  12. 平坦極小值可能泛化更好(§6)→ Vanilla SAM(§6.1)用 min-max 懲罰 sharpness。
  13. ESAM(§6.2)以 SWP、SDS 提升效率;ASAM(§6.3)使 sharpness 尺度不變。

  14. 理論收尾:過參數化下的收斂

  15. 淺層(Prop 4)與深層(Prop 5)網路在過參數化下,梯度法能避開 spurious minima、逃離鞍點,並把訓練損失降到任意小。
  16. 這解釋了「非凸但可優化」的實務現象,但泛化仍是開放問題。

帶走的三句話

教授祕笈:全章收網——能訓成功≠已懂泛化

一句話地圖,一個比喻貫通

主線比喻是「這台器材練到沒阻力,不代表換健身房還能舉」。整章教你怎麼在高維非凸曲面上把訓練損失往下推:梯度怎麼走、反傳怎麼算、SGD 怎麼省、Adam 怎麼調步、SAM 怎麼找平坦谷、過參數化為什麼通常挖得到底。§7.3 告訴你文獻還把同樣的故事寫到 ReLU、ResNet、代數幾何;§8 把工具鏈收成一條線。最後那句話務必帶走:能把訓練這台器材的重量歸零,不表示你已經懂為什麼換一批測試資料還能表現好。 能訓成功≠已懂泛化。

鷹架式:先直覺,再符號

先講白話:本章是「訓練怎麼算得起來、走得下去」的工具箱,不是「為什麼測起來也準」的完整答案。 §7.1–7.2 的命題只是冰山一角;§7.3 用不同激活、不同架構、不同數學工具把「一階法不是盲目碰運氣」補成一幅更密的網,但網的邊界仍停在收斂與訓練損失。

為什麼需要這站?前面每節都很容易變成孤島:動量、Adam、SAM、Prop 5 各講各的。沒有一張全章地圖,你會以為「用了 Adam 或 SAM 就等於懂深度學習」。這一站就是把孤島用同一條訓練動線串起來,並在出口立牌:泛化,下一章以後還要再問。

符號逐個拆:五段工具鏈,外加 §7.3 的延伸

本章優化主軸可以唸成五段,每段都有自己的符號,但骨架都是「算梯度、走一步」:

  1. 基礎:梯度下降(學習率 η\eta、線搜索、最陡下降)加上動量(KP-2 到 KP-5);反向傳播(KP-6)用鏈式法則讓多層梯度算得起。
  2. 規模化:SGD 用單樣本近似全梯度(KP-7),mini-batch 與 epoch 在噪聲與穩定之間折衷(KP-8);收斂率上,全梯度 O(1/t)O(1/t),SGD 固定步長會在 O(η)O(\eta) 鄰域晃(KP-9)。
  3. 自適應步長:AdaGrad 累積梯度平方(KP-10);RMSProp 改指數平均避免步長枯死;Adam 把動量(一階矩 m\boldsymbol{m})與 RMSProp(二階矩)加上偏差修正(KP-11)。
  4. 泛化導向優化:平坦極小值可能比較能遷移(KP-12)→ Vanilla SAM 的 min-max(KP-13)→ ESAM 的 SWP/SDS 與 ASAM 的尺度不變(KP-14)。
  5. 理論收尾:過參數化下 Prop 4/5 保證訓練損失可任意小、假坑消失、鞍點可逃(KP-15)。

§7.3 把同一句話寫到更多設定,不必背文獻編號,記住「三個方向」就夠:

數值真的算一遍:同一模型的兩張成績單

假設過參數化網(符合 Prop 5 那種「夠寬、資料有間隔」的精神)訓完之後,你拿到兩組數字:

成績單 數字 本章理論管不管得了
訓練損失 Ltrain\mathcal{L}_{\mathrm{train}} 0.00080.0008 管:Prop 4/5、GD/SGD/Adam 都在把這欄往下壓
訓練準確率 100%100\% 管:零損失的親戚,仍是訓練集
測試損失 Ltest\mathcal{L}_{\mathrm{test}} 0.410.41 不管:命題沒保證
測試錯誤率 8%8\% 不管:這就是泛化,尚未被本章收成定理

再對一下「同一骨架上的兩個改良」各改了什麼。設某維度的梯度長期是 gt=0.2g_t=0.2,Adam 的二階矩估計大約 v≈(0.2)2=0.04v\approx(0.2)^{2}=0.04,有效步長是 η/v+εAdam\eta/\sqrt{v+\varepsilon_{\mathrm{Adam}}} 這一類(細節在 KP-11);它改的是步長尺。SAM 若 ρ=0.1\rho=0.1、∇L=(3,4)\nabla\mathcal{L}=(3,4),則 ϵ∗=(0.06,0.08)\boldsymbol{\epsilon}^{*}=(0.06,0.08)(KP-13),它改的是評估點:先走到最慘鄰居再量斜率。兩個數字都算得出來,職責完全不同——把訓練損失從 0.500.50 壓到 0.00080.0008 的是優化成功;測試還留 8%8\% 錯誤,說明健身房換了器材,故事沒結束。

懸念與反轉

讀到這裡最舒服的結局會是:「理論證明了大模型為什麼泛化好。」反轉必須講白:沒有。 你確實可以在多項式時間內把訓練損失挖到 <ϵ\lt \epsilon,ResNet 與 ReLU 也有愈來愈多收斂保證,這解釋的是「非凸但可優化」為什麼不是碰運氣。原文 §8 的第三句話才是章末真正的句號——優化通常成功,為何還能泛化,仍須追問。把「訓得動」與「測得好」畫等號,是整章最貴的誤會。

舉一反三的出口

換成升學比喻:模擬考(訓練集)可以靠題庫刷到滿分,命題課綱保證「題目結構你練得完」(過參數化收斂);學測(測試集)換了敘述、換了情境,滿分模擬考不自動變成學測保證班。Adam 像調整讀書節奏,SAM 像刻意找最容易錯的鄰近題型先做。現在自己對表:若有人說「我用了 Adam+SAM,測試一定好」,他混掉了工具鏈的哪兩段?請用「步長 / 平坦谷 / 訓練損失 / 泛化」四個詞各寫一句,不看稿。

常見誤解點名

跨知識點掛勾

換句話重述

全章一句話重講:訓練神經網路就是在高維非凸曲面上做(隨機)梯度下降,反傳讓梯度算得起,Adam 調步長、SAM 偏平坦解,過參數化理論保證訓練損失通常能被壓下去;這整條鏈解釋的是「能訓成功」,不是「已懂泛化」。

一句收尾口訣

「反傳讓梯度算得起,Adam 調步、SAM 找平谷;這台練到沒阻力,換館還能不能舉,才是下一題。」