深度学习面经与知识点整理
本笔记主要整理一些常见知识点(cheatsheet)以及整理一些面试中常见的问题等。
CNN
CNN及变体架构
在使用深度学习模型进行目标检测时,以下哪个算法可以使用区域提议网络来生成候选目标区域,并对这些区域进行分类和精确定位?
- 在深度学习模型中,Faster R-CNN算法是一种常用的目标检测算法,它可以使用区域提议网络(Region Proposal Network,RPN)来生成候选目标区域,并使用分类器和回归器对这些区域进行分类和精确定位。
- YOLO算法可以将目标检测问题转化为一个回归问题,并使用单个神经网络对所有目标进行检测。
- SSD算法和R-FCN算法也是常用的目标检测算法,但是它们通常需要多个尺度的特征图来处理不同大小的目标。
图像分割
你正在处理一个包含大量小物体的图像分割任务,你的模型在这些小物体上的性能较差。以下哪些方法可能有助于改善模型在这些小物体上的性能?
- 使用小的卷积核:小的卷积核可以更好地捕捉到小物体的特征。
- 在损失函数中加入物体大小的约束:这可以帮助模型更好地学习到小物体的特征,因为这种方法会给予小物体更高的重要性。
- 使用图像金字塔:图像金字塔可以在不同的尺度上捕捉到物体的特征,对于小物体的识别是有帮助的。
Transformer
当使用Transformer处理长文本序列时,哪种技术能最有效地降低自注意力的计算复杂度?
- 在Transformer中,自注意力的计算复杂度为O(n^2),对长文本序列处理效率低。通过限制注意力范围为局部窗口,将复杂度降至O(n*k)(k为窗口大小),有效降低了计算复杂度。
- (将浮点精度从FP32降至FP16)只减少计算常数因子,不改变渐近复杂度
- (增加多头注意力的头数)可能增加计算量而不降低复杂度。
在标准 Transformer 模型中,自注意力(Self-Attention)机制是其核心组件。假设输入序列的长度为 N,模型的隐藏层维度(或称为表示维度)为 d,那么标准自注意力模块的计算复杂度主要是?
- 在标准 Transformer 的自注意力机制中,输入序列长度为 N,隐藏层维度为 d。计算包括线性投影和注意力矩阵计算。线性投影的复杂度为 O(N * d^2),但注意力矩阵(QK^T)的计算复杂度为 O(N^2 * d),当 N 较大时,此步骤主导整体复杂度,因此主要计算复杂度是 O(N^2 * d)。
模型训练
某团队希望将一个训练好的 FP32 精度图像分类模型部署到资源受限的边缘设备上。在尝试训练后量化(Post-Training Quantization, PTQ)后,发现 INT8 模型的精度损失较大,无法接受。为了在保持模型体积和推理速度优势的同时恢复模型精度,最应该尝试的下一步是什么?
- 量化分为两种:PTQ和QAT。PTQ就是题目中说的训练完后再量化,比如训练好模型后准备部署到手机或者嵌入式设备的时候,这是最常见的。
- 但是题目说发现精度损失过大。因此应当采用QAT。
常见的超参数调整方法有哪些?
- 网格搜索 grid search
- 随机搜索 random search
- 贝叶斯优化 bayesian optimization
- 遗传算法 genetic algorithms
- 早停与动态资源分配 early stopping and bandit based
模型部署
模型评估
在实际使用矩阵分解来训练和评估模型的过程中,往往会产生的问题是(),也正是因为这个缺陷,提出了 NeuralCF 模型来改进这个问题。
- 在实际使用矩阵分解来训练和评估模型的过程中,往往会产生的问题是欠拟合问题,原因是矩阵分解的模型结构是相对比较简单的,特别是输出层无法对优化目标进行有效的拟合,这需要模型有更加强大的表达能力,基于此动机,提出了 NeuralCF 模型来改进这个问题
Cheat Sheet
人工智能主要学习方法的模型结构、损失函数和常用优化算法。
| 范式分类 | 模型类别 | 模型结构 (Representation) | 损失函数/目标 (Loss/Objective) | 常用优化算法 (Optimizer) | 核心应用场景 |
|---|---|---|---|---|---|
| 监督学习 | 线性回归 | \(y = \mathbf{w}^T\mathbf{x} + b\) | MSE(均方误差) | 最小二乘法、SGD | 连续数值预测 |
| 逻辑回归 | \(\sigma(\mathbf{w}^T\mathbf{x} + b)\) | 交叉熵(基于 MLE) | 梯度下降、L-BFGS | 二分类概率预测 | |
| SVM | 空间超平面 (核映射) | Hinge Loss | SMO 算法 | 高维小样本分类 | |
| 决策树/森林 | 树状分裂 (if-then) | 基尼系数 / 信息增益 | 递归启发式分裂 | 结构化数据分析 | |
| 梯度提升树 | 加法模型 (决策树累加) | 自定义损失 (需二阶导) | 梯度提升 (GBDT) | 推荐、风控、搜索 | |
| 深度学习 | CNN | 卷积 + 池化层 | 交叉熵 (Softmax) | Adam、SGD | 图像、视频处理 |
| RNN/LSTM | 循环隐藏状态\(h\) | 交叉熵 (按时间步) | RMSprop、Adam | 语音、序列预测 | |
| Transformer | 自注意力机制 | 交叉熵 (Label Smooth) | AdamW | LLM、多模态 | |
| 生成模型 | GANs | 生成器 vs 判别器 | Min-Max 对抗损失 | 分步 SGD / Adam | 图像生成、换脸 |
| Diffusion | 递归去噪 (U-Net) | MSE (预测噪声误差) | Adam | 文生图 (DALL-E) | |
| 无监督学习 | K-Means | 簇中心点 (Centroids) | SSE(簇内误差平方和) | 坐标下降 (EM迭代) | 客户分群、数据压缩 |
| PCA | 线性正交投影 | 方差最大化/ 投影误差 | 特征值分解 (SVD) | 数据降维、特征提取 | |
| 强化学习 | Q-Learning | Q-Table / Q-Network | TD Error(时序差分) | 贝尔曼方程更新 | 游戏 AI、机器人控制 |
| PPO/Policy | 策略网络 | 累积期望回报 | 策略梯度 (PG) | 自动驾驶、RLHF |
评估与稳健性(评价指标、验证策略、偏差与方差)
| 范式分类 | 对应模型层级 | 核心评价指标 (Metrics) | 验证策略 (Validation) | 偏差/方差表现 |
|---|---|---|---|---|
| 监督学习 | 线性/逻辑/SVM | MSE / AUC / Recall | K-折交叉验证 | 易出现高偏差 (欠拟合) |
| 树模型/提升树 | F1-Score / Gain | Hold-out (留出法) | 易出现高方差 (过拟合) | |
| 深度学习 | CNN/RNN/Trans. | Top-K Acc / BLEU | 训练/开发/测试集划分 | 依靠大数据量压低方差 |
| 生成模型 | GANs/Diffusion | FID / IS / CLIP Score | 主观评价 + 统计拟合度 | 训练不稳定 (模式崩溃) |
| 无监督/强化 | K-Means / PPO | 轮廓系数 / 累积回报 | 外部指标 (如标签对比) | 策略震荡与环境过拟合 |
优化与泛化(优化手段、正则、泛化)
| 范式分类 | 典型模型 | 核心优化手段 | 正则化技术 (Regularization) | 泛化提升技巧 |
|---|---|---|---|---|
| 监督学习 | 线性/逻辑/SVM | 权重衰减 (Weight Decay) | L1 / L2 正则 | 特征缩放 (Scaling) |
| 树模型/提升树 | 学习率收缩 (Shrinkage) | 树深度限制 / 叶子节点数 | 行/列随机采样 (Subsample) | |
| 深度学习 | 所有神经网络 | Batch Norm / 改良优化器 | Dropout / Early Stop | 数据增强 (Augmentation) |
| 生成模型 | GANs/Diffusion | 谱归一化 (Spectral Norm) | 梯度惩罚 (GP) | 指数移动平均 (EMA) |
| 强化学习 | PPO/Q-Learning | 优势函数 (Advantage) | 熵正则 (Entropy Bonus) | 经验回放 (Replay Buffer) |
特征与工程(特征工程、压缩、在线/离线一致性)
| 范式分类 | 核心考点 | 特征工程重点 | 模型压缩/加速 | 在线一致性挑战 |
|---|---|---|---|---|
| 经典机器 | 特征选择 | 归一化 / One-hot | 特征裁剪 (降维) | 离线计算特征延迟 |
| 集成学习 | 特征重要度 | 缺失值处理 / 异常值 | 剪枝 (Pruning) | 大规模 ID 特征同步 |
| 深度学习 | 自动特征提取 | Embedding 层设计 | 量化 / 蒸馏 (Distillation) | 推理引擎 (TensorRT) 适配 |
| 生成模型 | 隐空间映射 | 降噪强度调节 | 低秩适配 (LoRA) | 算力成本与生成时效 |
| 强化学习 | 状态空间描述 | 状态标准化 (State Norm) | 神经网络轻量化 | 环境模拟器与现实差异 |
业务理解与闭环(场景适配、冷启动、长尾问题)
| 范式分类 | 业务核心点 | 样本不平衡处理 | 冷启动/解释性 | 业务闭环监控 |
|---|---|---|---|---|
| 分类/回归 | 准确性与稳定 | SMOTE / Class Weight | SHAP / LIME (可解释性) | 特征漂移 (Drift) 监控 |
| 推荐/排序 | 转化率 (CVR) | 负采样策略 (Sampling) | 热门垫底 / 协同过滤 | A/B Test 分流验证 |
| NLP/生成 | 交互体验 | 焦点词加权 | 提示词工程 (Prompt) | 幻觉检测 (Hallucination) |
| 强化学习 | 长期收益 | 奖励函数设计 (Shaping) | 探索与利用 (Epsilon) | 线上策略安全熔断 |
。
前向传播(Forward Propagation)
线性变换:
激活函数 (Softmax):
将输出转为概率分布,对于第 \(j\) 个类别:
损失函数(Loss Function)
交叉熵损失 (Cross-Entropy Loss):
假设真实标签的 One-hot 向量为 \(\mathbf{y}\),预测概率为 \(\mathbf{\hat{y}}\):
注:在分类中,由于 \(y_j\) 只有一个位置是 1,其余是 0,公式实际简化为 \(L = -\log \hat{y}_{\text{correct\_class}}\)。
反向传播(Backpropagation)
利用链式法则计算损失函数对参数的偏导数(梯度)。
-
损失对输出层的梯度: 这是一个非常优雅的结果,Softmax 配合交叉熵求导后:
$$ \frac{\partial L}{\partial \mathbf{z}} = \mathbf{\hat{y}} - \mathbf{y} $$ * 对参数的梯度:
\[ \nabla_{\mathbf{W}} L = (\mathbf{\hat{y}} - \mathbf{y}) \mathbf{x}^T \]\[ \nabla_{\mathbf{b}} L = \mathbf{\hat{y}} - \mathbf{y} \]
参数更新(Optimization)
根据计算出的梯度,沿着减少误差的方向修正参数。
-
随机梯度下降 (SGD) 更新法则:
\[ \mathbf{W} \leftarrow \mathbf{W} - \eta \cdot \nabla_{\mathbf{W}} L \]\[ \mathbf{b} \leftarrow \mathbf{b} - \eta \cdot \nabla_{\mathbf{b}} L \]其中 \(\eta\) (Eta) 是 学习率 (Learning Rate) 。
。
必会知识点,待整理
机器学习基础
梯度下降
优化器 SGD Adam
过拟合处理
评估指标:准确率,F1,AUC
L1,L2正则化
ROC曲线
深度学习基础
BN, LN
Attention机制
交叉熵损失
激活函数ReLU
模型压缩技术:剪枝、量化、知识蒸馏
大模型
BERT、GPT架构
LoRA、PEFT微调
SFT
位置编码
大模型幻觉
扩散模型
DDPM,DDIM
CLIP
U-Net网络设计
工程
KV Cache
loss curve异常如何排查
如何验证模型的robustness
ablation study怎么做才有说服力
如何优化transformer-based模型的优化推理速度
Quantization的tradeoff
Sparsity的tradeoff
MLOps
MLOps的步骤
服务部署
性能优化
扩容
线上AB测试
数据工程
数据清洗
数据增强
低资源数据处理
System Design
如何设计一个支持千万级并发推理的在线LLM服务
如何做模型版本的rollout, fallback, abtest
B面
当算法和平台目标冲突时,如何协调
待整理面试知识点
- 向量、矩阵基本运算(加减、乘法、转置、逆)
- 矩阵秩、行列式、迹
- 特征值与特征向量
- 奇异值分解、概念、意义
- 正交矩阵、投影、子空间直观理解
- 随机变量、期望、方差、协方差
- 条件概率、贝叶斯公式
- 均匀、正态、伯努利、指数
- 最大似然估计MLE
- KL散度、交叉熵
- 梯度、链式法则
- 梯度下降GD
- 随机梯度下降SGD
- Adam、RMSProp的工作原理
- 拉格朗日乘子法
- 监督学习vs无监督学习
- 过拟合、欠拟合
- 正则化、L2、Dropout
- 损失函数、MSE、交叉熵
- 评价指标:Accuracy、Precision/Recall、F1
- 特征工程、数据标准化、归一化
- 前向传播
- 反向传播
- 激活函数:ReLU, Sigmoid, Tanh
- 优化器:SGD, Adam
- CNN
- BatchNorm, ResNet
- RNN
- LSTM
- Transformer
- PyTorch手撸代码
- TensorBoard/Weights&Biases记录训练过程
- MDP
- 状态、动作、奖励、价值函数
- 折扣因子
- 策略与价值函数
- 探索vs利用
- Q-learning
- DQN
- Policy Gradient
- Actor-Critic
- PPO
- SAC
- TD3
- Replay Buffer
- GAE
- OpenAI Gym/ Isaac Gym/ Isaac Sim/ MuJoCo
- Stable Baselines3训练CartPole
- PPO/SAC训练Walker2D&Humanoid
- DQN训练Atari
- PPO vs SAC
- 数组、字符串
- 哈希、栈、队列
- 链表
- tree
- graph
- 最短路径:dijkstra, A*
- 动态规划:打家劫舍
- 最大子序和
- 最长公共子序列LCS
- 编辑距离
- 二分查找
- 贪心