[AI] 4 卷积神经网络CNN (上)

深度卷积网络概述

卷积神经网络(CNN)是一种典型的前馈神经网络(feed-forward neural network,各神经元从输入层开始,接收前一级输入,并输出到下一级,直至输出层,整个网络中无反馈)每一个神经元如下图所示平铺
Original Neocognitron paper, Fukushima, 1980

卷积神经网络主要由Building Blocks反复堆叠而成,Building Blocks包括:

  • 卷积层Convolutional layer
  • 激活层Activation layer
  • 池化层Pooling layer
  • 正规化Batch normalization
  • 全连接层Fully connected layer

卷积层(Convolutional layer)

  1. 2D卷积
    sample, from Lboro University slides
  2. 带偏置的2D卷积
    sample, from Lboro University slides
  3. 步长为2的2D卷积(相当于2倍的下采样)
    sample, from Lboro University slides
  4. 宽卷积(边缘填充)
    sample, from Lboro University slides

假设输入图像尺寸为W,卷积核大小为F,步长为S,填充边长为P,那么
输出尺寸为:\frac{W-F+2P}{S}+1

卷积的作用是特征提取,卷积层的输出通道数只取决于卷积核的数量,即一个卷积核,提取一种特征
sample, from Lboro University slides

至此,可以构成仅由卷积层构成的卷积网络
sample, from Lboro University slides

激活层(Activation layer)
激活层主要由激活函数构成,激活函数都是非线性函数,他们可以使网络更加强大,学习更多更复杂的东西。因为线性函数的局限性,仅凭线性函数无法学习和模拟例如音频、视频等复杂数据类型,在网络中加入激活函数之后,输入与输出之间可以用非线性函数映射来表示,几乎可以表示任何数据类型。
常用激活函数

  1. 线性整流单元 Rectified Linear Unit (ReLU) f(x)=max(0,x)
    ReLU, from Lboro University slides
  2. Sigmoid f(x)=\frac{1}{1+e^{-x}}
    Sigmoid, from http://cs231n.github.io/neural-networks-1/
  3. Hyperbolic tangent f(x)=tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}
    tanh(x), from http://cs231n.github.io/neural-networks-1/

在所有激活函数中,ReLU使用最多,它的优缺点如下:

  • 快速收敛(Faster convergence )
    ReLU vs. Tanh [Krizhevsky et al 12]
  • 计算简便(计算速度快,耗时少)
  • 梯度消失(gradient vanishing)可能性更小
  • 但,脆弱的

快速收敛
饱和:当一个激活函数h(x)满足\lim_{x\to+\infty}h'(x)=0时,则称h(x)为右饱和;当一个激活函数h(x)满足\lim_{x\to-\infty}h'(x)=0时,则称h(x)为左饱和;
sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”,对于sigmoid和tanh来说,只有在输入位于y轴附近时,在反向传播的时候,权重才能被较快的更新;而对于ReLU来说,只要输入大于0,ReLU'(x)=1,权重可以较大幅度更新,达到快速学习的目的,从而快速收敛

计算简便

derivate of sigmoid, tanh, ReLU, from https://www.pianshen.com/article/99291086274/
从上图可以看出,ReLU的导数计算极其简单,所以计算耗时少

梯度消失可能性更小
对于饱和激活函数来说,当输入位于激活函数两端,那么在反向传播时,导数~0,并且随着卷积层数的增加,导数相乘,最终导致梯度消失;而对于非饱和激活函数来说,只要输入大于0,即使模型深度增加,梯度仍旧不会消失

缺点:脆弱性
极度依赖学习率和数据:当学习率设置过大 or 当一个非常大的梯度经过ReLU时,反向传播更新完参数后,所有经过这个神经元的输出都为负数,这个神经元就业再不会被激活,这个神经元就die了
解决方式:Leaky ReLUs、PReLU、RReLU

ReLU、Leaky ReLU、PReLU和RReLU的比较,from 参考资料[5]

加入激活层后的卷积神经网络
image from Lboro University slides

池化层 (Pooling layer)
卷积的作用是提取特征,而池化是1)保留主要特征,忽略一些细节,从而达到降维,减少计算量,一定程度上防止过拟合,提高模型泛化能力;2)具有平移不变性。池化又分为平均池化和最大池化

  • 平均池化:倾向于保留突出背景特征
  • 最大池化:倾向于保留突出纹理特征


    Max Pooling, stride 2, 2x downsampling, from Lboro University slides

    平移不变性:即使pooling窗口(红框)移动了,只要最大值(9)依然在pooling窗口中,那么依旧能够被检测出来
    sample, from Lboro University slides

正规化(Batch normalization)

背景:在训练模型的过程中,训练速度越来越慢,即模型收敛越来越慢。主要有两个原因:

  • 随着网络的加深,浅层网络梯度越来越小,直至消失
  • 在隐藏层中,因为参数一直在变动,这就导致了数据在不同层中,分布也在不停的变化,激活函数的输入分布逐渐向饱和区偏移,导致反向传播时梯度消失

因此,需要对输入数据进行正规化(均值为0,方差为1),把每层神经网络任意神经元这个输入值的分布重新变换到均值为0,方差为1的正规分布,使得反向传播时,梯度较大,以此来避免梯度消失的问题

Loffe and Szegedy, 2015
在上图红框中,有一个 scale and shift 操作,因为如果对每一个输入都采取Batch normalization之后,那么当数据流过激活函数(非线性函数)就相当于经过一个线性函数,网络学习到的非线性特性大幅度减弱,这意味着多层的深度网络和一层的浅层网络效果差不多,因此,需要对数据进行 scale and shift (由训练得出,就是对输入数据分布进行拉伸和偏移)一次来达到即能加快模型收敛,又能使模型具备非线性特性
from Lboro University slides

加入Batch normalization后的模型


from Lboro University slides

全连接层(Fully connected layer)

  • 先把最后一层的feature maps展平,即从多维展平至一维
  • 相当于感知机,\mathbf{a}=\mathbf{W}\mathbf{X}+\mathbf{b}
    image.png

参考资料:

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