尚硅谷大模型技术之高频面试题
版本:V2.1.9
核心技术 / 深度学习

深度学习

30 个问题

深度学习基础概念#

Q什么是深度学习?与传统机器学习的核心区别是什么?#

深度学习是机器学习的子领域,通过多层神经网络(深度神经网络)自动提取数据的多层次特征,处理图像、文本等复杂非结构化数据。

核心区别:传统机器学习依赖人工设计特征,而深度学习通过多层网络自动学习特征;深度学习对数据量和计算资源需求更高,擅长处理高维非结构化数据。

Q神经网络的基本构成是什么?#

由神经元、层和连接权重组成:

  • 神经元:接收输入信号,加权求和后通过激活函数输出。
  • 层:输入层(接收原始数据)、隐藏层(特征转换)、输出层(输出预测结果)。
  • 连接权重:层间神经元的可学习参数,决定信号传递强度。

激活函数#

Q激活函数的作用是什么?为什么必须是非线性的?#

作用:为神经网络引入非线性,使模型能拟合复杂的非线性关系。

必要性:若激活函数为线性,多层网络会退化为单层线性模型,无法学习复杂模式。

QSigmoid 函数的公式及优缺点是什么?#

公式:

  • 优点:平滑可导,输出映射到 (0,1),适合二分类输出层。
  • 缺点:易梯度消失(输入绝对值较大时导数接近 0);输出非零中心,导致后续层的输入始终为正,影响后续梯度更新方向。

QReLU 函数的公式及优缺点是什么?#

公式:

  • 优点:计算高效,缓解梯度消失;引入稀疏性,减少过拟合风险。
  • 缺点:输入为负时,会出现“神经元死亡”问题(输出恒为 0)。

QSoftmax 函数的公式及作用是什么?#

公式:

作用:将一个任意的实数向量转换为一个概率分布,确保输出值的总和为1,是二分类激活函数Sigmoid在多分类上的推广。Softmax常用于多分类问题的输出层,用来表示类别的预测概率。

Q实际任务中应该如何选择激活函数?#

  • 二分类输出层:Sigmoid;
  • 多分类输出层:Softmax;
  • 卷积/浅层网络:ReLU。

QReLU 在 0 处不可导,为什么还能使用?#

0 处不可导是因为存在多个可能的切线,但实际中输入为 0 的概率极低。通常默认取一个梯度值(如0),不影响整体训练。

Q为什么神经网络常用 ReLU 作为激活函数?#

  • 计算效率高于 Sigmoid、Tanh;
  • 有效避免梯度消失(正区间导数为 1);
  • 引入稀疏性,缓解过拟合,提升了模型的泛化性能。
  • 有助于随机梯度下降方法收敛。

神经网络的训练#

Q损失函数的作用是什么?神经网络中,分类和回归任务常用的损失函数有哪些?#

作用:衡量预测值与真实值的差异,是参数优化的目标函数。

  • 分类任务:二元交叉熵(BCE,二分类)、多分类交叉熵(CrossEntropy,多分类)。
  • 回归任务:均方误差(MSE)、平均绝对误差(MAE)、Smooth L1。

Q反向传播算法的原理是什么?#

基于微积分的链式法则,从输出层到输入层反向计算损失函数对各参数的梯度:

  • 首先前向传播:计算输入经各层后的输出及损失。
  • 然后反向传播:从输出层开始,逐层反向传递梯度,并更新参数(权重和偏置)。

该算法存储了计算某些参数梯度时所需的任何中间变量。

核心目的:高效计算梯度,为参数优化提供依据。

Q如何评估深度学习模型的性能?#

  • 分类任务:准确率、精确率、召回率、F1 分数、ROC-AUC。
  • 回归任务:均方误差(MSE)、平均绝对误差(MAE)、R²。

评价模型的泛化能力:在测试集上的表现,结合交叉验证。

Q什么是早停法(Early Stopping)?作用是什么?#

当验证集损失不再下降时停止训练,避免模型过度拟合训练数据,节省计算资源。

神经网络的超参数#

Q神经网络中包含哪些超参数?#

通常可以将超参数分为三类:网络参数、优化参数、正则化参数。

  • 网络参数:可以包括网络层与层之间的交互方式(相加、相乘或者串接等)、卷积核数量和卷积核尺寸、网络层数(也称深度)和激活函数等。
  • 优化参数:一般指学习率、批样本数量(batch size)、不同优化器的参数以及部分损失函数的可调参数。
  • 正则化:权重衰减系数,随机失活(dropout)丢弃比例

Q学习率过大或过小会有什么问题?如何设置学习率?#

学习率过大过小问题#
  • 过大:可能在最小值附近震荡,甚至不收敛(损失爆炸)。
  • 过小:收敛速度极慢,可能陷入局部最优。
设置学习率方法:#
  • 基于经验调整:初始尝试 0.1、0.01、0.001 等,根据损失变化调整,可以通过交叉验证确认;
  • 基于策略调整:使用学习率衰减策略(如指数衰减、阶梯衰减)。

Qbatch size 的选择对模型训练有何影响?#

  • 过小:梯度估计噪声大,训练不稳定,可能难以收敛。
  • 过大:梯度估计稳定,但内存消耗高,可能陷入局部最优。

常用值:32、64、128,需平衡内存和训练效果。

