ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

深度学习核心骨架解析:CNN、RNN、DNN原理与训练实战

深度学习核心骨架解析:CNN、RNN、DNN原理与训练实战 1. 从“炼丹”到“炼金”一次搞懂深度学习的核心骨架刚入行那会儿听到CNN、RNN、DNN这些词感觉就像在听天书更别提什么梯度消失、反向传播了。后来自己上手调模型才明白这些概念根本不是孤立的名词而是构成深度学习这座大厦的钢筋水泥。今天我们不谈那些花里胡哨的SOTA模型就回过头来把这些最基础、最核心的“骨架”彻底拆开揉碎了讲清楚。这就像学武功招式再炫内功心法不通终究是花架子。无论是做图像识别、自然语言处理还是时间序列预测你都得先明白手里的“兵器”——CNN、RNN、DNN——各自擅长什么以及驱动它们学习的“内功”——前向传播、反向传播、优化器——是怎么运转的。理解了这些你再看YOLO的版本迭代、各种优化器的比较就能一眼看穿其设计哲学而不是停留在死记硬背参数上。2. 神经网络“三剑客”CNN、RNN、DNN的本质分野很多人会把CNN、RNN和DNN并列比较其实它们在概念层级上略有不同。DNN深度神经网络更像是一个总称泛指那些具有多个隐藏层的神经网络它是一个非常宽泛的架构概念。而CNN和RNN则是DNN这个大家族中为了解决特定类型数据而进化出的两个著名“子类”。把它们放在一起比较核心是理解它们各自为解决什么问题而诞生以及其独特的结构设计。2.1 DNN万能的“全连接”基础盘DNN或者说多层感知机MLP是深度学习最基础的形态。你可以把它想象成一个极度复杂的、多层的“信号转换与筛选网络”。它的每一层都由大量的神经元节点组成并且当前层的每一个神经元都与前一层的所有神经元相连这就是所谓的“全连接”。为什么需要“深度”浅层网络比如只有一个隐藏层理论上可以拟合任何函数但这需要极其庞大的神经元数量导致参数爆炸难以训练。深度结构通过多层非线性变换可以用更少的参数、更优雅的方式逐步从原始数据中提取出从低级到高级的抽象特征。例如在识别猫的图片时第一层可能学习到边缘和角落第二层组合成眼睛、鼻子等局部特征更高层则组合成“猫脸”这个概念。它的核心局限与适用场景全连接结构也是它的“阿喀琉斯之踵”。因为它对输入数据的结构没有任何假设。无论你输入的是一个拉成一维向量的图片、一段文本的编码还是一个时间序列点对DNN来说都是一串没有区别的数字。这导致两个问题一是参数数量巨大一张224x224的RGB图片拉平后输入第一层就有150528个节点连接数轻易过亿计算和存储开销惊人二是它完全忽略了数据内在的空间或时间结构信息。因此纯粹的DNN更适合处理特征之间没有明显空间或时序关系的“表格数据”比如用户属性预测、信用评分等。2.2 CNN专为“空间关联”而生的视觉专家卷积神经网络CNN的发明直接受到了生物视觉皮层启发。它的核心设计理念是图像中相邻的像素之间关联性最强且某些局部特征如边缘、纹理无论在图像的哪个位置出现其重要性是相同的。三大核心武器卷积层Convolutional Layer这是CNN的灵魂。它使用一个小的、可学习的滤波器或叫卷积核在输入图像上滑动。这个滤波器的作用就是提取局部特征。例如一个3x3的垂直边缘检测滤波器会在遇到垂直边缘时输出高响应。关键在于同一个滤波器会滑过整张图片这意味着无论垂直边缘出现在左上角还是右下角都由同一个滤波器来检测这极大地减少了参数量并赋予了模型“平移不变性”的先验知识。池化层Pooling Layer通常跟在卷积层后面主要进行下采样。最常见的是最大池化Max Pooling它在一个小窗口如2x2内只保留最大值。这样做有两个好处一是逐步降低特征图的空间尺寸减少计算量二是引入了一定程度的平移和形变鲁棒性因为只要这个局部特征还在窗口内它就能被保留下来。全连接层Fully Connected Layer在通过多个“卷积-池化”对提取到高级抽象特征后最后通常会接上一到几层全连接层负责将这些空间特征整合起来完成最终的分类或回归任务。实战心得当你处理任何具有网格拓扑结构的数据时CNN都是首选。这不仅仅是图像2D网格还包括1D-CNN可以用于时序信号分析如心电图、传感器数据将时间步视为一维网格3D-CNN可以用于视频分析或医学体数据CT、MRI。在NLP中对文本进行字符级或词向量级的一维卷积也能有效捕捉n-gram级别的局部短语特征。2.3 RNN记忆“时间序列”的循环大师循环神经网络RNN是为处理序列数据而生的。它的核心思想是当前时刻的输出不仅取决于当前的输入还取决于网络过去时刻的“记忆”隐藏状态。这通过引入“循环”连接来实现使得信息可以在网络内部跨时间步传递。经典RNN的结构与困境最简单的RNN单元在时刻t的计算为h_t tanh(W_{xh} * x_t W_{hh} * h_{t-1} b)y_t W_{hy} * h_t。这里h_t是当前隐藏状态它包含了到当前时刻为止的序列信息。然而经典RNN在训练长序列时会遭遇著名的梯度消失/爆炸问题后面会详述导致它难以学习长距离的依赖关系。进阶变体LSTM与GRU为了解决长程依赖问题研究者设计了更复杂的门控循环单元。LSTM长短期记忆网络引入了“细胞状态”作为贯穿始终的信息高速公路并通过“输入门”、“遗忘门”、“输出门”三个门控结构精细地控制信息的写入、遗忘和读出。遗忘门决定从细胞状态中丢弃什么旧信息输入门决定加入什么新信息这使得LSTM能够有选择地保留长期重要的信息。GRU门控循环单元可以看作是LSTM的简化版它将LSTM的输入门和遗忘门合并为一个“更新门”并混合了细胞状态和隐藏状态。GRU参数更少训练速度往往更快在许多任务上与LSTM表现相当。应用场景与模型动图理解RNN及其变体是处理时序数据的自然选择如自然语言单词序列、语音信号、股票价格、视频帧序列。网上那些展示RNN如何逐词生成文本的“模型动图”直观地展示了其循环工作的过程每一步接收一个词结合上一步的记忆更新状态并预测下一个词。一个常见的误解澄清很多人认为CNN不能处理序列。实际上1D-CNN在时序任务上应用广泛它通过卷积核在时间轴上滑动来捕捉局部模式计算效率高且并行性好。但它缺乏RNN那种显式的、可灵活变长的记忆机制。CNN更擅长捕捉固定长度的局部模式而RNN尤其是LSTM/GRU更擅长建模长距离的、复杂的时序动态。在实践中也常看到CNNRNN的混合模型用CNN先提取局部特征再用RNN建模时序关系。3. 神经网络的“生命循环”前向传播与反向传播如果把神经网络比作一个复杂的函数那么前向传播就是“计算函数值”反向传播就是“根据误差调整函数内部参数”。这是所有监督学习神经网络训练的基石。3.1 前向传播从输入到输出的推理之路前向传播的过程非常直观。给定输入数据x和网络当前的所有参数权重W和偏置b数据从输入层开始逐层经过计算直到产生最终的输出y_hat。以一个简单的两层网络为例输入层到隐藏层z1 W1 * x b1,a1 f(z1)。其中f是激活函数如ReLU。隐藏层到输出层z2 W2 * a1 b2,y_hat g(z2)。其中g可能是Softmax分类或恒等函数回归。这个过程就是一次前向传播。在训练时我们会用y_hat与真实标签y通过损失函数如交叉熵、均方误差计算出一个标量损失值L它衡量了网络当前预测的“糟糕”程度。在推理/预测时我们只进行前向传播使用训练好的固定参数快速得到输出结果。3.2 反向传播误差的逆向溯源与参数调校反向传播是训练神经网络的核心算法其本质是链式法则的巧妙应用。它的目标是回答一个问题损失函数L对于网络中每一个可训练参数每一个W和b的梯度是多少有了梯度我们就可以知道如何微调每个参数才能使损失L减小。为什么叫“反向”因为梯度的计算是从输出层开始逆向逐层传播回输入层的。我们以那个两层网络为例简述过程计算输出层梯度首先计算损失L对输出y_hat的梯度∂L/∂y_hat。然后根据输出层的激活函数g计算∂L/∂z2 (∂L/∂y_hat) * (∂y_hat/∂z2)。接着∂L/∂W2 (∂L/∂z2) * a1^T∂L/∂b2 ∂L/∂z2注意这里涉及矩阵求导a1^T表示a1的转置。反向传播至隐藏层现在我们需要∂L/∂a1来计算前一层的梯度。∂L/∂a1 W2^T * (∂L/∂z2)。然后通过隐藏层的激活函数f计算∂L/∂z1 (∂L/∂a1) ⊙ f(z1)其中⊙表示逐元素乘法。最后∂L/∂W1 (∂L/∂z1) * x^T∂L/∂b1 ∂L/∂z1。通过这个过程我们得到了所有参数的梯度∇W1, ∇b1, ∇W2, ∇b2。接下来的优化器如SGD就会利用这些梯度来更新参数W W - η * ∇Wη是学习率。实操中的关键点现代深度学习框架如PyTorch、TensorFlow都实现了自动微分Autograd。你只需要定义前向传播的计算图框架会自动为你计算反向传播的梯度。但这绝不意味着你可以不懂反向传播。当梯度出现异常如NaN、需要自定义层、或者进行梯度裁剪等高级操作时深刻理解反向传播的原理是必不可少的。4. 训练中的两大“隐疾”梯度消失与梯度爆炸梯度消失和梯度爆炸是困扰深度神经网络训练尤其是RNN训练的经典难题。它们都源于反向传播中链式法则的连乘效应。4.1 现象与危害梯度消失在反向传播过程中梯度值随着层数的回溯而指数级地减小趋近于0。这导致网络浅层的参数几乎得不到有效的更新梯度太小其学习速度远慢于深层。结果是网络实际上只有后面几层在学习前面的层近乎随机初始化深度网络的优势无法发挥。梯度爆炸与消失相反梯度值随着层数回溯而指数级地增大趋近于无穷大。这会导致参数更新步长巨大优化过程极度不稳定损失值剧烈震荡甚至变成NaN模型完全无法收敛。4.2 数学根源与激活函数的选择问题出在链式法则的连乘项上。回顾反向传播公式∂L/∂z1 ... * f(z1)。对于深度网络这个连乘会包含很多个激活函数的导数f(z)。以Sigmoid函数σ(x) 1/(1e^{-x})为例其导数σ(x) σ(x)(1-σ(x))最大值仅为0.25。当多个小于1的数连乘时结果会迅速趋近于0这就是梯度消失的典型原因。Tanh函数虽然关于原点对称输出范围在(-1,1)但其导数tanh(x) 1 - tanh^2(x)最大值是1但同样在两端会快速饱和到0也存在梯度消失问题。ReLU函数及其变体如Leaky ReLU是解决梯度消失的一大功臣。ReLU的导数在输入为正时为1为负时为0。导数为1的路径完美地让梯度无损地反向传播极大地缓解了梯度消失这也是深度学习复兴的关键因素之一。但ReLU也有“神经元死亡”问题输入恒为负时梯度永远为0。4.3 解决方案与实战策略激活函数选择使用ReLU及其变体Leaky ReLU, PReLU, ELU作为默认选择替代Sigmoid/Tanh尤其是在深度网络的隐藏层。权重初始化采用精心设计的初始化方法如He初始化配合ReLU或Xavier初始化配合Tanh/Sigmoid确保前向传播时信号方差稳定反向传播时梯度方差也稳定。批归一化Batch NormalizationBN层通过对每一层的输入进行归一化将其强制拉回均值为0、方差为1的分布这可以显著减少内部协变量偏移允许使用更高的学习率并在一定程度上抑制梯度爆炸/消失。梯度裁剪Gradient Clipping这是应对梯度爆炸的直接有效手段。设定一个梯度阈值在反向传播后、更新参数前检查梯度向量的范数如L2范数如果超过阈值就按比例缩放整个梯度向量使其范数等于阈值。这在训练RNN/LSTM时几乎是标配。网络结构设计对于RNN直接使用LSTM或GRU其门控机制专门设计用来维持长期记忆缓解梯度问题。对于CNN和DNN合理的深度和残差连接ResNet通过恒等映射提供了梯度传播的“高速公路”让梯度可以直接跳过一些层反向传播是训练极深网络的关键。注意梯度消失和爆炸不是非此即彼的有时可能在同一网络的不同部分同时发生。监控训练过程中各层梯度的范数分布是诊断这类问题的好习惯。5. 激活函数神经网络的“非线性开关”激活函数是神经网络引入非线性的关键。没有它无论多少层网络其整体变换仍然是一个线性函数无法拟合复杂模式。前面我们已经提到了Sigmoid、Tanh、ReLU这里再系统比较一下并补充Softmax。5.1 饱和型激活函数Sigmoid与TanhSigmoid将输入压缩到(0,1)之间。历史上常用于输出层做二分类表示概率也用于隐藏层。优点输出平滑易于求导。致命缺点梯度消失导数最大0.25易导致梯度消失。输出非零中心化输出恒大于0导致后续层输入总为正梯度更新呈“Z”字形路径降低收敛效率。计算量较大涉及指数运算。现状在隐藏层中已基本被ReLU取代。在二分类输出层仍有使用但更常被结合了Sigmoid的二元交叉熵损失函数所替代。Tanh双曲正切函数将输入压缩到(-1,1)之间。优点输出是零中心化的收敛速度通常比Sigmoid快。缺点同样存在梯度饱和消失问题两端导数趋近于0。现状在RNN如LSTM/GRU的隐藏状态变换中仍有应用但在CNN/DNN的隐藏层中同样被ReLU系列超越。5.2 非饱和型激活函数ReLU及其家族ReLUf(x) max(0, x)优点计算极其高效只有比较和取最大值操作。缓解梯度消失在正区间梯度恒为1。带来稀疏性负半区输出为0使网络变得稀疏可能更接近生物神经元并有一定正则化效果。缺点Dead ReLU问题一旦输入落入负半区梯度为0该神经元将永久“死亡”不再对任何数据激活。输出非零中心化。使用建议目前最常用、最默认的隐藏层激活函数。配合He初始化效果很好。Leaky ReLUf(x) max(αx, x)其中α是一个小的正数如0.01。优点解决了Dead ReLU问题负半区有一个小的斜率保证梯度不会完全为零。缺点需要人工设定或学习α参数。Parametric ReLU (PReLU)将Leaky ReLU中的α作为一个可学习的参数。Exponential Linear Unit (ELU)f(x) x if x0 else α(exp(x)-1)。试图让输出均值更接近零理论上能加速收敛但计算涉及指数稍慢。5.3 输出层专用函数SoftmaxSoftmax专用于多分类任务的输出层。它将一个K维的实数向量通常称为logits“压缩”成另一个K维的实数向量使得每个元素都在(0,1)之间且所有元素之和为1从而可以解释为概率分布。公式Softmax(z_i) exp(z_i) / Σ_j exp(z_j)特性它不仅放大最大值的概率还会抑制远低于最大值的其他分量的概率。它与交叉熵损失函数是“黄金搭档”求导形式非常简洁优美。数值稳定性实际计算时通常会对logits做一个平移z z - max(z)防止exp(z)数值溢出。选择指南隐藏层无脑首选ReLU。如果担心Dead ReLU可以试试Leaky ReLU或ELU。对于RNN的隐藏态Tanh仍是不错的选择。输出层二分类一个节点使用Sigmoid激活配合二元交叉熵损失。多分类K个节点使用Softmax激活配合分类交叉熵损失。回归通常不使用激活函数或称为恒等激活直接输出配合均方误差等损失。6. 优化器比较从“盲人下山”到“自适应冲浪”优化器的任务是指导参数如何根据梯度进行更新。最基本的优化器是随机梯度下降SGD但为了应对更复杂的损失地形一系列更强大的优化器被提出。6.1 基础SGD与Mini-batch SGD批量梯度下降使用整个训练集计算梯度更新一次。梯度方向最准但计算一次开销巨大无法处理大数据集。随机梯度下降每次随机使用一个样本计算梯度并更新。更新频繁速度快可以跳出局部极小点但梯度噪声大收敛路径震荡剧烈。Mini-batch SGD折中方案每次使用一个小批量如32, 64, 128数据计算梯度。这是实践中最常用的基础形式兼顾了更新速度和稳定性。其更新公式为θ θ - η * ∇J(θ)。SGD的痛点学习率η的选择困难太小收敛慢太大易震荡甚至发散。对所有参数使用同一学习率不同参数的重要性、梯度频率可能不同。容易陷入局部最优点或鞍点尤其是鞍点在高维空间中更常见。6.2 引入动量MomentumSGD with Momentum模拟物理中的动量概念让参数更新不仅考虑当前梯度还积累之前的梯度方向。v_t γ * v_{t-1} η * ∇J(θ)θ θ - v_t其中γ是动量因子通常0.9v是速度。作用在梯度方向一致的维度上加速更新在梯度方向变化的维度上抑制震荡帮助更快穿越平缓的峡谷区域和跳出局部最优点。6.3 自适应学习率优化器这类优化器为每个参数自适应地调整学习率。AdaGrad为每个参数累积历史梯度的平方和学习率会除以这个累积值的平方根。梯度大的参数累积值大学习率衰减快梯度小的参数学习率衰减慢。缺点累积平方和单调递增导致学习率过早、过度衰减至零训练提前停止。RMSProp针对AdaGrad的改进引入衰减系数通常0.9对历史梯度平方和进行指数移动平均而不是简单累加。这样久远的历史梯度影响会衰减避免了学习率一直下降的问题。是许多任务上的一个可靠选择。AdamAdaptive Moment Estimation目前最流行、最常用的默认优化器。它结合了Momentum和RMSProp的思想。计算梯度的一阶矩均值m_t和二阶矩未中心化的方差v_t的指数移动平均。对m_t和v_t进行偏差校正特别是在训练初期得到m_hat_t和v_hat_t。更新参数θ θ - η * m_hat_t / (sqrt(v_hat_t) ε)。优点通常收敛快对超参数除了学习率相对鲁棒默认参数β10.9 β20.999在大多数情况下表现良好。缺点有时泛化性能不如带动量的SGD在一些任务上可能收敛到不够尖锐的最优点。AdamWAdam的一个变体将权重衰减L2正则化从梯度更新中解耦出来以更符合其理论定义的方式进行。在许多实验中AdamW表现出比Adam更优的泛化性能尤其是在训练Transformer等模型时已成为新的主流选择。6.4 优化器选择实战指南默认起点使用Adam或AdamW学习率设为3e-4或1e-3这通常能提供一个不错的基线。追求极致性能如果训练时间充裕并且任务对最终精度要求极高如大型图像分类、检测可以尝试使用带动量的SGD配合一个精心设计的学习率衰减策略如余弦退火。SGD虽然可能收敛慢但常能找到更尖锐、泛化更好的最优点。稀疏数据对于自然语言处理等稀疏数据任务AdaGrad或其变体如FTRL有时表现更好。重要提示优化器的比较没有绝对的赢家。最佳选择取决于具体任务、网络结构、数据特性。一个良好的实践是在项目初期用Adam快速验证想法和模型结构在最终精调时可以对比一下SGD和AdamW的性能。7. YOLO各版本演进目标检测的“速度与精度”博弈YOLO系列是单阶段目标检测算法的典范其核心思想是“将目标检测视为一个回归问题”直接在单个神经网络中从图像像素预测边界框和类别概率。它的演进史就是一部在速度FPS和精度mAP之间不断寻求最佳平衡点的历史。7.1 YOLOv1开山之作思想革新核心创新将整张图划分为SxS的网格每个网格负责预测B个边界框以及这些框的置信度包含物体的概率与IoU的乘积。同时每个网格还预测C个类别条件概率。最终将类别概率与置信度相乘得到每个框的类别特异性置信度分数。优点速度极快达到实时水平。端到端训练流程简洁。缺点定位不准每个网格只预测两个框且只能属于一个类别对密集小物体和重叠物体检测差。召回率较低网格划分粗糙物体中心点落入网格的机制导致召回率受限。全连接层导致空间信息丢失。7.2 YOLOv2 (YOLO9000)博采众长全面提升YOLOv2进行了一系列改进称为“Better, Faster, Stronger”。BetterBatch Normalization在所有卷积层后加入BN显著提升收敛性和模型正则化可移除Dropout。高分辨率分类器先在ImageNet高分辨率448x448上微调分类网络再用于检测。Anchor Boxes引入Faster R-CNN的锚框先验框概念不再直接预测边界框坐标而是预测相对于锚框的偏移量。网络在每个网格预测多个锚框大大提升了召回率。维度聚类在训练集边界框上运行K-means聚类得到数据分布更匹配的先验锚框尺寸。细粒度特征添加一个直通层将浅层高分辨率特征图连接到深层特征图有助于检测小物体。Faster提出了一个自定义的骨干网络Darknet-19比VGG16更快。Stronger提出了一种联合训练机制能在检测数据集和分类数据集上同时训练从而可以检测超过9000种类别。7.3 YOLOv3迈向成熟的工业级基线YOLOv3至今仍被广泛使用是一个里程碑版本。骨干网络升级使用更深的Darknet-53借鉴ResNet的残差连接在速度和精度间取得了更好平衡。多尺度预测在三个不同尺度的特征图上进行预测类似FPN。深层特征图感受野大预测大物体浅层特征图细节丰富预测小物体。这显著提升了小物体检测性能。分类头改用独立的逻辑回归不再使用Softmax假设类别互斥而是对每个类别使用独立的Sigmoid二分类器支持多标签分类一个物体属于多个类别。损失函数改进使用二元交叉熵损失代替Softmax损失。YOLOv3奠定了现代YOLO的基本框架一个高效的骨干网络Darknet 一个多尺度的检测颈Neck 基于锚框的检测头Head。7.4 YOLOv4 / YOLOv5工程优化的盛宴这两个版本并非同一作者但都代表了将各种前沿技巧集成到YOLO框架中的工程化努力。YOLOv4由Alexey Bochkovskiy等人提出自称是“高效而强大的目标检测模型”。它集成了大量在当时被证明有效的“Bag of Freebies”不增加推理成本提升精度的方法和“Bag of Specials”轻微增加成本但显著提升精度的方法。骨干网络CSPDarknet53跨阶段局部网络减少计算量并增强梯度流。NeckSPP空间金字塔池化 PANet路径聚合网络加强特征融合。激活函数Mish。数据增强Mosaic数据增强将四张图拼接训练 CutMix等。损失函数CIoU Loss更优的边框回归损失。自对抗训练等。特点像一个精心调校的“组合套餐”精度很高但实现相对复杂。YOLOv5由Ultralytics公司发布并非官方续作但因其极致的工程易用性而爆火。核心优势完整的PyTorch实现开箱即用。提供了从超小YOLOv5s到超大YOLOv5x的多个模型尺寸满足不同需求。其数据加载、训练管道、模型导出到ONNX TensorRT等做得非常完善。结构同样采用CSPDarknet作为骨干PANet作为颈但具体实现与v4有差异。创新点自适应锚框计算训练前自动在数据上聚类锚框自适应图片缩放减少推理时的灰边等。争议因其命名和未发表正式论文而存在争议但其在社区的影响力和实用性毋庸置疑。7.5 YOLOv6 / v7 / v8 / v9 / v10群雄逐鹿与范式转变此后YOLO生态进入“战国时代”多家机构推出各自版本。YOLOv6美团出品面向工业应用优化。提出了一种高效的RepVGG风格骨干重参数化技术训练时多分支推理时合并为单路兼顾性能与速度并设计了更简洁高效的颈部和头部。YOLOv7原YOLOv4团队发布。在架构上提出了扩展的高效层聚合网络E-ELAN以及“可训练的Bag-of-Freebies”如重参数化模块的规划、动态标签分配等在速度和精度上当时达到了新的SOTA。YOLOv8Ultralytics在YOLOv5基础上的重大升级。最大的变化是转向了无锚框Anchor-Free检测直接预测物体中心点简化了检测头。同时提供了更丰富的任务支持分类、检测、分割、姿态估计并继续保持了优秀的工程化水准和易用性。YOLOv9 / v10继续在主干网络设计、信息瓶颈、特征融合等方面进行创新追求更高的精度-效率帕累托前沿。选择建议快速入门与部署YOLOv5 / YOLOv8是首选文档齐全生态丰富预训练模型多从训练到部署的路径最平滑。追求极致精度可以关注最新的v9, v10或v7但需要自己投入更多精力进行复现和调优。工业场景YOLOv6的设计理念值得借鉴其重参数化技术对部署友好。理解原理从YOLOv3入手学习它的结构清晰是理解后续所有变体的基础。8. BP网络一切的基础与概念的澄清在文章的最后我们有必要澄清一下“BP网络”这个概念。在很多老教材或口语中“BP网络”常常被用来指代使用误差反向传播算法进行训练的多层前馈神经网络也就是我们前面详细讨论的DNN多层感知机。BPBack Propagation特指误差反向传播算法是一种高效计算梯度的方法是一种训练算法。网络指的是多层感知机MLP这种网络结构。因此“BP网络”强调的是“使用BP算法训练的MLP”。而我们现在常说的CNN、RNN它们的训练同样依赖于反向传播算法通过时间反向传播BPTT for RNN但它们的网络结构不再是简单的全连接。所以在当今的语境下“BP网络”通常是一个历史性的、狭义的概念大致等同于基础的DNN。理解这一点就能明白为什么我们讨论CNN、RNN、DNN以及梯度消失、激活函数、优化器因为它们共同构成了现代深度学习的训练框架一个特定的网络结构CNN/RNN/DNN在前向传播中计算输出通过损失函数衡量误差利用反向传播算法计算误差对于每一层参数的梯度这些梯度可能会遇到消失或爆炸的问题通过选择合适的激活函数和优化器策略来更新参数使得网络能够不断学习。而YOLO则是这个强大框架在计算机视觉目标检测领域结出的一个璀璨果实。把这套逻辑理顺了你就握住了深度学习入门最核心的那把钥匙。
返回列表