2.1_.JPG

 
前言:上一期推送了一篇文采洋溢的散文,发现阅读量明显下降,看来技术宅男大概是不需要文学来熏陶的吧。这一期聊一下卷积神经网络的基础原理。
 
 

    前面提到了后向传播(BP)算法的基础图模型,这是在计算机自动求导中使用的最基本模型,它为深度学习模型的梯度下降算法训练提供了必要条件。有了BP算法的基础,现在来总体看一下深度学习的流程。
 

    深度学习一般包括三大块,即数据采集、模型构建、训练优化。其中,模型构建是起着至关重要的作用。从是否具有时间关联性的角度来看,深度学习分为非时序模型和时序模型。简单来说,非时序模型的应用场景是数据不具有时间维度上的展宽,例如一张图片;而时序模型的应用场景是数据需要具有时间维度上的展宽,例如一个音频文件或者视频文件。
 

    非时序模型的搭建一般相对容易,常见的有前馈式神经网络,它由输入层、隐含层和输出层构成,并且最显著的特征是它的隐含层上各神经元之间不存在连接,这就导致前馈式神经网络是不具有时序记忆性的。
 

    时序模型的处理要麻烦很多,最常见的时序模型时循环神经网络,它的总体结构和前馈式神经网络相似,最大的不同之处就是其隐含层上各神经元之间是存在连接的,即前一时刻的特征会对下一时刻产生一定的影响。
 

    无论是时序问题还是非时序问题,卷积神经网络都可以应用到其中。原因是卷积神经网络既可以对空间信息进行卷积,也可以对时间信息进行卷积。例如,在图像识别中,卷积神经网络的应用是在空间维度上的;在语音识别中,卷积神经网络的应用是在时间维度上的。接下来,我们来具体看一下卷积神经网络的原理。
 

    卷积神经网络通常由卷积层(Convolutional Layer)池化层(Pooling Layer)构成,卷积神经网络可以用于一维数据,也可以用于二维数据,下面以二维数据来分析讲解。
 

    卷积层的操作通常是一定个数的滤波器构成的,滤波器负责依次对上一层的输入特征进行局部卷积操作,因此,这里一般需要设定一个卷积核的大小,在ImageNet比赛中,二维卷积核的大小为3*3,这也被认为是最佳的卷积核,滤波器的个数一般因数据量的大小而定义。值得注意的是,对于标准的卷积神经网络,在每个滤波器中,所有的局部卷积的权重是共享的,至于为什么需要共享权重,我想这个灵感是源自于图片的对称性,即你可以在一幅图片中识别出一只猫,而不管这个猫的姿势是水平的还是倾斜的,有点类似于编程中,写了一个函数,在多处被使用。
 

    对于每一个卷积层,除了滤波器的数量和卷积核的大小需要确定之外,还有铺平(padding)的大小需要确定,铺平即意味着在两端用0去补充;并且平移(stride)的大小也需要确定,在二维中,一般是指水平方向和垂直方向的每次局部卷积所移动的步长。
 

    这样,卷积层的操作就很易懂了,例如若一个原始特征矩阵为

    1    2    3
    4    5    6
 

设定只包含一个滤波器,卷积核的大小为2*2,并且padding为None,stride为(1,1),如果初始权重矩阵为

    0.1    0.2
    0.3    0.4
 

那么,局部卷积过后的矩阵为

    3.7    3.7
 
 

    上面就是卷积层的操作,下面来提一下另外一个结构——池化层。池化层简而言之就是局部降维。一方面池化是为了减少网络的参数,另一方面池化也是一种平滑处理的手段,即可以更大程度地减少噪音的负面影响。局部池化的维度(Pooling size)需要去设定,同时,池化也具有stride属性,含义同上。池化的方式一般有两种,最大池化和平均池化。最大池化的意思是对一个局部只取最大的那个元素保留下来;而平均池化的意思是对一个局部取所有元素的平均值保留下来。例如如果一个池化前的矩阵为

    1    2    9    4
    5    6    8    8
    7    8    6    9
    1    3    5    7
 

那么,若设定池化大小为(3,3),stride大小为(1,1),那么采取最大池化后的矩阵变为

    8    9
    8    9
 
 

以上就是卷积神经网络的基本结构了,下面附上一张图来直观感受一下。

2.2_.jpg

 
 
 

来源;张泽旺 深度学习每日摘要
智造家