卷积神经网络-第一周-吴恩达 Deep Learning Specialization 学习笔记

计算机视觉

通过神经网络处理计算机视觉问题时的一个比较显著的挑战是输入的数据量会非常大,例如对于一张分辨率仅在 64 x 64 的彩色图片,如果按照图片上的 RGB 通道展开后组装成的特征向量维数就已经是 64 x 64 x 3 = 12288。而对于高清图片来说,输入特征向量的维数将呈指数级上升。同时,在将图片组装成向量的过程中,图片中原本存在的不同像素信息间的空间关系被忽略掉了,这使得网络无法通过这些关系来更加高效的进行模式识别,这对于图像型任务来说是一个重大的损失,聪明的计算机科学家们肯定不会接受神经网络仅能处理低分辨率的图片,卷积神经网络(Convolutional neural network)的应用有效的解决了这个问题。

边缘检测

前面曾简单提到利用神经网络识别物体的时候,网络的浅层会先做微小线条的边缘检测,随着层次的深入再逐步的识别小的局部结构,最后再拼装成一张完整的待识别物体的形状。最基本的边缘检测就是如下图所示的垂直边缘检测和水平边缘检测:

Edge detection

边缘检测的实现过程是将原有的输入图片信息矩阵与一个被称作过滤器(filter),也称作核(kernel)的参数矩阵做卷积运算。这个过滤器矩阵中的参数可以完成对于图片某一个特征的识别,如水平边缘,垂直边缘,成某一角度的边缘,RGB值等,一个典型的垂直边缘检测过滤器如下图所示:

Vertical filter

之所以称为垂直边缘检测过滤器是因为原有图片信息与上述过滤器矩阵做卷积运算后会得到原有图片中的垂直边缘所在的位置,如下图所示:

Vertical edge detection

将这个矩阵绕中心点顺时针旋转 90° 后的矩阵则变为水平边缘检测过滤器。需要注意的是这两个过滤器都只是过滤器的典型实例,实际应用中的过滤器的维度和各个位置的参数都是可以变化的,并且是要通过卷积神经网络的训练来确认过滤器各个位置的参数。

这一部分的卷积运算的操作过程与常规的矩阵乘法运算很不一样,所以一定要多看几遍视频并且记住这个运算过程。

