跳转至

AI面试题合集(机器学习 深度学习 自然语言)(1)

📖 目录

第一部分:机器学习 (ML) — 20题

  1. 请解释偏差与方差的权衡。

  2. 什么是过拟合?如何防止过拟合?

  3. 请比较L1正则化和L2正则化。

  4. 什么是梯度消失和梯度爆炸?如何解决?

  5. 请详细解释交叉验证的原理及作用。

  6. 什么是特征归一化?为什么需要它?

  7. 请对比Bagging和Boosting。

  8. 请解释支持向量机(SVM)中的核函数。

  9. 什么是聚类?请列举几种常见的聚类算法。

  10. 请解释主成分分析(PCA)的原理。

  11. 什么是朴素贝叶斯?它的“朴素”体现在哪里?

  12. 请解释逻辑回归是线性模型吗?它的损失函数是什么?

  13. 什么是ROC曲线和AUC?如何理解AUC值?

  14. 请解释决策树是如何进行特征选择的?

  15. 什么是随机森林?它为什么能避免过拟合?

  16. 请解释GBDT(梯度提升决策树)的原理。

  17. XGBoost相较于GBDT做了哪些改进?

  18. 什么是降维?降维有哪些优缺点?

  19. 如何处理数据中的类别不平衡问题?

  20. 请解释EM算法(期望最大化算法)的基本思想。

第二部分:深度学习 (DL) — 15题

  1. 请解释多层感知机(MLP)的反向传播算法。

  2. 请列举并对比几种常见的激活函数。

  3. 什么是Batch Normalization?它解决了什么问题?

  4. 请解释卷积神经网络(CNN)中的卷积、池化、感受野。

  5. 什么是1x1卷积?它的作用是什么?

  6. 请解释循环神经网络(RNN)及其局限性。

  7. LSTM是如何解决RNN的长期依赖问题的?

  8. 请解释注意力机制(Attention Mechanism)的核心思想。

  9. Transformer的核心组件有哪些?请简要说明。

  10. 什么是自注意力(Self-Attention)?它相比RNN/CNN有什么优势?

  11. 请解释残差网络(ResNet)为什么能训练得很深。

  12. 什么是Dropout?它为什么能起到正则化作用?

  13. 请解释优化算法:SGD、Momentum、Adam的区别。

  14. 什么是学习率衰减?有哪些常用的衰减策略?

  15. 如何选择深度学习框架(如TensorFlow/PyTorch)?

第三部分:自然语言处理 (NLP) — 15题

  1. 请简要介绍NLP的主要研究领域和应用。

  2. 什么是词嵌入?请比较Word2Vec和GloVe。

  3. 请解释Word2Vec的两种训练模式:CBOW和Skip-gram。

  4. 什么是ELMo?它有什么特点?

  5. 请详细解释BERT的预训练任务(MLM和NSP)。

  6. BERT的输入表示是如何构成的?

  7. 请比较GPT系列模型(GPT、GPT-2、GPT-3)与BERT的区别。

  8. 什么是Transformer中的位置编码?为什么需要它?

  9. 请解释Seq2Seq模型及其在机器翻译中的应用。

  10. 什么是Beam Search?它与贪心搜索有何不同?

  11. 请介绍文本分类的常用方法和评估指标。

  12. 什么是命名实体识别(NER)?有哪些常见方法?

  13. 什么是文本摘要?请简述抽取式与生成式摘要的区别。

  14. 请解释大语言模型(LLM)中的“涌现能力”。

  15. 什么是提示学习(Prompt Learning)和指令微调(Instruction Tuning)?


第一部分:机器学习

请解释偏差与方差的权衡。

答案:

  • 偏差:模型预测值与真实值之间的差异,由模型过于简单(欠拟合)导致,无法捕捉数据中的复杂关系。

  • 方差:模型对训练数据波动的敏感性,由模型过于复杂(过拟合)导致,在新数据上表现不稳定。

  • 权衡:增加模型复杂度会降低偏差但增加方差;减少复杂度则相反。目标是找到总误差最小的平衡点。

什么是过拟合?如何防止过拟合?

答案:

过拟合指模型在训练集上表现极好,但在测试集或新数据上表现差,即泛化能力弱。

