ResNets

ResNets

背景: 非常非常深的神经网络是很难训练的,因为存在梯度消失和梯度爆炸问题。
《转载+更改》
https://blog.youkuaiyun.com/qq_29893385/article/details/81207203

  1. ResNets是由残差块(Residual block)构建的
    首先解释一下什么是残差块。

在这里插入图片描述

这是一个两层神经网络,在 relu层进行激活,得到a^(l+1) ,再次进行激活,两层之后得到a^(l+2) 。计算过程是从a^1 开始,首先进行线性激活,根据这个公式:在这里插入图片描述 ,通过 算出 ,即 乘以权重矩阵,再加上偏差因子。然后通过ReLU非线性激活函数得到 , 计算得出。
接着再次进行线性激活,依据等式在这里插入图片描述 ,最后根据这个等式再次进行ReLu非线性激活,即 ,这里的 是指ReLU非线性函数,得到的结果就是在这里插入图片描述 。换句话说,信息流从 到 需要经过以上所有步骤,即这组网络层的主路径。

在这里插入图片描述

  1. 在残差网络中的变化:

前面的输入,将直接传向后,拷贝到神经网络的深层,在ReLU非线性激活函数前加上 ,形成一条捷径。
a^1 的信息直接到达神经网络的深层,不再沿着主路径传递,ReLU非线性函数,对 二个输入进行函数处理,即:在这里插入图片描述  ,产生一个残差块。

在这里插入图片描述

在上面这个图中,画一条捷径,直达第二层。
这条捷径在进行ReLU非线性激活函数之前加上的,而这里的每一个节点都执行了线性函数和ReLU激活函数。插入的时机是在线性激活之后,ReLU激活之前。
除了捷径,另一个术语“跳跃连接”,就是指跳过一层或者好几层,从而将信息传递到神经网络的更深层。

ResNet的发明者是何恺明(Kaiming He)、张翔宇(Xiangyu Zhang)、任少卿(Shaoqing Ren)和孙剑(Jiangxi Sun),他们发现使用残差块能够训练更深的神经网络。所以构建一个ResNet网络就是通过将很多这样的残差块堆积在一起,形成一个很深神经网络。

在这里插入图片描述

这并不是一个残差网络,而是一个普通网络(Plain network),这个术语来自ResNet论文。

在这里插入图片描述

把它变成ResNet的方法是加上所有跳跃连接,每两层增加一个捷径,构成一个残差块。如图所示,5个残差块连接在一起构成一个残差网络。

在这里插入图片描述

如果我们使用标准优化算法训练一个普通网络,比如说梯度下降法,或者其它热门的优化算法。如果没有残差,没有这些捷径或者跳跃连接,凭经验你会发现随着网络深度的加深,训练错误会先减少,然后增多。而理论上,随着网络深度的加深,应该训练得越来越好才对。也就是说,理论上网络深度越深越好。但实际上,如果没有残差网络,对于一个普通网络来说,深度越深意味着用优化算法越难训练。实际上,随着网络深度的加深,训练错误会越来越多。

但有了ResNets就不一样了,即使网络再深,训练的表现却不错,比如说训练误差减少,就算是训练深达100层的网络也不例外。有人甚至在1000多层的神经网络中做过实验,尽管目前我还没有看到太多实际应用。但是对 的激活,或者这些中间的激活能够到达网络的更深层。这种方式确实有助于解决梯度消失和梯度爆炸问题,让我们在训练更深网络的同时,又能保证良好的性能。也许从另外一个角度来看,随着网络越来深,网络连接会变得臃肿,但是ResNet确实在训练深度网络方面非常有效。

