深度学习-卷积神经网络—卷积操作详细介绍

 

  1. 深度学习:

深度学习是机器学习领域中一个新的研究方向。深度学习是学习样本数据的内在规律和表示层次,从学习过程中获得的信息对诸如文字、图像和声音数据的解释有很大的帮助。

我是这样认为深度学习的:

  1. 深度学习能从数据中学习层次表示;
  2. 端到端学习:将原始输入去预测;
  3. 能使用一小套工具来解决很多问题;
  4. 在数据挖掘、机器学习、机器翻译、NLP等相关领域取得了迅速的发展
  5. 深度学习灵感来自于大脑;

下图是机器学习和深度学习以及CV的关系:

深度学习-卷积神经网络—卷积操作详细介绍_第1张图片

 

 

下图是机器学习和深度学习相关子领域的关系图:

 
  深度学习-卷积神经网络—卷积操作详细介绍_第2张图片

所以从上图可以看出卷积神经网络属于深度学习的一种网络拓扑结构。

深度学习在CV方面可以解决一些问题:

  1. 目标检测(Object Detection):检测目标是什么?目标在哪?
  2. 目标分割(Object segmentation);
  3. 姿势评估(Pose Estimation);
  4. 图像描述(Image Captioning);
  5. 密集图像描述(Dense Image Captioning);
  6. 视觉问答(Visual Question Answering);
  7. 图像超分辨率(Image Super-Resolution);
  8. 风格转化;

除此之外,还可以用于机器翻译、文本生成、语音识别、语音合成。

 

图像分类的一般过程(PPT):

  1. 建立一个包含图像和对应标签的数据集;
  2. 使用机器学习方法来训练一个图像分类器;(从训练集中提取图像的特征,结合标签进行训练,最后得到学习好的分类器)
  3. 使用测试集来评价这个分类器;(提取测试集中图片的特征,使用训练好的分类器来进行预测)

深度学习就是将学习特征的过程和训练分类器过程结合在一起来进行训练,测试就是将学习到的特征和训练好的分类器结合来进行预测。

 
  深度学习-卷积神经网络—卷积操作详细介绍_第3张图片

 

上图很好的说明了深度学习用于图像分类的训练过程,最后得到的模型可以学习层次化的特征。底层特征图分辨率较高,高层特征图语义信息更好

  1. 卷积神经网络
  1. 什么是卷积:卷积(或内积)就是一种先把对应位置相乘然后再把结果相加的运算。
  2. 卷积的作用:通过卷积运算,可以使原信号特征增强,并且降低噪音。
  3. 卷积层:主要作用是进行特征提取
  4. 池化层:没有参数。主要作用是减小特征图,起到降维的作用。常用的方法是选取局部区域的最大值或者平均值。
  5. 通道:一个特征对应一个通道(或者叫特征图或特征映射),如RGB(三个通道)。当前层的特征映射是上一层特征映射的组合,也就是一个特征映射会对应上一层的一个或者多个特征映射。
  6. 卷积神经网络:是一个多层的神经网络,每层由多个二维平面(特征映射)组成,而每个平面由多个独立神经元组成。是前馈型网络。它对二维形状的平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。

CNN的关键操作:输入图像->卷积(滤波操作)->使用激活函数(如sigmoid,ReLu)->池化(如平均池化、最大池化)->特征图

 

下图可以形象的描述一个卷积神经网络(卷积神经网络架构图):

深度学习-卷积神经网络—卷积操作详细介绍_第4张图片

卷积层的计算:

  卷积计算的原理:

  1. 输入矩阵:四个维度,依次为:样本数、图像高度、图像宽度、图像通道数
  2. 输出矩阵:格式也是四个维度(跟输入矩阵一样)。但是后三个维度(图像高度、图像宽度、图像通道数)的尺寸发生变化。
  3. 权重矩阵(卷积核):同样是四个维度,但维度的含义与上面两者都不同,为:卷积核高度、卷积核宽度、输入通道数、输出通道数(卷积核个数)。

