• 深度学习经典模型RESNET解析


    深度学习经典模型RESNET解析

    1. 理论基础

    1. 残差学习概念

    深度神经网络相当于函数的拟合过程(复合函数)。如果层数足够深,CNN可以拟合任何一个函数。

    如果当网络的层数越来越深的时候,由于网络的退化现象(不妨假设拟合的是H(x)),难以训练出来。

    那么可以改为训练(F(x) = H(x) - x),此在数学上成为残差(Residual)。则(H(x) = F(x) + x),相当于可以变相训练H(x),这就是残差学习。

    用网络实现:将x直接倒入到输出,与经过权重层训练出来的F(x)相加。x的这个通路没有经过网络直接跨接过来,称为恒等映射短接(Identity Mapping Shortcut)。

    2. RESNET构建形式

    VGG19:19层,如果要扩展到34层,按设计原则堆积(3 imes3)的小卷积核,那么这个34层的网络称为平凡的网络,训练的话会出现退化。

    变成残差网络:在层与层之间增加恒等映射跨接层即可。注意跨接层的表示,虚线意味着特征的大小发生了变化,跨接层就不再是恒等映射了

    RESNET可以有不同的层数,虽然层数不同,但其具有类似的网络结构,例如它们都是分了五个部分:

    (7 imes7)的卷积,后面紧跟一个池化层。第二部分为conv2.x(论文中称为stage),每一个stage里有多个block,不同的RESNET里每个stage中block的数目不一样,重复的次数也不一样,每个block是由若干个卷积层组成。

    因此可以实现具有可扩展性的网络。

    特殊的结构:最大平均池化(Global average pooling),在最后把整个通道变成一个数字(求平均值,全局平均池化)。作用:替代全连接层,更少的参数(更少的出现过拟合)。

    pytorch中:torch.nn.AdaptivAvgPool2d.(output_size)

    50层以上/以下的RESNET不同之处:50-没有bottle neck(瓶颈)。50层以上的block:三层组成,50层以下的block:两层组成。(面试:问对哪个模型熟悉,实现过resnet吗,50层+-区别...)。

    bottle neck: (1 imes1 -> 3 imes3 ->1 imes1)

    使用的原因:如果不降维,增加深度的时候参数量将会变得非常大。

    3. 新发展

    ResNeXt:分组卷积...注意力机制...WSL弱监督训练...

    分组卷积最早出现在AlexNet(当时GPU显存比较小),后来发现还能提高准确度。

    2. 代码实现

    import torch
    import torch.nn as nn
    from torch.hub import load_state_dict_from url#预训练权重值引入
    model_urls = { }
    #padding:扩充图片, 在图片外围补充一些像素点,把这些像素点初始化为0.
    #bias:偏置单元
    def conv3x3(in_planes, out_planes, stride = 1, padding = 1):
      return nn.Conv2d(in_planes, out_planes, kernel_size = 3, stride = stride, padding = padding, bias = False)#提前封装一下3x3卷积,in_planes, out_planes为输入输出通道数的大小
    #bias为False的原因?
    def conv1x1(in_planes, out_planes, stride = 1):
      return nn.Conv2d(in_planes, out_planes, kernel_size = 1, stride = stride, bias = False)
    class BasicBlock(nn.module):#block类
    	super(BasicBlock, self).__init__()#调用父类的初始化函数
    //未完待续
      
    
  • 相关阅读:
    系统测试的策略
    POJ1611(并查集)
    POJ2752(KMP)
    POJ3176(DP)
    HDU2579(BFS)
    HDOJ1175(BFS)
    HDOJ1242(BFS)
    HDOJ1180(BFS)
    HDOJ1372(BFS)
    HDOJ2717(BFS)
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/14583742.html
Copyright © 2020-2023  润新知