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#面试推导