為什麼階乘很重要
哈明在第 9 章開始指出,所有工程設計問題都存在於 n 維空間中,其中 n 計算獨立參數的數量。理解這個空間需要理解階乘——它們出現在每個 n 維球體的體積公式內。
史特林近似
對於大的 n,直接計算 n! 變得不可能。史特林公式提供了準確的近似:
n! ≈ √(2πn) · (n/e)^n
取對數(哈明這樣做是為了將乘積轉換為和):
ln(n!) ≈ n·ln(n) − n + 0.5·ln(2πn)
隨著 n 增長,近似改進:比率 Stirling(n)/n! → 1(當 n → ∞)。然而,絕對 差異無限增長。兩個事實同時成立。
哈明的推導途徑:通過梯形法則用積分 ∫ ln(x) dx(從 1 到 n)近似和 Σ ln(k)(k=1..n),然後取指數。常數 √(2π) 來自梯形誤差的極限行為。
| n | 史特林 | 真實 n! | 比率 | |---|---|---|---| | 5 | 118.02 | 120 | 0.9835 | | 10 | 3,598,696 | 3,628,800 | 0.9917 | | 20 | ~2.423×10^18 | ~2.432×10^18 | 0.9958 |
使用史特林公式
史特林的對數形式對於絕對尺度相互抵消的比率計算最為有用:
ln(n!) ≈ n·ln(n) − n + 0.5·ln(2πn)
伽瑪函數
階乘 n! 僅對非負整數有意義。哈明需要球體體積公式對所有正實數 n 都適用,所以他引入了 伽瑪函數:
Γ(n) = ∫₀^∞ x^(n−1) · e^(−x) dx (對 n > 0 收斂)
分部積分得到約化公式:Γ(n) = (n−1) · Γ(n−1)。
在正整數處:Γ(n) = (n−1)! 所以 Γ(5) = 4! = 24。
在半整數處:Γ(1/2) = √π ≈ 1.772。這來自高斯積分 ∫₋∞^∞ e^(−x²) dx = √π。
我們球體體積所需的值:在半整數參數處的 Γ(n/2 + 1)。
| n | n/2 + 1 | Γ(n/2 + 1) | |---|---|---| | 1 | 3/2 | √π/2 ≈ 0.886 | | 2 | 2 | 1! = 1 | | 3 | 5/2 | 3√π/4 ≈ 1.329 | | 4 | 3 | 2! = 2 | | 5 | 7/2 | 15√π/8 ≈ 3.323 |
公式與悖論
有了史特林和伽瑪函數,哈明推導出 n 維球體(半徑 r)的體積:
V_n(r) = C_n · r^n 其中 C_n = π^(n/2) / Γ(n/2 + 1)
常數 C_n 只取決於 n,不取決於 r。前幾個值:
| n | C_n | |---|---| | 1 | 2 | | 2 | π ≈ 3.142 | | 3 | 4π/3 ≈ 4.189 | | 4 | π²/2 ≈ 4.935 | | 5 | 8π²/15 ≈ 5.264 | | 6 | π³/6 ≈ 5.168 | | 8 | π⁴/24 ≈ 4.059 | | 10 | π⁵/120 ≈ 2.550 |
悖論: C_n 上升到接近 n=5 的最大值(C_5 ≈ 5.264),然後下降回接近零。非常高維度的單位球在本質上沒有體積——儘管直覺上添加更多維度應該添加更多空間。
為什麼體積會崩潰?
關鍵:體積 = C_n · r^n。當 r < 1 時,r^n → 0 呈指數形式。半徑約束殺死體積的速度比維度增長更快。幾乎所有 n 維單位超立方體的體積都位於其角落,在內切球之外。
角落悖論
在 2D 中:單位正方形 [−1,1]^2 的面積是 4。內切圓的面積是 π ≈ 3.14。圓形填充了正方形的 78%。
在 3D 中:單位立方體 [−1,1]^3 的體積是 8。內切球的體積是 4π/3 ≈ 4.19。球形填充了 52%。
在 n 維中:單位超立方體 [−1,1]^n 的體積是 2^n。內切球的體積是 C_n。球體內部的分數:
f(n) = C_n / 2^n
隨著 n 增長:C_n → 0 而 2^n → ∞。所以 f(n) → 0 迅速。在 10D 中,球體填充了立方體的不到 0.3%。
工程涵義:在高維設計空間中,您不能通過隨機選擇點來采樣。幾乎所有隨機點都會落在角落,遠離中心。您在 3D 中建立的直覺完全失效。
為什麼 3D 直覺會失效
哈明在第 9 章的核心信息:每個有 n 個獨立參數的工程系統都存在於 n 維空間中。空氣動力學、控制系統、芯片設計、藥物分子——所有這些都涉及 n >> 3 的參數空間。
3D 直覺在高維中的三個具體失效:
1. 對角線距離。 在 3D 中,單位立方體的對角線長度是 √3 ≈ 1.73。在 n 維單位超立方體中,對角線長度是 √n。對於 n=100,對角線長度是 10——但每個坐標仍然在 0 到 1 之間運行。在任何單一維度中看起來「接近」的點在 n 維空間中相隔很遠。
2. 體積濃縮。 如上所示:體積濃縮在角落,而不是在中心球體中。中心是典型的直覺崩潰了。
3. 鄰居計數。 在 2D 中,一個點在半徑 r 內大約有 πr² 個鄰居。在 nD 中,鄰居數量按 C_n·r^n 縮放,對於大的 n 和小的 r 實際上是零。鄰域崩潰。
哈明的結論:「您根本無法想像 n 空間中發生了什麼。」您必須依靠數學——依靠體積、距離和概率的公式——而不是想象力。
應用幾何
球體體積的崩潰對現代實踐有具體的後果:
優化: 高維參數空間中的梯度下降比隨機搜索工作得更好,正是因為它利用局部梯度信息來導航角落和空隙結構。
機器學習: 神經網絡權重空間有數百萬個維度。幾何預測隨機初始化很少會落在好的解決方案附近——但訓練過程通過結構化梯度步驟導航到一個。
實驗設計: 用樣本覆蓋高維參數空間需要指數級數量的點。這激勵了結構化實驗設計(拉丁超立方體、空間填充設計)而不是隨機采樣。