AI面试冲刺指南:深度学习与机器学习高频题解析

281. 什么是梯度消失与梯度爆炸?如何缓解?

梯度消失指反向传播中梯度逐层衰减至0,导致浅层参数无法更新;梯度爆炸则相反,梯度指数级增长破坏参数稳定性。常见于深度神经网络或长序列RNN。

缓解方法

  • 梯度裁剪:设定阈值,限制梯度最大值(如torch.nn.utils.clip_grad_norm_)。
  • 权重初始化:使用He初始化(ReLU激活)或Xavier初始化(Sigmoid/Tanh)。
  • 归一化层:BatchNorm或LayerNorm稳定输入分布。
  • 残差连接:通过跳跃连接(如ResNet)缓解深层网络梯度问题。

282. 解释Dropout与DropConnect的区别

Dropout随机屏蔽神经元(输出置0),强制网络不过度依赖特定节点,增强泛化性;DropConnect则随机屏蔽权重连接(权重置0),更灵活但计算成本略高。两者均需在测试时按保留比例缩放激活值。

283. 如何优化Transformer的注意力机制?

  • 稀疏注意力:局部窗口(如Swin Transformer)或全局稀疏连接(如BigBird)。
  • 低秩分解:用两个小矩阵近似QK^T(如Linformer)。
  • 记忆压缩:共享Key-Value或使用固定模式(如Axial Transformer)。
  • 相对位置编码:替代绝对位置编码,提升长序列建模能力。

284. 对比BERT与GPT的预训练任务

任务类型 BERT GPT
目标 双向上下文理解 自回归生成
预训练任务 MLM(掩码语言模型) 因果语言建模(CLM)
典型应用 文本分类、问答 文本生成、对话系统
输入处理 同时处理左右上下文 仅依赖左侧上下文

285. 什么是负采样?在Word2Vec中如何应用?

负采样通过随机选择负例(非目标词)替代全量softmax计算,降低计算复杂度。在Word2Vec中,模型需区分真实目标词与负例,优化目标为:
[
\log \sigma(v{o}^T v{c}) + \sum{i=1}^{k} \mathbb{E}{wi \sim P_n}[\log \sigma(-v{wi}^T v{c})]
]
其中(v_c)为中心词向量,(v_o)为目标词向量,(P_n)为噪声分布。

286. 解释Focal Loss的原理与适用场景

Focal Loss通过动态调整类别权重,解决类别不平衡问题:
[
FL(p_t) = -\alpha_t (1-p_t)^\gamma \log(p_t)
]
其中(p_t)为模型预测概率,(\gamma)聚焦参数((\gamma>0)时降低易分类样本权重)。适用于目标检测(如RetinaNet)或分类任务中正负样本比例悬殊的场景。

287. 如何设计多任务学习的损失函数?

加权求和法:为各任务分配静态权重(如(\lambda_1 L_1 + \lambda_2 L_2)),需手动调参。
动态权重法:根据任务难度自动调整权重,如GradNorm通过反向传播梯度范数平衡训练速度。
不确定性加权:引入任务相关噪声参数,自适应调整损失贡献(如《Multi-Task Learning Using Uncertainty to Weigh Losses》)。

288. 什么是知识蒸馏?如何实现?

知识蒸馏将大型教师模型的软标签(含类别间相似性信息)迁移至小型学生模型。实现步骤:

  1. 训练教师模型(如ResNet-152)。
  2. 计算软标签:(p_i = \frac{\exp(z_i/T)}{\sum_j \exp(z_j/T)}),(T)为温度参数。
  3. 联合训练学生模型:最小化KL散度(软标签)与交叉熵(硬标签)的加权和。

289. 对比CNN与Transformer在图像分类中的优劣

维度 CNN Transformer
局部性 天然捕捉局部特征 需通过位置编码模拟
计算复杂度 (O(n))(局部连接) (O(n^2))(全局注意力)
数据效率 小数据集表现优异 需大量数据预训练
迁移能力 依赖预训练权重 通用性强,适应多任务