Q神经网络调参,具体有哪些方向?#

  • 训练样本数据是否均衡,是否处理完成。
  • 超参数:如学习率,batch_size,epochs等。
  • 损失函数以及激活函数选择。
  • 是否选择合适的优化器以及是否做归一化。
  • 是否做预防过拟合措施如:早停等。

神经网络的优化(学习的技巧)#

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

什么是梯度消失和梯度爆炸?#
  • 梯度消失:深层网络中,梯度反向传播时经多层传递后趋近于 0,导致浅层参数难以更新,学习无法进行。
  • 梯度爆炸:梯度反向传播时经多层传递后急剧增大,导致网络不稳定。
解决方法:#

使用 ReLU 激活函数、梯度裁剪(针对梯度爆炸)、合理初始化权重、改变网络结构(如引入BN层、残差连接、LSTM等)。

Q如何判断出现了梯度爆炸?#

  • 模型不稳定,导致更新过程中的损失出现显著变化;
  • 训练过程中模型梯度快速变大;
  • 训练过程中模型权重变成 NaN 值;
  • 训练过程中,每个节点和层的误差梯度值持续超过 1.0。

Q梯度下降法(优化器)合集!!!#

SGD#

随机使用单个样本计算梯度,速度快但震荡剧烈。

更新公式:

W 是要更新的权重参数,损失函数关于L的梯度就是,η是学习率。

Momentum#

引入历史梯度加权和,缓解震荡,加速收敛。

更新公式:

  • v:历史(负)梯度的加权和
  • α:历史梯度的权重
  • ▽:当前梯度,即
AdaGrad#

引入历史梯度平方和作为衰减系数,为每个参数自适应调整学习率,适合稀疏数据。

更新公式:

  • (h:表示历史梯度的平方和)
RMSProp#

改进 AdaGrad,对历史梯度做指数移动平均,避免学习率过早衰减。

更新公式:

  • h:历史梯度平方和的指数移动加权平均;
  • α:权重。
Adam#

融合 Momentum 和 RMSProp,动态调整学习率,适用于多数场景。

更新公式:

  • :一次动量系数和二次动量系数
  • :分别是二阶矩估计矫正和一阶矩估计矫正

Q为什么 Adam 在实际中常用?与 SGD 相比有何优势?#

Adam 结合了动量(Momentum)和自适应学习率(RMSProp),收敛稳定且速度快,对超参数敏感低;SGD 需精细调参,但在精调后可能取得更好的最终性能。

Q为什么 Adam + L2正则化效果不好?AdamW是如何解决的?#

Adam + L2问题#

直接把 L2 正则化项 加入梯度,梯度会被二阶矩估计()缩放,导致正则化强度不再固定,而是随训练过程动态衰减,从而失去“稳定收缩权重”的作用。

AdamW解决方案#

AdamW把权重衰减不作用于损失函数,在参数更新阶段额外加上,不再依赖二阶矩缩放,更加稳定。

AdamW对比Adam最大的改动就是将权重衰减于自适应学习率机制正确解耦。

Adam权重衰减位置被整合到梯度计算,而AdamW权重衰减被施加到真正的权重本身。

Q权重初始化的重要性是什么?为什么不能将权重初始化为 0?#

重要性:合理初始化可避免梯度消失 / 爆炸,加速收敛。

零初始化问题:导致所有神经元更新一致(对称权重),网络失去表达能力。

Q常用的权重初始化方法有哪些?#

  • 随机正态分布初始化;
  • 均匀分布初始化;
  • Xavier 初始化(针对 Sigmoid/Tanh);
  • He 初始化(针对 ReLU)。

QXavier 初始化和 He 初始化的适用场景是什么?#

Xavier 初始化:适用于 Sigmoid、Tanh 等激活函数,使输入和输出方差相近。

He 初始化:适用于 ReLU 及其变体,考虑 ReLU 对负输入的抑制,初始化方差更大。

Q神经网络中有哪些正则化技术?#

神经网络中,用来抑制过拟合的技术都被称为正则化技术,包括:批量标准化(Batch Normalization,BN)、权值衰减(L1或L2正则化)、Dropout、早停法、数据增强等。

Q什么是批量标准化(Batch Normalization,BN)?作用是什么?#

批量标准化(BN,也称批量归一化),就是对每批数据标准化(均值 0、方差 1),再通过可学习参数缩放和平移。

作用:稳定各层输入分布,允许更高学习率;减少过拟合;降低对初始化的敏感度。

QBN 层在训练和测试时有何区别?#

训练时:使用当前批次的均值和方差。

测试时:使用训练过程中累积的移动均值和方差,确保结果稳定(没有数据泄露)。

QDropout 的原理及作用是什么?训练和测试时有何区别?#

原理:训练时随机 “关闭” 部分神经元(如概率 0.5),迫使模型不依赖特定神经元。

作用:增强模型鲁棒性,减少过拟合;近似集成学习的效果。

训练时随机丢弃神经元,输出按存活概率缩放;测试时不丢弃,所有神经元参与计算。

Q数据增强的目的是什么?常用方法有哪些?#

数据增强是一种通过对现有数据应用一系列操作来人为地增加数据集大小的技术。

目的:增加数据多样性,减少过拟合,提升模型泛化能力。

方法:图像(翻转、旋转、缩放、裁剪、平移、加噪声)、文本(同义词替换、句子重排)。