CNN卷积神经网络全面生动解读-深度学习笔记1

原文地址:http://www.jianshu.com/p/1c9daf19b0d9
更多机器学习、深度学习笔记(含python、TensorFlow代码实现):http://blog.csdn.net/qq_31456593/article/details/69340697

一、前言

卷积神经网络的产生是为了解决深层神经网络参数多训练难的问题,并获得更好的分类效果。我们知道在深度学习出现之前,传统神经网络当层数变多时,反向传播将会变得困难,且对于一些高维的输入往往需要大量的参数,因此复杂神经网络的训练成了急需解决的问题。同时,由于全连接网络提取的前一层的全部信息,整体特征拟合能力较低,且易于过拟合于局部样本。

卷积神经网络的实现来源于对于视觉神经系统的研究。科学家发现,人对事物的观察是通过对不同特征捕获的综合,视觉神经系统中有专门负责不同特征感知的视觉元。从对视觉神经系统的研究出发,神经网络的研究者提出用一个神经元每次观察输入的部分特征(比如图片的一小块),然后通过逐步移动的方法观察整个输入的方法,然后用多个这种神经元提取输入的输入的不同特征,最后在通过一个全连接网络对这些特征进行整合,最终达成分类效果。下图形象的描述了这种特征的提取。


通过多个特征神经元代替一个全连接层,我们发现参数的数量大大减小,且由于图像存在大量相同的基本特征信息,卷积神经网络在计算机视觉领域取得了非常好的效果。

二、简介

卷积神经网络就是由卷积层、池化层、全连接层构成的具有局部感知和权值共享能力的深层神经网络。


卷积神经网络最主要的特点就是局部感知和权值共享。局部感知使其每次只需感知较小的区域,降低了参数数量,也提供了特征拟合能力(特征简单了,拟合更容易)。而全值共享,使一些基本特征可得到重复利用,使参数可以共享,提高了神经网络的训练效果。
卷积层: 做特征的提取,输出对应得feature map
池化层: 就是对数据进行下采样,减少数据处理量同时保留有用信息
全连接层: 就是对提取特征进行组织综合,输出识别物体的分类情况
关于网络的形象理解可见下图。

三、重要概念

接下来我们来看一些重要概念。

卷积

卷积的本质就是加权叠加。卷积核与一个连接观察窗口的全连接神经元类似,因此我们用它来代替我们上文提到的特征观察神经元,并最后通过窗口滑动观察整个输入,输出一个 feature map

一维卷积


图中的M向量为卷积核,N向量为输入,P向量为输出。其中P[2] = N[0] * M[0] + ... + N[4] * M[4]。
因为图像是二维的,所以我们用到的一般是下面的二维卷积

二维卷积


卷积层中卷积核的使用,一般如上图所示。卷积层是卷积核在上一级输入层上通过逐一滑动窗口计算而得,卷积核中的每一个参数都相当于传统神经网络中的权值参数,与对应的局部像素相连接,将卷积核的各个参数与对应的局部像素值相乘之和,(通常还要再加上一个偏置参数),得到卷积层上的结果(即feature map)。

多通道多个卷积核的卷积计算

下面是3通道(RGB),2个卷积核的计算过程。


  • 左边是输入(773中,7*7代表图像的像素/长宽,3代表R、G、B 三个颜色通道)
  • 中间部分是两个不同的滤波器Filterw0、Filter w1
  • 最右边则是两个不同的输出(即2个feature map,该隐藏层深度为2,提取2类特征)
    随着左边数据窗口的平移滑动,卷积核Filter w0 / Filter w1对不同的局部数据进行卷积计算。其中每个卷积核有3个3*3的矩阵分别与与三个通道的观察窗口做卷积最后求和作为输出。
    卷积核的权重矩阵就是训练时要学习的,它就是要提取的特征,神经网络再根据卷积提取的特征去观察输入(比如图片)

Relu激活函数

最近几年卷积神经网络中,激活函数往往不选择sigmoid或tanh函数,而是选择relu函数。Relu函数的定义是:$f(x)= max(0,x)$
Relu函数图像如下图所示:



Relu函数作为激活函数,有下面几大优势:

  • 速度快 和sigmoid函数需要计算指数和倒数相比,relu函数其实就是一个max(0,x),计算代价小很多。
  • 减轻梯度消失问题 回顾计算梯度的公式$\nabla=\sigma'\delta x$。其中,$\sigma'$是sigmoid函数的导数。在使用反向传播算法进行梯度计算时,每经过一层sigmoid神经元,梯度就要乘上一个$\sigma'$。从下图可以看出,$\sigma'$函数最大值是1/4。因此,乘一个会导致梯度越来越小,这对于深层网络的训练是个很大的问题。而relu函数的导数是1,不会导致梯度变小。当然,激活函数仅仅是导致梯度减小的一个因素,但无论如何在这方面relu的表现强于sigmoid。使用relu激活函数可以让你训练更深的网络。
  • 稀疏性 通过对大脑的研究发现,大脑在工作的时候只有大约5%的神经元是激活的,而采用sigmoid激活函数的人工神经网络,其激活率大约是50%。有论文声称人工神经网络在15%-30%的激活率时是比较理想的。因为relu函数在输入小于0时是完全不激活的,因此可以获得一个更低的激活率

