神经网络学习(十一)卷积神经网络初识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hoho1151191150/article/details/79613077

系列博客是博主学习神经网络中相关的笔记和一些个人理解,仅为作者记录笔记之用,不免有很多细节不对之处。

三个基本概念

卷积神经网络(Convolutional Neural Network)采用三种基本概念:局部感受野(local receptive fields),共享权值(shared weights)和池化(pooling,也有称为混合,或者subsample,下采样)。让我们逐个看下。

局部感受野

在之前的全连接层的网络中,输入被描绘成纵向排列的神经元,但在一个卷积网络中,把输入看作是28 × 28的方形排列的神经元,其值对应于我们用作输入的像素强度。和通常一样,我们把输入像素连接到一个隐藏神经元层。但是我们不会把输入像素连接到每一个隐藏神经元。相反,我们只把输入像素进行局部连接。

说的确切点,第一个隐藏层中的每个神经元会连接到一个输入神经元的小区域,可能看起来像这样的连接

这里写图片描述

这个输出图像的区域被称为隐藏神经元的局部感受野。它是输出像上的一个小窗口。每个连接学习一个权重。而隐藏神经元同时也学习一个个总的偏置。你可以把这个特定的隐藏神经元看作是在学习分析它的局部感受野。

我们然后在整个输出图像上移动局部感受野。对于每个局部感受野,在第一个隐藏层中有一个不同的隐藏神经元。为了正确说明,让我们从左上⻆开始一个局部感受野:

这里写图片描述

然后我们往右移动局部感受野,连接到第二个隐藏神经元:

这里写图片描述

如此重复,构建起第一个隐藏层。实际上,有时候会使用不同的跨距(stride)。例如,我可以往右(或下)移动 2 个像素的局部感受野。

共享权重和偏置

共享权值就是对于一个输入,我们利用同一个权值。比如对于28 × 28的输入图像,我们利用同一个5 × 5的卷积核(kernel) w 和同一个偏置 b ,那么隐层输出可以表示为

a l + 1 = σ ( w a l + b )
这个卷积核 w 就是我们需要训练的参数。

权值共享实际上就是我们进行特征自动提取的实现手段。通俗的讲,卷积可以认为是,我们拿一个特征图像 w 在输入上逐个的进行扫描对比,卷积获得的值可以认为是用来描述输入图像与特征图像的相似度。卷积核 w 又可以称为特征检测器,滤波器。因为这个原因,我们有时候把从输入层到隐藏层的映射称为一个特征映射(feature map)。通过不断的训练,我们就可以自动地寻找到可以很好描述输入的特征滤波器。

目前我们描述的网络结构只能检测一种局部特征的类型。为了完成图像识别我们需要多个特征映射。所以一个完整的卷积层由几个不同的特征映射组成:

这里写图片描述

共享权重和偏置的另一个很大的优点是,它极大减少了参与的卷积网络的参数。对于每个特征映射我们需要 25 = 5 × 5 个共享权重,加上一个共享偏置。所以每个特征映射需要 26 个参数。如果我们有 20 个特征映射,那么总共有 20 × 26 = 520 个参数来定义卷积层。作为对比,假设我们神经网络的第一层为全连接层,隐层含有 30 个神经元,那么总共有784 × 30 个权重,加上额外的 30 个偏置,共有 23; 550 个参数。换句话说,这个全连接的层有多达 40 倍于卷基层的参数。

池化

池化层(子 采样,下采样,降采样等等)通常紧接着在卷积层之后使用。它要做的是简化从卷积层输出的信息,同时具有抗噪音的作用。池化层有两种常用的方式:均匀池化(mean-pooling)和最大值池化(max-pooling)。池化也可以认为是一种特殊的卷积层,比如我们利用2 × 2的池化核,卷积过程中的跨距(stride)的值刚好也是2,那么这个过程就是池化。下面以2 × 2池化核说明这两种不同的池化方式

  1. 最大值池化:取这4个数值中最大的一个作为下采样的值。
  2. 均匀池化:起到模糊平均的作用,4个数值求和平均作为下采样的值(可认为池化核的值为0.25)


    这里写图片描述

    结构示例

    卷积神经网络的结构各式各样,下面是一个简单的结构图

    这里写图片描述

猜你喜欢

转载自blog.csdn.net/hoho1151191150/article/details/79613077