防止方法:

  • 增加训练数据量

  • 降低模型复杂度

  • 正则化(L1/L2)

  • 早停法(Early Stopping)

  • Dropout

  • 数据增强

请比较L1正则化和L2正则化。

答案:

  • L1正则化:在损失函数中加入权重绝对值和(λ∑|w|)。产生稀疏解,使部分权重为0,可用于特征选择。

  • L2正则化:加入权重平方和(λ∑w²)。使权重趋近于0但不为0,能平滑模型,提高泛化能力。

  • 区别:L1产生稀疏性,L2更稳定;L1在特征多时有用,L2通常提升效果更稳定。

什么是梯度消失和梯度爆炸?如何解决?

答案:

  • 梯度消失:在深层网络中,梯度在反向传播时逐层减小,接近0,导致前层权重几乎不更新。常见于sigmoid/tanh激活函数。

  • 梯度爆炸:梯度逐层指数级增大,导致权重更新过大,模型不稳定。 解决方法:

  • 使用ReLU及其变体激活函数

  • 使用Batch Normalization

  • 梯度裁剪

  • 使用残差结构(ResNet)

  • 谨慎初始化权重

请详细解释交叉验证的原理及作用。

答案:

原理:将数据集分成k份,每次取k-1份作为训练集,1份作为验证集,重复k次,取平均性能作为模型评估结果。

作用:

  • 更稳定地评估模型泛化能力,减少因数据划分偶然性带来的偏差

  • 充分利用有限数据

  • 用于超参数调优

什么是特征归一化?为什么需要它?

答案:

特征归一化是将不同量纲的特征缩放到相近的范围(如[0,1]或均值为0、方差为1)。

原因:

  • 使梯度下降更快收敛

  • 避免某些特征因数值范围大而主导模型

  • 提升距离类算法(如KNN、SVM)的性能

请对比Bagging和Boosting。

答案:

  • Bagging(如随机森林):并行训练多个独立基学习器,通过投票或平均结合,目的是降低方差。

  • Boosting(如AdaBoost、GBDT):串行训练,每个新模型关注之前模型的错误样本,目的是降低偏差。

  • 区别:Bagging各模型独立,可并行;Boosting依赖顺序,需串行。

请解释支持向量机(SVM)中的核函数。

答案:

核函数用于将低维不可分的数据映射到高维空间,使其线性可分,而无需显式计算高维坐标。

常见核函数:

  • 线性核

  • 多项式核

  • 高斯核(RBF)

  • Sigmoid核

什么是聚类?请列举几种常见的聚类算法。

答案:

聚类是无监督学习,将数据划分为若干组,使组内相似度高、组间相似度低。

常见算法:

  • K-Means:基于距离的划分

  • 层次聚类:自底向上或自顶向下合并

  • DBSCAN:基于密度的聚类,可识别任意形状

  • 高斯混合模型(GMM):基于概率分布

请解释主成分分析(PCA)的原理。

答案:

PCA是一种线性降维方法,通过正交变换将原始特征转换为一组线性无关的新特征(主成分),按方差大小排序。

步骤:

  1. 数据中心化

  2. 计算协方差矩阵

  3. 对协方差矩阵做特征值分解

  4. 选取前k个最大特征值对应的特征向量作为投影方向

什么是朴素贝叶斯?它的“朴素”体现在哪里?

答案:

朴素贝叶斯是基于贝叶斯定理的分类方法,假设特征之间条件独立(即“朴素”)。尽管该假设在实际中往往不成立,但它在许多任务中表现良好,计算效率高。

请解释逻辑回归是线性模型吗?它的损失函数是什么?

答案:

逻辑回归是线性分类模型,其决策边界是线性的。它使用sigmoid函数将线性输出映射到概率空间。

损失函数:交叉熵损失(对数损失):

L=−[ylog⁡(y^)+(1−y)log⁡(1−y^)]L=−[ylog(y^)+(1−y)log(1−y^)]

什么是ROC曲线和AUC?如何理解AUC值?

答案:

  • ROC曲线:以假正率(FPR)为横轴,真正率(TPR)为纵轴绘制的曲线,反映模型在不同阈值下的性能。

  • AUC:ROC曲线下的面积,取值范围[0.5,1]。

  • 理解:AUC越大,模型区分正负类的能力越强。AUC=0.5表示随机猜测。

