卷积神经网络介绍

时间:2022-12-13 23:35:08

卷积神经网络介绍

本文由(https://deepnotes.io/intro)翻译并自行补充而来。

简单介绍

CNN是AI发展中最令人振奋的进步之一,早期由Yann LeCun等人提出。卷积神经网络在2012年被Krizhevsky开创性的推广下,在计算机视觉领域取得了广泛的成果,并且已经取代了传统的图像处理技术,成为解决计算机视觉问题的最新技术。CNN也正在被研究和应用于其他领域,如自然语言处理,最近facebook公司将CNN应用到机器翻译领域,并且比以往的序列神经网络模型快了数倍。文中介绍了CNN的几个核心思想:局部感受野、共享权重、池化层和非线性激活函数(ReLU)。

CNN是常规神经网络的一个变体,通过明确地假设输入是图像,代替常规神经网络中每一层由神经员网络层构成。CNN利用了输入的空间特性,它具有一系列采用3D输入的中间层,使用或不使用可学习的参数来执行可微分的操作,最后输出也是3D的。

局部感受野

与全连接网络不同的是,CNN每一层的每个神经元不需要全部连接到下一层的每个神经元。相反,CNN仅在输入图像的小的2D局部区域中进行连接,称为局部感受野。对于每个感受野,其在每一层中都存在不同的神经元,这大大减少了训练的权重数量和网络的计算复杂度。

在卷积运算时,对于2D图像的边界,CNN一般要做零补足(zero padding)。通过对称地添加零来填充输入矩阵边框周围。对输入进行补足保留了原始输入,并且防止了边界快速丢失数据。整个过程在CNN中由零补足的超参数控制。

局部感受野的滑动可以通过stride超参数(步幅长度)来控制,stride指的是一次移动的像素数。这两个超参数都控制这输出值的空间大小。

共享权重和偏置

CNN另外一个特点:对于每个隐藏神经元都具有相同的权重和偏置。通过共享权重和偏置,网络被强制要求学习权重以检测图像不同部分的特征。这意味着在网络层中每个神经元在输入图像的不同位置检测同一种特征。

CNN适合于图像的转换不变性,这意味着网络试图检测图像中的不变性特征,一旦检测到特征,该特征的位置变得无关紧要。

定义CNN每层的卷积核的权重称为内核或滤波器(参考图像处理里的各种滤波器)。要执行图像识别,CNN需要多个功能图,所以卷积层由几个不同的特征图组成。

共享权重和偏差的另一大优点是它也大大减少了网络需要学习的参数数量,有助于加快学习过程。较少的参数意味着降低了模型的过拟合的可能性。

池化层

池化层是卷积层之后通常会使用的另一种类型的网络层。它们对每个特征图采取诸如平均值或最大值的统计聚合策略来简化或总结卷积层中的信息。最常见的池化层形式是最大化,其简单地输出卷积层的最大激活。

Rectified Linear Units

由于sigmoid和tanh激活函数过早趋于饱和的特性,深度全连接网络面临学习减速的问题。为了避免这个问题,CNN使用整流线性单元或ReLU激活函数。ReLU函数定义为f(z)=max(0,Z),这意味着所有的负激活都定义为0。ReLU激活函数已经显示出优于基于sigmoid和tanh激活函数的神经网络,通常被实现为对输入执行元素激活功能的层。

卷积神经网络介绍

将四个核心组件放在一起

CNN利用了输入空间信息的优点。卷积和池化层学习输入图像中的局部空间结构,网络后接的全连接层用于更抽象的层面上学习,整合来自其它层的知识来执行分类。

整个网络结构被设置成卷积、ReLU和池化等一系列层,最终使用全连接层产生输出分数。

所有层都实现了前向和反向的API,前向传播计算每一层传递的激活,反向传播使用上面的梯度和局部梯度计算层来计算每一层的可学习参数的梯度。

梯度消失问题

在深度神经网络中,梯度总是不稳定的,这导致了在训练过程中梯度消失或爆炸问题。CNN如何解决这个问题呢?
  1. 卷积层和池化层大大地减少了学习的参数量,使得学习问题变得更简单点。
  2. CNN利用卷积和dropout层的正则化性质,大大减少了过度拟合。
  3. 使用Batch Normalization等新技术可以减少内部协方差转换,有助于平滑学习。
  4. 使用ReLU激活有助于加快训练速度并避免神经元饱和。