qiuzitao深度学习之PyTorch实战(八)

tech2023-06-10  113

史上最简单、实际、通俗易懂的PyTorch实战系列教程!(新手友好、小白请进、建议收藏)

一、卷积神经网络应用领域

看过斯坦福大学的cs231n课的同学都知道,计算机视觉被深度学习救活了,现在这个领域深度来做比传统的效果好,或者传统+深度来做。

上面的图是ImageNet竞赛的TOP5的错误率,从2012年开始,深度在CV领域就开始大展拳脚,错误率每一年都在下降,2016年之后人工智能的视觉都超过人类了,所以在之后ImageNet竞赛就没有再举办,变成数据科学竞赛kaggle了。

卷积神经网络(CNN)一般用在:

1、检测任务

2、分类与检索

3、超分辨率重构(把图像变清晰)

4、医学任务、OCR等

5、无人驾驶

6、人脸识别

还有很多应用领域…

二、卷积神经网络简单流程介绍

左边是传统的网络(nn),右边是卷积神经网络(cnn)。

通过图可以看出来多维度了。

重点介绍卷积和池化。

1、卷积

输入是32x32x3的image,卷积核是5x5x3的,蓝色的就是在卷积的过程,绿色的就是卷积后的感受野,也就是卷积后计算出来的(特征)结果。蓝色正方形的大数字就是图像原来的像素值(对应下面第二张图的最左边的蓝色正方形图),深蓝色小正方形就是卷积核,右下角小数字就是卷积核的W,右边绿色正方形就是卷积后的结果(对应下面第二张图的最右边的绿色正方形图)。

输入的图片是三通道(RGB),卷积也是卷积三通道的,一个通道一个通道卷积,卷积后三个通道结果加在一起才是真张RGB图像的卷积。 上图介绍的了输入一张 7x7x3 的图像(通过padding外围加了一圈0),R、G、B通道是7x7x1,三个通道就是7x7x3的。Filter卷积核都是 3x3x3 的,图上是内卷积计算的,就是对应计算相乘相加,结果就等于右边那个output volume的第一个,举个例子:Filter W0计算第一个感受野(感受野就是左边那个7x7用蓝色圈出来3x3的正方形,它会移动(平移),移动一格就是步长为1):

R:1x0 + 1x0 + 1x0 +(-1x0 +(-1x1 + 0x1 + (-1)x0 + 1x1 + 0 x1 = 0;

G: (-1)x0 + (-1)x0 +1x0 +(-1)x0 + 1x0 + 0x1 + (-1)x0 + 1x2 + 0x2 = 2;

B: 1x0 + 0x0 + (-1)x0 + 0x0 + 0x2 + 0x2 + 1x0 + (-1)x0 + (-1)x0 = 0;

b 是 bias偏置项,这里设为1。

RGB:(0+2+0)+ b = 3(就是下面绿色正方形的第一个3,其他同理可得) 上面这张图就是用了两个不同的卷积核,得到的两个不同的feature map特征图。 6个堆积在一起就是6层。

多通道卷积。

卷积计算得到特征图过程。

做一次卷积是不够的,得卷积后再对卷积的结果做卷积,多次卷积提取到不同的特征,各有不同感兴趣的特征,比如纹理,颜色,边缘等等。

一般做图像任务选步长为1就好,文本分类选的步长就比较多。

卷积核尺寸一般 3x3。

2、池化

池化:选“人大代表” 或者说 “压缩” 或者说 “下采样”

池化一般有:

① max pooling(选最大值)

最大池化可以提取特征纹理

② average pooling(平均池化)

平均池化可以保留背景信息

3、整体网络架构

三、卷积神经网络保持平移、缩放、变形不变性的原因

1、局部感受野(每个神经元仅与输入神经元的一块区域连接,这一块局部区域叫感受野)

2、权重共享(卷积核是共享的)

3、池化(下采样,减少参数,防止过拟合)

最新回复(0)