四、网络结构

  • 最左边是数据输入层
    对数据做一些处理,比如去均值(把输入数据各个维度都中心化为0,避免数据过多偏差,影响训练效果)、归一化(把所有的数据都归一到同样的范围)、PCA/白化等等。CNN只对训练集做“去均值”这一步。
  • 中间是
    CONV:卷积层,线性乘积 求和。
    RELU:激励层,使用relu做卷积层的激活函数。
    POOL:池化层,简言之,即取区域平均或最大。
  • 最右边是
    FC:全连接层
    之所以出现这么多不同的描述卷积神经网络的图是为了循序渐进地帮助大家理解其网络结构。

卷积层


卷积核虽然模拟的是一个特征观察神经元,但它并不属于卷积层,它相当于一个特征过滤器(或说是一个权重矩阵)。它将符合自己要求的特征输出到feature map上。
至于卷积层为什么可以提取特征并取得很好的效果,可以看下面表示特征的卷积核与输入图片进行运算后提取的feature map



可以看出不同卷积核将提取图片中不同的特征,一般第一层提取的都是边、角、色彩强度等低维的特征。正如下图



然后多个卷积层对特征进行提取和重组后,就能得到比较复杂的特征

relu层

我们这里暂且把激励函数relu也当作一层,卷积后加上relu激励函数有


池化层


池化层里我们用的maxpooling,将主要特征保留,舍去多余无用特征,这样就可以实现信息压缩,比如下图所示



经过多轮的卷积和池化,将得到最终的特征表示


全连接层

最后用全连接层对特征进行拟合



并输出不同分类的概率



这就是卷积神经网络获取特征并实现图像分类的整个过程,通过这个过程,大家应该也对卷积神经网络的结构有了比较深刻全面的了解。

五、应用

几个典型的神经网络应用如下

  • LeNet,这是最早用起来的卷积神经网络,Yann LeCun在论文LeNet提到。
  • AlexNet,2012 ILSVRC比赛远超第2名的卷积神经网络,和LeNet的结构比较像,只是更深,同时用多层小卷积层叠加提到大卷积层。
  • ZF Net,2013 ILSVRC比赛冠军,可以参考论文ZF Net
  • GoogLeNet,2014 ILSVRC比赛冠军,Google发表的论文Going Deeper with
    Convolutions有具体介绍。
  • VGGNet,也是2014 ILSVRC比赛中的模型,有意思的是,即使这个模型当时在分类问题上的效果,略差于google的GoogLeNet,但是在很多图像转化学习问题(比如object detection)上效果奇好,它也证明卷积神经网的『深度』对于最后的效果有至关重要的作用。预训练好的模型在pretrained
    model site可以下载。

参考材料

卷积神经网络:http://blog.csdn.net/stdcoutzyx/article/details/41596663
cs231n 卷积神经网络:http://cs231n.github.io/convolutional-networks/
cnn笔记通俗理解卷积神经网络:http://blog.csdn.net/v_july_v/article/details/51812459
卷积神经网络工作原理直观的解释?:https://www.zhihu.com/question/39022858
CNN入门详解及TensorFlow源码实现--深度学习笔记:http://blog.csdn.net/qq_31456593/article/details/71108257
[透析] 神经网络如何工作(视频):https://www.youtube.com/embed/FmpDIaiMIeA
卷积神经网络:https://www.zybuluo.com/hanbingtao/note/485480

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,688评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,559评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,749评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,581评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,741评论 3 271
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,684评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,122评论 2 292
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,847评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,441评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,939评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,333评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,783评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,275评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,830评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,444评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,553评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,618评论 2 249

推荐阅读更多精彩内容

  • 卷积神经网络类似于一般的神经网络,由可学习的权重和误差组成,每一个神经元接受一些输入,完成一些非线性的操作。整个神...
    与尔岩说阅读 2,237评论 0 5
  • 本系列文章面向深度学习研发者,希望通过Image Caption Generation,一个有意思的具体任务,深入...
    imGeek阅读 2,640评论 1 33
  • 一个好的习惯,只要坚持下来,就会有收获。但是最怕的是没有恒心。 最近在读《原则》一书,其中有一段话说的特别的好:做...
    衣小羊阅读 573评论 0 51
  • 一周的高强度工作让我内心充盈,但稍一停歇的身心就迸出小疲惫,于是开启修复模式,早晨晚起补觉,中午继续补觉,...
    艳之雪阅读 215评论 0 0
  • 感情里哪来那么多对错,爱的多的那一方永远都会先低头,心都给你了还要怎么计较,如果当初不对你那么在乎 是不是分开了也...
    檐下听雨阅读 133评论 0 0