AI算法面試手推公式合集:10個必須能手推的數學公式

面試專題作者: 美歷團隊

AI面試必推10大公式:線性回歸最小二乘解、邏輯回歸梯度、SVM對偶、貝葉斯MAP、EM算法、反向傳播、Attention、VAE損失、Diffusion過程、KL散度,每個含完整推導步驟與面試考察點

背景介紹

我之前面算法崗的時候,最怕的就是手推公式環節。面試官給你一支筆一張紙,讓你當場推導SVM對偶問題或者反向傳播的梯度,那種緊張感真的很難描述。後來我花了一個月時間專門練習手推公式,把AI面試中最常考的10個推導全部過了一遍,從線性回歸到Diffusion模型。面了幾家之後發現,手推公式其實是有套路的,掌握方法後並沒有想像中那麼難。今天我就把這10個必推公式整理出來,每個都附上推導步驟和面試考察點。

面試流程復盤

算法崗的面試流程一般是:簡歷篩選→技術一面(基礎+手推1-2個公式)→技術二面(項目+手推1個較難的公式)→技術三面(系統設計或開放性問題)。手推公式通常出現在技術面中,面試官會給你白板和筆,讓你邊寫邊講。時間限制一般是10-15分鐘,所以不能慢慢推導,必須對步驟非常熟悉。我面過的幾家公司中,最常考的是邏輯回歸梯度推導、SVM對偶推導和反向傳播推導,這三個幾乎是必考題。其次是EM算法和Attention公式。Diffusion和VAE相對少一些,但大模型崗會考。面試官看重的不是你能不能推導出最終結果,而是你的推導過程是否清晰、每一步的動機是否合理

真題匯總

1. 線性回歸最小二乘解

推導步驟:

給定數據(X, y),線性模型y=Xw,最小二乘目標函數:L(w) = ||y - Xw||² = (y - Xw)ᵀ(y - Xw)

展開:L(w) = yᵀy - yᵀXw - wᵀXᵀy + wᵀXᵀXw = yᵀy - 2wᵀXᵀy + wᵀXᵀXw

對w求導:∂L/∂w = -2Xᵀy + 2XᵀXw = 0

解得:w* = (XᵀX)⁻¹Xᵀy

面試考察點:矩陣求導規則(∂(aᵀx)/∂x = a,∂(xᵀAx)/∂x = (A+Aᵀ)x);XᵀX可逆的條件(X列滿秩);正則化後的解(Ridge: w* = (XᵀX+λI)⁻¹Xᵀy)。

2. 邏輯回歸梯度推導

推導步驟:

邏輯回歸模型:P(y=1|x) = σ(wᵀx) = 1/(1+exp(-wᵀx))

對單個樣本的對數似然:ℓ(w) = y·log(σ(wᵀx)) + (1-y)·log(1-σ(wᵀx))

σ的導數:σ'(z) = σ(z)(1-σ(z))

對w求導:∂ℓ/∂w = y·(1-σ(wᵀx))·x - (1-y)·σ(wᵀx)·x = (y - σ(wᵀx))·x

批量梯度:∇L = Σᵢ(yᵢ - σ(wᵀxᵢ))·xᵢ = Xᵀ(y - σ(Xw))

更新規則:w ← w + η·Xᵀ(y - σ(Xw))

面試考察點:sigmoid導數的推導技巧;梯度形式的直觀理解(預測誤差乘以特徵);為什麼邏輯回歸沒有解析解(非線性方程);多分類的Softmax推導。

3. SVM對偶問題推導

推導步驟:

原始問題:min ½||w||² s.t. yᵢ(wᵀxᵢ+b)≥1

引入拉格朗日乘子αᵢ≥0,拉格朗日函數:L(w,b,α) = ½||w||² - Σαᵢ[yᵢ(wᵀxᵢ+b)-1]

對w求偏導令為0:∂L/∂w = w - Σαᵢyᵢxᵢ = 0 → w = Σαᵢyᵢxᵢ

對b求偏導令為0:∂L/∂b = -Σαᵢyᵢ = 0 → Σαᵢyᵢ = 0

代回拉格朗日函數,化簡得對偶問題:max Σαᵢ - ½ΣΣαᵢαⱼyᵢyⱼxᵢᵀxⱼ s.t. αᵢ≥0, Σαᵢyᵢ=0

面試考察點:KKT條件的理解(互補鬆弛性αᵢ[yᵢ(wᵀxᵢ+b)-1]=0);支持向量的定義(αᵢ>0對應的樣本);為什麼轉對偶(引入核函數,只依賴內積);軟間隔的推導(加入鬆弛變量ξᵢ和懲罰參數C,0≤αᵢ≤C)。

4. 貝葉斯公式與MAP推導

推導步驟:

貝葉斯公式:P(θ|D) = P(D|θ)P(θ)/P(D)

