文章目录

  • 概述
  • 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的定义,李说过具体构架要和应用相结合。

cnn和transformer的发展脉络 cnn发展历程_池化


6、池化层中减少的维度与平面有关,与深度(volume)无关:

cnn和transformer的发展脉络 cnn发展历程_卷积_02


李的课件里面用的是subsampling,意思应该一样:降采样。

7、池化方法有多种,常用的是Max Pooling。为什么是最大不是求平均?

要想办法使得神经元被最大化的激活,Max操作可以让这个激活程度最大。

8、设置stride可以达到降采样的效果,可以尝试。

9、关于几个超参数的设置和计算讲得比李具体:

cnn和transformer的发展脉络 cnn发展历程_卷积_03


池化的常用的值为:

F = 2, S = 2

F = 3, S = 2

10、池化层不做补零操作(padding)

(重点)卷积和池化

这节内容和上节差不多,但是多了很多细节内容,还给出了卷积神经网络中为什么叫卷积的由来:

We call the layer convolutional because it is related to convolution of two signals:

cnn和transformer的发展脉络 cnn发展历程_卷积_04


经过convolution后的尺寸计算:

cnn和transformer的发展脉络 cnn发展历程_卷积核_05


N为输入图片维度,F是卷积核维度,可以看到当stride为3的时候是不能进行卷积操作的,这个时候就要进行padding操作。

cnn和transformer的发展脉络 cnn发展历程_卷积核_06


这里是用0进行padding的例子,老师说还可以有别的方法,例如复制等。

这里的提问有点意思:如果图像非方形的咋整?会不会采用不同的stride进行处理?

答:不会。

计算实例

cnn和transformer的发展脉络 cnn发展历程_卷积_07


这里注意padding加上的时候是2*2.

cnn和transformer的发展脉络 cnn发展历程_池化_08


+1这里是bias项。

参数个数计算公式:(filter尺寸 × fiter尺寸×输入dimension+1)*filter个数

最后又学生问到stride的步长如何选择,老师解释了一下,步长实际和convolution中的downsampling有关系,这里步长越大,则图像变得越小,那么最后链接到FC NN的时候参数也会比较少。