卷积神经网络基础讲解

本文首发于:人工智能A7论坛

转载请注明出处


1什么是卷积神经网络(CNN)

1.1 什么是卷积操作

CNN中的卷积和数字信号处理中的卷积其实不是一回事,但有点类似。这里说的只是CNN中的卷积操作。

对图像(或者可以表示为同样结构的其他数据,如文本、语音等)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

(gif动图见附件)

备注:

http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_convolution

一个很自然的想法,是filter的各个权重应该是多少?filter的size怎么取?

1.2 卷积神经网络的概念

CNN的概念最早来自于对“感受野”的研究。科学家对猫的视觉细胞研究发现,每一个视觉神经元只处理一小块区域的视觉图像。即感受野(receptive field)。

卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络。通过共享参数,减少了参数的个数。卷积的图示

备注:上图是以“图片”举例,所以depth是RGB三个维度。后面我们会说到CNN也可以处理文本。用卷积来处理文本分类的要点在于怎么把文本数据准备成CNN所需要的这种固定width和height的形式。

卷积神经网络简单讲就是把一个图片的数据传递给CNN,原涂层是由RGB组成,然后CNN把它的厚度加厚,长宽变小,每做一层都这样被拉长,最后形成一个分类器:

CNN是首个成功进行多层训练的网络结构(Lecun的LeNet5),之所以CNN能够成为“第一个吃螃蟹”的网络,除了因为LeCun作为深度学习三巨头之一,“天生神力”,有一个不可忽视的因素或许是,CNN利用空间结构大大减少了参数量,提高了训练效率,避免了全连接网络(FCN, full connection Network)的参数过多不好训练、以及梯度弥散(gradient vanishment)的问题。

2CNN中的一些基本概念

卷积核

卷积核,英文名kernels,有时候也叫滤波器(filters )。卷积核是CNN的核心。从信号处理的角度而言,滤波器是对信号做频率筛选,这里主要是空间-频率的转换,cnn的训练就是找到最好的滤波器使得滤波后的信号更容易分类,还可以从模版匹配的角度看卷积,每个卷积核都可以看成一个特征模版,训练就是为了找到最适合分类的特征模版。

问题:卷积核的大小和初始值怎么取?

feature map

每一个卷积核滤波得到的图像就是一类特征的映射,也就是一个feature map

LeNet5

每个卷积核作用于input可以得到一个feature map。

我们知道图片有RGB三个维度,这三个维度的处理是怎么样的?

Stride

Stride就是“移动切片的步长”,影响取样的数量。也就是表示做卷积时对input进行每次移动多少步。每一块抽取一部分信息,长宽就缩减,但是厚度(depth)增加。抽取的各个小块儿,再把它们合并起来,就变成一个压缩后的立方体。

厚度为什么增加?一定增加吗?

一般来说,后面的卷积层feature map数要比前面的feature map数多些

Padding

填充的方式有两种,“有效填充”和“相同填充”。在相同填充中,超出边界的部分使用补充0的办法,使得输入输出的尺寸相同。而在有效填充中,则不使用补充0的方法,不能超出边界。

以一维的填充为例:

在图像的padding任务中,

如图中紫色方框所示,左边是有效填充,右边是相同填充。在相同填充中,超出边界的部分使用补充0的办法,使得输入输出的图像尺寸相同。而在有效填充中,则不使用补充0的方法,不能超出边界,

思考问题:在一个CNN网络中,input层Layer A做了卷积以后变成Layer B,再做卷积变成Layer C。为了达到图中所示的A、B、C三个layer宽和高都一样大的效果,需要怎么设置padding和stride 两个参数。

[很显然,需要stride=1, padding设置成

Pooling(池化层)

就是当跨步比较大的时候,它会漏掉一些重要的信息,为了解决这样的问题,就加上一层叫pooling,事先把这些必要的信息存储起来,然后再变成压缩后的层。最常见的就是mean-pooling和max-pooling。

Pooling层可以理解为一种特殊的卷积层。

Pooling层的作用:

1). invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)[详见附录“POOLing的三个不变性的形象化解释”

2. 保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力

3).获得定长输出。(文本分类的时候输入是不定长的,可以通过池化获得定长输出)

4).防止过拟合或有可能会带来欠拟合。

patch

一个局部切片。

参考:

http://xrds.acm.org/blog/2016/06/convolutional-neural-networks-cnns-illustrated-explanation/

感受野的理解

输出feature map某个节点的响应对应的输入图像的区域就是感受野

拿一个例子来算算

pool3的一个输出对应pool3的输入大小为2*2  如果padding=valid

pool3: 2*2 conv4: 4*4 conv3: 6*6 pool2:12*12 conv2:14*14 pool1:28*28 conv1:30*30

因此 pool3的感受野大小就是30*30

3 CNN处理图像分类问题的网络结构

在 RGB 这个层,每一次把一块核心抽出来,然后厚度加厚,长宽变小,形成分类器:

如果想要分成十类的话,那么就会有0到9这十个位置,这个数据属于哪一类就在哪个位置上是1,而在其它位置上为零。

CNN的结构,分析一张图片时,先放一个CNN的图层,再把这个图层进行一个pooling。这样可以比较好的保持信息,之后再加第二层的CNN和pooling。

导入一个图片之后,先是有它的RGB三个图层,然后把像素块缩小变厚。本来有三个厚度,然后把它变成八个厚度,它的长宽在不断的减小,最后把它们连接在一起。

下图是一个经典的CNN做图像分类的网络结构

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

推荐阅读更多精彩内容

  • 介绍 先前的教程展示了一个简单的线性模型,对MNIST数据集中手写数字的识别率达到了91%。 在这个教程中,我们会...
    Kimichen7764阅读 1,626评论 0 7
  • 卷积神经网络类似于一般的神经网络,由可学习的权重和误差组成,每一个神经元接受一些输入,完成一些非线性的操作。整个神...
    与尔岩说阅读 2,330评论 0 4
  • 本系列文章面向深度学习研发者,希望通过Image Caption Generation,一个有意思的具体任务,深入...
    imGeek阅读 2,663评论 1 33
  • 之前在文章《<模型汇总_1>牛逼的深度卷积神经网络CNN》详细介绍了卷积神经网络的基本原理,以及常见的基本模型,如...
    Arthurcsh阅读 3,864评论 0 10
  • 香港诗人、散文家于斯说,每次看到杂志上开列不同城市的流行书榜,总爱猜想某些书为什么会在这个城市流行。诗人甚至想,如...
    一只胖花花阅读 664评论 0 1