Update 第五章 卷积神经网络(CNN)(修改版).md
This commit is contained in:
parent
760b8dc858
commit
e56bd361d2
|
|
@ -15,7 +15,7 @@
|
|||
Date: 2018/11/08
|
||||
Editor: 李骁丹-杜克大学
|
||||
Contact: xiaodan.li@duke.edu
|
||||
## 5.1 卷积神经网络的组成层(重庆大学研究生-刘畅)
|
||||
## 5.1 卷积神经网络的组成层
|
||||
在卷积神经网络中,一般包含5种类型的层:
|
||||
> * 输入层
|
||||
> * 卷积运算层
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
**全连接层**主要是指两层网络,所有神经元之间都有权重连接。常见用于网络的最后一层,用于计算类别得分。
|
||||
|
||||
## 5.2 卷积如何检测边缘信息?(重庆大学研究生-刘畅)
|
||||
## 5.2 卷积如何检测边缘信息?
|
||||
卷积运算是卷积神经网络最基本的组成部分。在神经网络中,以物体识别为例,特征的检测情况可大致做一下划分。前几层检测到的是一些边缘特征,中间几层检测到的是物体的局部区域,靠后的几层检测到的是完整物体。每个阶段特征的形成都是由多组滤波器来完成的。而其中的边缘检测部分是由滤波器来完成的。在传统的图像处理方法里面,有许多边缘检测算子,如canny算子。使用固定的模板来进行边缘检测。
|
||||
|
||||
先介绍一个概念,过滤器:
|
||||
|
|
@ -70,7 +70,7 @@
|
|||
|
||||
这就是检测物体垂直边缘的例子,水平边缘的话只需将过滤器旋转90度。
|
||||
|
||||
## 5.3 卷积层中的几个基本参数?(重庆大学研究生-刘畅)
|
||||
## 5.3 卷积层中的几个基本参数?
|
||||
|
||||
在卷积层中,有一些我们常用的参数,定义如下
|
||||
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
### 5.3.4 输入和输出通道
|
||||
英文名是 Input/Output Channels 一个卷积层接受一定数量的输入通道I,并计算一个特定数量的输出通道O,这一层所需的参数可以由I*O*K计算,K等于卷积核中参数的数量。
|
||||
|
||||
## 5.4 卷积的网络类型分类?(重庆大学研究生-刘畅)
|
||||
## 5.4 卷积的网络类型分类?
|
||||
### 5.4.1 普通卷积
|
||||
普通卷积即如下图所示,使用一个固定大小的滤波器,对图像进行加权提特征。
|
||||

|
||||
|
|
@ -111,7 +111,7 @@
|
|||
|
||||
http://www.sohu.com/a/159591827_390227
|
||||
|
||||
## 5.6 2D卷积与3D卷积有什么区别?(重庆大学研究生-刘畅)
|
||||
## 5.6 2D卷积与3D卷积有什么区别?
|
||||
### 5.6.1 2D卷积
|
||||
二维卷积操作如图所示,为了更直观的说明,分别展示了单通道和多通道的操作。假定只使用了1个滤波器,即输出图像只有一个channel。其中,针对单通道,输入图像的channel为1,卷积核尺寸为 (k_h, k_w, 1),卷积核在输入图像的空间维度上进行滑窗操作,每次滑窗和 (k_h, k_w)窗口内的值进行卷积操作,得到输出图像中的一个值。针对多通道,假定输入图像的channel为3,卷积核尺寸则为 (k_h, k_w, 3),则每次滑窗与3个channels上的 (k_h, k_w)窗口内的所有值进行卷积操作,得到输出图像中的一个值。
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ http://www.sohu.com/a/159591827_390227
|
|||
|
||||

