文章目录
- 概述
- CNN的发展历史
- 神经网络发展简史
- CNN发展简史
- 视觉之外的CNN(CNN Without the the brain stuff)
- (重点)卷积和池化
- 计算实例
概述
在线Latex公式 本节包含三块内容:
1、CNN的发展历史
2、视觉之外的卷积神经网络
3、卷积和池化(重点)
虽然学习了李宏毅的CNN,明白了CNN的构架以及CNN比DNN好在什么地方,但是这里讲的有些内容李的课里面貌似没有讲。所以就捡没有讲过的内容重点记录。
CNN的发展历史
神经网络发展简史
1957,第一代感知机perceptron诞生;
1960,多个感知机进行叠加
1986,提出了BP算法
2006,Hinton弄出了深度学习的模型,使得大量参数训练高效进行,但是那个时候的深度神经网络模型限制比较多,例如:需要特定的初始化操作(pre-training,使用受限玻尔兹曼机对每个隐藏层进行建模)才能进行BP操作。
2012,第一个重要成果,语音识别和ImageNet图像识别。
CNN发展简史
1960左右,虐猫,发现一些生物特性
1980早起,日本佬实现虐猫发现的生物特性
1998杨立坤弄出了正儿八经的CNN,并将BP算法用于梯度下降训练CNN的参数,应用在邮编(数字)识别,但是数字毕竟是有限分类
2012AlexNet在ImageNet击败人类
现如今:ConvNets are everywhere!
视觉之外的CNN(CNN Without the the brain stuff)
这节写简单点,几个要点,李宏毅的课程基本cover过,这里经过convolution操作得到的称为activation map,李的课里面叫feature map
1、卷积核只覆盖图片的某个区域,全连接NN的隐藏层是和所有的输入发生关系
2、通过卷积核后输入层的volume会增加
3、CNN与Fully-connected NN的比较
4、所有的输入与卷积核发生关系使用的参数都是共享(一样)的
5、和李讲的构架有细微的不一样,convolution+Max Pooling中间还有ReLU非线性单元,不过这个不太影响CNN的定义,李说过具体构架要和应用相结合。
6、池化层中减少的维度与平面有关,与深度(volume)无关:
李的课件里面用的是subsampling,意思应该一样:降采样。
7、池化方法有多种,常用的是Max Pooling。为什么是最大不是求平均?
要想办法使得神经元被最大化的激活,Max操作可以让这个激活程度最大。
8、设置stride可以达到降采样的效果,可以尝试。
9、关于几个超参数的设置和计算讲得比李具体:
池化的常用的值为:
F = 2, S = 2
F = 3, S = 2
10、池化层不做补零操作(padding)
(重点)卷积和池化
这节内容和上节差不多,但是多了很多细节内容,还给出了卷积神经网络中为什么叫卷积的由来:
We call the layer convolutional because it is related to convolution of two signals:
经过convolution后的尺寸计算:
N为输入图片维度,F是卷积核维度,可以看到当stride为3的时候是不能进行卷积操作的,这个时候就要进行padding操作。
这里是用0进行padding的例子,老师说还可以有别的方法,例如复制等。
这里的提问有点意思:如果图像非方形的咋整?会不会采用不同的stride进行处理?
答:不会。
计算实例
这里注意padding加上的时候是2*2.
+1这里是bias项。
参数个数计算公式:(filter尺寸 × fiter尺寸×输入dimension+1)*filter个数
最后又学生问到stride的步长如何选择,老师解释了一下,步长实际和convolution中的downsampling有关系,这里步长越大,则图像变得越小,那么最后链接到FC NN的时候参数也会比较少。