Padding:(same卷积需要用到的步骤)
卷积后图像大小:
其中,n为原始图像大小;p为扩展大小;f为滤波器大小;
Strided:
卷积后图像大小:
其中,s为步长;
一个卷积网络通常有三层:
卷积层(conv)、
池化层(POOL):常用的参数为 f = 2 ; s = 2 ;效果相当于长宽减半。
全连接层(FC)
通常把一个卷积层和一个池化层作为神经网络的一层
-------------------------------------------------------------------------------------------------------------------------------
经典网络:
1、AlexNet:
图示:
AlexNet网络中共有5个卷积层和3个全连接层,深度为8层。
第一层:
该层顺序:卷积—>ReLU—>池化—>归一化
卷积:
-
Conv_1: (224,224, 3) —> (55, 55, 96)
卷积层:
- out_channels:96
- kernel_size:(11,11)
- stride:(4,4)
ReLu:使用relu作为激励函数,来确保特征图的值范围在合理范围之内。
relu1后的数据:55X55X96
池化:(降采样操作POOl)
-
Maxpool_1: (55, 55, 96) —> (27, 27,96)
池化层:
- kernel_size:(3,3)
- stride:(2,2)
第二层:
卷积:256个5 X 5 X 3的卷积核;步长为1;采用same卷积,pad为2
ReLU:
池化:3 x 3 的卷积核,步长为2;
第七层:卷积后使用ddropout和局部响应归一化,防止过拟合。
实际输入为224x224x3的RGB图像,不过277会有利于处理。另,在AlexNet中采用最大池化,这样可以避免平均池化的模糊化效果冲呢日保留原始特征。
注:AlexNet网络与LeNet网络相似,但AlexNet网络要大得多,前者处理的数据一般在6万左右,而AlecNet网络可以处理6000万个参数。另一个区别是:比起LeNet网络AlexNet网络选用了ReLu激活函数。
2、VGG
3、ResNet网络
一般网络越深,特征就越丰富,模型效果也就越好。在深度重要的驱动下,出现了2个问题:
-
梯度消失和梯度爆炸:
- 梯度消失:误差梯度<1,当网络层数增多时,最终求的梯度会以指数形式衰减
- 梯度爆炸:误差梯度>1,当网络层数增多时,最终求的梯度会以指数形式增加
- 解决方式:通过Batch 归一化处理
-
退化问题:在适当深度的模型中添加更多的层会导致更高的训练误差
-
解决方式:通过残差结构来解决退化问题。
图解:
------------------------------------------------------------------------------------------------------------------------ 1 x 1 卷积:
通过设置1x1卷积核的数量来实现降维和升维。
---------------------------------------------------------------------------------------------------------------------------------
GooLeNet网络:
1、 inception
2、GooLeNet网络结构:
- 红色:池化层
- 蓝色:卷积层+ReLu
- 绿色:拼接操作
- 黄色:softmax激活函数
在训练过程中加入了两个辅助分类器,要经过与保证网络在所有层能进行传播,在训练期间辅助分类器的权重为0.3,预测时会会被舍弃。结构如下图:
- AveragePool:滤波器大小(5,5)、步长:3
- Conv:1x1卷积、卷积核数量:128、步长:1
- FC:(128*4*4,1024)
- FC:(1024,1000)