<think>好的,用户想了解3D ResNets在视频分类中的应用。首先,我需要回忆一下3D ResNets的基本结构。3D卷积神经网络与传统2D的不同之处在于,它在时间维度上增加了卷积操作,这样可以捕捉视频中的时序信息。ResNet通过残差连接解决了深层网络中的梯度消失问题,3D版本应该也是基于这个思想。 接下来,要确定3D ResNets在视频分类中的具体架构。通常,ResNet有不同的层数,比如ResNet-18、ResNet-50等,3D版本可能有类似的层结构。需要说明每一层的组成,比如3D卷积层、3D池化层,以及残差块的设计。残差块中的跳跃连接如何保留时间信息,这点很重要。 然后,要联系用户提供的参考文献。引用[1]提到大规模视频分类使用CNN,可能3D ResNets是其中的一种方法。引用[2]和[3]讨论了深度学习的模型架构和半监督分割,虽然不直接相关,但说明模型结构优化的重要性。引用[4]关于图像分类的模型总结,可以对比2D和3D ResNet的区别。 用户可能还想知道3D ResNets的优势,比如处理时间信息的能力,或者与其他模型(如2D CNN+LSTM)的比较。此外,应用场景如视频动作识别、医疗视频分析等也是需要提到的部分。 需要确保回答符合格式要求,数学公式用$...$,独立公式用$$...$$。例如,残差块的公式可以写成: $$H(x) = F(x, \{W_i\}) + x$$ 最后,生成的相关问题要围绕架构细节、应用场景、优化方法等方面展开,帮助用户进一步探索。</think>### 3D ResNets架构在视频分类中的应用 3D ResNets(三维残差网络)是专门为视频分类等时序空间任务设计的深度学习模型,其核心思想是将经典的2D ResNet扩展到三维空间(宽度、高度、时间维度),以捕捉视频中的时空特征[^1]。以下是其架构的核心要点: #### 1. **3D卷积层** - **基础单元**:使用$3 \times 3 \times 3$的卷积核,同时对空间(宽高)和时间维度进行特征提取。 - **数学表达**:对于输入张量$X \in \mathbb{R}^{C \times T \times H \times W}$,3D卷积操作可表示为: $$Y_{c'} = \sum_{c=1}^{C} \sum_{t=1}^{k_t} \sum_{h=1}^{k_h} \sum_{w=1}^{k_w} W_{c',c,t,h,w} \cdot X_{c, t+i, h+j, w+k} + b_{c'}$$ 其中$k_t, k_h, k_w$为时间、高度、宽度方向的卷积核尺寸。 #### 2. **残差块设计** - **跳跃连接**:每个残差块包含两个3D卷积层,并通过跳跃连接(Shortcut Connection)解决梯度消失问题: $$H(x) = F(x, \{W_i\}) + x$$ 其中$F(x)$为残差函数,$x$为输入。 #### 3. **网络结构** - **层级堆叠**:典型结构如3D ResNet-50包含多个残差块组(如conv2_x到conv5_x),逐步扩大通道数并缩减时空分辨率。 - **池化层**:初始阶段使用$3 \times 3 \times 3$最大池化,步长$2 \times 2 \times 2$以快速压缩时空维度[^4]。 #### 4. **视频分类任务适配** - **输入处理**:将视频划分为固定长度的片段(如16帧),输入尺寸为$3 \times T \times H \times W$(RGB通道×时间×宽×高)。 - **输出层**:全局时空平均池化后接全连接层,输出分类概率。 #### 5. **优势与性能** - **时序建模能力**:3D卷积核直接学习帧间运动模式,优于2D CNN + LSTM的分离式设计[^1]。 - **基准结果**:在Kinetics-400等数据集上,3D ResNet-50的Top-1准确率超过75%。 #### 6. **应用场景** - **视频动作识别**:如人体动作分类、体育赛事分析。 - **医疗影像分析**:处理动态MRI或CT序列。 - **自动驾驶**:多帧连续视频的语义理解[^3]。 ```python # 3D ResNet残差块示例(PyTorch伪代码) class Residual3D(nn.Module): def __init__(self, in_channels, out_channels, stride=1): super().__init__() self.conv1 = nn.Conv3d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1) self.bn1 = nn.BatchNorm3d(out_channels) self.conv2 = nn.Conv3d(out_channels, out_channels, kernel_size=3, padding=1) self.bn2 = nn.BatchNorm3d(out_channels) self.shortcut = nn.Sequential() # 输入输出通道相同时直接跳连 if stride != 1 or in_channels != out_channels: self.shortcut = nn.Sequential( nn.Conv3d(in_channels, out_channels, kernel_size=1, stride=stride), nn.BatchNorm3d(out_channels) ) def forward(self, x): out = F.relu(self.bn1(self.conv1(x))) out = self.bn2(self.conv2(out)) out += self.shortcut(x) return F.relu(out) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值