学习笔记——卷积神经网络概念

卷积神经网络:以卷积层为主的深度网络结构(卷积层、激活层、BN层、池化层、FC层、损失层)

卷积层:对图像和滤波矩阵进行内积运算(逐个元素相乘在求和)卷积后得到一个特征图

步长:?stride

下采样?减少?

上采样?:扩展?

padding:对边缘填充

dilation:空洞卷积,分割网络中会用,其他网络中不用,膨胀,不经过下采样,增加感受野

kernel一般用3*3

pytorch里函数nn.Conv2D

常见的卷积操作:

1、分组卷积(group参数)

2、空洞卷积(dilation参数)

3、反卷积:上采样

、深度可分离卷积(分组卷积+1*1卷积)

5、可变形卷积等:卷积和的shape不固定

6、标准卷积

4和6用的比较多

感受野:

加深网络可以增加非线性表达能力,增加参数量

如何理解卷积层的参数量和计算量——参数量:参与计算参数的个数,占用内存空间,FLOPS:每秒浮点数计算的次数,衡量硬件性能;计算速度

Flops:计算量

如何压缩卷积层参数和计算量?

1、采用多个3*3卷积核代替大卷积核

2、采用深度可分离卷积

3、通过shuffle

4、pooling

5、stride=2

常见卷积层结构组合:堆叠(VGG);跳连(Resnet,加快模型收敛);并联(inception)

池化层:对输入的特征图进行压缩——1、使特征图变小,简化网络的计算复杂度;2、特征压缩,提取主要特征

最大池化;平均池化。非线性nn.Maxpool2d

上采样:方法一:Resize,双线性插值直接缩放,类似于图像缩放

    方法二:反卷积

5.7激活层:

增加网络的非线性,进而提升网络的表达能力。Relu等,torch.nn.Relu(inplace=TRUE)

BatchNorm层

通过一定的规范化的手段,把每层的神经网络任意神经元这个输入值的分布强行拉回到均值为0,方差为1的标准正态分布,是归一化的一种手段,减少图像之间的绝对差异,加快训练速度。不适用问题:image-to-image以及对噪声敏感的任务

全连接层:线性模块

连接所有特征,将输出值送给分类器,对图像尺寸敏感。参数多,配合dropout,抑制一些特征,embeding,

1、对前一层的特征进行一个加权和(卷积层将数据输入映射到隐层的特征空间)将特征空间通过线性变换映射到样本标记空间

2、可以通过1*1卷积+globel average pooling 代替

3、可以通过全连接层参数冗余

4、全连接层参数和尺寸有关

Dropout层

1、在训练过程中随机扔掉一些神经元:减少参数,防止过拟合,使模型变得简单,结构最小化约束

2、测试过程中不适用随机激活,所有神经元都激活

3、防止或减轻过拟合使用的函数,一般用在全连接层

nn.dropout

损失层:

设置一个损失函数用来比较网络的输出和目标值,通过最小化损失来驱动网络的训练。

网络的损失通过向前操作计算,网络参数相对于损失函数的梯度则通过反向操作(导数)计算

分类问题:交叉熵

 

posted @ 2021-08-04 17:13  编程coding小白  阅读(187)  评论(0编辑  收藏  举报