三者的相互关系:

  1. 卷积核的输入通道数由输入矩阵的通道数所决定。
  2. 输出矩阵的通道数由卷积核的输出通道数所决定。
  3. 输出矩阵的高度和宽度(height, width)这两个维度的尺寸由输入矩阵、卷积核、扫描方式所共同决定。计算公式如下:
  4.  
     

    下图是一个卷积计算的举例:
 
  深度学习-卷积神经网络—卷积操作详细介绍_第5张图片

以AlexNet模型的第一卷积层为例:

 
  深度学习-卷积神经网络—卷积操作详细介绍_第6张图片

 

1*1卷积计算举例:

 
  深度学习-卷积神经网络—卷积操作详细介绍_第7张图片


如GoogleNet和ResNet中使用,作用就是将输入矩阵的通道数缩减:

全连接层计算举例:

 
  深度学习-卷积神经网络—卷积操作详细介绍_第8张图片

 


最后,下图是一些流行的卷积网络结构,其中横坐标表示一次前向计算需要的计算量,纵坐标表示准确率。其中圆的大小表示所含参数的多少。所以越往左上角越好

 
  深度学习-卷积神经网络—卷积操作详细介绍_第9张图片

 

     PPT上提到的一些卷积网络介绍:

  1. LeNet(1989):

可能是深度神经网络的始祖。被用于手写字符(数字)的识别,确立了卷积神经网络的基础结构,包括卷积层,池化层,激活函数(tanh函数),全连接层,损失函数采用了均方误差即欧式距离的均值,权重由随机数初始化,训练梯度采用了反向传播算法。还提出了权值共享和特征图像的概念,权值共享即一个卷积核对上层图像(特征图)进行卷积的权值参数不变,即以同样的参数处理整张图像;特征图像…字面意思,使用卷积核进行卷积后得到的图像称为特征图像。

  1. AlexNet(2012):

第一次使用ReLU激活函数,提出了Dropout防止过拟合,按照一定的概率暂时丢弃网络中的神经元),提出数据增强扩大训练集(数据增强的方法有旋转、平移、缩放、颜色色差、几何形变、随机遮挡,随机裁剪、改变亮度、饱和度、对比度等操作),提出了局部相应归一化LRN(现在基本不用),提出了重叠池化(相邻池化窗口之间有重叠区域)

  1. NIN(2013):

去除了AlexNet最后的3个全连接层,使用NIN块(一个卷积层加两个充当全连接层的1 × 1卷积层串联而成)。NiN使用了输出通道数等于标签类别数的NIN块,然后使用全局平均池化层对每个通道中所有元素求平均并直接用于分类。

  1. Inception Network(2015):
  1. Inception-V1(也就是GoogleNet):致力于解决增大深度或宽度带来的计算问题,和参数过多带来的过拟合问题。提出了Inception模块;使用了1*1卷积核(作用:降维);尝试去除参数海量的全连接层,由平均池化代替。
  2. Inception-V2:加入了BN层(Batch Normalization)。
  3. Inception-V3:

最重要的改进就是卷积核的分解:

对卷积进行非对称分解:7 X 7 → 1 X 7 + 7 X 1; 3 X 3 → 1 X 3 + 3 X 1
作用:既减少了参数,又增加了深度,加深了网络的非线性

还对优化算法进行了改进:改进了参数优化方法:AdaGrad->RMSProp,并采用Label Smoothing策略(正则化方法,降低了过拟合程度)

  1. Inception-V4:相比于V3,变得更深。

 

  1. ResNet(2015):

提出残差块:

 
  深度学习-卷积神经网络—卷积操作详细介绍_第10张图片

 

目的是为了解决退化问题:随着网络层数的增多,与过拟合不同,在训练集和测试集上的准确率达到一定值都下降,梯度消失问题;另外一种解释是残差块可以去除当前特征冗余的杂质,使得特征细化)

 

大家要是觉得有用,请关注本账号!咱们共同学习进步!

 

 

 

你可能感兴趣的:(卷积神经网络,深度学习,卷积神经网络,卷积)