深度学习之---卷积神经网络

1.简介

本篇介绍卷积神经网络。今年来深度学习在计算机视觉领域取得突破性成果的基石。目前的工业场景应用也是越来越多,比如自然语言处理、推荐系统和语音识别等领域广泛使用。下面会主要描述卷积神经网络中卷积层和池化层的工作原理,并解释填充、步幅、输入通道和输出通道的含义。
后面也会介绍一点比较有代表性的神经网络网络结构,比如:AlexNet、VGG、NiN、GoogLeNet、ResNet、DenseNet。

2.二维卷积层

什么是二维卷积层?

  • 卷积神经网络(convolutional neural network)是含有卷积层(convlutional layer)的神经网络。
  • 所谓二维卷积层,就是只有两个维度的卷积神经网络,只有高和宽两个空间维度,常用来处理图像数据。

【二维互相关运算】

  • 虽然卷积层得名于卷积运算,但我们通常在卷积层中使用更加直观的互相关运算。
  • 在二维卷积中,一个二维输入数组和一个二维核数组通过互相关运算输出一个二维数组。
  • 如下图的二维互相关运算,输入是一个高和宽都是3的二维数组;核是一个2 x 2 的二维数组。
  • 核,又称作卷积核或过滤器。卷积核窗口的形状取决于卷积核的高贺宽,即2 x 2 。
  • 那怎么计算:0 × 0 + 1 × 1 + 3 × 2 + 4 × 3 = 19。简单描述就是,对应位置元素相乘再相加。在这里插入图片描述
  • 整个运算,卷积窗口从输入数组的最上方开始,从左到右、从上到下,依次在输入数组上滑动。每滑动一次就计算一次。

【二维卷积层】

  • 二维卷积层将输入和卷积核做互相关运算,并加上一个标量偏差来得到输出。卷积层的模型参数包括了卷积核和标量偏差。在训练模型的时候,通常我们对卷积核随机初始化,然后不断迭代卷积核和偏差。

【图像中物体边缘检测】

  • 检测图像中物体的边缘,也就是找到像素变化的位置。
  • 举个栗子:构造一个6 x 8图片。中间4列为黑色,其余为白色。目标是寻找到黑色和白色的边界。
    在这里插入图片描述
  • 用一个1 x 2 的卷积核进行卷积操作。
    在这里插入图片描述
  • 进行完成二维互相关运算后得出结果。
    在这里插入图片描述
  • 由栗子可以看到,卷积层可以通过重复使用卷积核有效的表征局部空间。

【互相关运算和卷积运算】

  • 实际上,卷积运算和互相关运算类似。
  • 为了得到卷积运算的输出,我们只需要将核数组左右翻转并上下翻转,再与输入数组做互相关运算。
  • 可见,卷积运算和互相关运算虽然类似,但如果它们使用相同的核数组,对于同一个输入,输出往往并不相同。
  • 那么,肯定会有同学好奇,卷积层为何能使用互相关运算替代卷积运算。
  • 其实,在深度学习中核数组都是学出来的:卷积层无论使用互相关运算或者卷积运算都不影响模型预测时的输出。
  • 为了解释这一点,假设卷积层使用互相关运算学出图5.1中的核数组,设其他条件不变,使用卷积运算学出的核数组,即图5.1中的核数组按上下、左右翻转。也就是说。图5.1中的输入与学出的已翻转的核数组再做卷积运算时,依然得到图5.1中的输出。

【特征图和感受野】

  • 二维卷积层输出的二维数组可以看做是输入在空间维度(宽和高)上某一级的表征,也叫做特征图(feature map)。影响元素 x x x的前向计算的所有可能输入区域(可能大于输入的实际尺寸)叫做 x x x的感受野(receptive field)。
  • 以图5.1为例,输入中阴影部分的四个元素是输出中阴影部分元素的感受野。

在这里插入图片描述

  • 将图5.1中形状为2 x 2 的输出记为 Y Y Y,并考虑一个更深的卷积神经网络:将 Y Y Y与另一个形状为2 x 2 的核数组做互相关运算,输出单个元素 z z z
  • 那么, z z z Y Y Y上的感受野包括 Y Y Y的全部四个元素,在输入上的感受野包括其中全部9个元素。
  • 可见,可以通过更深的卷积神经网络使得特征图中单个元素的感受野变得更加广阔,从而捕捉输入上更大尺寸的特征。
  • 这里所说的“元素”,描述的是矩阵中的成员。有的地方也称作“单元”。

3.填充和步幅

上面提到了卷积运算,我们知道,使用3 x 3 的输入,与2 x 2 的卷积核得到的输出是 2 x 2 ;一般来说,假设输入的形状是 n h ∗ n w n_h * n_w nhnw,卷积核窗口形状是 k h ∗ k w k_h*k_w khkw,那么输出形状将会是:
( n h − k h + 1 ) ∗ ( n w − k w + 1 ) . (n_h - k_h + 1)*(n_w - k_w +1). (nhkh+1)(nwkw+1).
所以,卷积层的输出形状有输入形状和卷积核窗口形状决定。下面介绍的卷积层的两个超参数,即填充和步幅。它们可以对给定形状的输入和卷积核改变输出形状。

【填充】

  • 填充(padding)是指在输入高和宽的两侧填充元素(通常是0元素)。
  • 如下图,就是对原来的图像进行了padding处理

在这里插入图片描述

  • 一般来说,如果在高的两侧一共填充 p h p_h ph行,在宽的两侧一共填充 p w p_w pw列,那么输出形状将会是:
    ( n h − k h + p h + 1 ) ∗ ( n w − k w + p w + 1 ) . (n_h - k_h + p_h+ 1)*(n_w - k_w+ p_w +1). (nhkh+ph+1)(nwkw+pw+1).
  • 也就是说,输出的高和宽会分别增加 p h p_h ph p w p_w p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值