深度学习的一点学习笔记(CNN相关)

前沿

CNN方面从理解上和实际操作上,感觉都比RNN要方便不少,而且CNN的参数更少,研究者更多,所以CNN的介绍和变形也稍微容易理解一点。
因为是学习笔记,估计唯一看的人是我自己,我就忽略一些CNN的基础部分,比如什么是卷积,卷积如何操作,pytorch怎么实现卷积层,什么是池化层,pytorch怎么实现池化层等等。后面网络模型介绍部分的图片来源是伯禹AI,网站里面也有详细的介绍。
如果有需要的,又不幸点到这篇不中用的文章,这里给出一些简单解释。

卷积计算(convolution):可以理解为两个二维矩阵(大小相同),同位置相乘,然后相加,如果有多个通道,就将每个每个通道的矩阵与相应卷积核卷积,然后各通道相同位置相加,假如有n个通道,则 M a t r i x j k = ∑ i n M a t r i x i j k Matrix_{jk} = \sum_i^nMatrix_{ijk} Matrixjk=inMatrixijk

通道数(channel):有一个3288288的图片,那么这个图片的大小为228个像素×228个像素,由RGB三层组成,3就是通道数;

卷积核(kernel):对应输入通道数个的n个长*高的二维矩阵, 卷积核的数目n决定了输出的通道数;
在这里插入图片描述

池化(pooling):也是一个矩阵,在此矩阵内的元素返回一个最大值,比如池化大小为2*2,则[[1, 2, 3], [3, 4, 5]],返回的是[4,5];
在这里插入图片描述
步幅(stride):卷积核在输入数组上滑动,每次滑动的行数与列数即是步幅;
在这里插入图片描述
填充(padding):再矩阵周围添加值为0的边。
在这里插入图片描述
卷积运算介绍:卷积方法
一个卷积例子,如下图:
在这里插入图片描述

LeNet

使用全连接层的局限性:
图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。
对于大尺寸的输入图像,使用全连接层容易导致模型过大。

使用卷积层的优势:
卷积层保留输入形状。
卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大。

LeNet分为卷积层块和全连接层块两个部分,如下图所示。
在这里插入图片描述
Average Pooling层表示在池化层的范围内,去所有数据的平均,简易模型如在AlexNet中展示。

深度卷积神经网络(AlexNet)

LeNet:在大的真实数据集上的表现并不尽如⼈意。

1.神经网络计算复杂。

2.还没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域。
机器学习的特征提取:手工定义的特征提取函数

AlexNet:首次证明了学习到的特征可以超越⼿⼯设计的特征,从而⼀举打破计算机视觉研究的前状。

特征:

1.8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。
2.将sigmoid激活函数改成了更加简单的ReLU激活函数。
3.用Dropout来控制全连接层的模型复杂度。
4.引入数据增强,如翻转、裁剪和颜色变化,从而进一步扩大数据集来缓解过拟合。

如图所示,长这个样子。
在这里插入图片描述

使用重复元素的网络(VGG)

VGG:通过重复使⽤简单的基础块来构建深度模型。

1.Block:数个相同的填充为1、窗口形状为3×33×3的卷积层,接一个步幅为2、窗口形状为2×22×2的最大池化层。
2.卷积层保持输入的高和宽不变,而池化层则对其减半。

如下图所示:
在这里插入图片描述

网络中的网络(NiN)

LeNet、AlexNet和VGG:先以由卷积层构成的模块充分抽取 空间特征,再以由全连接层构成的模块来输出分类结果。

NiN:串联多个由卷积层和“全连接”层构成的小⽹络来构建⼀个深层⽹络。
⽤了输出通道数等于标签类别数的NiN块,然后使⽤全局平均池化层对每个通道中所有元素求平均并直接⽤于分类。

其中,1×1卷积核作用:

1.放缩通道数:通过控制卷积核的数量达到通道数的放缩。
2.增加非线性。1×1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性激活函数,从而可以增加网络的非线性。
3.计算参数少

如下图所示:
在这里插入图片描述

GoogLeNet

1.由Inception基础块组成。
2.Inception块相当于⼀个有4条线路的⼦⽹络。它通过不同窗口形状的卷积层和最⼤池化层来并⾏抽取信息,并使⽤1×1卷积层减少通道数从而降低模型复杂度。
3.可以⾃定义的超参数是每个层的输出通道数,我们以此来控制模型复杂度。
Inception结构
在这里插入图片描述
这是CNN结构的大概变迁史,后面可能还会有比较热门,现在应用较多的残差网络(ResNet)和密集网络(DenseNet),稍后再说吧,在前面的知识理解之后,这两者的理解不需要太花时间。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值