文章目录
一、卷积神经网络与传统网络的区别:
1、区别
NN与CNN
2、整体架构
- 输入层:输入H W C三维图像
C:Channel,通道数,表示一张图像中的通道数
H:Height,高度,表示图像垂直维度的像素数
W:Width,宽度,表示图像水平维度的像素数 - 卷积层:特征提取
- 池化层:特征压缩
- 全连接层
2.1、卷积层
- 卷积做了什么事?
-
将输入的图片分割成多个区域
-
将多个区域进行特征提取
-
假如第一个区域是3×3
-
一组权重参数得到一个特征值
-
选择特征值最大的保留特征
图像颜色通道
三个颜色通道
特征值
- Filter参数(3 * 3 * 3)卷积核,每3*3个区域进行一个区域选择一个特征值。
- 内积做计算,对应位置相乘,结果相加。
- 计算第一个区域特征值=3
- 特征图(3×3×2)
特征图:通过不同助手filter生成多种特征图
更加丰富的特征图
2.2、只做一次卷积就可以了吗?
堆叠的卷积层
将输入数据32×32×3特征提取28×28×6再次卷积24×24×10
2.3、卷积层涉及参数
-
滑动窗口步长(步长小了,特征更加细节)
-
卷积核尺寸(3×3or4×4)
-
边缘填充(边界的数据利用次数少,内部的数据利用次数多,然而边缘的数据却不一定不重要,所以要将边界填充为0,增加边界利用次数。加0的原因是为了不让增加的扩充对结果产生影响)
-
卷积核个数(要得到多少个特征图)
2.4、卷积结果计算公式
其中W1、H1表示输入的宽度 、长度 ;W2、H2表示输出特征图的宽度、长度F表示卷积核长和宽的大小 ;S表示滑动窗口的步长 ;P表示边界填充(加几圈O )。
如果输入数据是32323的图像,用10个5 * 5 * 3的filter来进行卷积操作,指定步长为1,边界填充为2,最终输入的规模为?
(32-5+2 * 2)/1+1=32,所以输出规模为32 * 32 * 10,经过卷积操作后也可以保持特征图长度、宽度不变。
2.5、卷积参数共享
二、池化层
1、池化
压缩特征图
2、最大化池
选择最大的值(2×2)
三、卷积神经网络全连接层
1、全连接层
- 两次卷积一次池化
- conv跟relu搭配
- 最后得到32×32×10特征图
- FC全连接层
- 最后的特征图转换为特征向量10240个
- 全连接层特征矩阵[10240,5]
2、特征图变化
四、经典网络
4.1、Alexnet:
8层网络,5层卷积,3层全连接
4.2、Vgg:
所有卷积大小都是3×3,细密度特征提取,经过pooling后损失一些信息,vgg经过每个pooling为了弥补损失的信息,使得特征图翻倍。
16层到19层
相同任务vgg准确率比Alex net 高出了15%的准确率,但是Alex net 训练8小时,但是vgg需要训练3天
4.3、Resnet
深层网络遇到的问题:
56层的layer比20层的layer要差,怎么解决这个问题呢,什么造成了这原因。加入的这36层中,有错误的值影响到了整个的正确率。
在加入的这36层中,把能促进正确率提升的数据加入,把不好的数据抛弃
解决方案,把表现不好的参数设置权重为0,
x假如为20层后的某一层,进行了一次卷积,在进行一次卷积,得到的结果可能不好,所以要额外的连接一条,如果结果不好的话,就把x设置为0,好的就加上,不好的就舍去,取0值
H(x)=F(x)+x