290. 如何评估生成模型的质量?

  • 定量指标:BLEU(机器翻译)、ROUGE(文本摘要)、FID(图像生成,Frechet Inception Distance)。
  • 定性评估:人工评分(流畅性、相关性)、A/B测试对比竞品。
  • 多样性指标:Distinct-n(n-gram多样性)、Self-BLEU(抑制重复生成)。

291. 解释贝叶斯优化的核心步骤

  1. 定义目标函数:如模型在验证集上的准确率。
  2. 选择代理模型:高斯过程(GP)或随机森林,拟合已观测数据。
  3. 采集函数:如EI(Expected Improvement)选择下一个评估点。
  4. 迭代优化:更新代理模型,重复步骤2-3直至收敛。

292. 如何处理类别不平衡的分类问题?

  • 重采样:过采样少数类(SMOTE)或欠采样多数类。
  • 代价敏感学习:为少数类分配更高误分类代价(如XGBoost的scale_pos_weight)。
  • 集成方法:Bagging(如EasyEnsemble)或Boosting(如AdaBoost)。
  • 合成数据:使用GAN生成少数类样本(如CTGAN)。

293. 什么是自监督学习?举例说明

自监督学习通过设计预训练任务从无标签数据中学习表征,无需人工标注。典型案例:

  • NLP:BERT的MLM任务、GPT的因果语言建模。
  • CV:SimCLR的对比学习(同一图像不同增强视图为正例)、MAE的掩码图像重建。

294. 如何优化模型推理速度?

  • 量化:将FP32权重转为INT8(如TensorRT量化工具)。
  • 剪枝:移除冗余通道或权重(如《The Lottery Ticket Hypothesis》)。
  • 知识蒸馏:用轻量级学生模型替代教师模型。
  • 硬件加速:使用TPU或GPU优化算子(如cuDNN)。

295. 解释强化学习中的Q-Learning与Policy Gradient

维度 Q-Learning Policy Gradient
输出类型 状态-动作值函数(Q(s,a)) 策略概率(\pi(a s))
更新方式 离线策略(可利用历史数据) 在线策略(需当前策略生成数据)
适用场景 离散动作空间(如网格世界) 连续动作空间(如机器人控制)
典型算法 DQN PPO、A3C

296. 如何设计一个高效的推荐系统?

  1. 召回阶段:使用双塔模型(User/Item Embedding)或图嵌入(如Node2Vec)。
  2. 排序阶段:结合DNN与特征交叉(如Wide&Deep模型)。
  3. 重排阶段:考虑多样性、新鲜度等业务规则。
  4. 在线学习:通过FTRL等算法实时更新模型。

297. 什么是联邦学习?其核心挑战是什么?

联邦学习在数据不出域的前提下联合多方训练模型,分为横向联邦(数据特征重叠少)与纵向联邦(样本重叠少)。核心挑战包括:

  • 通信开销:通过模型压缩(如量化)或稀疏更新降低传输量。
  • 非独立同分布(Non-IID):使用个性化联邦学习(如FedPer)。
  • 隐私保护:结合差分隐私或安全多方计算(MPC)。

298. 如何解释模型预测结果?

  • 特征重要性:SHAP值、LIME(局部可解释模型)。
  • 注意力可视化:展示Transformer中关键token的注意力权重。
  • 规则提取:从决策树或规则模型中抽取显式规则。

299. 什么是持续学习?如何缓解灾难性遗忘?

持续学习要求模型在新任务上训练时不遗忘旧任务知识。缓解方法包括:

  • 正则化:EWC(Elastic Weight Consolidation)惩罚关键参数变化。
  • 回放缓冲区:存储旧任务样本(如iCaRL)。
  • 动态架构:为新任务扩展网络(如Progressive Neural Networks)。

300. 如何设计一个自动化机器学习(AutoML)框架?

  1. 搜索空间定义:包括网络结构、超参数、正则化方法等。
  2. 搜索策略:随机搜索、贝叶斯优化或强化学习(如NASNet)。
  3. 评估机制:代理模型加速评估或低保真估计(如减少epoch数)。
  4. 部署集成:将最优模型导出为标准化格式(如ONNX)。

总结:本文覆盖了深度学习模型优化、机器学习算法对比、NLP与CV核心问题等面试高频考点,结合理论解析与实战案例,帮助开发者系统掌握关键技术点,提升面试竞争力。