Update 第五章 卷积神经网络(CNN)(修改版).md

This commit is contained in:
TroyChang 2018-11-13 18:33:49 +08:00 committed by GitHub
parent 760b8dc858
commit e56bd361d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 13 deletions

View File

@ -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 普通卷积
普通卷积即如下图所示,使用一个固定大小的滤波器,对图像进行加权提特征。
![image](./img/ch5/img7.png)
@ -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
![image](./img/ch5/img13.png)
## 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发挥最大的效果。
![image](./img/ch5/img66.png)