最大後驗估計(MAP):θ_MAP = argmax P(θ|D) = argmax P(D|θ)P(θ)

取對數:θ_MAP = argmax [log P(D|θ) + log P(θ)]

當P(θ)為高斯先驗N(0,σ²)時:log P(θ) = -||θ||²/(2σ²) + C

所以MAP等價於:argmax log P(D|θ) - ||θ||²/(2σ²) = argmin -log P(D|θ) + λ||θ||²

即MAP = MLE + L2正則化

面試考察點:貝葉斯公式的直觀理解(先驗+數據→後驗);MAP和MLE的關係(無先驗時MAP=MLE);不同先驗對應不同正則化(拉普拉斯先驗→L1正則);樸素貝葉斯的條件獨立性假設。

5. EM算法推導

推導步驟:

目標:最大化不完全數據的對數似然 log P(X|θ) = log Σ_Z P(X,Z|θ)

引入分佈q(Z),利用Jensen不等式:log Σ_Z P(X,Z|θ) = log Σ_Z q(Z)·P(X,Z|θ)/q(Z) ≥ Σ_Z q(Z)·log[P(X,Z|θ)/q(Z)]

E步:取等號條件,令q(Z) = P(Z|X,θᵗ),計算Q(θ|θᵗ) = E_Z|X,θᵗ[log P(X,Z|θ)]

M步:θᵗ⁺¹ = argmax Q(θ|θᵗ)

面試考察點:Jensen不等式取等號的條件(q(Z) = P(Z|X,θᵗ));EM單調遞增的證明;高斯混合模型(GMM)的EM推導(E步算後驗概率γ,M步更新均值、協方差、混合係數);EM與K-Means的關係(K-Means是GMM-EM的硬分配版本)。

6. 反向傳播梯度推導

推導步驟:

三層網絡:輸入x→隱藏h=σ(W₁x+b₁)→輸出ŷ=W₂h+b₂→損失L

輸出層梯度:∂L/∂W₂ = (∂L/∂ŷ)·(∂ŷ/∂W₂) = (∂L/∂ŷ)·hᵀ

∂L/∂b₂ = ∂L/∂ŷ

隱藏層梯度(鏈式法則):∂L/∂h = W₂ᵀ·(∂L/∂ŷ)