请解释决策树是如何进行特征选择的?

答案:

决策树通过分裂准则选择最优特征:

  • ID3:信息增益

  • C4.5:信息增益率

  • CART:基尼系数(分类)或均方误差(回归)

什么是随机森林?它为什么能避免过拟合?

答案:

随机森林是集成学习算法,通过Bagging方式构建多棵决策树,并在每次分裂时随机选择特征子集。

抗过拟合原因:

  • 集成多棵树的平均结果降低方差

  • 随机特征选择增强多样性

  • 相比单棵决策树,泛化能力更强

请解释GBDT(梯度提升决策树)的原理。

答案:

GBDT是Boosting算法,通过迭代训练多棵CART回归树,每棵树拟合当前模型的负梯度(伪残差),累加所有树的预测结果。损失函数可以是平方误差、对数损失等。

XGBoost相较于GBDT做了哪些改进?

答案:

  • 加入正则化项(L1/L2),防止过拟合

  • 支持并行化(特征预排序)

  • 对缺失值自动处理

  • 二阶泰勒展开近似损失函数,加速优化

  • 内置交叉验证和早停

什么是降维?降维有哪些优缺点?

答案:

降维指通过映射将高维数据降低到低维空间。

优点:

  • 减少计算开销

  • 缓解维度灾难

  • 去除噪声和冗余

  • 便于可视化 缺点:

  • 可能丢失有用信息

  • 可解释性下降

  • 降维后的数据可能不易理解

如何处理数据中的类别不平衡问题?

答案:

  • 数据层面:过采样(SMOTE)、欠采样

  • 算法层面:调整类别权重、使用Focal Loss

  • 评估指标:使用Precision/Recall、F1-score、AUC,而非准确率

请解释EM算法(期望最大化算法)的基本思想。

答案:

EM算法用于含有隐变量的参数估计,分为两步迭代:

  • E步:根据当前参数计算隐变量的期望(后验概率)

  • M步:最大化完全数据的对数似然,更新参数 常用于高斯混合模型(GMM)和HMM参数学习。


第二部分:深度学习

请解释多层感知机(MLP)的反向传播算法。

答案:

反向传播基于链式法则,计算损失函数对各层权重的梯度:

  1. 前向传播:计算各层输出

  2. 计算输出层误差(损失对输出的导数)

  3. 反向传播误差:逐层计算误差对权重的梯度

  4. 更新权重:使用梯度下降法更新

请列举并对比几种常见的激活函数。

答案:

函数 公式 优点 缺点
Sigmoid 1/(1+e^-x) 平滑,输出在(0,1) 梯度消失,非零中心
Tanh (e^x - e^-x)/(e^x + e^-x) 零中心 仍有梯度消失
ReLU max(0,x) 计算快,缓解梯度消失 神经元死亡
Leaky ReLU max(αx, x) 解决神经元死亡 超参数α需设定
Swish x·sigmoid(x) 平滑,性能优于ReLU 计算稍复杂

什么是Batch Normalization?它解决了什么问题?

答案:

BN是对每个batch的数据进行标准化(均值0,方差1),再通过可学习的缩放和平移恢复表达能力。

解决的问题:

  • 缓解内部协变量偏移,稳定训练

  • 允许使用更大的学习率

  • 起到轻微正则化作用

  • 减少对初始化的依赖

请解释卷积神经网络(CNN)中的卷积、池化、感受野。

答案:

  • 卷积:使用卷积核在输入上滑动,提取局部特征,共享权重。

  • 池化:下采样操作(最大/平均池化),减少空间尺寸,增强平移不变性。

  • 感受野:某一层神经元在原始输入上的映射区域大小,层数越深,感受野越大。

什么是1x1卷积?它的作用是什么?

答案:

1x1卷积即卷积核尺寸为1×1的卷积操作。

作用:

  • 改变通道数:实现升维或降维,减少计算量

  • 增加非线性:引入激活函数,增强表达能力

  • 跨通道信息交互

请解释循环神经网络(RNN)及其局限性。

答案:

RNN通过循环结构处理序列数据,当前时刻的输出依赖于前一时刻的隐藏状态。

