概述
卷积神经网络是一种特殊的深度前馈神经网络,为了避免层级之间全连接造成的参数冗余,而导致网络模型的训练依赖于参数个数的数据量;它的设计选择局部连接,符合生物神经元的稀疏响应特性(神经元的感受野,具有局部响应特性,只有某个局部区域内的刺激才能激活该神经元),这样便可大大降低网络模型的参数规模。
对于卷积神经网络而言,感受野是每一层输出的特征图上的像素点,在原图像上映射的区域大小。
卷积神经网络的基础模块为卷积流,包括卷积(用于维数扩展)、非线性(稀疏性、饱和、侧抑制)、池化(空间或特征类型的聚合)和批量归一化(优化操作,目的是加快训练过程中的收敛速度,同时避免陷入局部最优)这四种操作。
卷积
利用卷积核对输入图片进行处理,可学习到鲁棒性较高的特征。
卷积操作包含两个参数即stride和zero padding,其中stride指的是窗口从当前位置到下一位置,跳过的中间数据个数;zero padding是指将原始数据的周边补上0值的圈数。
卷积操作的核心是:可以约减不必要的权值连接,引入稀疏或局部连接,结合权值共享策略大大地减少参数量相对地提升了数据量,从而可以避免过拟合现象的发生;另外,由于卷积操作具有平移不变形,使得学到的特征具有拓扑对应性、鲁棒性的特征。
池化
池化是降采样操作,即在一个区域内,采取一个特定的值作为输出值。
本质上,池化操作执行空间或特征类型的聚合,降低空间维度,其主要意义是:减少计算量,刻画平移不变特性;约减下一层的输入维度(核心是对应的下一层的参数有效降低),有效的控制过拟合风险。
池化的操作方式有多种形式,例如最大池化、平均池化、范数池化等。除此之外,还有空域金字塔池化,它是一种多尺度的池化方式,可以获得输入(指卷积后的特征映射图)的多尺度信息;另外,空域金字塔池化可以把任何尺度的图像的卷积特征转化成相同维度,这不仅可以让卷积神经网络处理任意尺度的图像,还能避免cropping和wrapping操作所导致的一些信息丢失,具有非常重要的意义。
激活函数
激活函数是非线性操作,通过弯曲或扭曲实现表征能力的提升。
激活函数的核心是:通过层级(简单)非线性映射的复合使得整个网络(复杂)的非线性刻画能力得到提升,若网络中没有非线性操作,更多的层级组合仍为线性逼近方式,表征或挖掘数据中高层语义特性的能力有限。
常用的激活函数有:修正线性单元ReLU(加速收敛,内蕴稀疏性)、Softmax(用于最后一层,为计算概率响应)、Softplus函数(ReLU的光滑逼近)、Sigmoid系(传统神经网络的核心所在,包括Logistic-Sigmoid函数和Tanh-Sigmoid函数)。
批量归一化
归一化操作能减少训练过程中的不稳定性,避免随着层级的加深而导致信息的传递呈现逐层递减的趋势。
因为数据范围大的输入在模式分类中的作用可能偏大,而数据范围小的输入作用可能偏小,总之数据范围偏大或偏小,可能导致深度神经网络收敛慢、训练时间长。