卷积神经网络CNN-学习1

卷积神经网络CNN-学习1网络

 

      十年磨一剑,霜刃不曾试。架构

 

简介:卷积神经网络CNN学习。ide

CNN中文视频学习连接:卷积神经网络工做原理视频-中文版函数

CNN英语原文学习连接:卷积神经网络工做原理视频-英文版学习

1、定义spa

     卷积神经网络(Convolutional Neural Networks)是一种深度学习模型或相似于人工神经网络的多层感知器,经常使用来分析视觉图像。其创始人Yann LeCun是第一个经过卷积神经网络在MNIST数据集上解决手写数字问题的人。

2、CNN灵感来源?3d

     人类的视觉原理以下:从原始信号摄入开始(瞳孔摄入像素 Pixels),接着作初步处理(大脑皮层某些细胞发现边缘和方向),而后抽象(大脑断定,眼前的物体的形状,是圆形的),而后进一步抽象(大脑进一步断定该物体是只气球)。
人脑进行人脸识别示例

对于不一样的物体,人类视觉也是经过这样逐层分级,来进行以下认知的。视频

 人类视觉识别示例blog

      在最底层特征基本上是相似的,就是各类边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不一样的高级特征最终组合成相应的图像,从而可以让人类准确的区分不一样的物体。因而便模仿人类大脑的这个特色,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终经过多个层级的组合,最终在顶层作出分类。图片

3、卷积神经网络解决了什么?

归纳来讲就是保留图像特征,参数降维,复杂参数简单化。

图像像素RGB

众所周知,图像是由像素构成的,每一个像素又是由颜色构成的。如今随随便便一张图片都是 1000×1000 像素以上的, 每一个像素都有RGB 3个参数来表示颜色信息。

假如咱们处理一张 1000×1000 像素的图片,咱们就须要处理3百万个参数!1000×1000×3=3,000,000

这么大量的数据处理起来是很是消耗资源的,卷积神经网络 – CNN 解决的第一个问题就是「将复杂问题简化」,把大量参数降维成少许参数,再作处理。

更重要的是:咱们在大部分场景下,降维并不会影响结果。好比1000像素的图片缩小成200像素,并不影响肉眼认出来图片中是一只猫仍是一只狗,机器也是如此。

图片数字化的传统方式

      图像简单数字化没法保留图像特征,如上图假若有圆形是1,没有圆形是0,那么圆形的位置不一样就会产生彻底不一样的数据表达。可是从视觉的角度来看,图像的内容(本质)并无发生变化,只是位置发生了变化。因此当咱们移动图像中的物体,用传统的方式的得出来的参数会差别很大!这是不符合图像处理的要求的。而 CNN 解决了这个问题,他用相似视觉的方式【模仿人类大脑视觉原理,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终经过多个层级的组合,最终在顶层作出分类】保留了图像的特征,当图像作翻转,旋转或者变换位置时,它也能有效的识别出来是相似的图像。

4、卷积神经网络的架构

 典型的 CNN 由卷积层、池化层、全链接层3个部分构成:

典型CNN组成部分

更为完善的也有分为以下五个层级结构:
一、数据输入层:Input layer
二、卷积计算层:CONV layer
三、ReLU激励层:ReLU layer
四、池化层:Pooling layer
五、全链接层:FC layer

5、数据输入层

数据输入层主要是对原始图形数据进行数据预处理,包括去均值、归一化、PCA/白化。
去均值:
把输入数据各个维度都中心化为0,以下图所示,其目的就是把样本的中心拉回到坐标系原点上。
归一化:
幅度归一化到一样的范围,以下所示,即减小各维度数据取值范围的差别而带来的干扰,好比,咱们有两个维度的特征A和B,A范围是0到10,而B范围是0到10000,若是直接使用这两个特征是有问题的,好的作法就是归一化,即A和B的数据都变为0到1的范围。
PCA/白化:
用PCA降维度,白化是对数据各个特征轴上的幅度归一化。
去均值&归一化效果图

 去相关与白化效果图

6、卷积计算层

卷积层有两个重要的操做,一个是局部关联,每一个神经元看作一个滤波器filter;另外一个是窗口滑动,filter对局部数据计算。

卷积层的运算过程以下图,用一个卷积核扫完整张图片:

卷积层动态运算图

卷积层的运算过程,能够当作使用一个过滤器(卷积核)来过滤图像的各个小区域,从而获得这些小区域的特征值,即卷积层经过卷积核的过滤提取出图片中局部的特征。

卷积层运算图

 

卷积层计算过程动图

 7、激励层

激励层是把卷积层输出结果作非线性映射。CNN采用的激励函数通常为ReLU(The Rectified Linear Unit/修正线性单元)。


8、池化层

池化层在连续的卷积层中间,其用于压缩数据和参数的量,减小过拟合。最重要的做用就是保持特性不变,压缩图像,下降数据维度。


      池化层用的方法有Max pooling 和 average pooling,而实际用的较多的是Max pooling。Max pooling思想:对于每一个2 * 2的窗口选出最大的数做为输出矩阵的相应元素的值,好比输入矩阵第一个2 * 2窗口中最大的数是6,那么输出矩阵的第一个元素就是6,如此类推,保持特征不变地下降维度。

Max pooling图


动态池化图

咱们能够看到动态池化图中,原始图片20×20的,咱们对其进行下采样,采样窗口10×10,最终将其下采样成为一个2×2大小的特征图

9、全链接层

全链接层在卷积神经网络尾部,该层负责输出结果,是最后一步。其跟传统的神经网络神经元的链接方式同样。
全链接层链接方式

 

10、CNN实际应用场景

图像分类/检索、目标定位检测、目标分割、人脸识别、骨骼识别等。

CNN人脸识别

Finally

CNN中文视频学习连接:卷积神经网络工做原理视频-中文版

CNN英语原文学习连接:卷积神经网络工做原理视频-英文版

 

 

十年磨一剑

    霜刃不曾试

相关文章
相关标签/搜索