深层网络

深层网络由于其更深的卷积层,能够提取更高级别的抽象特征,增强模型的表达能力和参数可控性,从而在图像分类任务中表现出色。卷积层减少参数,降低过拟合风险,模仿动物视觉系统逐层构建特征,从边缘识别到抽象全局特征的生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深层网络在图像分类中表现优越的原因:
(1)更深的网络有更多的卷积层,能提取到更高级更抽象的特征,这样更容易分类
(2)更深的网络有更多的参数,模型的表达能力更强,可控的参数更多,对物体平移的容忍更强

卷积层相对于全连接层参数更少,减少了过拟合的风险,并且由局部特征一层一层组合为更高级更抽象的特征,符合动物的视觉系统。

从下面的例子可以看到,第一层卷积只是一些边缘特征,第二层卷积就组合了一些边缘特征,后面的每一层卷积都将上一层的特征做组合,最终生成以一个抽象的全局特征
这里写图片描述

这里写图片描述

### 关于深度学习中的ResNet架构及其实现 #### ResNet简介 ResNet(残差网络)由何凯明等人提出,旨在解决深层神经网络训练过程中遇到的退化问题。随着网络层数增加,在标准卷积网络中性能会饱和并迅速恶化[^1]。 #### 残差学习原理 核心概念在于引入快捷连接(shortcut connection),即跳过一层或多层直接将输入传递到后续层。这种设计允许网络学习输入输出之间的映射关系F(x)=H(x)-x而不是直接拟合H(x),从而简化了优化过程。值得注意的是,这里的跳跃并不涉及任何额外参数的学习,也不依赖任何形式的门控单元。 #### 架构特点 - **恒等映射**:当激活函数为线性时,即使经过多层变换也能保持原始信号不变。 - **缓解梯度消失/爆炸**:通过提供捷径路径使得反向传播更加顺畅,有助于稳定和加速收敛速度[^3]。 - **易于扩展**:可以方便地构建更深更复杂的模型而不会显著降低泛化能力。 #### 实现细节 下面给出一个简单的ResNet模块定义: ```python import torch.nn as nn class BasicBlock(nn.Module): expansion = 1 def __init__(self, in_planes, planes, stride=1): super(BasicBlock, self).__init__() self.conv1 = nn.Conv2d(in_planes, planes, kernel_size=3, stride=stride, padding=1, bias=False) self.bn1 = nn.BatchNorm2d(planes) self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=1, padding=1, bias=False) self.bn2 = nn.BatchNorm2d(planes) self.shortcut = nn.Sequential() if stride != 1 or in_planes != self.expansion*planes: self.shortcut = nn.Sequential( nn.Conv2d(in_planes, self.expansion*planes, kernel_size=1, stride=stride, bias=False), nn.BatchNorm2d(self.expansion*planes) ) def forward(self, x): out = nn.ReLU()(self.bn1(self.conv1(x))) out = self.bn2(self.conv2(out)) out += self.shortcut(x) out = nn.ReLU()(out) return out ``` 此代码片段展示了如何创建基本的残差块,其中包含了两个连续的卷积操作以及必要的批处理规范化和ReLU激活函数应用。对于维度不匹配的情况,则采用`stride!=1`或通道数不同的情况下的投影捷径来调整尺寸。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值