局限性:

  • 难以捕捉长期依赖(梯度消失/爆炸)

  • 训练速度慢,无法并行

  • 对长序列记忆能力有限

LSTM是如何解决RNN的长期依赖问题的?

答案:

LSTM引入门控机制(输入门、遗忘门、输出门)和细胞状态:

  • 遗忘门决定丢弃哪些历史信息

  • 输入门决定存入哪些新信息

  • 输出门决定输出哪些信息 通过这种精细控制,LSTM能有效保持长期记忆,缓解梯度消失。

请解释注意力机制(Attention Mechanism)的核心思想。

答案:

注意力机制让模型在处理当前输出时,能够动态地关注输入序列中最相关的部分。核心是计算查询(Query)与键(Key)的相似度,得到权重,再对值(Value)加权求和。它解决了RNN在长序列中信息丢失的问题,并支持并行计算。

Transformer的核心组件有哪些?请简要说明。

答案:

  • 多头自注意力:捕获序列内部不同位置间的依赖关系

  • 前馈神经网络:逐位置的非线性变换

  • 残差连接 + 层归一化:稳定训练,加速收敛

  • 位置编码:注入序列位置信息

  • 编码器-解码器结构:编码器处理输入,解码器生成输出

什么是自注意力(Self-Attention)?它相比RNN/CNN有什么优势?

答案:

自注意力计算序列中每个位置与其他所有位置的关联权重,得到上下文表示。

优势:

  • 捕获任意距离的依赖关系,无长距离衰减

  • 并行计算,比RNN快

  • 感受野大,比CNN更灵活

  • 可解释性强(可视化注意力权重)

请解释残差网络(ResNet)为什么能训练得很深。

答案:

残差网络引入跳跃连接,让层学习输入与输出的残差F(x) = H(x) - x,而不是直接拟合H(x)。

优点:

  • 梯度可直接通过跳跃连接反向传播,缓解梯度消失

  • 使深层网络至少不差于浅层网络(恒等映射)

  • 允许网络深度达到上百层

什么是Dropout?它为什么能起到正则化作用?

答案:

Dropout在训练时以概率p随机丢弃部分神经元(不参与前向和反向传播),测试时使用所有神经元但乘以(1-p)。

正则化原理:

  • 防止神经元之间的共适应

  • 相当于训练多个子网络的集成

  • 增加模型鲁棒性

请解释优化算法:SGD、Momentum、Adam的区别。

答案:

  • SGD:每次使用单个样本或小批量更新梯度,简单但可能震荡。

  • Momentum:引入动量项,加速收敛并减小震荡。

  • Adam:结合动量和自适应学习率(一阶矩估计和二阶矩估计),通常收敛更快,对超参数较鲁棒。

什么是学习率衰减?有哪些常用的衰减策略?

答案:

学习率衰减是在训练过程中逐步降低学习率,使模型在后期更稳定地收敛到最优。

常用策略:

  • 阶梯衰减

  • 指数衰减

  • 余弦退火

  • 基于验证集表现的自适应衰减

如何选择深度学习框架(如TensorFlow/PyTorch)?

答案:

  • PyTorch:动态图,更灵活,调试方便,研究社区广泛,适合快速原型开发。

  • TensorFlow:静态图(2.x版本支持动态),生产部署成熟,TensorBoard强大,适合工业级应用。

  • 选择取决于项目需求、团队熟悉度、生态支持。


第三部分:自然语言处理

请简要介绍NLP的主要研究领域和应用。

答案:

NLP旨在让计算机理解、生成和处理人类语言。

主要研究领域:

  • 文本分类、情感分析

  • 命名实体识别(NER)

  • 机器翻译

  • 问答系统

  • 文本摘要

  • 对话系统

  • 信息抽取

  • 大语言模型

什么是词嵌入?请比较Word2Vec和GloVe。

答案:

词嵌入是将词映射到低维稠密向量,表示语义信息。

  • Word2Vec:基于局部上下文(滑动窗口),使用CBOW或Skip-gram训练,预测任务。

  • GloVe:基于全局词共现矩阵,通过矩阵分解学习,结合了统计信息和局部上下文。 区别:Word2Vec是预测模型,GloVe是计数模型;两者均能捕获词的语义相似性。

请解释Word2Vec的两种训练模式:CBOW和Skip-gram。

