AI面试题合集(机器学习 深度学习 自然语言)(1)
📖 目录¶
第一部分:机器学习 (ML) — 20题¶
-
请解释偏差与方差的权衡。
-
什么是过拟合?如何防止过拟合?
-
请比较L1正则化和L2正则化。
-
什么是梯度消失和梯度爆炸?如何解决?
-
请详细解释交叉验证的原理及作用。
-
什么是特征归一化?为什么需要它?
-
请对比Bagging和Boosting。
-
请解释支持向量机(SVM)中的核函数。
-
什么是聚类?请列举几种常见的聚类算法。
-
请解释主成分分析(PCA)的原理。
-
什么是朴素贝叶斯?它的“朴素”体现在哪里?
-
请解释逻辑回归是线性模型吗?它的损失函数是什么?
-
什么是ROC曲线和AUC?如何理解AUC值?
-
请解释决策树是如何进行特征选择的?
-
什么是随机森林?它为什么能避免过拟合?
-
请解释GBDT(梯度提升决策树)的原理。
-
XGBoost相较于GBDT做了哪些改进?
-
什么是降维?降维有哪些优缺点?
-
如何处理数据中的类别不平衡问题?
-
请解释EM算法(期望最大化算法)的基本思想。
第二部分:深度学习 (DL) — 15题¶
-
请解释多层感知机(MLP)的反向传播算法。
-
请列举并对比几种常见的激活函数。
-
什么是Batch Normalization?它解决了什么问题?
-
请解释卷积神经网络(CNN)中的卷积、池化、感受野。
-
什么是1x1卷积?它的作用是什么?
-
请解释循环神经网络(RNN)及其局限性。
-
LSTM是如何解决RNN的长期依赖问题的?
-
请解释注意力机制(Attention Mechanism)的核心思想。
-
Transformer的核心组件有哪些?请简要说明。
-
什么是自注意力(Self-Attention)?它相比RNN/CNN有什么优势?
-
请解释残差网络(ResNet)为什么能训练得很深。
-
什么是Dropout?它为什么能起到正则化作用?
-
请解释优化算法:SGD、Momentum、Adam的区别。
-
什么是学习率衰减?有哪些常用的衰减策略?
-
如何选择深度学习框架(如TensorFlow/PyTorch)?
第三部分:自然语言处理 (NLP) — 15题¶
-
请简要介绍NLP的主要研究领域和应用。
-
什么是词嵌入?请比较Word2Vec和GloVe。
-
请解释Word2Vec的两种训练模式:CBOW和Skip-gram。
-
什么是ELMo?它有什么特点?
-
请详细解释BERT的预训练任务(MLM和NSP)。
-
BERT的输入表示是如何构成的?
-
请比较GPT系列模型(GPT、GPT-2、GPT-3)与BERT的区别。
-
什么是Transformer中的位置编码?为什么需要它?
-
请解释Seq2Seq模型及其在机器翻译中的应用。
-
什么是Beam Search?它与贪心搜索有何不同?
-
请介绍文本分类的常用方法和评估指标。
-
什么是命名实体识别(NER)?有哪些常见方法?
-
什么是文本摘要?请简述抽取式与生成式摘要的区别。
-
请解释大语言模型(LLM)中的“涌现能力”。
-
什么是提示学习(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是一种线性降维方法,通过正交变换将原始特征转换为一组线性无关的新特征(主成分),按方差大小排序。
步骤:
-
数据中心化
-
计算协方差矩阵
-
对协方差矩阵做特征值分解
-
选取前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)的反向传播算法。¶
答案:
反向传播基于链式法则,计算损失函数对各层权重的梯度:
-
前向传播:计算各层输出
-
计算输出层误差(损失对输出的导数)
-
反向传播误差:逐层计算误差对权重的梯度
-
更新权重:使用梯度下降法更新
请列举并对比几种常见的激活函数。¶
答案:
| 函数 | 公式 | 优点 | 缺点 |
|---|---|---|---|
| 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?它与贪心搜索有何不同?¶
答案:
-
贪心搜索:每一步选择概率最高的词,可能陷入局部最优。
-
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)。