卷积神经网络

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积神经网络相关的知识,希望对你有一定的参考价值。

参考技术A <img src="images/pattern_001.jpg">
我们要识别图片的内容,读取图片的信息,我们不但提取出图片中一些边缘的信息还需要识别出图案中纹理,这样我们才能准确获取图片的信息。

纹理是由一些基元按照一定形式组合而成,所谓纹理基元就是在图片中重复出现的最小单元的图案。

有关图片纹理我们还可以引入一些统计学的概念,也就是不但通过基元,而且通过统计学信息描述这些基元如何组合在一起。

<img src="images/kernel_group.png">
我们把这样 7 卷积核放在一起就是卷积核组,我们现在第一个卷积核看起,这个卷积核应该是高斯偏导核,用于检测水平的边,前 6 卷积核是用于检测不同方向的边,而最后一个用于检测图片上是否有圆形图案。

<img src="images/kernel_detect_circle.png">
<img src="images/kernel_detect_hline.png">

那么我们是如何用卷积核提取图案信息来表示图像呢,首先我们用卷积核组每一个卷积核去扫描图片得到对应响应图,卷积核下方对应的图,然后将这个响应图用一个向量来表示,也就是将图片矩阵展平,如 大小的响应图展平就是 10000 维的向量 ,然后在将这些向量组合就得到基于卷积核组的图像表示。

接下来介绍一种更简单表示方式,因为基元位置与分类关系不大,也就是对分类没有什么影响。所以我们在用纹理表示图片没有必要记录位置信息。

第 个特征响应图的均值

每一个卷积核描述一种结构。

34-卷积神经网络(Conv)

参考技术A

深度学习网络和普通神经网络的区别

全连接神经网络的缺点

卷积神经网络的错误率

卷积神经网络的发展历程

卷积神经网络的结构

结构特点:
神经网络(neural networks)的基本组成包括输入层、隐藏层、输出层。而卷积神经网络的特点在于隐藏层分为卷积层和池化层(pooling layer,又叫下采样层)。

卷积过程

纠正:卷积层的过滤器,就是一个矩阵,里面的元素是对应扫描时每个像素点的权重

即:每个过滤器会产生一张feature map

0填充的两种方式
卷积核在提取特征映射时的动作称之为padding(零填充),由于移动步长不一定能整出整张图的像素宽度。其中有两种方式,SAME和VALID

彩色图片的卷积过程

由于彩色图片有3个通道,即3张表,所以filter需要分3次去分别观察,每次观察的结果直接相加作为最后的结果

过滤器的个数

有几个过滤器,就会生成几张表。eg:
对于[28, 28, 1]的图片,如果有32个过滤器,就会卷积的结果就为[28, 28, 32],相当于图片被“拉长”了

观察结果大小的计算

面试可能考

注意:如果计算结果出现小数,需要结合情况具体考虑,而不是说直接四舍五入

卷积的api

在卷积神经网络中,主要使用Relu函数作为激活函数

即在这里使用relu函数去掉了像素中小于0的值

神经网络中为什么要使用激活函数

为什么使用relu而不再使用sigmoid函数?

api

卷积就是进行特征的提取,观察更加仔细,然而,观察仔细就意味着数据多,运算量增加,这就需要使用池化层以减少计算量

Pooling层主要的作用是特征提取,通过去掉Feature Map中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是Max Pooling。

池化层也有一个窗口大小(过滤器)

即:池化过程让图片变得更“窄”

即:卷积层使得图片变长,池化层使得图片变窄,所以经过卷积,图片越来越“细长”

api

池化中SAME的计算方式与卷积过程中SAME的计算方式一样。eg:
[None, 28, 28, 32]的数据,经过2x2,步长为2,padding为SAME的池化,变成了[None, 14, 14, 32]

分析:前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权。最后的全连接层在整个卷积神经网络中起到“分类器”的作用。

所以神经网络也相当于是一个特征选择的方式

以上是关于卷积神经网络的主要内容,如果未能解决你的问题,请参考以下文章

卷积层在神经网络中如何运算?

:卷积神经网络

卷积神经网络的卷积层如何提取特征?

卷积神经网络(CNN)之一维卷积二维卷积三维卷积详解

Tensorflow系列4:卷积神经网络--解决参数过多问题

卷积神经网络二维卷积层(conv-layer)