∂L/∂W₁ = (∂L/∂h ⊙ σ'(W₁x+b₁))·xᵀ,其中⊙是逐元素乘法

∂L/∂b₁ = ∂L/∂h ⊙ σ'(W₁x+b₁)

推廣到多層:δˡ = (Wˡ⁺¹)ᵀδˡ⁺¹ ⊙ σ'(zˡ),∂L/∂Wˡ = δˡ·(aˡ⁻¹)ᵀ

面試考察點:鏈式法則的應用;計算圖的表示;梯度消失/爆炸的原因(σ' < 1連乘→消失,W過大→爆炸);為什麼用ReLU(σ'=1或0,緩解梯度消失);Batch Normalization對梯度流的影響。

7. Attention公式推導

推導步驟:

Self-Attention:Q = XWq, K = XWk, V = XWv

注意力權重:A = softmax(QKᵀ/√dₖ)

輸出:Output = AV

為什麼除以√dₖ:當dₖ較大時,QKᵀ的元素方差為dₖ(假設q和k各元素獨立同分佈,方差為1),除以√dₖ使方差歸一化為1,避免softmax進入飽和區(梯度極小)

多頭注意力:headᵢ = Attention(QWqᵢ, KWkᵢ, VWvᵢ),MultiHead = Concat(head₁,...,headₕ)Wᴏ

面試考察點:縮放因子√dₖ的數學推導;自注意力的複雜度O(n²d);因果掩碼(Causal Mask)的實現(將未來位置的注意力權重設為-∞);KV Cache的原理(推理時緩存K和V避免重複計算)。

8. VAE損失函數推導

推導步驟:

目標:最大化數據的邊際對數似然 log P(X)

引入變分分佈q(Z|X),利用ELBO:log P(X) = E_q[log P(X|Z)] - KL(q(Z|X)||P(Z)) + log P(X)/q(Z|X)

由於KL散度≥0,所以:log P(X) ≥ ELBO = E_q[log P(X|Z)] - KL(q(Z|X)||P(Z))

最大化ELBO等價於最小化:L = -E_q[log P(X|Z)] + KL(q(Z|X)||P(Z))

第一項是重構損失,第二項是KL散度正則項

當q和P都是高斯時:KL(N(μ,σ²)||N(0,1)) = -½Σ(1+log σ²-μ²-σ²)

重參數化技巧:Z = μ + σ·ε,ε~N(0,1),使梯度可以流過採樣操作

面試考察點:ELBO的推導(Jensen不等式或KL散度分解);重參數化技巧的必要性(採樣操作不可微);VAE和AE的區別(VAE學的是分佈,AE學的是編碼);VAE生成模糊的原因(KL約束過強+像素級MSE損失)。

9. Diffusion前向/反向過程推導

推導步驟:

前向過程(加噪):q(xₜ|xₜ₋₁) = N(xₜ; √(1-βₜ)xₜ₋₁, βₜI)

任意時刻的分佈:q(xₜ|x₀) = N(xₜ; √ᾱₜx₀, (1-ᾱₜ)I),其中ᾱₜ = Πᵢ₌₁ᵗ(1-βᵢ)

反向過程:pθ(xₜ₋₁|xₜ) = N(xₜ₋₁; μθ(xₜ,t), Σθ(xₜ,t))

訓練目標(簡化版):Lsimple = E[||ε - εθ(xₜ,t)||²],其中xₜ = √ᾱₜx₀ + √(1-ᾱₜ)ε

即模型學習預測添加的噪聲ε

採樣:xₜ₋₁ = (1/√αₜ)(xₜ - βₜ/√(1-ᾱₜ)·εθ(xₜ,t)) + σₜz,z~N(0,I)

面試考察點:重參數化推導q(xₜ|x₀)(利用高斯分佈的可加性);為什麼預測噪聲而非預測x₀(參數化更簡單,訓練更穩定);DDPM和DDIM的區別(DDIM是確定性的,跳步採樣加速);Classifier-Free Guidance的原理(條件和無條件模型輸出的線性組合)。

10. KL散度推導

推導步驟:

KL散度定義:KL(P||Q) = ∫P(x)log(P(x)/Q(x))dx = E_P[log P(x) - log Q(x)]

非負性證明(利用Jensen不等式):KL(P||Q) = -E_P[log(Q(x)/P(x))] ≥ -log E_P[Q(x)/P(x)] = -log 1 = 0

離散形式:KL(P||Q) = Σ Pᵢ log(Pᵢ/Qᵢ)

高斯分佈間的KL:KL(N(μ₁,σ₁²)||N(μ₂,σ₂²)) = log(σ₂/σ₁) + (σ₁²+(μ₁-μ₂)²)/(2σ₂²) - 1/2

與交叉熵的關係:KL(P||Q) = H(P,Q) - H(P) = 交叉熵 - 熵

面試考察點:KL散度不對稱(KL(P||Q)≠KL(Q||P));前向KL和反向KL的行為差異(前向KL→mean-seeking,反向KL→mode-seeking);JS散度的優勢(對稱、有界);VAE中用KL正則化的直覺(讓q接近P,保證生成質量)。

心得建議

手推公式最重要的不是記住最終結果,而是理解每一步的動機。面試官最討厭的是"背推導"——你寫了一堆公式但說不清為什麼要這麼推。所以我建議練習時每推一步都問自己"為什麼要這麼做"。比如SVM轉對偶,動機是"引入核函數";EM算法用Jensen不等式,動機是"把log裡面的求和移到外面"。

第二個建議是先推核心步驟,再補細節。面試時間有限,不可能每一步都寫得很詳細。建議先寫出關鍵步驟和核心公式,面試官如果追問再展開細節。比如反向傳播,先寫出δ的遞推公式,再展開每一層的具體推導。

第三個建議是建立公式之間的聯繫。很多公式是相通的,比如MAP+高斯先驗=L2正則,EM的E步就是貝葉斯後驗,VAE的ELBO就是EM的推廣。理解這些聯繫後,推導會變得很自然,不需要死記硬背。

FAQ

Q:手推公式需要推到什麼程度?

A:核心推導步驟必須完整,輔助性的展開可以省略。比如SVM對偶推導,從原始問題到對偶問題的轉化必須寫清楚,但矩陣乘法的展開可以口頭說明。

Q:推導過程中卡住了怎麼辦?

A:不要慌,先說出你的思路,面試官通常會給你提示。比如你忘了某個導數,可以說"這一步的導數我記不太清,但思路是..."。面試官更看重思路而非記憶。

Q:需要準備哪些數學基礎?

A:矩陣求導(必考)、概率論基礎(貝葉斯、期望、方差)、優化基礎(梯度下降、拉格朗日乘子法)、信息論基礎(熵、KL散度)。建議先把這些數學基礎過一遍。

Q:哪些公式最常考?

A:按頻率排序:邏輯回歸梯度 > SVM對偶 > 反向傳播 > 貝葉斯/MAP > EM算法 > Attention > KL散度 > VAE > Diffusion > 線性回歸。前5個幾乎是必考,後5個看崗位。

Q:面試時用紙推還是用白板推?

A:都有可能。建議兩種都練習,紙推更精細但空間有限,白板推空間大但字不好看。關鍵是要邊寫邊講,讓面試官跟上你的思路。

#AI算法#手推公式#SVM#反向传播#EM算法#VAE#Diffusion#面試推导