卷积神经网络(convolutional neural networks)
使用全连接的网络架构来分类图像完全没有考虑图像的空间结构。卷积神经网络使用了一个特别适用于图像分类的特殊架构。卷积神经网络采用了三种基本概念:局部感受野(local receptive fields),共项权重(shared weights),和混合(pooling)。
局部感受野
第一个隐藏层中的每一个神经元都会连接到一个输入神经元的一个小区域,如图:
这个输入图像的区域被称为局部感受野。对于每一个感受野,在第一个隐藏层都对应一个隐藏神经元。
我们从左上角开始一个局部感受野,然后往右一个像素移动局部感受野,连接到第二个隐藏神经元,如此重复构建出第一个隐藏层:
假设我们有一个28X28的图像,一个5X5的感受野,那么隐藏层就会有24X24个神经元。
上面的局部感受野每次移动了一个像素。实际上有时候会用不同的跨距(stride)。
共享权重和偏置
卷积神经网络对每一个隐藏神经元使用相同的权重和偏置。
对第l层的第j个隐藏神经元,输出为:
其中,b是共享偏置,w是共享权重的5X5的数组。
共享权重和偏置意味着第一个隐藏层的所有神经元在输入图像的不同位置检测完全相同的特征。表明了卷积神经网络能够很好的适应图像的平移不变性。
我们把从输入层到隐藏层的映射称为特征映射,把定义特征映射的权重称为共项权重,定义特征映射的偏置成为共享偏置。
共项权重和共享偏置也称为一个卷积核或者滤波器。
一个完整的卷积层由几个不同的特征映射组成:
共享权重和偏置大大减少了参与的卷机网络的参数。
混合层(pooling layer)
混合层通常紧接着在卷积层之后使用。它要做的是简化从卷积层输出的信息。
一个混合层取得从卷积层输出的每一个特征映射,并且凝缩成简化的特征映射。
最大值混合(max-pooling)是一种常见的混合方式。在最大值混合中,一盒混合单元简单的输出其2X2区域的最大激活值:
一个24X24个卷积层神经元经过混合后得到12X12个神经元。
可以把最大值混合看作一种网络咨询是否有一个给定的特征在一个图像的哪个区域中被发现。直观上讲,一旦一个特征被发现,它的确切位置并不如它相对于其他特征的大概位置重要。
另一个常用的方法是L2混合(L2 pooling)。是取2X2区域中激活值得平方和的平方根。优化网络性能时可以使用验证数据来比较混合的不同方法,并选择一个工作的最好的。
综合
下面是一个完整的卷积神经网络:
网络中最后连接的层是一个全连接层。这一层将最大值混合层的每一个神经元连接到每一个输出神经元。
总结:卷积神经网络仍然是一个由很多简单的单元构成的网络,这些单元的行为由他们的权重和偏置决定。用训练数据来根据随机梯度下降和反向传播算法来训练网络中的权重和偏置,最终完成图像分类的任务。