階乘的對數尺度
史特林近似將乘積轉換為和,這是使大n數學易於處理的基本步驟:
ln(n!) ≈ n·ln(n) − n + 0.5·ln(2πn)
此公式源自用ln(x)的積分近似和Σ ln(k)(k=1..n),然後應用梯形法則來界定誤差。
它在幾何上為何重要
n維球體積公式涉及Γ(n/2 + 1),對於整數n等於(n/2)!或半整數的乘積。史特林讓我們能估計大n時的這些值,無需直接計算每個值。
史特林近似在以10為底的記號中給出log(n!) ≈ n·log(n) − n·log(e),對於數量級估計很有用。
對於n = 10:ln(10!) ≈ 10·2.303 − 10 + 0.5·ln(62.83) ≈ 23.03 − 10 + 2.08 = 15.10(真實值:15.104)。
對於n = 100:ln(100!) ≈ 100·4.605 − 100 + 0.5·ln(628.3) ≈ 460.5 − 100 + 3.24 = 363.7(真實值:363.74)。
史特林在n=20時
直接計算:ln(20) ≈ 2.996。ln(2π·20) = ln(125.66) ≈ 4.833。
體積公式
半徑為r的n維球的體積:
V_n(r) = C_n · r^n where C_n = π^(n/2) / Γ(n/2 + 1)
小n的C_n值遵循一個使用Γ(1/2) = √π和遞推公式的模式:
- n=1: C_1 = π^(1/2)/Γ(3/2) = √π/(√π/2) = 2
- n=2: C_2 = π^1/Γ(2) = π/1 = π
- n=3: C_3 = π^(3/2)/Γ(5/2) = π^(3/2)/(3√π/4) = 4π/3
- n=4: C_4 = π²/Γ(3) = π²/2
- n=5: C_5 = π^(5/2)/Γ(7/2) = π^(5/2)/(15√π/8) = 8π²/15
注意:C_n在n≈5處達到峰值(≈ 5.264),然後遞減。對於大n,C_n → 0。
在n=5時的最大值
C_5 = 8π²/15。π² ≈ 9.870時:
C_5 = 8·9.870/15 = 78.96/15 ≈ 5.264
為了驗證這是最大值:C_6 = π³/6 ≈ 31.006/6 ≈ 5.168。所以C_6 < C_5——峰值在n=5處出現。
角中的體積分數
量化的角悖論:n維單位超立方體[−1,1]^n中有多大比例位於半徑1的內接球外?
Corner fraction = 1 − C_n / 2^n
| n | C_n | 2^n | 球體分數 | 角分數 | |---|---|---|---|---| | 2 | 3.14 | 4 | 78.5% | 21.5% | | 3 | 4.19 | 8 | 52.4% | 47.6% | | 4 | 4.93 | 16 | 30.8% | 69.2% | | 5 | 5.26 | 32 | 16.4% | 83.6% | | 6 | 5.17 | 64 | 8.1% | 91.9% | | 10 | 2.55 | 1024 | 0.25% | 99.75% |
對優化的含義
角悖論對高維空間優化有直接後果:
隨機搜索失敗。 n維參數空間中的隨機點幾乎肯定會落在一個角上——遠離原點,參數值極端。如果好的解決方案聚集在中等參數值附近,隨機搜索幾乎永遠找不到它們。
梯度下降成功。 通過遵循局部梯度,你系統地導航幾何而不是盲目採樣它。維度詛咒打擊隨機方法;結構化方法適應。
距離集中。 在高維中,隨機點之間的所有成對距離都集中在同一值周圍:對於在[0,1]^n中均勻的點,它們都變成約√(2n/3)。最近鄰方法失敗,因為'最近'和'最遠'變得難以區分。
哈明的處方:在信任直覺之前先了解幾何。在高維空間中,幾何是違反直覺的,數學是唯一可靠的指南。