上回书说到,处理序列的基本深度学习算法分别是循环神经网络(recurrent neural network)和一维卷积神经网络(1D convnet)。上篇构建了基础的LSTM模型,这一篇自然轮到CNN了。
目录
CNN介绍
卷积神经网络是多级神经网络,分为滤波级和分类级两级。滤波级用来对初始信号进行过滤,筛选出需要的信息,消除不相关的噪声;分类级对处理完的特征信息进行分类归纳,完成最后的识别分类工作。两者在训练中同时进行,优化各自的参数。滤波级包含卷积层和池化层,分类级一般由全连接网络组成。下面简单介绍一下卷积神经网络的各组成部分。
1.卷积层
卷积层使用卷积核对输入信号或特征的局部区域进行卷积计算,来提取需要的关键信息。卷积层最重要的特点就是权值共享,即使用同一个卷积核,以固定的步长遍历一次输入,以减少卷积层的参数,避免参数过多导致过拟合。
卷积(Convolution)是一种在机器学习中很重要的数学运算,在信号处理和图像处理中,通常使用一维或二维卷积。由于本文需要处理的是包含轴承故障信息的一维数据,所以使用一维卷积运算,构建一维卷积神经神经网络进行故障诊断。
具体一维卷积的计算方法就不多说了,想了解的可以参看邱锡鹏老师的神经网络与深度学习。
卷积的主要功能是在某种特征上滑动卷积核,通过卷积操作获得一组新的特征,但在计算卷积的过程中通常需要将卷积核翻转,为了避免进行卷积核翻转,一般会用互相关操作来代替卷积。互相关是一个衡量两个序列相关性的函数,通常用滑动窗口的点积计算来实现。互相关和卷积的差别仅仅在于卷积核是否进行翻转,因此互相关也被称作不翻转卷积。在神经网络中,卷积操作是为了提取特征,是否翻转卷积核对提取特征的效果无影响,所以为了方便起见,大多使用互相关代替卷积运算。
卷积层的作用是提取一个局部区域的特征,每个卷积核遍历一次卷积层,同时进行卷积计算。卷积操作时,卷积核与被卷积区域的系数相乘,得到结果。然后以固定步长移动卷积核,重复之前的遍历操作,直至遍历完整个区域。
2.池化层
池化层(Pooling Layer)别称较多,子采样层、下采样层、汇聚层都是指池化层。池化层主要作用是减少参数数量,降低原始特征的数量。
卷积层虽然很大程度上已经减少了神经网络中的连接数量,但对于特征映射组中的神经元,个数并没有明显减少,后续输入的维数仍然较高,容易造成过拟合,所以通常都会将卷积层和池化层配合使用,可以有效降低特征维数。经过卷积层节点矩阵深度会改变,而池化层不会改变节点矩阵的深度,只会缩小节点矩阵的大小。
假设池化层的输入特征映射组为 ,对于其中每一个特征映射
,将其划分为很多区域
,这些区域可重叠也可不重叠,池化操作就是对这样的一个区域进行下采样,得到一个值作为这个区域的概括。简单的说,池化就是将特征映射划分为多个区域,并用一个值概括每个区域的过程。
常用的池化方式有两种:最大池化(Maximun Pooling)和平均池化(Mean Pooling)。最大池化就是取该区域所有神经元的最大值,平均池化是取区域内神经元的均值。

这里选择采用最大池化,可以减少参数,并获得位置无关的特征。
3.全连接层
全连接层一般位于神经网络的顶端,之前网络层的输出经过Flatten层展平为一维数据,作为后续全连接层的输入,在将其与输出层之间构建全连接网络。最后的输出层通常选择Softmax函数作为激活函数,Softmax函数可以将输入的神经元映射到(0,1)的区间,可看作概率分布,便于后续操作。以此将滤波级提取出来的特征进行分类。