网络骨架:Backbone(神经网络基本组成——池化层、Droput层)

池化层

在卷积神经网络中,通常会在卷积层之间增加池化(Pooling)层,以降低特征图的参数量,提升计算速度,增加感受野,是一种降采样操作。池化是一种较强的先验,可以使模型更关注全局特征而非局部出现的位置,这种降维的过程可以保留一些重要的特征信息,提升容错能力,并且还能一定程度上起到防止过拟合的作用
在物体检测中,常用的池化有最大池化(Max Pooling)与平均值池化(Average Pooling)。池化层有两个主要的参数。即核尺寸(kernel_size)与步长(stride)。下图所示为一个核尺寸与步长都为2的最大池化过程:
在这里插入图片描述
下面是PyTorch对于池化层的实现:

>>> import torch
>>> from torch import nn
>>> #池化主要需要两个参数,第一个参数代表池化区域大小,第二个参数代表步长
>>> max_pooling = nn.MaxPool2d(2,stride=2)
>>> aver_pooling = nn.AvgPool2d(2,stride=2)
>>> input = torch.randn(1,1,4,4)
>>> input
tensor([[[[ 0.1586,  1.4715,  0.3611, -1.8534],
          [-1.1558, -0.0742,  0.8602, -0.5262],
          [-0.5491,  0.1139, -0.2996,  0.5968],
          [ 1.3145,  1.7557, -0.6997,  1.6278]]]])
>>> #调用最大池化与平均池化,可以看到size从[1,1,4,4]变为了[1,1,2,2]
>>> max_pooling(input)
tensor([[[[1.4715, 0.8602],
          [1.7557, 1.6278]]]])
>>> aver_pooling(input)
tensor([[[[ 0.1000, -0.2896],
          [ 0.6588,  0.3063]]]])

Droput层

在深度学习中,当参数过多而训练样本又比较少时,模型容易产生过拟合现象。过拟合是很多深度学习乃至机器学习算法的同病,具体表现为在训练集上预测准确率高,而在测试集上准确率大幅下降。
Dropout基本思想如下图所示,在训练时,每个神经元以概率p保留,即以1-p的概率停止工作,每次前向传播保留下来的神经元都不同,这样可以使模型不太依赖于某些局部特征,泛化性能更强。在测试时,为了保证相同的输出期望值,每个参数还要乘以p。当然还有另外一种计算方式称为Inverted Droput,即在训练时将保留下的神经元乘以1/p,这样测试时就不需要再改变权重
在这里插入图片描述
至于Droput为什么可以防止过拟合,可以从以下3个方面解释:

  • 多模型的平均:不同的固定神经网络会有不同的过拟合,多个取平均则有可能让一些相反的拟合抵消掉,而Dropout每次都是不同的神经元失活,可以看做是多个模型的平均,类似于多数投票取胜的策略
  • 减少神经元间的依赖:由于两个神经元不一定同时有效,因此减少了特征之间的依赖,迫使网络学习有更鲁邦的特征,因为神经网络不应该对特定的特征敏感,而应该从众多特征中学习更为共同的规律,这也起到了正则化的效果
  • 生物进化:Dropout类似于性别在生物进化中的角色,物种为了适应环境变化,在繁衍时取雄性雌性的各一半基因进行组合,这样可以适应更复杂的新环境,避免了单一基因的过拟合,当环境发生变化时也不至于灭活

在PyTorch中使用Dropout非常简单:

>>> import torch
>>> from torch import nn
>>> #PyTorch将元素置0来实现Dropout层,第一个参数为置0概率,第二个为是否原地操作
>>> droput = nn.Dropout(0.5,inplace=False)
>>> input = torch.randn(2,64,7,7)
>>> output = droput(input)

Dropout被广泛应用到全连接层中,一半保留概率设置为0.5,而在较为稀疏的卷积网络中则一般使用BN层来正则化模型,使得训练更稳定

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁天牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值