复试笔试---深度学习八股
·
神经网络
神经网络是什么?
- 定义:受生物神经系统启发,模拟人脑处理信息的计算模型。
- 组成:由相互连接的神经元构成,通过加权连接传递信息,并用非线性激活函数处理数据。
- 核心思想:通过训练调整权重,从数据中学习复杂模式与关系。
- 地位与应用:是机器学习和深度学习的基础,广泛用于图像识别、自然语言处理、语音识别等领域。
神经网络的基本结构?
- 整体结构:典型神经网络由输入层、隐藏层、输出层三部分构成。
- 输入层:负责接收外部数据,每个节点对应一个输入特征。
- 隐藏层:对数据做非线性变换,可包含多层,核心作用是提取数据的高层次特征。
- 输出层:生成最终预测结果,节点数随任务变化:
- 分类任务:节点数 = 类别数
- 回归任务:通常为 1 个节点
三个重要的概念:
-
激活函数
- 核心作用:为神经网络引入非线性特性,使其能够拟合复杂的数据关系。
- 常见类型:Sigmoid、ReLU、Tanh 等。
-
权重(Weights)
- 本质:连接神经元的参数,用于调节输入特征的重要性。
- 功能:对输入特征加权求和,决定特征对结果的贡献程度;重要特征对应大权重,无关特征对应接近零的权重。
- 意义:通过调整权重,网络可以学习数据特征的优先级。
-
偏置(Biases)
- 本质:常数项,用于调整神经元的激活阈值。
- 功能:让模型在无输入时也能产生非零输出,提升模型拟合数据的灵活性。
- 影响:偏置越大,神经元越容易被激活;偏置越小,神经元激活所需的输入信号越强。
感知机和多层感知机是什么?
-
感知机(Perceptron)
- 定位:最简单的单层神经网络。
- 组成:输入特征、权重、偏置、阶跃激活函数(输出 0/1)。
- 公式:y=f(∑wixi+b),f 为阶跃函数。
- 局限:仅能解决线性可分问题,无法处理非线性数据。
-
多层感知机(MLP)
- 定位:由多个感知机层堆叠的前馈神经网络。
- 改进:引入隐藏层和非线性激活函数,突破线性可分限制。
- 特点:信号单向传播(输入→隐藏→输出),无反馈连接,可解决非线性问题。
深度神经网络怎么理解?
- 定义:深度神经网络(DNN)是包含 ** 多个隐藏层(≥3 层)** 的神经网络,相比浅层网络更擅长捕捉数据的高层次特征与复杂非线性关系。
- 多层结构:
- 不同层负责提取不同粒度的特征:浅层提取边缘、纹理等低级特征,深层提取形状、对象等高级特征。
- 非线性变换:
- 依赖激活函数引入非线性,否则多层网络会退化为线性模型,无法拟合复杂关系。
- 端到端学习:
- 可直接从原始数据中自动学习特征,无需人工设计特征(如图像分类中自动学习边缘、纹理等)。
- 表达能力:
- 依据通用近似定理,增加隐藏层和神经元数量后,DNN 理论上可逼近任意复杂函数。
为什么深层神经网络难以训练?
-
过拟合
- 问题:模型复杂度过高,拟合训练数据过好,泛化到新数据的能力下降。
- 解决:正则化(L2、Dropout)、数据增强、早停。
-
梯度消失 / 爆炸
- 问题:反向传播时梯度在深层网络中变得极小或极大,导致参数更新失效。
- 解决:使用 ReLU 激活函数、Batch Normalization 等归一化技术。
-
计算资源需求高
- 问题:训练需要大量算力(GPU/TPU),大数据集和复杂模型会拉长训练时间。
-
可解释性差
- 问题:内部机制复杂,难以解释模型决策逻辑。
- 解决:可视化技术(热力图、Grad-CAM)、可解释性模型(注意力机制)。
内部协变量偏移
- 核心定义:内部协变量偏移是指深度神经网络训练中,参数更新引发各层输入分布持续变化的现象,且前一层输出分布的变化会传递影响下一层。
- 优化难点:
- 输入分布不稳定导致优化过程不稳。
- 易使 Sigmoid/Tanh 等激活函数进入饱和区,梯度接近零,引发梯度消失,大幅减缓训练速度。
- 深层累积效应:
- 深层网络中分布漂移会逐层累积,浅层网络需不断适应深层变化,进一步加剧训练难度。
梯度消失
- 定义:反向传播中梯度逐层衰减至接近 0,浅层参数更新失效,训练停滞。
- 本质:梯度依赖链式法则传递,是前层梯度、激活函数导数、权重矩阵的乘积;导数或权重过小会导致梯度累积缩小。
- 核心原因:
- 激活函数(sigmoid/tanh)饱和区间导数趋近于 0。
- 权重初始化过小,梯度指数级缩小。
- 网络过深,梯度多层累积后变得极小。
- 主要影响:
- 浅层无法学习低级特征,深层梯度传递受阻,训练停滞。
- 收敛速度大幅减慢。
- 解决方法:
- 激活函数:使用 ReLU/Leaky ReLU 替代 sigmoid/tanh。
- 权重初始化:采用 Xavier 或 He 初始化。
- 归一化:Batch Norm/Layer Norm 稳定输入分布。
- 残差连接:ResNet 跳跃连接让梯度直接传递。
- 优化器:使用 Adam/RMSProp 等自适应算法。
梯度爆炸
- 定义:反向传播中梯度值过度放大,导致权重更新步长过大,模型无法收敛甚至发散。
- 核心原因:
- 链式法则累积:梯度逐层相乘,若每层梯度 > 1 则指数级增长。
- 激活函数导数过大,放大梯度。
- 权重初始化过大,导致梯度值过高。
- 学习率设置过高,加剧参数更新幅度。
- 主要表现:
- 损失函数发散(变为 NaN)、参数值极端、模型无法收敛、验证集表现差。
- 解决方法:
- 梯度裁剪:限制梯度范围或范数,常用于 RNN/Transformer。
- 激活函数:使用 ReLU/Leaky ReLU/Softplus 等梯度稳定的函数。
- 权重初始化:采用 Xavier(适用于 Sigmoid/Tanh)或 He(适用于 ReLU)初始化。
- 归一化技术:Batch Norm/Layer Norm/Weight Norm 稳定梯度。
- 降低学习率:使用学习率衰减或自适应优化器(Adam/RMSProp)。
- 正则化:L2 正则化(权重衰减)或 Dropout 限制权重增长。
神经网络更深有什么意义?
- 深度定义:神经网络的 “深度” 指隐藏层的数量,更深的网络即隐藏层更多。
- 层次化特征提取:
- 浅层网络:仅能学习简单、低级的特征。
- 深层网络:通过逐层抽象,从低级特征逐步构建高级特征,更适配复杂数据分布。
- 高效函数逼近(理论支撑):
- 通用近似定理表明,浅层网络理论上可逼近任意连续函数,但复杂函数需要指数级神经元。
- 深层网络:通过增加层数,用更少参数高效逼近复杂函数,提升表达效率。
激活函数
为什么需要激活函数?
-
引入非线性
- 无激活函数时,多层网络等价于线性模型,只能处理线性可分问题。
- 激活函数引入非线性,让网络能拟合复杂数据分布,解决更复杂的问题。
-
控制输出范围
- 将神经元输出限制在固定区间,便于后续计算与任务适配。
- 典型例子:Sigmoid → [0,1](概率预测);Tanh → [-1,1](归一化)。
-
增强表达能力
- 支持多层堆叠,实现层次化特征提取。
- 图像任务中:浅层学习边缘 / 纹理等低级特征,深层学习形状 / 对象等高级特征。
为什么激活函数需要是非线性的?
- 线性激活函数的局限:若使用线性激活函数,多层神经网络的输出等价于输入的线性组合,网络退化为线性回归模型,无法处理复杂问题。
- 非线性激活函数的价值:引入非线性后,多层网络可通过非线性变换逼近任意复杂函数(依据通用近似定理),从而具备处理复杂数据分布和任务的能力。
常见的激活函数
Sigmoid
- 公式与特性:Sigmoid 函数将输入压缩到 (0,1) 区间,输出可直接作为概率值。
- 核心优点:输出范围归一化,天然适合概率类任务。
- 主要缺点:
- 易引发梯度消失(两端导数趋近于 0,最大梯度仅 0.25)。
- 输出非零均值,会造成后续层分布偏移,影响训练效率。
- 适用场景:仅推荐用于二分类输出层或浅层小规模网络,不适合深层神经网络。
Tanh
-
公式与特性
- 公式:tanh(x)=ex+e−xex−e−x,等价于 2⋅σ(2x)−1(σ 为 Sigmoid 函数)。
- 输出范围:(−1,1),以 0 为中心。
-
核心优点
- 零均值输出:输出以 0 为中心,避免了 Sigmoid 带来的后续层输入分布偏移问题,更适合中心化数据分布。
-
主要缺点
- 梯度消失:输入值极大或极小时,导数趋近于 0,会导致深层网络训练困难;其梯度最大值为 1(出现在 x=0 处)。
-
适用场景
- 常用于浅层或中等深度网络的隐藏层,尤其适合输入已归一化(均值为 0、方差为 1)的数据。
- 早期 RNN 中常用,凭借平滑性和零均值特性表现较好。
Relu
- 核心定义:ReLU(修正线性单元)函数取输入与 0 的最大值,公式为 f(x)=max(0,x)。
- 核心优点:
- 解决梯度消失:正区间导数恒为 1,有效缓解深层网络训练中的梯度消失问题。
- 加速收敛:梯度稳定,计算速度极快(仅判断正负)。
- 稀疏表达:负区间输出为 0,实现稀疏激活,提升模型效率。
- 致命缺点:
- 死亡神经元:输入小于 0 时梯度为 0,神经元永久失活,导致表达能力下降。
- 输出不稳定:无上限且输出非零均值,可能引发数值爆炸或分布偏移。
- 对比优势:相比 Sigmoid/Tanh,ReLU 在正区间梯度恒定,彻底避开了饱和区导致的梯度弥散问题。
Leaky Relu
- 核心定义:Leaky ReLU 是 ReLU 的改进版,在负区间引入小斜率 α,公式为 f(x)=max(αx,x)(0<α<1),解决了 ReLU 的 “死亡神经元” 问题。
- 核心优点:
- 负区间梯度不为 0,避免神经元永久失活,允许负区间神经元继续参与训练。
- 保留了 ReLU 计算高效、缓解梯度消失、加速收敛的优势。
- 主要缺点:
- 需手动调参 α,不同任务适配性不同,调参不当会影响效果。
- 正区间输出仍无上界,且输出非零均值,存在数值不稳定和分布偏移的问题。
SoftPlus
- 核心定义:Softplus 是 ReLU 的平滑变体,公式为 f(x)=ln(1+ex),在整个定义域内连续可导,解决了 ReLU 在 x=0 处不可导的问题。
- 核心优点:
- 平滑近似 ReLU,保留其缓解梯度消失的特性。
- 全定义域可导,优化过程更稳定。
- 输出恒为正,适合需要正数输出的任务(如方差建模)。
- 主要缺点:
- 计算开销大(涉及指数与对数运算)。
- 正区间输出无上界,存在数值不稳定风险。
- 输出非零均值,可能导致后续层分布偏移。
Softmax
- 核心定义:Softmax 是多分类任务专用激活函数,将输入 logits 转换为和为 1 的概率分布,公式为 Softmax(zi)=∑j=1Kezjezi。
- 核心优点:
- 输出为 [0,1] 且和为 1,可直接解释为类别概率。
- 与交叉熵损失完美配合,衡量分布差异。
- 适合类别互斥的多分类场景。
- 主要缺点:
- 计算开销大(指数 + 求和归一化),类别数多时效率低。
- 对输入尺度敏感,易数值不稳定,指数运算放大差异。
- 不支持多标签分类(假设类别互斥)。
怎样理解 Relu 是非线性激活函数?
- 核心逻辑:ReLU 是分段函数,这一特性打破了线性函数的规则,使其具备非线性属性。
- 分段行为:
- x>0:线性映射,输出等于输入。
- x≤0:强制截断,输出恒为 0。
- 非线性本质:
- 线性函数要求连续且平滑,而 ReLU 在 x=0 处发生突变(折点),破坏了线性平滑性。
- 正区间恒等、负区间归零的 “分段操作”,使得整体输出无法表示为 y=kx+b 的单一线性形式,因此属于非线性激活函数。
损失函数
交叉熵代价函数定义及其求导推导?
- 核心定义:交叉熵用于衡量真实概率分布与模型预测分布之间的差异,是多分类任务的核心损失函数。
- 单样本公式:H(y,y^)=−∑i=1Kyilog(y^i),其中真实标签 y 为 one-hot 向量,仅正确类别位置为 1。
- 计算逻辑:
- 定位真实类别对应的预测概率 y^。
- 对 y^ 取负对数作为惩罚:预测越准(y^→1)惩罚越小,预测越差(y^→0)惩罚越大。
- 批量公式:L=−N1∑n=1N∑i=1Kyn,ilog(y^n,i),对 N 个样本的损失取平均。
- 本质作用:放大模型在正确类别上的预测误差,引导模型向提高正确类别概率的方向优化。
前向传播与反向传播?
-
前向传播
- 定义:从输入到输出逐层计算,得到预测值,构建计算图。
- 作用:基于当前参数(权重、偏置)完成一次完整预测,并计算损失。
-
反向传播
- 本质:用链式法则从输出层回溯梯度,量化每个参数对损失的影响。
- 核心步骤:
- 计算输出层梯度(依赖损失函数 + 激活函数)。
- 逐层向前传递梯度(后层梯度 + 当前层操作导数)。
- 计算权重 / 偏置的梯度。
- 用优化算法(如梯度下降)更新参数,使损失最小化。
-
整体关系
- 前向传播:计算预测与损失,为反向传播提供基础。
- 反向传播:计算梯度并更新参数,让模型逐步优化。
超参数
- 定义:超参数是训练前手动设定、非模型自动学习的参数,其取值直接决定模型性能与训练效率。
- 常见类型:涵盖学习率、批量大小、网络深度(层数 / 神经元数)、正则化系数、迭代次数(Epochs)。
- 寻优方法:
- 初级:手动调参。
- 自动化:网格搜索(穷举)、随机搜索。
- 进阶:启发式 / 贝叶斯搜索等智能方法。
- 搜索流程:
- 划分训练 / 验证 / 测试集。
- 训练集优化参数。
- 验证集搜索超参数。
- 交替迭代确定最优参数,最终以测试集评估。
Batch_Size
为什么需要 Batch Size?
-
全批量(Full Batch)
- 优点:梯度估计准确,反映整体数据分布。
- 缺点:内存占用大、计算成本极高、训练极慢,不适合大数据集。
-
单样本(SGD)
- 优点:计算快,引入随机性易跳出局部最优。
- 缺点:梯度波动大,更新方向不稳定,易震荡,收敛缓慢且难以找到最优解。
-
小批量(Mini-batch)
- 核心价值:是上述两种方案的折中优选。
- 优势:兼顾计算效率(降低成本)与梯度稳定性(减少噪声);在大数据集下,小批量梯度能近似代表全数据集梯度,是深度学习训练的标准方式。
Batch Size 值的选择
- 方案对比与选择逻辑:Batch Size 的选择核心在于在计算成本、梯度稳定性与收敛效率之间寻找平衡点。
- 极端方案 1(Batch Size=1):
- 特点:单样本更新,波动极大,难以稳定收敛。
- 适用:仅适合需要强随机性去跳出局部最优的探索性任务,常规训练不推荐。
- 极端方案 2(Full Batch):
- 特点:梯度最准确,稳定性最高,但计算量巨大,内存压力大,大数据集下无法执行。
- 适用:仅适用于极小数据集,实际生产中极少使用。
- 主流方案(Mini-batch):
- 特点:折中优选。结合了 SGD 的效率和 Full Batch 的稳定性,梯度噪声适中。
- 推荐:常规选择范围为 32、64、128 等 2 的幂次数值,是深度学习训练的标准范式。
在合理范围内,增大 Batch Size 的好处
- 硬件利用率提升:充分利用 GPU 并行计算优势,加速矩阵运算,提升训练硬件的使用效率。
- 训练时间缩短:单个 epoch 内的迭代步数减少,在相同时间内完成的训练轮次更多,整体训练速度更快。
- 训练过程更稳定:梯度估计更精准,参数更新方向的波动减小,训练曲线更加平滑,不易震荡,更易收敛到最优解。
盲目增大 Batch Size 的坏处
- 硬件限制:过大的 Batch Size 会超出 GPU/CPU 内存容量,直接导致程序无法运行。
- 收敛效率下降:单次参数更新步长变小,需要更多 epoch 才能达到目标精度,反而拖慢整体训练进度。
- 边际收益递减:当 Batch Size 超过阈值后,梯度方向已足够稳定,继续增大对训练稳定性和收敛效果的改善微乎其微,属于无效投入。
调节 Batch Size 对训练效果的影响
-
Batch Size 过小
- 梯度噪声大,训练不稳定、误差易飙升。
- 收敛慢,需要更多迭代才能稳定。
-
适度增大 Batch Size
- ✅ 训练速度加快(GPU 并行效率更高)。
- ⚠️ 单 epoch 迭代次数减少,但达到相同精度需要更多 epoch。
- ✅ 总训练时间更优,梯度更稳定,收敛精度更高。
-
过度增大 Batch Size
- 边际收益递减:梯度方向已足够稳定,继续增大对精度提升有限。
- 可能反增训练时间,且易超出硬件内存限制。
总结
- 核心作用:Batch Size 决定梯度更新的样本数,直接影响训练速度、稳定性和最终性能。
- 选择原则:
- 数据集:小数据集可用 Full Batch / 大 Batch;大数据集用 Mini-batch。
- 硬件:受 GPU 内存限制,不能超过显存上限。
- 任务:追求快速收敛选小 Batch;追求训练稳定选大 Batch。
- 不同大小的影响:
- 过小:梯度噪声大,训练震荡,收敛慢。
- 适中:效率与效果平衡,是工业界主流选择。
- 过大:显存压力大,梯度更新步长变小,收敛变慢,边际收益递减。
- 经验与补充:
- 常用值:32/64/128(2 的幂次,利于 GPU 并行)。
- 调参:通过网格 / 随机搜索找最优值。
- 梯度特性:小 Batch 梯度噪声大、步长大;大 Batch 梯度平滑、步长小。
归一化
归一化的定义?
- 定义:归一化是对数据做线性 / 非线性变换,让数据具备统一统计特性,常见形式为范围缩放(如 [0,1])或标准化(均值 0、方差 1)。
- 核心作用:
- ✅ 统一量纲:消除不同特征间的尺度差异,防止大数值特征主导训练。
- ✅ 加速收敛:减少优化震荡,让梯度下降更平稳,训练更快。
- ✅ 稳定数值:避免梯度消失 / 爆炸,降低异常样本干扰。
- ✅ 提升性能:帮助模型更高效地学习数据规律。
为什么要归一化?
- 统一量纲:消除不同特征间的尺度差异,让模型公平对待所有特征,避免大数值特征主导训练。
- 加速收敛:让数据分布更集中,梯度更新更平稳,减少优化震荡,加快训练速度。
- 增强鲁棒性:降低异常 / 噪声样本的影响,提升模型稳定性与泛化能力。
- 避免梯度消失:限制输入范围,防止 Sigmoid/Tanh 等激活函数进入饱和区,保持梯度有效更新。
- 保证数值稳定:将数据限制在合理区间,避免计算中出现溢出或下溢等数值问题。
为什么归一化能提高求解最优解速度?
- 平衡特征贡献:统一特征量纲,避免大尺度特征主导梯度更新,消除优化震荡。
- 优化损失曲面:将扭曲的曲面变平滑、对称,让梯度下降路径更短、更直接。
- 维持梯度活性:限制输入范围,防止 Sigmoid/Tanh 进入饱和区,确保梯度有效更新。
- 简化超参数:缩小不同特征的梯度差距,使学习率选择更灵活、调参更简单。
- 抵抗异常值:平滑数据分布,降低奇异样本对梯度的剧烈冲击,提升训练稳定性与收敛速度。
归一化有哪些类型?
Min-Max 归一化
- 核心定义:Min-Max 归一化(最小 - 最大缩放)是一种线性变换,将数据映射到 [0, 1] 的固定区间内。
- 计算公式:x′=max(x)−min(x)x−min(x)。
- 致命缺点:抗干扰能力差。对异常值(极端值)非常敏感,一旦数据中存在离群点,会导致分母或分子偏移,从而将大部分数据压缩到极窄的范围,失去特征区分度。
- 适用场景:
- 图像领域:经典的像素值预处理标准(将 0-255 转换为 0-1)。
- 有限范围激活函数:配合 Sigmoid 等输出限定在 [0,1] 的激活函数使用,保持输入范围一致。
Z-Score 标准化(Standardization)
- 核心定义:Z-Score 标准化是一种线性变换,将数据转换为均值为 0、方差为 1 的标准正态分布。
- 计算公式:x′=σx−μ,其中 μ 是数据均值,σ 是数据标准差。
- 核心优点:
- 抗异常值能力强:基于均值和方差计算,受极端值影响远小于 Min-Max 归一化。
- 适配正态分布:最适合数据分布接近正态分布的场景。
- 深度学习友好:是 Batch Normalization(批归一化)的核心思想基础。
- 适用场景:
- 数据分布近似正态分布的任务。
- 深度学习模型训练,尤其配合 BatchNorm 层使用。
Log 归一化
- 核心原理:利用对数函数 log(x+1) 进行非线性变换,专门处理指数增长或长尾分布的数据。
- 核心优势:
- 压缩动态范围:有效将大范围的数值压缩到一个紧凑的区间内,保留特征层次。
- 处理长尾:完美适配收入、点击量等 “少数极大值、多数极小值” 的长尾数据,平衡极端值与普通值的差异。
- 核心局限:
- 定义域限制:仅针对正值数据,通常需加偏移量(如 +1)处理零或负值。
- 分布压缩:过度压缩可能导致数据分布过度聚拢,丢失部分细节区分度。
- 典型场景:电商流量、金融收入统计、用户行为分析等存在大量极端值或长尾分布的数据预处理。
L2 归一化
- 核心定义:L2 归一化是将样本特征向量除以其 L2 范数,使向量长度变为 1(单位向量),仅改变向量长度,不改变方向。
- 核心优点:
- 适配高维稀疏数据(如文本词频向量)。
- 保留特征间的相对比例关系,不破坏原始分布结构。
- 核心缺点:
- 仅缩放向量长度,无法修正数据方向问题。
- 对异常值敏感,极端值会显著影响范数计算,进而压缩正常数据。
- 典型场景:
- 文本分类、信息检索中的词频 / TF-IDF 向量预处理。
- 推荐系统、聚类等依赖向量相似度的高维稀疏数据场景。
Batch Normalization(批量归一化)
什么是批量归一化
- 核心定义:BN 是深度神经网络中对每一层输入做小批量归一化的技术,目标是稳定各层输入分布。
- 核心流程:
- 对当前 mini-batch 计算均值 μB 和方差 σB2。
- 标准化:x^=σB2+ϵx−μB,得到均值 0、方差 1 的分布。
- 可学习变换:y=γx^+β,保留网络表达能力。
- 核心作用:
- 稳定每一层输入分布,缓解内部协变量偏移。
- 加速训练收敛,允许使用更高学习率。
- 降低对初始化的敏感,有一定正则化效果。
- 关键设计:引入可学习参数 γ 和 β,避免纯归一化破坏模型特征表达能力。
批归一化(BN)算法的优点
- 核心功能:解决内部协变量偏移(Internal Covariate Shift),即稳定网络各层输入分布,让训练更可控。
- 训练效率:
- 优化路径更平滑、更短,显著加速收敛。
- 由于分布稳定,支持使用更高学习率,进一步提速。
- 鲁棒性与泛化:
- 降低初始化依赖:不再严格依赖高质量的权重初始化,降低训练门槛。
- 轻度正则化:小批量采样引入的噪声提供了类似正则化的效果,一定程度抑制过拟合。
批归一化(BN)算法流程
-
训练阶段核心步骤:
- 按特征维度计算当前 mini-batch 的均值 μB 和方差 σB2。
- 做 Z-Score 标准化,将数据转为均值 0、方差 1 的分布。
- 加入可学习参数 γ、β,避免特征表达能力丢失。
-
测试阶段核心逻辑:
- 不再计算小批量统计量,改用训练时累积的全局移动平均均值 / 方差。
- 保证测试时输入分布与训练时一致,避免分布偏移。
-
关键设计:
- 按特征维度计算统计量,而非样本维度。
- 移动平均法平滑噪声,确保测试阶段的统计量稳定可靠。
计算细节
- 维度差异:
- 全连接网络:在特征维度上做 BN。
- 卷积网络:在通道维度上做 BN(本质仍是输入的第 2 维)。
- CNN 计算核心:
- 先展平空间维度,再对每个通道独立计算全局统计量(均值 / 方差)。
- 逐通道完成标准化 + 可学习变换,保证同通道内分布一致,不同通道保留独立表达。
- 关键设计:
- 卷积层中,BN 以通道为单位,确保同一通道内所有位置共享相同的均值、方差、γ 和 β,符合卷积的参数共享特性。
Batch Normalization 在什么时候用比较合适?
- 使用位置(CNN 场景):推荐放在卷积层之后、激活函数之前,保证非线性激活前的输入分布稳定。
- 问题解决场景:
- 训练收敛极慢、震荡严重时。
- 出现梯度爆炸 / 消失,导致模型无法训练时。
- 通用优化场景:
- 日常建模中主动添加 BN,可加速训练、提升最终精度,是深度学习的常规优化手段。
Layer Normalization(层归一化)
什么是层归一化?
- 核心思想:以单个样本为单位,在其所有特征维度上做归一化,与 batch size 无关。
- 与 BN 的关键区别:
- BN:依赖 mini-batch,在特征 / 通道维度上统计。
- LN:不依赖 mini-batch,在单个样本的所有特征维度上统计。
- 计算流程:
- 单样本内求均值 / 方差 → 标准化 → 可学习变换(γx+β)。
- 核心优势:
- 不受 batch size 影响,适合小 batch 或 RNN/Transformer 等序列模型。
- 训练与测试阶段行为一致,无需维护全局统计量。
层归一化算法的优点?
- 脱离 Batch 限制:
- 以单个样本为单位独立统计,完全不依赖
batch_size。完美适配小批量、单样本(如在线学习、强化学习)场景,解决了 BN 对 Batch 规模的依赖性问题。
- 以单个样本为单位独立统计,完全不依赖
- 适配动态序列:
- 对输入形状(如序列长度)无严格约束,是 NLP 等动态长度任务(Transformer/RNN)的首选归一化方案。
- 深层训练更稳:
- 有效抑制内部协变量偏移,在深层网络中也能维持稳定的梯度流,降低训练门槛。
- 缓解梯度问题:
- 在 RNN 等序列模型中,对隐藏状态归一化,有效缓解梯度消失 / 爆炸,让深层序列训练更可控。
- 测试流程简洁:
- 无需像 BN 那样维护 / 使用训练期的移动平均统计量,测试阶段的计算逻辑与训练完全一致,无额外分布漂移风险。
预训练与微调 (fine tuning)
为什么无监督预训练可以帮助深度学习?
- 降低数据依赖:利用海量未标注数据学习通用特征,缓解标注数据稀缺的问题,降低数据获取成本。
- 提升泛化能力:预训练学习到的通用特征能减少模型在小数据集上的过拟合,让模型更适应下游任务。
- 稳定深层训练:逐层初始化参数,缓解深层网络的梯度消失问题,让浅层参数也能有效更新,训练更稳定。
什么是模型微调(Fine-tuning)?
- 核心定义:在预训练模型的基础上,用目标任务数据进一步训练,把通用特征迁移到特定任务。
- 核心思想:复用预训练学到的通用知识,避免从零开始训练,解决小数据集训练难的问题。
- 典型流程:
- 加载预训练权重(如 ImageNet 预训练模型)。
- 替换 / 新增任务相关的输出层。
- 用目标数据集微调(可冻结部分层,只训练顶层)。
- 优势:
- 小数据集也能训练出高性能模型。
- 训练速度更快,收敛更稳定。
- 利用预训练的通用特征,提升泛化能力。
微调时网络参数是否更新?
- 本质区别:微调是 “带初始值的继续训练”,核心差异在初始化,而非是否更新参数。
- 参数更新:微调时参数一定会根据下游任务数据的梯度进行更新,只是更新幅度可通过学习率、冻结层等方式控制。
- 核心逻辑:复用预训练的通用特征,同时让模型适配新任务,因此必须更新参数。
Fine-tuning 模型的三种状态
- 状态一(零训练):直接复用预训练模型,不做任何参数更新,仅用于与预训练任务完全一致的场景。
- 状态二(部分训练):冻结底层特征提取层,只训练顶层分类头,适合任务相似但类别不同的场景,资源消耗小、训练快。
- 状态三(全量训练):解冻所有层,全局微调,适合任务差异大的场景,精度更高但成本更高。
- 核心选择逻辑:根据目标任务与预训练任务的相似度,决定训练范围:相似度越高,训练范围越小;相似度越低,越需要全量微调。
权重初始化
为什么需要权重初始化以及它的相关方法?
- 核心作用:
- 防止梯度消失 / 爆炸,稳定训练。
- 加速收敛,让每层分布更平稳。
- 打破对称性,保证神经元能学习到不同特征。
- 主流方法对比:
表格
方法 核心思想 适配激活函数 随机初始化 小范围随机赋值 通用(但效果不稳定) Xavier 初始化 依据输入 / 输出维度控制方差 Sigmoid、Tanh He 初始化 专为 ReLU 类激活优化 ReLU、LeakyReLU - 选择逻辑:激活函数决定初始化方法 ——Sigmoid/Tanh 用 Xavier,ReLU 用 He,避免分布偏移导致训练失效。
学习率
- 核心定义:学习率是控制梯度下降中参数更新步长的超参数,是深度学习中最重要的超参数之一。
- 极端情况的风险:
- 过大:步长太长,导致参数在最优解附近震荡,无法收敛甚至发散。
- 过小:步长太短,导致收敛极慢,且容易停在局部最优(而非全局最优),消耗大量计算资源。
- 双重作用:
- 初期:提供大步长,快速逼近最优解(提升速度)。
- 后期:提供小步长,精细搜索最优值(提升精度)。
- 调参核心:合理的学习率策略(如学习率衰减)是平衡训练速度与模型精度的关键。
学习率调整策略
- 固定学习率:最简单但不灵活,难以兼顾速度与精度,现在很少单独使用。
- 学习率衰减:核心思想是 “先快后慢”,通过逐步降低步长平衡收敛速度与精度,适合大多数场景。
- 自适应算法:自动为不同参数分配学习率,减少调参成本,Adam 是工业界主流选择。
- 学习率预热:解决深层 / 大 batch 训练初期不稳定问题,先小步试探再大步前进。
- 周期性学习率:通过周期波动跳出局部最优,适合需要精细探索解空间的复杂任务。
如何选择合适的学习率?
- 经验起步:先从小值(
0.001/0.01)试探,再用学习率范围测试找到损失下降最快的区间,是最实用的手动调参方法。 - 自动化辅助:用网格搜索、随机搜索或贝叶斯优化等工具,自动遍历 / 采样候选值,减少人工试错成本。
- 算法适配:
- SGD 对大学习率更耐受,可从稍大的值开始。
- Adam 自适应调整,通常搭配更小的初始学习率(
0.001是经典默认)。
- 核心逻辑:先粗定位合适区间,再精细调优,同时匹配优化器特性,平衡收敛速度与稳定性。
梯度下降算法
定义
- 核心定义:梯度下降是最小化目标函数(如损失函数)的迭代优化算法,是深度学习参数优化的基础。
- 核心思想:沿梯度反方向更新参数,因为梯度指向函数增长最快的方向,反方向则是函数下降最快的方向,以此逐步逼近最小值。
- 更新公式:W=W−η⋅∇L,其中 η 是学习率,∇L 是损失函数对参数的梯度。
- 关键要点:
- 梯度方向:决定参数更新的方向,确保目标函数值减小。
- 学习率:控制每次更新的步长,步长过大易发散,步长过小则收敛慢。
- 迭代过程:通过多次迭代,让损失函数持续下降,最终收敛到最优解。
梯度下降的常见变体
批量梯度下降(Batch Gradient Descent, BGD)
- 核心逻辑:BGD 是最基础的梯度下降形式,每一步都基于全量数据计算梯度,保证更新方向的全局准确性。
- 优势:梯度无噪声,更新方向稳定,能可靠收敛到全局最优(凸问题)或局部最优(非凸问题)。
- 局限:计算开销与数据集大小成正比,内存占用高,不适合大规模数据训练,在实际深度学习中很少直接使用。
随机梯度下降(Stochastic Gradient Descent, SGD)
- 核心定义:SGD 是梯度下降的轻量化变体,每次仅用单个样本估算梯度并更新参数,而非全量数据。
- 核心优势:
- 单样本计算,训练速度极快,内存占用极低。
- 梯度噪声带来的随机性,能帮助模型跳出局部最优,更易探索到更好的解。
- 核心劣势:
- 梯度估计噪声大,参数更新方向不稳定,训练过程会震荡。
- 收敛路径曲折,需要更多迭代次数才能稳定收敛。
小批量梯度下降(Mini-batch Gradient Descent, MBGD)
- 核心定义:MBGD 是实际深度学习训练中最常用的梯度下降方式,每次迭代使用固定大小的小批量样本计算梯度,平衡了计算效率与参数更新的稳定性。
- 核心优势:
- 折中方案:避免了 BGD 全量数据的高计算成本,同时解决了 SGD 单样本噪声过大、震荡严重的问题。
- 硬件适配:完美适配 GPU 并行计算,大幅提升训练效率。
- 核心劣势:
- 超参数敏感:批量大小(Batch Size)是关键超参数,需要根据模型、数据和硬件条件仔细调参。Batch Size 过大易导致过拟合、泛化能力差,过小则训练不稳定。
Adagrad (Adaptive Gradient Algorithm)
- 核心思想:为每个参数维护独立的学习率,根据参数更新频率动态调整 —— 频繁更新的参数降学习率,稀疏更新的参数保持高学习率。
- 核心优势:
- 自适应分配学习率,对稀疏特征友好(如 NLP、推荐系统)。
- 自动调整,免去手动学习率衰减的麻烦。
- 核心缺陷:
- 梯度平方会无限累积,导致后期学习率无限趋近于 0,训练提前停滞。
- 适用场景:适合处理稀疏数据,但在长期训练任务中需谨慎使用,或选择其改进版(如 RMSProp、Adam)。
RMSProp (Root Mean Square Propagation)
- 核心改进:在 Adagrad 基础上,用指数加权移动平均替代梯度平方的简单累加,实现对旧梯度的 “遗忘”,避免学习率过早衰减到 0。
- 核心优势:
- 自适应分配学习率,保留了对稀疏数据的友好性。
- 更关注近期梯度,能快速适应目标函数的变化,训练后期仍能有效更新参数。
- 核心逻辑:通过 β 控制历史梯度的保留程度,让模型在稳定收敛和快速响应新梯度之间取得平衡。
- 定位:是 Adagrad 的重要改进版,也是 Adam 算法的核心组成部分之一,在序列模型(如 RNN、Transformer)中表现出色。
RMSProp 如何利用最新梯度变化?
- 核心机制:通过指数加权移动平均实现 “遗忘旧梯度、关注新梯度”,让梯度更新更贴近当前损失曲面的变化。
- 波动适应:能快速响应梯度的剧烈波动,克服历史梯度累积带来的滞后,让训练更稳定。
- 区域适配:
- 陡峭区域:自动降低学习率,防止步长过大。
- 平坦区域:维持合理学习率,避免收敛过慢。
- 优势:在非平稳、高度非线性的损失曲面中,比 Adagrad 更灵活,训练后期仍能有效更新参数。
动量法
- 机制:用动量项 vt 累积历史梯度,相当于给参数更新 “加惯性”,让更新方向更平滑、更稳定。
- 两大作用:
- 平滑震荡:抵消梯度噪声和高曲率带来的剧烈波动,让训练更稳定。
- 加速收敛:在梯度方向一致时,累积动量快速推进,尤其适合平坦区域的优化。
- 直观理解:像小球下坡时的惯性,会沿着一致方向加速,同时避免在坑洼处剧烈弹跳。
Adam (Adaptive Moment Estimation)
-
核心思想:
- 继承动量法的惯性特性:通过累积梯度的一阶矩(均值),让参数更新更平滑,加速收敛并减少震荡。
- 继承RMSProp的自适应学习率特性:通过累积梯度的二阶矩(平方的指数加权平均),为每个参数动态调整学习率,适配不同参数的更新频率。
-
直观优势:
- 兼具动量法的加速收敛能力与自适应学习率的灵活性,在大多数任务(CV、NLP 等)中表现稳定且高效。
- 对超参数不敏感,默认超参数(如学习率 0.001、β₁=0.9、β₂=0.999)通常能取得不错效果,是工业界首选的优化器。
正则化
权重衰减(L2 正则化)
- 核心目标:通过限制模型参数的大小,降低模型复杂度,防止过拟合,提升泛化能力。
- 实现方式:在损失函数中加入惩罚项,训练时同时最小化原始损失与惩罚项,迫使权重趋向更小、更平滑的值。
- 关键作用:
- 惩罚大权重,避免模型过度学习训练数据中的噪声与异常值。
- 在数据量有限时,约束模型复杂度,减少过拟合风险。
- 让模型学习数据的通用规律,而非记忆训练样本的特定模式。
- L1 vs L2 差异:
表格
类型 惩罚项 效果 适用场景 L1 参数绝对值之和 生成稀疏权重(部分权重为 0) 特征选择、剔除无用特征 L2 参数平方之和 权重整体缩小、更平滑 稳定训练、提升泛化(即权重衰减)
Dropout 正则化
- 核心机制:训练时随机丢弃神经元(概率 p),测试时保留所有神经元并缩放输出,实现结构层面的正则化。
- 两大作用:
- 打破神经元共适应,避免学习训练数据的特殊模式,让特征更通用。
- 等价于集成大量子网络,降低模型方差,提升泛化稳定性。
- 与 L2 正则化的区别:
- L2 正则化:约束参数大小,属于参数层面的正则化。
- Dropout:动态调整网络结构,属于结构层面的正则化。
- 两者互补,可联合使用增强正则化效果。
评估指标
准确率
- 核心定义:准确率 = 预测正确样本数 / 总样本数,是最直观的全局正确性指标。
- 关键局限:
- 类别不平衡场景下失效:高准确率可能掩盖对少数类的预测失败,无法反映真实业务效果。
- 缺乏类别粒度信息:无法区分不同类别的预测表现,无法定位模型在某类上的短板。
- 适用场景:仅适合类别分布均衡、且对各类别表现无特殊要求的场景;否则需结合精确率、召回率、F1 分数等更细粒度的指标。
精确率(Precision)
- 核心含义:精确率关注「预测为正的样本里,有多少是真的正样本」,反映模型 “不误判” 的能力。
- 公式拆解:
- 分子:真正例(TP)—— 预测正且实际为正的样本。
- 分母:所有被预测为正的样本(TP + FP),即真正例 + 假正例。
- 典型场景:在垃圾邮件检测、疾病筛查等场景中,精确率高意味着 “误将正常邮件标为垃圾”“误将健康人判为患病” 的概率更低。
召回率(Recall)
- 核心含义:召回率关注「所有实际为正的样本里,有多少被模型找出来了」,反映模型 “不漏判” 的能力。
- 公式拆解:
- 分子:真正例(TP)—— 预测正且实际为正的样本。
- 分母:所有实际为正的样本(TP + FN),即真正例 + 假负例。
- 典型场景:在疾病筛查、危险品检测等场景中,召回率高意味着 “漏诊”“漏检” 的概率更低,避免造成严重后果。
F1 分数
- 本质:F1 分数是精确率与召回率的调和平均,目的是平衡两者的表现,避免单一指标过高而另一项过低。
- 关键特性:
- 取值在 0~1 之间,越接近 1 代表模型综合性能越好。
- 对 “偏科” 敏感:精确率或召回率任意一项过低,都会拉低 F1 分数,强制模型兼顾 “不误判” 和 “不漏判”。
- 适用场景:需要同时保证 “预测准确” 和 “覆盖全面” 的任务,例如:
- 疾病诊断:既不能误诊(高精确率),也不能漏诊(高召回率)。
- 信息检索:既不能返回无关结果(高精确率),也不能漏掉相关内容(高召回率)。
- 调和平均的意义:相比算术平均,调和平均更 “惩罚” 低值,能有效约束两个指标同时保持较高水平。
卷积神经网络(CNN)
是什么?
- 核心定位:CNN 是处理图像等网格数据的专用深度学习模型,本质是通过局部感受野 + 权重共享高效提取视觉特征。
- 三大核心优势:
- 参数共享:避免全连接网络的参数爆炸,让模型更轻量、易训练。
- 稀疏连接:聚焦局部信息,符合视觉皮层的工作原理,计算效率更高。
- 平移不变性:物体在图像中移动时,CNN 仍能稳定识别,提升模型泛化能力。
- 典型应用:图像分类、目标检测、语义分割、人脸识别等计算机视觉任务。
基本结构
- 核心结构分层:输入层 → 卷积层 → 激活函数 → 池化层 →(重复堆叠)→ 全连接层 → 输出层,逐层抽象特征。
- 关键组件作用:
- 卷积层:提取局部视觉特征,通过参数共享减少计算量。
- 池化层:下采样降维,增强模型对缩放、平移的鲁棒性。
- 激活函数:引入非线性,让网络能拟合复杂模式。
- 全连接层:将高维特征映射到任务输出(分类 / 回归)。
- 流程本质:从像素级输入出发,通过 “卷积 - 激活 - 池化” 的重复操作,逐步从边缘、纹理等低级特征,抽象出物体、场景等高级语义特征。
卷积神经网络的特点
- 四大核心特点:
- 局部感受野:聚焦局部信息,符合人类视觉感知逻辑。
- 参数共享:复用权重,解决全连接网络的参数爆炸问题。
- 层次化特征:从低级到高级逐层抽象特征,自动学习视觉模式。
- 平移不变性:对小范围平移不敏感,增强模型对位置变化的鲁棒性。
- 核心价值:CNN 通过这四大机制,在图像任务中实现了高效计算 + 自动特征学习 + 强泛化能力,成为计算机视觉的基础模型。
卷积在图像中的直观作用
- 层次化特征提取:卷积操作是分层递进的,从低级到高级逐步抽象图像信息:
- 浅层卷积:提取最基础的视觉特征,如边缘、轮廓。
- 中层卷积:组合边缘特征,形成局部结构特征(如纹理、简单形状)。
- 深层卷积:进一步组合局部特征,提取全局语义特征(如完整物体、场景)。
- 直观图像处理效果:特定卷积核可直接实现经典图像处理效果:
- 边缘检测:突出图像中的轮廓与边界。
- 锐化:增强图像细节与对比度。
- 模糊:平滑图像、抑制噪声。
- 本质:卷积的核心作用是自动学习并提取图像特征,从像素级原始信息逐步抽象为高级语义信息,为后续图像分类、检测等任务奠定基础。
卷积层的基本参数
- 核心分类:卷积层参数分为控制结构的超参数(输入 / 输出通道、卷积核大小、步幅、填充)和学习特征的参数(权重、偏置)。
- 尺寸控制:通过
Padding和Stride精确调控输出特征图的尺寸,Same Padding + Stride=1可保持输入输出尺寸一致。 - 效率与效果平衡:3×3 卷积核 + 小步幅是主流选择,既能减少参数量,又能高效提取细粒度特征。
- 可学习性:权重和偏置是模型在训练中自动优化的部分,决定了最终能提取到的特征质量。
卷积计算过程
- 计算流程:卷积的本质是「滑动窗口 + 逐元素乘 + 累加和」,多通道场景下先逐通道计算再融合。
- 尺寸控制:输出特征图的尺寸由输入尺寸、卷积核大小、步幅、填充共同决定。
- 多通道逻辑:通道间独立卷积、最后求和,既实现了信息融合,又通过权重共享降低了模型复杂度。
- 核心价值:在保留局部特征的同时,高效压缩了多通道信息,是 CNN 高效处理图像数据的关键。
池化方法
- 核心目标:池化的本质是下采样降维,在保留关键特征的同时压缩特征图尺寸,提升计算效率和模型鲁棒性。
- 常见池化对比:
表格
池化类型 核心计算 特点与适用场景 最大池化 取局部最大值 突出显著特征,抗噪声,适合边缘检测 平均池化 取局部平均值 平滑特征,关注整体,适合纹理提取 全局池化 对整张图池化 替代全连接层,减少参数,防过拟合 自适应池化 动态调整窗口 自动适配输入尺寸,无需手动调参 - 关键价值:全局池化和自适应池化进一步简化了模型结构,让 CNN 更灵活、更易于训练和部署。
1×1 卷积的作用
- 核心本质:1×1 卷积是通道维度的全连接 + 参数共享,在不改变空间分辨率的前提下,高效完成通道变换与信息融合。
- 四大核心作用:
- ✅ 跨通道信息融合:实现通道间的线性交互。
- ✅ 降维:压缩通道数,降低计算复杂度。
- ✅ 升维:扩展通道维度,增强特征表达。
- ✅ 替代全连接层:保留空间信息,减少参数量。
- 关键优势:相比全连接层,1×1 卷积通过参数共享和局部连接,在保证特征学习能力的同时,大幅提升计算效率与泛化性能。
卷积层和池化层主要区别
- 核心功能差异:
- 卷积层是特征提取器:主动学习权重,从输入中挖掘边缘、纹理等局部特征,可调整通道数。
- 池化层是下采样压缩器:固定操作(最大 / 平均等),只缩小特征图尺寸,不改变通道数,也无参数学习。
- 参数与计算差异:
- 卷积层有可学习权重,参与反向传播优化。
- 池化层无参数,是静态的降维操作,计算更高效。
- 直观类比:
- 卷积层 = 放大镜:聚焦细节,提取特征。
- 池化层 = 压缩器:缩小尺寸,保留关键信息。
卷积核大小的影响
- 感受野与特征粒度:
- 大卷积核 → 大感受野 → 全局特征,但参数多、计算重。
- 小卷积核 → 小感受野 → 局部细节,更灵活高效。
- 效率与效果平衡:
- 小卷积核堆叠可等效大卷积核的感受野,同时引入更多非线性、减少参数量,是更优的工程选择。
- 核心原则:卷积核大小是感受野、计算成本、过拟合风险的权衡,优先用小卷积核堆叠实现全局特征,避免直接使用大卷积核。
每层卷积是否只能用一种尺寸的卷积核?
- 核心结论:CNN 允许同一层 / 不同层使用多尺寸卷积核,核心目标是提取多尺度特征。
- 同一层多尺度(Inception 思路):
- 并行多尺寸卷积 + 池化,拼接输出,同时捕捉局部与全局上下文。
- 跨层差异化设计:
- 浅层:大卷积核 → 抓全局轮廓。
- 深层:小卷积核 → 抓局部细节。
- 工程价值:多尺度卷积让模型更灵活,能适应不同任务的特征需求,同时保持计算效率。
提高卷积神经网络泛化能力的方法
- 核心目标:让模型在未知数据上表现稳定,避免过拟合 / 欠拟合。
- 方法分类:
- 数据层面:数据增强、预处理、扩充数据集 → 让数据更丰富、分布更均衡。
- 模型层面:正则化(L2/Dropout/BN)、Early Stopping → 约束模型复杂度,防止过拟合。
- 训练层面:学习率调度、交叉验证 → 优化训练过程,评估模型稳定性。
- 集成层面:模型融合、快照集成 → 组合多个模型,提升整体鲁棒性。
- 实践逻辑:优先用数据增强 + 正则化控制过拟合,再通过学习率调度 + 集成学习进一步提升泛化能力,同时保证数据质量与规模。
卷积神经网络凸显共性的方法
- 核心机制:
- 局部连接:限制神经元感受野,聚焦局部特征,减少参数量。
- 权重共享:复用卷积核参数,进一步压缩模型规模,保证特征提取的位置无关性。
- 池化操作:下采样降维,逐层抽象特征,实现全局共性表达。
- 本质价值:三大机制协同作用,用极少的参数实现高效特征提取,既保证了模型性能,又降低了训练复杂度,是 CNN 能高效处理图像等网格数据的关键。
经典卷积神经网络模型
LeNet
- 历史地位:LeNet 是早期卷积神经网络的经典代表,专为 MNIST 手写数字识别任务设计,奠定了 CNN 的基础架构。
- 典型结构:遵循 “卷积层 + 池化层” 重复堆叠 后接 全连接层 的经典流程。
- 设计特点:
- 输入输出:处理 28×28 小尺寸图像,输出 10 分类结果。
- 通道变化:从 1(输入)→ 6 → 16,逐步增加通道数提升特征表达。
- 尺寸变化:通过卷积和池化交替,将图像尺寸从 28×28 逐步压缩。
- 范式意义:展示了如何通过 “卷积 - 激活 - 池化” 的组合,高效提取局部特征,是后续所有深度卷积网络(如 AlexNet、VGG)的设计原型。
AlexNet
- 历史地位:AlexNet 是首个在大规模图像数据集(ImageNet)上取得成功的深度 CNN,标志着深度学习时代的到来。
- 结构升级:在 LeNet 基础上大幅加深网络,从 2 个卷积层扩展到 5 个,适配更复杂的图像分类任务。
- 关键创新:
- 激活函数:用 ReLU 替代 Sigmoid,缓解梯度消失,训练更深网络。
- 正则化:引入 Dropout,比传统权重衰减更有效防止过拟合。
- 数据层面:使用数据增强扩充训练集,提升模型对不同输入的鲁棒性。
- 影响:AlexNet 证明了深度卷积网络在大规模视觉任务上的潜力,为后续 VGG、ResNet 等模型奠定了基础。
VGG
- 核心思想:用小卷积核堆叠替代大卷积核,在保持等效感受野的同时,减少参数量、增加非线性、提升表达能力。
- 模块化设计:引入 “卷积块” 概念,让网络结构更简洁、可复用,为后续 ResNet、Inception 等模型的模块化设计奠定基础。
- 设计结论:证明了 “更深 + 小卷积核” 的架构比 “更浅 + 大卷积核” 更高效,推动了卷积网络向更深方向发展。
NiN
- 核心创新:用 1×1 卷积实现逐像素全连接(MLP),在不改变空间分辨率的前提下,极大增强特征的非线性表达能力。
- 结构革命:
- 取消全连接层,用全局平均池化直接映射到类别输出,避免全连接层带来的大量参数与过拟合风险。
- 影响:NiN 是 “逐像素全连接 + 全局平均池化” 思想的先驱,为后续轻量化、高效 CNN 设计提供了重要思路。
GoogleNet
- 核心创新:提出 Inception 多分支模块,并行使用不同尺度卷积核,实现多尺度特征提取。
- 效率平衡:用 1×1 卷积降维,在提升表达能力的同时,控制模型复杂度与计算量。
- 设计思想:让网络自适应选择最优特征尺度,避免人工限定卷积核大小的局限,为后续轻量化网络设计提供了新思路。
ResNet(残差网络)
深度神经网络的退化问题
- 核心问题:网络退化 —— 深度超过阈值后,性能不升反降,根源是梯度不稳定、优化困难、恒等映射难学习。
- 设计目标:ResNet 要解决 “加深网络反而变差” 的矛盾,让模型在层数提升时,至少能维持与浅层网络相当的性能。
- 本质思路:通过残差结构让网络轻松学习恒等映射,避免退化,为训练极深网络(如 ResNet-152)铺平道路。
残差连接为什么有利于恒等映射?
- 核心思想:将 “学习恒等映射 H(x)=x” 转化为 “学习残差 F(x)=0”,大幅降低优化难度。
- 梯度保障:加法跳接让梯度至少为 1,从根本上缓解深层网络的梯度消失问题。
- 灵活退化防护:冗余层可通过跳接直接绕过,保证加深网络时性能至少不劣于浅层。
- 本质价值:残差连接让极深网络(如 ResNet-152)的训练成为可能,解决了深度 CNN 的退化难题。
输入输出维度不一致怎么办?
- 核心问题:残差加法 H(x)=F(x)+x 要求 F(x) 与 x 必须维度完全一致,否则无法相加。
- 空间维度适配:通过线性映射(如池化、卷积 + 填充)调整特征图尺寸。
- 通道维度适配:用 1×1 卷积高效调整通道数,不改变空间尺寸,实现升维 / 降维。
- 本质:通过对跳接路径 x 做轻量线性变换,保证维度对齐,让残差连接正常工作。
瓶颈结构(Bottleneck)
- 核心设计:通过 1×1 卷积 “先降维、再升维”,在保持特征表达能力的同时,压缩中间计算量。
- 适用场景:专为深层 ResNet(≥50 层)设计,解决深度网络计算量大、训练困难的问题。
- 效率优势:相比普通残差块,瓶颈块用更少的参数和计算量,实现了相近甚至更好的特征提取效果。
- 本质:是 “1×1 卷积降维” 思想在残差网络中的经典应用,是高效训练深度 CNN 的关键工程技巧。
使用全局平均池化替代全连接层
传统方法:全连接层
- 传统全连接层的问题:
- 参数多 → 过拟合风险高;
- 展平操作 → 丢失空间结构信息。
- ResNet 的改进思路:
- 借鉴 NiN,用全局平均池化替代全连接层,在保留空间信息的同时大幅减少参数量,提升泛化能力。
全局平均池化(GAP)
- 核心操作:对每个通道做全局平均,把 H×W×C 的特征图压缩为 1×1×C 的向量,保留通道维度信息。
- 优势:
- 避免了传统全连接层的庞大参数,大幅减少过拟合风险。
- 保留了特征图的空间全局信息,没有展平操作带来的信息丢失。
- 结构更轻量,泛化能力更强。
- 本质:用 “通道级全局平均” 替代 “全连接层映射”,是高效、轻量化 CNN 的经典设计。
全局平均池化(GAP)的优点
✅ 核心优势:
- 参数更少:消除全连接层的庞大参数,模型更轻量化。
- 更难过拟合:低复杂度设计,在小数据集上更稳定。
- 信息更完整:不展平,保留空间与通道维度信息。
- 鲁棒性更强:对图像平移、缩放等几何变换更不敏感。
张量、向量、矩阵的关系
- 层级关系:标量(0 维)⊂ 向量(1 维)⊂ 矩阵(2 维)⊂ 张量(任意维)。
- 深度学习视角:
- 图像是 3 维张量(高度 × 宽度 × 通道数)。
- 批量图像是 4 维张量(批量大小 × 高度 × 宽度 × 通道数)。
- 张量是框架中流动的基本数据单元,兼容所有维度的特征表示。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)