1.深度卷积神经网络(a deep convolutional neural network)
输入图像的维度是,如果
,计算输出图像维度公式:
。s表示步幅,p表示填充的层数。filters的通道数是和输入图像的通道数
保持一致的。
![](https://i-blog.csdnimg.cn/blog_migrate/fbd38b8ca174cc20b4da2c174d770fb2.png)
分析上图案例:
第一层卷积:(39+0-3)/1+1=37。即经过每一个filter卷积后,输出维度是37x37x1,由于有10个filters,所以最后输出为37x37x10。
第二层卷积:(37+0-5)/2+1=17。即经过每一个filter卷积后,输出维度是17x17x1,由于有20个filters,所以最后输出为17x17x20。
2.池化层(Pooling layer)
最大池化(Max pooling):用过滤器过滤出最大值。下图用的过滤器(filter)大小为2x2,步幅(stride)为2。
![](https://i-blog.csdnimg.cn/blog_migrate/6ebf2e0ec1c0d6aa7491cca86867d314.png)
平均池化(Average pooling):用过滤器过滤出平均值。下图用的过滤器大小为2x2,步幅为2。
![](https://i-blog.csdnimg.cn/blog_migrate/78b3840e2ac9aac0c821ab729307a4b9.png)
综上,池化层有两个超参数(hyperparameters):f(filter size过滤器大小)、s(stride,步幅)。这些参数不需要学习,都是手动设置或通过交叉验证设置的,都是静态属性。
3.为什么使用卷积
![](https://i-blog.csdnimg.cn/blog_migrate/781f770b3b87fe4fa480c2bd846f18e4.png)
如上图,第一层有32x32x3=3072个单元,第二层有28x28x6=4704个单元。计算权重矩阵,约有1400万需要训练的参数。如果用卷积,一共(5x5x3+1)x6=456个参数。(+1是因为有个偏差参数)
所以,卷积网络需要训练的参数很少。原因是:参数共享和稀疏连接。
参数共享(parameter sharing):用filter在输入图片上提取特征的时候,在图片的不同区域可以使用同样的参数。
稀疏连接(sparsity of connections):如下图,右边的每一个输出单元都只和左边的3x3输入单元格有关,其它输入特征不会对这个输出有影响。
![](https://i-blog.csdnimg.cn/blog_migrate/91e44498562eaeb1a4283f20aee8d7fe.png)
4.残差网络
经典网络(classic networks)有:LeNet-5、AlexNet、VGG-16...
ResNet是由残差块(residual block)构成的。随着网络的深度加深,训练误差也不会变高。
残差块(residual block):跳过几层,将信息传到更深层。
![](https://i-blog.csdnimg.cn/blog_migrate/f05c9e7570af30b8a52d447bc80c94d9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/75be561de66dad1adc6431007f9bcd60.png)
正常的流程如上式,short cut/skip connection操作: