学习笔记_卷积神经网络

卷积神经网络

一、绪论

1.卷积神经网络的应用

无处不在的卷积神经网络

基本应用

分类 检索 检测 分割

人脸识别(face recognition)

人物表情识别

图像生成

图像风格转化

自动驾驶

2.传统神经网络vs卷积神经网络

深度学习三部曲

Step1:

Neural Network(搭建神经网络结构)

Step2:

Cost Function(找到一个合适的损失函数)

交叉熵损失(cross entropy loss), 均方误差(MSE)

Step3:

Optimization(找到一个合适的优化函数,更新参数)

反向传播BP

随机梯度下降(SGD)

损失函数的相关概念

 

 

 

 

传统神经网络可以应用在计算机视觉上,为什么还需要卷积神经网络?

全连接网络处理图像的问题

参数过多:权重矩阵的参数太多->过拟合

(过拟合出现的现象:例如要让机器识别出狗,但是由于测试数据大量都是同一种狗的图片,这样机器就很有可能无法识别出来)

卷积神经网络的解决方法:

局部关联,参数共享

(参数共享可以降低参数量,使得模型更好训练)

相同之处:

 

 

 

 

 

二、基本组成结构

  1. 卷积

一维卷积

一维卷积经常用在信号处理中,用于计算信号的延迟累积

假设一个信号发生器在时刻t发出一个信号xt,其信号的衰减率为fk,即在k-1个时间步长后,信息衰减为原来的fk倍

 

 

 

 

卷积是什么?

卷积是对两个实变函数的一种数学操作。

在图像处理中,图像是以二维矩阵的形式输入到神经网络的,因此我们需要二维卷积

 

 

 

 

涉及到的基本概念:

Input:输入

Kernel/filter:卷积核/滤波器

Weights:权重

Receptive field:感受野

Activation map:特征图

Padding

Depth/channel:深度

Output:输出

 

 

Padding通过补零实现卷积

 

 

 

 

 

 

 

卷积的可视化理解

不同的卷积核关注不同的信息

  1. 池化

保留了主要特征的同时减少参数和计算量,防止过拟合,提高模型泛化能力。

它一般处于卷积层与卷积层之间,全连接层与全连接层之间

Pooling的类型:
Max pooling:最大值池化

Average pooling:平均池化

 

 

 

 

  1. 全连接

 

 

 

全连接/FC layer:

两层之间所有神经元都有权重链接

通常全连接层在卷积神经网络尾部

全连接层参数量通常最大

小结:

  1. 一个典型的卷积网络是由卷积层、池化层、全连接层交叉堆叠而成
  2. 卷积是对两个实变函数的一种数学操作
  3. 局部关联,参数共享
  4. 未加padding时输出的特征图大小:(N-F)/stride + 1
  5. 有padding时输出的特征图大小:(N+padding*2-F)/stride+1
  6. Pooling的类型:Max pooling:最大值池化,Average pooling:平均池化
  7. 全连接:通常全连接层在卷积神经网络尾部

 

三、卷积神经网络典型结构

  1. AlexNet

 

 

 

 

卷积神经网络典型结构——AlexNet

 

 

 

Alex之所以成功,原因在于:

大数据训练:百万级ImageNet图像数据

非线性激活函数:ReLU

防止过拟合:Dropout, Data augmentation

其他:双GPU实现

 

 

 

优点:

解决了梯度消失的问题(在正区间)

计算速度特别快,只需要判断输入是否大于0

收敛速度远快于sigmoid

 

DropOut(随机失活)

训练时随机关闭部分神经元,测试时整合所有神经元

隐式的模型集成

 

数据增强(data augmentation)

平移、翻转、对称

随机crop。训练时候,对于256*256的图片进行随机crop到224*224

 

 

 

AlexNet分层解析

第一次卷积:卷积——ReLU——池化

 

第二次卷积:卷积——ReLU——池化

 

第三次卷积:卷积——ReLU

 

第四次卷积:卷积——ReLU

 

第五次卷积:卷积——ReLU——池化

 

第六层:全连接——ReLU——DropOut

 

第七层:全连接——ReLU——DropOut

 

第八层:全连接——SoftMax

 

 

 

  1. ZFNet

网格结构与AlexNet相同

将卷积层1中的感受野大小由11 X 11 改成 7 X 7,步长由4改为

卷积层3、4、5中的滤波器由384,384,256改成512,512,1024

  1. VGG

VGG是一个更深网络

8 layers(AlexNet) -> 16——19(VGG)

ILSVRC TOP 5

先训练前11层,将参数固定住再训练后面的

 

 

 

 

 

 

 

  1. GoogleNet

网络总体结构:网络包含22个带参数的层(如果考虑pooling层就是27层),独立成块的层总共由约有100个

参数量大概是AlexNet的1/12

没有FC层

Native Inception

 

 

 

计算复杂度过大

 

Inception V2

 

 

 

 

 

 

Inception V3

 

 

 

降低参数量

增加非线性激活函数:增加非线性激活函数使网络产生更多独特特,表征能力更强,训练更快

 

 

 

Stem部分(Stem network)

卷积——池化——卷积——卷积——池化

多个Inception堆叠

输出:没有额外的全连接层(除了最后的类别输出层)

辅助分类器:解决由于模型深度过深导致的梯度消失的问题

  1. ResNet

残差学习网络(deep residual learning network)

2015年ILSVRC竞赛关键,top5错误了从6.7%->3.57%

深度有152层

 

 

 

 

 

 

残差思想:去掉相同的主体部分,从而突出微小的变化

可以用于训练非常深的网络

 

 

 

 

 

参考文献

 

作者:LightAc
出处:https://www.cnblogs.com/lightac/
联系:
Email: dzz@stu.ouc.edu.cn
QQ: 1171613053
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/lightac/p/12266541.html