一维卷积神经网络_卷积神经网络的关键技术

卷积神经网络是一种源于人工神经网络的机器学习方法,从谷歌的GoogleNet、微软的ResNet到AlphaGo,近年来CNN取得了巨大的成功。

在神经网络中,一个隐层神经元可以表征某种特征,不同隐层神经元又可以通过权重与临层神经元相连接,这样不同神经元实现了特征的逐层抽象。需要在前面指出,全连接神经网络每层神经元是一维排列的,而卷积神经网络每层的神经元是按照三维排列的,且具有宽度、高度和深度。几个卷积核就对应几组参数,并可以得到几个特征映射,而卷积核的个数是超参数。而卷积核就是神经元之间的连接权重,也就是卷积神经网络中需要训练的参数,为提高并丰富特征提取效果,可以在网络中设置多个卷积层,每个卷积层中设置多个卷积核。如图所示,卷积的基本过程可以表示为原图像(imput)、输出图像(output)和卷积核(kernel)三部分。

f3c2696c1118bf5cded2cab46686f6d5.png

卷积运算是一种可以使原始信号某些特征增强,并且降低噪声的操作,在CNN中也被称为卷积核,通常用图像过滤器(ilter)实现。它的重要作用就是实现神经网络的权值参数的共享和图像局部特征的提取,这也是图像特征提取与图像降维的第一步,常见的过滤器模板如图所示。

c43ef53dd1333ec718b783d0e3d303da.png

在Keras框架中,我们只需简单修改下网络结构,即可实现CNN 网络的构建,这对于 CNN初学者来说是一个令人兴奋的好消息。

例如,下面定义一个卷积神经网络∶

model=Sequential()

model.add(Convolution2D(25,3,3,input_shape=(28,28,1)))

可以看到,在新构建的网络模型 model基础上,只需用add)方法添加参数Convolution2D即可,其中,CNN使用了25个3×3的过滤器模板,且输入为28×28的单通道的图像数据,卷积核的个数是超参数,可以根据不同的需求设置。

综上所述,6×6的原始图像经过一组3×3的过滤器模板得到一组4×4的图像特征的总体操作流程,如图所示。

d09fca4c79f3d622482ed5c6962bed52.png

总而言之,在卷积神经网络的卷积层中,卷积核本质是神经元之间相互连接的权重,而且该权重被属于同一特征映射的神经元所共享。在实际的网络训练过程中,输入神经元组成的特征映射被交叠切割成卷积核大小的子图。每个子图通过卷积核与后层特征映射的一个神经元连接。一个特征映射上的所有子图和后层特征映射中某个神经元的连接使用的是相同的卷积核,也就是同特征图的神经元共享了连接权重。

池化层的主要的作用是去掉卷积得到的特征映射中的次要部分,进而减少网络参数。其本质是对局部特征的再次抽象表达,因此也叫子采样,常用的方式有均值子采样(mean pooling)和最大值子采样(max poling)。它们都可以看成特殊的卷积过程,在均值子采样的卷积核中每个权重都是1/4,卷积核在原图像上的滑动的步长为2,容易得到,均值子采样的效果相当于把原图像模糊并尺寸缩减至原来的1/4。在最大值子采样的卷积核中,各权重值中只有一个为1,其余均为0,卷积核中为1的位置对应原图像被卷积核覆盖部分值最大的位置。卷积核在原图像上的滑动步长为2。容易得到,最大值子采样的效果是也是把原图像缩减至原来的1/4,并保留每个2×2区域的最强输入。最大子采样和均值子采样池化操作的卷积过程可以按照如图3-12所示的计算过程表示。

本小节采用MaxPooling方法进行更高层次的图像信息抽取,这可以被理解为图像信息的第二次降维特征识别。我们继续对上一小节中,由过滤器模板1和过滤器模板2得到的4×4图像特征映射组进行2×2的分块MaxPooling池化操作。

7bb8ccd3f133063b4d1eed6651e22d84.png