|
||||
|
||||
## 5.7 有哪些池化方法?(重庆大学研究生-刘畅)
|
||||
## 5.7 有哪些池化方法?
|
||||
在构建卷积神经网络时,经常会使用池化操作,而池化层往往在卷积层后面,通过池化操作来降低卷积层输出的特征维度,同时可以防止过拟合现象。池化操作可以降低图像维度的原因,本质上是因为图像具有一种“静态性”的属性,这个意思是说在一个图像区域有用的特征极有可能在另一个区域同样有用。因此,为了描述一个大的图像,很直观的想法就是对不同位置的特征进行聚合统计。例如,可以计算图像在固定区域上特征的平均值 (或最大值)来代表这个区域的特征。[1]
|
||||
|
||||
### 5.7.1 一般池化(General Pooling)
|
||||
|
|
@ -152,7 +152,7 @@ http://www.sohu.com/a/159591827_390227
|
|||
|
||||
总结来说,SPP方法其实就是一种使用多个尺度的池化方法,可以获取图像中的多尺度信息。在卷积神经网络中加入SPP后,可以让CNN处理任意大小的输入,这让模型变得更加的灵活。
|
||||
|
||||
## 5.8 1x1卷积作用?(重庆大学研究生-刘畅)
|
||||
## 5.8 1x1卷积作用?
|
||||
1×1的卷积主要有以下两个方面的作用:
|
||||
|
||||
1. 实现信息的跨通道交互和整合。
|
||||
|
|
@ -192,7 +192,7 @@ http://www.sohu.com/a/159591827_390227
|
|||
|
||||
3:上面说了下卷积和池化,再说下计算中需要注意到的。在代码中使用的是彩色图,彩色图有3个通道,那么对于每一个通道来说要单独进行卷积和池化,有一个地方尤其是进行卷积的时候要注意到,隐藏层的每一个值是对应到一幅图的3个通道穿起来的,所以分3个通道进行卷积之后要加起来,正好才能对应到一个隐藏层的神经元上,也就是一个feature上去。
|
||||
|
||||
## 5.10 卷积核是否一定越大越好?(重庆大学研究生-刘畅)
|
||||
## 5.10 卷积核是否一定越大越好?
|
||||
首先,给出答案。不是。
|
||||
在AlexNet网络结构中,用到了一些非常大的卷积核,比如11×11、5×5卷积核。之前研究者的想法是,卷积核越大,receptive field(感受野)越大,因此获得的特征越好。虽说如此,但是大的卷积核会导致计算量大幅增加,不利于训练更深层的模型,而相应的计算性能也会降低。于是在VGG、Inception网络中,实验发现利用2个3×3卷积核的组合比1个5×5卷积核的效果更佳,同时参数量(3×3×2+1 VS 5×5×1+1)会更少,因此后来3×3卷积核被广泛应用在各种模型中。
|
||||
|
||||
|
|
@ -241,7 +241,7 @@ Xception网络由此诞生。我们首先对每一个通道进行各自的卷积
|
|||
|
||||
通过将输入边角的值纳入到滑窗中心进行计算,以便损失更少的信息。
|
||||
|
||||
## 5.15 在卷积操作后,输出特征图(图像)大小如何计算?(重庆大学研究生-刘畅)
|
||||
## 5.15 在卷积操作后,输出特征图(图像)大小如何计算?
|
||||
在进行卷积操作时,往往根据需要,我们需设定一些参数。常见的参数有卷积核大小k, 窗口滑动的步长s, 进行填充的像素p, 假设输入特征图大小为Iw*Iw。则由以下公式可计算出输出特征图的大小Ow。
|
||||
|
||||
O_w = \frac{(I_w - k + 2p))}{s} + 1
|
||||
|
|
@ -468,7 +468,7 @@ CNN的训练主要是在卷积层和子采样层的交互上,其主要的计
|
|||
|
||||
对于第三个问题,实际上有些人以为Matlab中对sigmoid函数进行inline的定义会更快,其实不然,Matlab与C/C++等等语言不一样,Matlab的inline反而比普通的函数定义更费时间。所以,我们可以直接在代码中使用计算sigmoid函数及其导数的真实代码。
|
||||
|
||||
## 5.24 卷积神经网络的经验参数设置(重庆大学研究生-刘畅)
|
||||
## 5.24 卷积神经网络的经验参数设置
|
||||
对于卷积神经网络的参数设置,没有很明确的指导原则,以下仅是一些经验集合。
|
||||
|
||||
1、learning-rate 学习率:学习率越小,模型收敛花费的时间就越长,但是可以逐步稳健的提高模型精确度。一般初始设置为0.1,然后每次除以0.2或者0.5来改进,得到最终值;
|
||||
|
|
@ -480,7 +480,7 @@ CNN的训练主要是在卷积层和子采样层的交互上,其主要的计
|
|||
4、epoch-number 训练次数:包括所有训练样本的一个正向传递和一个反向传递,训练至模型收敛即可;(注:和迭代次数iteration不一样)
|
||||
总之,不是训练的次数越多,测试精度就会越高。会有各种原因导致过拟合,比如一种可能是预训练的模型太复杂,而使用的数据集样本数量太少,种类太单一。
|
||||
|
||||
## 5.25 提高泛化能力的方法总结(代码示例)(重庆大学研究生-刘畅)
|
||||
## 5.25 提高泛化能力的方法总结(代码示例)
|
||||
本节主要以代码示例来说明可以提高网络泛化能力的方法。
|
||||
代码实验是基于mnist数据集,mnist是一个从0到9的手写数字集合,共有60000张训练图片,10000张测试图片。每张图片大小是28*28大小。目的就是通过各种手段,来构建一个高精度的分类神经网络。
|
||||
### 5.25.1 手段
|
||||
|
|
@ -641,7 +641,7 @@ dropout的基本思想就是在训练网络时随机的移除单独的激活值
|
|||
1. 区域不变性:滤波器在每层的输入向量(图像)上滑动,检测的是局部信息,然后通过pooling取最大值或均值。pooling这步综合了局部特征,失去了每个特征的位置信息。这很适合基于图像的任务,比如要判断一幅图里有没有猫这种生物,你可能不会去关心这只猫出现在图像的哪个区域。但是在NLP里,词语在句子或是段落里出现的位置,顺序,都是很重要的信息。
|
||||
2. 局部组合性:CNN中,每个滤波器都把较低层的局部特征组合生成较高层的更全局化的特征。这在CV里很好理解,像素组合成边缘,边缘生成形状,最后把各种形状组合起来得到复杂的物体表达。在语言里,当然也有类似的组合关系,但是远不如图像来的直接。而且在图像里,相邻像素必须是相关的,相邻的词语却未必相关。
|
||||
|
||||
## 5.27 卷积神经网络凸显共性的方法?(重庆大学研究生-刘畅)
|
||||
## 5.27 卷积神经网络凸显共性的方法?
|
||||
### 5.27.1 局部连接
|
||||
我们首先了解一个概念,感受野,即每个神经元仅与输入神经元相连接的一块区域。
|
||||
在图像卷积操作中,神经元在空间维度上是局部连接,但在深度上是全连接。局部连接的思想,是受启发于生物学里的视觉系统结构,视觉皮层的神经元就是仅用局部接受信息。对于二维图像,局部像素关联性较强。这种局部连接保证了训练后的滤波器能够对局部特征有最强的响应,使神经网络可以提取数据的局部特征;
|
||||
|
|
@ -670,7 +670,7 @@ dropout的基本思想就是在训练网络时随机的移除单独的激活值
|
|||
|
||||
如果每一个点的处理使用相同的Filter,则为全卷积,如果使用不同的Filter,则为Local-Conv。
|
||||
|
||||
## 5.29 举例理解Local-Conv的作用(重庆大学研究生-刘畅)
|
||||
## 5.29 举例理解Local-Conv的作用
|
||||
并不是所有的卷积都会进行权重共享,在某些特定任务中,会使用不权重共享的卷积。下面通过人脸这一任务来进行讲解。在读人脸方向的一些paper时,会发现很多都会在最后加入一个Local Connected Conv,也就是不进行权重共享的卷积层。总的来说,这一步的作用就是使用3D模型来将人脸对齐,从而使CNN发挥最大的效果。
|
||||

|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue