深度学习查漏补缺:1.梯度消失、梯度爆炸和残差块
创作时间:
作者:
@小白创作中心
深度学习查漏补缺:1.梯度消失、梯度爆炸和残差块
引用
CSDN
1.
https://m.blog.csdn.net/qq_53529450/article/details/145418828
在深度学习中,梯度消失和梯度爆炸是训练深层神经网络时常见的问题,它们会导致模型训练困难、性能受限。为了解决这些问题,残差块(Residual Block)应运而生,通过引入跳跃连接,使得深层网络的训练变得更加稳定和有效。本文将深入探讨梯度消失、梯度爆炸的原因及其解决方案——残差块的工作原理。
一、梯度消失
梯度消失的根本原因在于激活函数的性质和链式法则的计算:
- 激活函数的导数很小:
- 常见的激活函数(例如 Sigmoid 和 Tanh)在输入较大或较小时,输出趋于饱和(Sigmoid 的输出趋于 0 或 1),其导数接近于 0。
- 在反向传播中,每一层的梯度都会乘以激活函数的导数。如果导数很小,乘积就会导致梯度逐渐变小。
- 链式法则的多次相乘:
假设网络有 nn 层,梯度从输出层传到第 ii 层时,会经历多次链式相乘:
- 如果每一项的导数都小于 1(例如 0.5),那么多次相乘后梯度将变得非常小,接近于 0。
- 深层网络的结构:
层数越多,梯度消失的积累效应越明显,导致靠近输入层的权重几乎无法更新。
1.4 梯度消失带来的问题
- 网络无法有效学习:靠近输入层的权重无法更新,网络的学习能力只集中在靠近输出层的部分,导致模型性能受限。
- 训练时间增加:梯度很小,优化器调整参数的速度变慢,训练需要更多的时间。
二、梯度爆炸
1 梯度爆炸的现象
与梯度消失相反,当网络层数较深时,梯度在反向传播过程中可能会逐渐变大,甚至变得非常大。这种现象被称为梯度爆炸。
由于梯度过大,模型的参数更新幅度也会非常大,可能导致:
- 参数出现巨大波动,训练过程不稳定;
- 损失值(Loss)变得非常大,甚至出现
NaN
; - 模型无法收敛,最终无法学习任何规律。
2 为什么会发生梯度爆炸?
梯度爆炸的原因与梯度消失类似,主要是由于链式法则的多次相乘,但此时乘积中的值大于 1:
- 权重初始化不当:
- 如果网络的初始权重过大,在反向传播时,梯度的值也会变得很大。
- 例如,如果每层的权重初始化为 5,经过 10 层的链式积累,梯度可能会变成
- 激活函数的导数较大:
- 如果激活函数的导数值很大,梯度在多次相乘后会迅速变大。
- 深层网络的结构:
- 网络层数越多,链式法则的积累效应越明显,导致梯度爆炸的概率增大。
3 梯度爆炸带来的问题
- 训练不稳定:梯度过大,导致参数更新过快,训练过程可能无法收敛。
- 损失发散:梯度爆炸会导致损失值发散,模型无法学习有效特征。
三、残差块
残差块(Residual Block)是深度学习中ResNet(Residual Network)网络的核心组件,它最早由微软研究院的何凯明(Kaiming He)等人在 2015 年提出。残差块通过引入跳跃连接(skip connection),解决了深层神经网络训练中的梯度消失、梯度爆炸和退化问题,使得网络能够训练得更深、性能更好。
为什么需要残差块?
在深层神经网络中,随着网络深度的增加(层数增多),存在以下问题:
- 梯度消失(Vanishing Gradient):反向传播时,梯度在逐层传递过程中可能逐渐变小,从而无法有效更新靠近输入层的权重。
- 梯度爆炸(Exploding Gradient):反之,梯度可能会在逐层传递过程中变得过大,导致模型训练不稳定。
- 退化问题(Degradation Problem):当网络层数增加时,模型的训练误差反而会变大,甚至性能比浅层网络更差。
这些问题的根本原因在于,随着层数增加,网络在拟合复杂非线性变换时可能会难以优化。残差块通过引入跳跃连接,允许网络直接学习相对较小的残差(Residual),从而降低优化难度。
残差块的结构
一个标准的残差块具有以下结构:
- 主路径(Main Path):通过若干个卷积、批归一化(Batch Normalization)、激活函数(如 ReLU)组成,是网络的主要信息传递路径。
- 跳跃连接(Skip Connection):从输入直接添加到输出,为网络提供了一条“捷径”。
输出形式为:
y=F(x)+x
其中:
- x:残差块的输入。
- F(x):主路径中卷积、激活等操作的输出。
- y:残差块的最终输出。
通过直接将输入 x 加到输出 F(x) 上,残差块能够显式学习 F(x)=H(x)−x,即学习输入与目标值之间的残差。如果 H(x) 是目标映射函数,那么 F(x)F(x) 是残差函数。
1. 一般形式的残差块
以两个卷积层为例,残差块的结构如下:
- 输入:x
- 第一层卷积(Conv1d/Conv2d),带激活函数(如 ReLU)。
- 第二层卷积(Conv1d/Conv2d)。
- 跳跃连接:直接将 xx 与经过两层卷积后的结果相加。
- 激活函数(如 ReLU)。
数学表达式为:
y=ReLU(F(x)+x)
2. 带维度变换的残差块
如果输入和输出的特征维度不同(例如通道数或空间维度变化),需要使用额外的线性变换对输入 x 进行升维或降维(Projection Shortcut),使得尺寸匹配。
y=F(x)+Ws x
其中 Ws是一个线性变换(通常是 1×1 卷积)。
直观解释残差块的作用
- 更容易优化深层网络
通过学习残差 F(x)=H(x)−x,残差块将复杂的非线性映射 H(x)转换为一个简单的优化问题。即使网络层数增加,残差块可以将输入直接传递到更深层,减轻梯度消失的影响。 - 提供信息的捷径
跳跃连接允许信息直接从输入传递到输出,让网络更容易捕捉重要的特征,同时保留原始特征。 - 防止退化问题
在普通深层网络中,增加更多的层可能会导致模型性能退化,反而不如浅层网络。残差块通过添加跳跃连接,可以显式地学习哪些层需要参与计算,哪些层可以跳过,从而有效防止退化。
本文原文来自CSDN
热门推荐
从汉字到拉丁字母:世界文字体系大观
海南环岛高铁沿线必打卡景点揭秘
这些运动,每天选一种坚持30分钟,有助健康长寿
阳朔桂林必游攻略:漓江精华段游览+西街深度体验
一文详解辅警管理八大岗位:各司其职守护社会治安
吊灯安装高度,你家客厅够高了吗?
西方神话中的Dragon:从邪恶巨兽到人性化生物
老年人接种流感疫苗,真的有用吗?
西溪街道积极推进老年人流感疫苗接种 筑牢社区健康防线
网易云游戏助力《蛋仔派对》逃出惊魂夜通关技巧
上海必打卡特色景点推荐:南翔馒头店、朱家角古镇、东方明珠
温暖话语如何触发心灵共鸣?
“红色金子”藏红花功效胜红花,两者价值大不同
温暖话语的力量:点亮心理健康之光
张海洋律师:用创新思维和团队协作打造法律服务新高度
婚姻教皇戈特曼40年研究:8大原则助夫妻守护长久爱情
打卡沪上经典:豫园&上海博物馆
有效清理灰尘的技巧与方法,提升家居环境与健康保障
南瓜小米糙米糊
东莞白萝卜干:岭南冬日养生的智慧结晶
翡翠手镯鉴别全攻略:7大技巧助你避开假货陷阱
六如偈:金刚经里的无常智慧
父母常说这三句话,孩子会一天比一天独立
景洪大金塔、星光夜市、湄公河六国水上市场:告庄西双景必打卡特色景点推荐
告庄西双景:西双版纳的浪漫夜游胜地
揭秘傣族文化:从千年古刹到现代夜市
豆类竟是肠癌克星?
中考体育立定跳远:技术要领与训练方法全攻略
中国银行业:百年发展成就与未来转型之路
从龙到喜鹊:中国古建筑中的动物装饰与文化寓意