答案:

  • CBOW:用上下文词预测当前词,训练速度快,适合常见词。

  • Skip-gram:用当前词预测上下文词,对低频词更友好,能学习更丰富的语义。

什么是ELMo?它有什么特点?

答案:

ELMo是基于双向LSTM的深度上下文词嵌入模型。

特点:

  • 根据上下文动态生成词向量(一词多义)

  • 使用多层LSTM输出,加权组合

  • 是早期预训练语言模型的代表

请详细解释BERT的预训练任务(MLM和NSP)。

答案:

  • MLM(掩码语言模型):随机遮盖输入中15%的词,让模型预测被遮盖的词(80%用[MASK]替换,10%随机替换,10%保持不变)。使模型学习双向上下文。

  • NSP(下一句预测):判断两句话是否为连续上下文(50%是,50%随机负例),帮助模型学习句子间关系。

BERT的输入表示是如何构成的?

答案:

BERT输入为三部分之和:

  • Token Embeddings:词/子词的向量

  • Segment Embeddings:区分第一句和第二句

  • Position Embeddings:位置向量(可学习) 输入格式:[CLS] + 句1 + [SEP] + 句2 + [SEP]

请比较GPT系列模型(GPT、GPT-2、GPT-3)与BERT的区别。

答案:

维度 BERT GPT系列
架构 仅编码器(双向) 仅解码器(单向自回归)
预训练任务 MLM + NSP 语言建模(预测下一个词)
适用场景 理解型任务(分类、NER) 生成型任务(文本生成、对话)
参数量 较小(~3.4亿) GPT-3达到1750亿
特点 双向上下文,适合判别 自回归,适合生成

什么是Transformer中的位置编码?为什么需要它?

答案:

位置编码用于为序列中的每个位置注入位置信息,因为Transformer的自注意力本身是置换不变的(不关心顺序)。

实现方式:

  • 正弦/余弦函数(原始Transformer)

  • 可学习的位置编码(BERT)

  • 相对位置编码

请解释Seq2Seq模型及其在机器翻译中的应用。

答案:

Seq2Seq是一种编码器-解码器架构,编码器将输入序列编码为固定向量,解码器逐步生成输出序列。

在机器翻译中:

  • 编码器读取源语言句子

  • 解码器生成目标语言句子

  • 常结合注意力机制提升效果

答案:

  • 贪心搜索:每一步选择概率最高的词,可能陷入局部最优。

  • Beam Search:每一步保留k个候选序列(beam size),扩展后保留总概率最高的k个,最终选择最优序列。能更接近全局最优。

请介绍文本分类的常用方法和评估指标。

答案:

常用方法:

  • 传统:TF-IDF + 朴素贝叶斯/SVM

  • 深度学习:TextCNN、LSTM、BERT、RoBERTa 评估指标:

  • 准确率、精确率、召回率、F1-score

  • 多分类常用宏平均/微平均

什么是命名实体识别(NER)?有哪些常见方法?

答案:

NER是从文本中识别出实体(人名、地名、组织名等)及其类别。

常见方法:

  • 基于规则/词典

  • 传统机器学习:CRF(条件随机场)

  • 深度学习:BiLSTM-CRF、BERT-CRF

  • 大模型:基于提示的少样本NER

什么是文本摘要?请简述抽取式与生成式摘要的区别。

答案:

  • 抽取式摘要:从原文中选择关键句子或短语组合成摘要,保证原文不变,但可能不连贯。

  • 生成式摘要:模型理解原文后重新组织语言生成摘要,更接近人类写作,但可能产生幻觉。

请解释大语言模型(LLM)中的“涌现能力”。

答案:

涌现能力指当模型规模超过某个阈值后,突然出现的、在小模型中不存在的复杂能力(如推理、代码生成、上下文学习)。这与模型规模、数据量、训练方式有关,是LLM的重要特征。

什么是提示学习(Prompt Learning)和指令微调(Instruction Tuning)?

答案:

  • 提示学习:设计自然语言提示模板,将下游任务转换为语言模型擅长的填空或生成任务,通过离散或连续提示激发模型能力。

  • 指令微调:使用大量“指令-回答”对微调模型,使模型学会遵循人类指令,提升零样本泛化能力(如ChatGPT)。