细谈卷积神经网络CNN

近年来,一些传统的领域(计算机视觉、自然语言处理、医疗保健、智能安防等)得到了快速的发展,也取得了可喜的成果。此外,也有一些成熟的技术已经运用到了我们的实际生活中,包括人脸识别解锁技术、指纹识别解锁技术、迎宾机器人等。而这一切都源于卷积神经网络(Convolutional Neural Network, CNN)的出现。本文将给大家详细梳理一下卷积神经网络的来龙去脉。

1. 神经网络 Neural Network

其实,在CNN问世之前,学术界的各位大佬就已经研究神经网络多年。神经网络,即人工神经网络(Artificial Neural Network, ANN)是模仿生物大脑神经结构和功能的一种数学模型。下图所示,是人类大脑中的一个神经元,主要包括树突、细胞体、轴突等。每个神经元,都可以分为:接受区、触发区、传导区和输出区,代表着一个神经元传导信息的一个过程。

单个神经元

因此,仿照着上述神经元的信息处理和传导流程,便设计出一个如下图所示的简易的感知器,它可以接受多个输入(接受区),然后经过处理(触发区),最后产生一个输出(输出区)。

单层感知器

然而,这样的单层网络只能实现非常简单的功能。而对于生物神经网络而言,每个功能的实现都是靠着复杂的神经网络进行传导,因此,对于人工神经网络也是同样的道理,为了实现更复杂的功能,我们便将多个感知器层堆叠起来,设计出了最初的神经网络:

多层感知器

当任务比较简单时,这样的神经网络就足以应对,但是当处理图片等数据时,层与层之间的连接数会快速增长,这也使得计算变得更为复杂。为了解决这个问题,CNN便应运而成。

2. 卷积神经网络 CNN

如果说神经网络是受生物大脑的神经元启发而设计出来的,那么卷积神经网络则是受人类的视觉处理系统的启发。

2.1 人类视觉系统

当我们人类在看到一个物体并进行识别时,我们的视觉系统主要经过以下几个处理步骤:

(1) 摄入原始信号,即瞳孔摄入像素Pixels

(2) 大脑中的V1区域进行初步处理,检测物体的边缘和方向

(3)大脑中的V2区域来判定物体的形状

(4)大脑中的V4区域来进行高层次的抽象,然后判定到底是什么物体

我们可以看到人类视觉是经过这样逐层分级来进行认知的,那么我们可不可以模仿人类大脑的这个特点,构造一个多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?答案是肯定的,这便是CNN的灵感来源。

那么,我们应该怎样来提取这些特征呢?答案便是使用卷积操作!

2.2 卷积

在传统的图像处理中,用一个模板和一副图像进行进行卷积,让模板上的原点和图像上的一点对齐,然后让模板上的点和图片上对应的点相乘,然后将各个点的乘积相加,就得到图片上该点的卷积值。图像处理中常见的mask运算都是卷积,广泛应用与图像滤波。例如下图,我们使用卷积操作来对图像进行平滑操作,一个典型的8领域平滑,平滑后每个点的每个值都来自于原图中对应位置和其周边8个元素与一个3X3的矩阵的卷积:

卷积操作

上图中那个3X3的矩阵也称为核,这个核对图像进行操作,相当于对图像进行了低通滤波。因此这个核也被称为滤波器。而整个操作过程也称作为卷积操作。

2.3 滤波器和卷积神经网络

那么这个滤波器和卷积神经网络存在什么样的关系呢?要理解两者之间的关系,让我们先假设一个问题,假设我们现在要识别图像中某种特定的曲线,也就是我们滤波器要对这种曲线输出很高,而对其他形状的曲线输出很低,而这种效果就很类似于生物神经元的激活。那这个问题要怎么解决呢?

(1) 首先,我们先设计滤波器和想要识别的曲线:

(2) 假设我们要在这张老鼠图上识别这个特定的曲线,那么我们就让滤波器在这张图上移动并求卷积:

(3) 那当滤波器移动到上图右侧那个位置时,按照卷积操作,将滤波器的值和这部分图像的像素值相乘相加,得到一个很大的值(6600),那这说明这部分存在着我们要找的特定曲线:

(4) 当滤波器移动到其他位置时,便得到一个相对较小的值:

当这个滤波器移动完整张图片的时候,我们就可以得到一个激活图,其中,激活图上的值高的区域就代表这个位置有相应的曲线,值比较低的区域就代表不存在这个曲线。

而卷积神经网络的每一层就相当于一系列的滤波器,第一层的滤波器用来检测一些低阶特征(边、角、方向等),随着卷积层的增加,对应层检测到的特征就更加复杂,比如,第二层的输入其实是第一层的输出(滤波器激活图),因此第二层便是检测这些低阶特征的组合情况(如半圆、四边形等),如此累积,因此可以检测到越来越复杂的特征。而我们训练CNN,其实就是训练这些滤波器(weights)。

3. 完整的卷积神经网络

一个典型的神经网络是由卷积层、池化层和全连接层组成的。下面我们使用一个小例子,来看一下这三个层具体进行了什么操作:

(1)卷积层

让卷积核在整张图片上移动,每次移动进行一个卷积操作,最终得到特征图。

在CNN中,我们通常会在卷积层后边加一个激活函数,来增加非线形因素,使得整个网络的表达能力更强。常见的激活函数有多种,在上一篇博客中我已经进行了详细的分析,欢迎大家围观《细谈激活函数》。一般在卷积网络中较常使用的是ReLU函数,我们将上述特征矩阵输入ReLU函数便得到以下结果:

(2)池化层

从卷积操作的过程中,我们可以看出,当Image的size增加时,每层要进行的卷积操作就会增加,这样会使得计算量增加,为了有效的减少计算量,CNN提出了另一个很有效的概念‘池化’。池化就是将输入的图像缩小,减少像素点,只保留比较重要的信息。常见的池化方式包括max-pooling(取区域内的最大值)和mean-pooling(取区域内的平均值)。我们使用2X2的池化区域对上述图像进行max-pooling可以得到以下结果:

对特征图进行max-pooling可以保留池化区域内的最大值,这就相当于保留了这一块的最佳匹配结果。而且从上图可以看出,加入池化层减小了图像的size,可以有效的减少计算量。

(3)全连接层

全连接层在整个卷积神经网络中起到“分类器”的作用,即通过卷积、激活函数、池化等深度网络后,再经过全连接层进行识别分类。首先将经过卷积、激活函数、池化的深度网络后得到的特征进行flatten,然后经过全连接层,最终得到分类结果:

通常,在全连接层的输出之后也会使用一个激活函数,比如使用sigmoid函数,可以使得输出值限制在(0,1)这个区间内。

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