卷积核:用于提取图像的特征,不同的卷积核用来提取不同的图像特征
卷积运算:Input × Kernel (在视野域中按元素对应位置相乘再求和)例如:
注意(卷积核使用的参数w是重复使用的)
步长(stride):卷积核每次移动的单位数(对于图片就是像素点数)
步长为1时,卷积核移动步骤,图解
padding(在输入矩阵的上下左右边缘填充0元素的行数)例如padding为1时:
绿色的方块即为填充的行
padding的作用:如果没有使用padding处理,输入图像经过卷积核后,图像的尺寸会变小,计算公式如下:
featuremap=( img_size - kernel_size + 2*padding_size )/ stride +1
变量说明:
featuremap:经过卷积核处理后的特征图像的宽/高
img_size:输入图像的宽/高
kernel_size:卷积核的宽/高
padding_size:填充的行数/列数
stride:步长
激活函数
sigmoid和ReLu函数求导数。
池化层
最大池:
将最大池化对应的视野域中最大值输出
平均池:
将最大池化对应的视野域中值进行取平均后再输出
作用:1.下采样,用于减少图片的尺寸,从而减少训练参数的数量
2.可以扩大感知野,原来卷积核只能看到2×2的视野,经过2×2池化后,可以看到4成4的视野
3.可以实现不变性,其中不变性包括,平移不变性、旋转不变性和尺度不变性。
结束经典CNN模型
LeNet-5:
参考链接:MNIST Demos on Yann LeCun's website
网络结构:
使用keras实现LeNet5模型:
AlexNet:
AlexNet由Hinton的学生Alex Krizhevsky于2012年提出,获得ImageNet LSVRC-2012(物体识别挑战赛)的冠军,1000个类别120万幅高清图像(Error: 26.2%(2011) →15.3%(2012)),通过AlexNet确定了CNN在计算机视觉领域的王者地位。
参考:A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.
创新点:
1.使用了Relu非线性激活函数
2.Dropout:使部分神经元失活,减少过拟合风险
3.使用重叠池化层(当步长小于池化层的大小),可丰富样本特征
网络结构如下:
使用keras实现AlexNet模型
VGGNet-16:在实际开发中可用该模型提取图像特征,再进行下一步处理
参考:K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015.
创新点:
1.使用2个3×3的卷积核来代替1个5×5的卷积核:
这样做的好处有:1).多做一次非线性变换 2).减少了参数的数量(2*3*3 和 5*5 参数减少了 7个参数)
网络模型:
使用keras实现VGG16模型:
InceptionNet V3:
Inception Net 是Google公司2014年提出,获得ImageNet LSVRC-2014冠军
参考了简书上一位大佬:
链接:深度神经网络Google Inception Net-V3结构图 - 简书
该网络以结构上的创新取胜,通过采用全局平均池化层取代全连接层,极大的降低了参数量,是非常实用的模型。
使用keras实现inception-V3模型:
代码如下:
ResNet
ResNet(Residual Neural Network),又叫做残差神经网 络,是由微软研究院的何凯明等人2015年提出,获得ImageNet ILSVRC 2015比赛冠军,获得CVPR2016最佳论文奖。
创新点:引入了残差网络来解决深层神经网络中的梯度消失,梯度爆炸问题。
全文参考链接:
datawhale的组队学习Descriptionhttps://datawhalechina.github.io/unusual-deep-learning/#/5.CNN