Convolution computation, Image source: [http://iamaaditya.github.io/2016/03/one-by-one-convolution/]

图片 Padding

从上面的例子中可以看到:

  • 在每一次做卷积运算后图像都会被压缩,且对于尺寸为 n x n 的图片,使用 f x f 的过滤器,则卷积运算后的图片尺寸为 (n - f + 1) x (n - f + 1)

  • 图片边缘的像素信息在运算中只被使用了一次(可以理解为容易被网络忽略)

这两个现象如果不加以控制,在深度神经网络训练中会产生很多问题,例如图片可以经过多次变换后变成 1x1 的一个像素点,这样大量的图片信息就丢失了。为了解决这个问题,可以采用对图片做 Padding 的方式,即在图片的每一个边缘垂直添加 p 个像素占位,使得卷积运算后图片的尺寸变成 (n + 2p - f + 1) x (n + 2p - f + 1)。上述不加 Padding 的卷积运算方式称为 Valid convolution,而如果想保留图片原有的尺寸,那么这种卷积运算方式称为 Same convolution。此时通过计算可以得到 p = (f - 1) / 2,这就是通常所用的过滤器的维数都是奇数的原因之一,另一个原因是其中心位置可以作为过滤器的位置坐标来便于定位。

但需要注意的是如果步长不是 1 则即便选用 ‘same' padding 的方式输出的尺寸仍然会发生变化,在实际应用中一般选择 s = 1 而将尺寸缩减任务交给池化层。

卷积步长

上述卷积运算过程中过滤器矩阵每次移动一个像素的距离,这个偏移的距离实际上是可以作为超参数进行设置的,被称为步长 stride,用 s 代替,考虑了步长的卷积运算图片尺寸计算公式为:

  • (n + 2p - f) / s + 1 x (n + 2p - f) / s + 1

(n + 2p - f) / s 不是整数时向下取整,这意味着图片的边缘会有部分像素被舍弃掉,不参与计算。

这里需要注意的另外一点是在神经网络这个领域中的卷积运算与数学教科书上的卷积运算定义是不一致的,如果按照数学领域的定义那么神经网络中的卷积运算应该称为 cross-correlation,但为了遵从这个领域前人的命名习惯,在这里依然将其称为卷积运算。

三维数据的卷积操作 Convolution over volume

上面垂直边缘检测这个例子中卷积运算中使用的图片是灰度图片,由于没有 RGB 通道值,因此都是二维的操作。而对于彩色图像来说,由于其具备 RGB 值,那么就需要使用三维的过滤器。此处约定对于图片和过滤器的尺寸的表示方法为 Height x Width x Channels,对应的符号表示为 nH x nW x nC,且需要进行运算的图片的通道数和过滤器的通道数(也被称为深度)必须一致。

对应下面这个例子来说,由于在计算时是将 27 个位置的乘积求和,因此使用单一的 3 通道边缘检测过滤器运算得到的结果是二维的,在实际运算过程中可以在同一层中使用多个过滤器,从而使该层的输出也是三维的。

Convolutions with RGB images

单层卷积神经网络

对比之前的 Standard neural network,可以将卷积神经网络中的过滤器理解为带有通道的权重参数矩阵 W,在卷积运算基础上会在输出矩阵的各个元素位置上添加一个偏移量 Bias,也即 b,再用激活函数激活这个线性求和的结果,就得到了单层卷积神经网络的计算输出过程。

Single layer conv net

为了便于后续说明,课程中相关符号及对应参数表示统一如下:

  • l 层的过滤器单一通道上的维数:f[ l ]

  • l 层的 padding 的大小:p[ l ]

  • l 层的步长的大小:s[ l ]

  • l 层的单一过滤器的通道数量:nC[ l ]

  • l 层的单一过滤器的参数矩阵大小:f[ l ] x f[ l ] x nC[ l-1 ]

  • l 层的 nC[ l ] 个过滤器的参数矩阵 W[ l ] 的大小:f[ l ] x f[ l ] x nC[ l-1 ] x nC[ l ],这里由于上一层过滤器的数量决定了下一层的通道的数量,因此统一采用 nC 表示,并加注层数以便于区分

  • l 层的 bias 的数量:nC[ l ]

  • 对于 l 层的输入的维数:nH[ l-1 ] x nW[ l-1 ] x nC[ l-1 ]

  • 对于 l 层的输出 a[ l ] 的维数:nH[ l ] x nW[ l ] x nC[ l ]

  • 当使用 m 个样本进行训练的时候,输出矩阵 A[ l ] 的维数表示方法为:m x nH[ l ] x nW[ l ] x nC[ l ]

  • 其中 nH[ l-1 ] = (nH[ l-1 ] + 2p[ l ] - f[ l ]) / s[ l ] + 1, nW[ l-1 ] = (nW[ l-1 ] + 2p[ l ] - f[ l ]) / s[ l ] + 1,不能整除时向下取整

A basic building block of convolution neural block

基于体积数据的卷积

在卷积神经网络的应用中,通常都是要将输入图片经过多层的卷积神经网络来进行处理,并且一般初期几层对于图片尺寸的压缩较小,但随着网络的深入会逐渐压缩,相对应的输出在过滤器数量上的维度会变得更大,后续再将最后一个卷积层的输出值展开成一个向量,再将这个向量作为标准神经网络的输入,最后传入到 Logistic 或 softmax 回归中,以判断图片是否包含某个物体或包含某类物体的概率。在此过程中比较耗时是如何选择各层的过滤器的数量,padding 的大小,步长的大小等,后续会对如何选择做介绍。

Typical parameters and activation trend in Conv net

这里我觉得 Andrew 在计算过滤器的参数时应该是假定不同通道的参数是相同的,这个实际上应该是个错误,但不影响问题说明。

池化层(Pooling layer)

在卷积神经网络应用中,网络内部常见层除了卷积层外还有池化层( Pooling layer)和全连接(Fully connected)层。全连接层就是标准的神经网络层,而池化层的目的在于减小网络中传递的信息量,并提高特征识别的稳健性。其本质仍然是卷积层,只不过池化层所用的过滤器对于输入的运算方式发生了改变,如在最常用的 max pooling 中,会选择输入在过滤器维数大小的矩阵中的最大值,而 average pooling 则是取过滤器矩阵范围内的图片信息的平均值,且一般在较深的层中才偶有应用。

Max pooling

当池化层的操作对象有多个通道时,运算会发生在每一个通道上,因此池化操作不改变通道数。鉴于池化层一般只做上述两种运算,因此池化层过滤器只有两个超参数:f, s,一般都取 f = 2, s = 2,并且图片基本不做 padding,这样的一次池化操作的结果是会将输入在高度和宽度方向的尺度缩小近 50%,个别情况下也有选择 f = 3, s = 2。由于在池化层中没有需要学习的权重参数,也因此在很多相关的文献中会将其与前面一层的卷积层一起记为卷积神经网络的同一层。

Global Average Pooling

其操作方式为对于一个通道上的 Feature Map 上的数值整体取均值,例如对于一组 56x56x256 的输入来说,如果经过 GAP 操作则得到的输出是 1x1x256,即其结果相当于一个全连接层。GAP 与全连接层相比一方面大大减少了参数的值,另一方面也减少了过拟合的风险,因此常常被在网络末期利用 GAP 操作代替全连接层。

卷积神经网络的优势

从上述计算过程可知,卷积神经网络相比标准的全连接神经网络其优势在于参数共享(parameter sharing)和连接的稀疏性(sparsity of connections):

  • 参数共享体现在在实际计算过程中同一个过滤器参数矩阵可以在图片的不同区域得以应用,从而大大减少了参数的量

  • 连接的稀疏性则体现在每一个输出值仅仅由过滤器区域内的几个输入决定,而不是由全体输入共同决定。

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

推荐阅读更多精彩内容