神经网络体系搭建(三)——卷积神经网络

本篇是神经网络体系搭建的第三篇,解决体系搭建的卷积神经网络相关问题,详见神经网络体系搭建(序)

卷积神经网络(CNN)

卷积神经网络.png

CNN是什么

卷积神经网络是一种空间上共享参数的神经网络。

为什么会有CNN

像素间具有临近性,图片中相邻像素在一起时有特殊意义的,但是普通非卷积网络中忽略了这一点,把输入图片的每个像素与下一层的神经元相连,没有利用好这些信息,于是有了卷积神经网络。

CNN基本思想是什么

比如图片识别。卷积神经网络模仿人识别图片(狗)的一种方法:先是特定部位,比如鼻子、嘴、眼睛……把这些拼起来得到一条狗。
卷积神经网络相似,它自己通过正向和反向传播学习识别基本的直线,曲线,然后是形状,点块,然后是图片中更复杂的物体。最终 CNN 分类器把这些大的,复杂的物体综合起来识别图片。

CNN是如何工作的

How CNN works(图片来源于优达学城)

一句话讲就是,训练时候不断将图细化,自己学习特征,得到分类器。

第一个大正方体(256x265xRGB)代表一张有三个色彩通道的图片,是输入height、wide、depth分别是256,256和3。

取图片一小块1,运行一个有k2个输出的小网络,在不改变权重3的情况下,把小网络滑过4整张图片,得到一幅新图,就是第二个正方体(128x128x16),k就是depth。这个过程就是卷积。通过卷积操作不断挤压空间维度,增加深度信息,在最后放置一个分类器,根据信息进行分类。

    1. 取图片一小块 :取的这一块就叫patch,有时也叫kernel。
    1. k是下一层的深度。
    1. 不改变权重也就是权重共享
    1. 滑过图片的像素就是stride(步幅),滑过有两种模式:same padding和valid padding,可以参考Tensorflow中padding的两种类型SAME和VALID

如何得到patch/kernel呢?

使用“滤波器(Filter)”,滤波器和patch的大小一样,“照”在patch上,在图片上滑过的就是滤波器。

通常会有多个滤波器,不同滤波器提取一个 patch 的不同特性。例如,一个滤波器寻找特定颜色,另一个寻找特定物体的特定形状。卷积层滤波器的数量被称为滤波器深度
——来自优达学城

每个patch与下一层的多少个神经元相连呢?

这取决于滤波器的深度,如果深度是 k,我们把每个 patch 与下一层的 k 个神经元相连。这样下一层的高度就是 k。

为什么让1个patch连k个神经元呢?
因为一个patch可以有多个可供提取的特点。

为什么要权重共享呢?
可以控制神经网络使用的内存空间。

比如识别一张照片中的猫,猫的位置是不重要的,如果网络要识别猫在左上角的情况或者右上角的情况,那工作量就很大了。当知道输入可能包含相同类型的信息时,可以共享权重,并利用这些输入共同训练权重。

可以做这样的计算:
假设H = height, W = width, D = depth

输入数据:

  • 维度为 32x32x3 (HxWxD)
  • 20个滤波器,维度为 8x8x3 (HxWxD)
  • stride(步长)高和宽的都为 2 (S)
  • padding 大小为1 (P)

输出层:

  • 14x14x20 (HxWxD)

没有参数共享每个输出层的神经元必须连接到滤波器的每个神经元此外每个输出层的神经元必须连接到一个偏置神经元

则卷积层有总共有(8 * 8 * 3 + 1) * (14 * 14 * 20) = 756560个参数。

有了参数共享,每个输出通道的神经元与相同通道的其它神经元共享权值。参数的数量与滤波器神经元的数量相同,加上偏置,再乘以输出层的通道数。

则卷积层总计有 (8 * 8 * 3 + 1) * 20 = 3840 + 20 = 3860个参数。是之前的196分之一。

CNN中如何计算卷积层的输出维度

理解维度可以帮你在模型大小和模型质量上,做精确的权衡。

假设H = height, W = width, D = depth

我们有

  • 一个输入维度是 32x32x3 (HxWxD)
  • 20个维度为 8x8x3 (HxWxD) 的滤波器
  • 高和宽的stride(步长)都为 2。(S)
  • padding 大小为1 (P)

计算新的高度和宽度的公式是:
new_height = (input_height - filter_height + 2 * P)/S + 1
new_width = (input_width - filter_width + 2 * P)/S + 1

则卷积层输出的维度为14x14x20

CNN的常见优化方法有什么

  • 池化
  • 1x1卷积
  • Inception模块
池化

我们通过调整步幅(stride),将过滤器(filter)每次移动几个像素的方法来降低特征图的尺寸,如果我们不采用每次移动多个像素的方法,而是每次依然移动很小的步幅,比如一个像素,但是把每个相邻的所有卷积通过某种操作结合在一起,这种操作就叫做池化。

通常把相邻卷积结合在一起的方式有:

  • 最大池化
    比如通过卷积得到一个输出层,然后我们有一个2x2的池化层,则通过池化层后的输出为2x2网格中最大的数。
  • 平均池化
    同样是上例,通过池化层的输出为2x2网格中所有数的平均数。

池化层的优点有:

  • 减小输出大小
  • 降低过拟合
    缺点:
  • 进行卷积的步幅小,计算量大
  • 有更多的超参数要调整——(1)池化尺寸(2)池化步幅

近期,池化层不是很受青睐,因为:

  • 现在数据集越来越大,我们更担心欠拟合的问题
  • Dropout是一个更好的正则化方法
  • 池化导致信息损失。比如n个数字的最大池化,只保留了1个数字,其余n-1个全部丢失。
    ——来自优达学城
1x1卷积

为什么要用1x1卷积呢?


传统卷积(图片来源于优达学城课程)

传统的卷积,它基本是运行在一小块图像上的线性分类器,但如果在中间加一个1x1卷积,就用运行在一小块图像上的神经网络,代替了线性分类器。


添加1x1卷积(图片来源于优达学城课程)

在卷积操作中散步一些1x1卷积是一种使模型变更深的低耗高效的办法,并且含有更多参数,但未完全改变神经网络结构。

Inception模块

神经网络的每一层,都可以选择进行池化、卷积运算,Inception模块不限于单个卷积运算,而是将多个模块组合,如下图:


Inception(图片来源于优达学城课程)

它看起来很复杂,但是根据你选择参数的方式,模型的参数总数可能非常少,但性能比使用简单卷积时要好。

常见的CNN网络结构有哪些?

  • Lenet-5,1998年,用于识别字母
    CLASSIFIER
    FULLY CONNECTED
    FULLY CONNECTED
    MAX POOLING
    CONVOLUTION
    MAX POOLING
    CONVOLUTION
    IMAGE
  • ALEXNET

CNN优化的超参数有哪些?

除了前几篇网络的一系列可调参数外还有:

  • stride:步幅
  • k:滤波器深度
  • 滤波器大小,数值
    如果池化的话,则还有:
    (1)池化尺寸(2)池化步幅

问题回答

至此,卷积神经网络的骨架搭建完毕。

  • 卷积神经网络是什么?
    卷积神经网络是一种空间上共享参数的神经网络。
  • 卷积神经网络和神经网络有什么区别?
    有卷积层,权重共享
  • 卷积神经网络模型有哪些参数可以调整(优化)?
    见上。

以上内容来自822实验室神经网络知识分享
我们的822,我们的青春
欢迎所有热爱知识热爱生活的朋友和822思享实验室一起成长,吃喝玩乐,享受知识。

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

推荐阅读更多精彩内容