CNN基础知识入门
吴恩达deeplearning之CNN—卷积神经网络入门
2.2经典网络
1、LeNet-5:
如图是一个用LeNet-5
手写数字识别的案例,由于LeNet-5
只针对灰度图像,所以输入图片只有1个深度(channel or depth)。
(1)过程:
卷积层
:
6个5X5过滤器(卷积核),步长为1。Padding = 0(1998年没有padding)
池化
:
平均池化(avg pool,那个年代更爱用平均池化),过滤器宽度f=2,步长s=2
卷积层
:
16个5X5过滤器(卷积核),步长为1。Padding = 0
池化
:
平均池化,过滤器宽度f=2,步长s=2
此时得到400个节点。
全连接层FC
:
400个节点,每个节点有120个神经元。
全连接层FC
:
120个节点,每个节点有84个神经元。
输出y
:
现在更喜欢使用softmax
产生10个输出。
(2)分析:
一共用到了6万个左右的参数,今天的神经网络很轻易的就产生上亿个参数。
随着神经网络的深入,可以看到图像的高度nH
和宽度nW
在减小,而深度(channel or depth)在增加。
可以看到典型的结果:卷积层(CONV)
→池化层(POOL)
→卷积层(CONV)
→池化层(POOL)
→全连接层(FC)
→全连接层(FC)
→输出(Output)
(3)论文参考:
论文推荐: Gradient-based learning applied to document recognition
阅读建议:
1)当时多用的是 sigmoid
和tanh
,很少用ReLU
2)关于当时nC(通道数)
的取值方式现在基本不用。
3)精读第二段,泛读第三段。
2、AlexNet
(1)过程:
卷积层
:
96个11X11过滤器(卷积核),步长为4。Padding = 0
池化
:
最大池化(MAX-POOL),过滤器宽度f=3,步长s=2
卷积层
:
256个5X5过滤器(卷积核)。使用same的Padding。
池化
:
最大池化(MAX-POOL),过滤器宽度f=3,步长s=2
卷积层
:
384个3X3过滤器(卷积核)。使用same的Padding。
卷积层
:
384个3X3过滤器(卷积核)。使用same的Padding。
卷积层
:
256个3X3过滤器(卷积核)。使用same的Padding。
池化
:
最大池化(MAX-POOL),过滤器宽度f=3,步长s=2。此时得到9216个节点。
全连接层FC
:
9216个节点,每个节点有4096个神经元。
全连接层FC
:
4096个节点,每个节点有4096个神经元。
输出Output
:
Softmax1000,输出1000个结果。
(2)分析:
AlexNet
和LeNet
很相似,但参数多了很多,有6000万个。当用于训练图像和数据集时,AlexNet
能够处理非常相似的基本构造模块,这些模块通常包含大量的隐藏单元或数据。AlexNet
使用了ReLU
激活函数,这也是一个优势。
(3)论文参考:
论文推荐: ImageNet classification with deep convolutional neural network
阅读建议:
1)当时GPU还比较慢,文章采用了复杂的方法在两个GPU上训练,并进行关联交流。
2)使用了局部响应归一化层(LRN),这类层现在基本用不到。
影响:
这篇论文之后,计算机视觉群体开始重视深度学习。CNN翻身之作。
3、VGG-16
卷积层
均为3X3过滤器(卷积核)
,步长为1
,使用same的Padding
。池化层均为
最大池化
,过滤器宽度f=2
,步长s=2
。(nH和nW会减半)
(1)过程:
卷积层
:64个过滤器,连续作用2
次。
池化层
:使得nH和nW减半。
卷积层
:128个过滤器,连续作用2
次。
池化层
:使得nH和nW减半。
卷积层
:256个过滤器,连续作用3
次。
池化层
:使得nH和nW减半。
卷积层
:512个过滤器,连续作用3
次。
池化层
:使得nH和nW减半。
卷积层
:512个过滤器,连续作用3次。
池化层
:使得nH和nW减半。
全连接层
:4096
全连接层
:4096
输出
:Softmax函数,1000个输出。
(2)分析:
VGG-16
中16
的含义指的是一共有16个卷积层(13)和全连接层(3),一共有1.38亿个参数,参数数量非常多。
它结构不复杂,规整,可以看到卷积核从64到128到256到512,每次都是2倍的变化。
VGG-16
和VGG-19
效果不分高下,因此更多人用VGG-16
。
(3)论文参考:
论文推荐:Very deep convolutional networks for large-scale image recognition
网友评论