经过MaxPooling操作,在每个分块中取最大值作为最终的池化特征信息抽象,得到新的图像如图所示。

我们可以看到,从最初的6x6 原始图像,经过与3×3 的过滤器模板卷积操作变成一组4×4的图像特征,最后经过2×2的MaxPooling池化操作压缩成为一组2×2的新图像。这一过程就是模拟大脑视觉皮层对边缘特征的提取,也正是这种逐层次的特征抽象,为大规模图像理解提供了新的研究思路。

相关研究表明,卷积和池化操作可以根据深度神经网络设计者的需求,进行多次重复设置,直至达到预定的特征抽取目标,这也是目前人工智能领域高性能深度学习神经网络层数越来越多的原因之一。

如图所示,2012年的AlexNet有8层,VGG具有19层,2014年GoogleNet 已达到22层,而2015年的ResNet 已经达到了惊人的152 层(这里的层指的是具有关键功能的层数)。尤其,ResNet的识别错误率可以达到3.57%,已经优于人眼的5.1%。另外,随着网络层数的增加,每次卷积核池化操作都可以帮助我们得到一个更高级的图像抽象。

09f3783faaa50a829c96bf8866bda684.png

扁平化(fatten),也叫拉直,是 Keras框架中进入全连接神经网络的一个具体操作,经过不断抽象的图像特征信息,最终利用扁平化操作高维特征矩阵"压缩并拉直"成一维向量,进而作为输入数据源进入经典的全连接前馈神经网络,其具体过程如图3-21所示。

在CNN的扁平化层,由卷积、池化操作得到的图像高级抽象被扁平化为一维向量,作为全连接前馈神经网络的输入。细心的读者会发现,与传统的神经网络相比,同样是相同的图像输入,CNN经过一系列的卷积与池化操作后,图像数据不断被抽象,进而网络参数大大减少,同时图像的关键信息并没有丢失,这个一维向量很好地保存这些关键特征,这就是 CN 较全连接神经网的最显著优势。

2761c0b289d2d64402cbb5d32f00a94f.png

卷积神经网络的关键技术模拟了人类视觉系统(HVS)对图像亮度、纹理、边缘等特性逐层提取过程,其核心思想是将稀疏连接(局部感知)、权重共享结合,减少网络参数个数,并获得图像特征位移、尺度的不变性。

(1)稀疏连接(sparse connectivity)

稀疏连接就是在 CNN中用相邻层神经元局部连接来模拟图像空间的局部相关性,也是对大脑皮层感受野的模拟。举例说明,如图3-22所示,通过网络连接可以看出,在 m 层的输入单元是 m-1 层单元的子集,这些单元的空间位置相邻的(spatially

contiguous),相当于视觉感受野。

假设m-1层是输入层,m层中的单元在输入层具有3个单元宽度的感受野,因此只和其中的3个相邻神经元连接。m+1层同样也只与下层的3个相邻神经元连接,其感受野也为3,但相对于输入层的感受范围更大,相当于感受野为5。神经元对感受野以外的神经元没有感知,这样的结构确保了"过滤器"只对局部空间输入模式产生最强的响应,这也就是卷积核(相当于过滤器)的本质解释。

而且,这样的堆叠结构,使得上层非线性"过滤器"变得越来越"全局",即响应于像素空间的较大区域,这反映了特征映射从低层次到高层次逐层抽象,越来越反映图像的本质特征和全局特性

(2)权重共享(shared weights)

CNN中,每个过滤器在同一个视觉野平面中复用,也就是在同一个视觉野平面内的神经元共享相同的参数(权重向量和偏置)并形成特征映射,如图3-23所示,3个隐藏单元属于同一特征映射平面,相同颜色的权重被不同神经元共享,也就是不同神经元之间的连接权重一样。需要注意的是,仍然采用梯度下降来学习这些共享参数,但共享权重的梯度变为共享参数的梯度之和。

这种权重共享方式与稀疏连接一样,大大减少学习参数的数量,提高了学习效率,使神经网络对图像特征提取、识别等问题上具有很好的泛化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值