1.一种基于Nesterov动量法的自适应深度置信网络轴承故障诊断方法,其特征在于,包括步骤:步骤1:对滚动轴承不同健康状态的原始信号进行样本划分,生成训练样本;
步骤2:通过层叠RBM构建DBN模型,将训练样本输入DBN模型,结合批量随机梯度下降法和贪婪逐层无监督算法预训练DBN模型,在DBN模型中加入Nesterov动量法和独立自适应学习率;
步骤3:在预训练好的模型顶层接入Softmax分类器,使用监督算法单独训练Softmax分类器,接着利用BP算法和共轭梯度法进行全局微调,获得模型最优参数;
步骤4:输入未知状态信号,形成测试样本集,将测试样本输入训练好的DBN模型和Softmax分类器判断滚动轴承的工作状态和故障类型;
所述步骤1具体包括以下步骤:
步骤1.1:以滚动轴承在不同健康状态下的振动信号作为原始数据X,根据振动信号的采样频率和轴承转动速度,轴承转动一个周期采集到的信号数据个数表示为 其中:n为轴承转动一个周期采集到信号数据个数,r为轴承转动速度,单位为r/min,f为采样频率,单位为Hz;
步骤1.2:以n为一个样本长度,将轴承不同健康状态下的振动信号划分成训练样本集X′,其中X′(g)∈Rn,X′(g)表示训练样本集中第g个训练样本,并为每一种健康状态设置标签L,其中L(g)∈{1,2,3,...,k},L(g)表示第g个训练样本的标签,k表示分类类别;
所述步骤2具体包括以下步骤:
步骤2.1:层叠RBM建立DBN模型,具体包括:
每一个RBM模型包括一层v={v1,v2,...,vi}可视层和一层h={h1,h2,...,hj}隐藏层,j,vi∈{0,1},hj∈{0,1},i和j分别表示可视层第i个可视单元和隐藏层第j个隐藏单元;
将复数数量的RBM模型从下往上层叠建立DBN模型,底层RBM的隐藏层h1作为上一层RBM的可视层v2,然后这一层RBM的隐藏层h2作为上一层RBM的可视层v3,当底层RBM的可视层存在输入,顶层RBM的隐藏层提取出相应输入的深层特征;当给定可见单元的状态时,各隐藏单元的激活状态之间是条件独立的,此时,第j个隐藏单元的激活概率为:其中, 为sigmoid激活函数,θ={Wij,ai,bj}为RBM的参数,Wij表示可见单元i与隐藏单元j之间的连接权重,ai表示可视单元i的偏置,bj表示隐藏单元j的偏置;
当给定隐藏单元的状态时,各可见单元的激活条件也是条件独立,即第i个可视单元的激活概率为:步骤2.2:将训练样本输入DBN模型,结合批量随机梯度下降法和贪婪逐层算法预训练DBN模型,具体包括:对训练样本集X′进行归一化处理,使样本集X′幅值范围处于(0,1)之间,得到新的样本集X″,针对批量随机梯度下降法,将样本集X″随机划分成若干个批量B={b1,b2,...,bm},其中m表示第m个批量样本集,将每一个批量样本集输入DBN模型中,使用贪婪逐层无监督算法进行预训练:首先训练底层RBM,记为RBM1,将批量样本集B输入到RBM1的可视层,最大化RBM在训练集B上的对数似然函数学习得到:其中,P(v|θ)为联合概率分布P(v,h|θ)的边际分布,(v,h)联合概率为:其中,Z(θ)为归一化因子,表达式为:
E(v,h|θ)为RBM的能量函数:
使用CD算法进行梯度下降,各参数的更新准则为:
其中,ηw,ηa和ηb分别为权重、可视层偏差和隐藏层偏差的学习率,<·>recon表示一步吉布斯采样后模型定义的分布,依次将各个批量样本集输入RBM1,训练参数θ1,将训练样本B输入到训练好的RBM1,得到提取的特征F1={f1,f2,...,fm},其中 l1<n,l1表示一阶样本特征长度,此时F1={f1,f2,...,fm}为原始数据B={b1,b2,...,bm}的一阶特征表示,即最底层的表达方式;接着将特征F1作为上一层RBM的输入,上一层RBM记作RBM2,固定参数θ1重复上述步骤训练RBM2的参数θ2,得到二阶特征F2={f1,f2,...,fm},其中 l2<l1,l2表示二阶样本特征长度;F2={f1,f2,...,fm}是更加抽象的特征表达;随后对后面的各层RBM采用同样的策略,即将前层的输出作为下一层输入依次训练,并在训练每一层参数的时候固定其他各层参数保持不变,最后得到顶层RBM的隐藏层输出Fs={f1,f2,...,fm},s≥2,其中 ls<ls-1,ls表示s阶样本特征长度,此时Fs={f1,f2,...,fm}作为DBN模型提取出的最深层的特征表达;
步骤2.3:在DBN模型中加入Nesterov动量法和独立自适应学习率,加快预训练速度和提高分类精度,具体包括:当使用批量随机梯度下降法遇到沟壑问题、在DBN模型参数更新时,使用动量法,即将上一次更新时的梯度乘以一个因数γ,然后加上此时的梯度,若两次梯度的方向类似,则加速在这一方向上的移动:在坡度开始由下降转为上升时,使用Nesterov动量法,首先通过计算J(θ-γvt-1)的梯度预测下一步要下降到的位置,然后再做出修正:采用独立自适应学习率,对于每一个权重值Wij更新时,使用一个参数α实时改变学习率的大小,表达式为:其中,hij(k)表示第k次训练时权重Wij学习率的自适应系数,初始hij(0)设置为1,表示使用Nesterov动量法后第k次训练时权重Wij的梯度;如果本次训练的梯度与上一次训练时的梯度符号相同,则相应的自适应系数增加α,加速下降,相反地,如果本次训练梯度与上一次训练时的梯度符号相反,则相应的自适应系数缩小1-α倍,减缓下降速度;
所述自适应系数限制在[0.01,100];
步骤3具体包括以下步骤:
步骤3.1:将DBN模型提取出的深层特征表达Fs={f1,f2,...,fm}输入Softmax分类器,结合标签L单独训练Softmax分类器:假设总共有k个分类类别,在Softmax回归中系统的方程为:
其中, 代表第k个概率下分类概率, 是模型的参
数, 这一项是对概率分布进行归一化,使用符号 来表示全部的模型参数,将 按行罗列变成一个k×ls的矩阵,如下所示:
采用梯度下降法优化模型参数,Softmax回归中代价函数为:
其中,1{·}是示性函数,其取值规则为1{值为真的表达式}=1,1{值为假的表达式}=
0, 表示权重衰减项,惩罚过大的参数值,λ为衰减系数,求导,得到梯度公式如下:其中, 是一个向量,它的第l个元素 是 对 的第l个分量的偏导
数,使用梯度下降算法最小化 参数更新准则为:
步骤3.2:基于BP算法与共轭梯度算法的全局微调:
首先进行向前传导运算,计算网络中所有神经元的激活值,之后,针对第l层的每一个节点i,计算出其残差 将这个残差定义为分类误差 表示第ln层的残差,其中第ln层即为输出层;对于隐藏单元,将基于节点残差的加权平均值计算 基于BP算法的微调方法如下:对于第ln层的每个输出单元i,根据以下公式计算残差:
其中, 表示第ln层节点i的输出激活值, 表示第ln层节点i的输入,f′表示传递函数的导函数,对于l=ln-1,ln-2,ln-3,...,2的各层,第l层的第i个节点的残差计算方法如下:偏导数的计算方法如下:
更新权重参数:
其中,ΔW(l)表示第l层权重W的平均梯度,Δb(l)表示第l层偏差b的平均梯度;使用共轭梯度法搜索最优学习率ε,重复梯度下降法的迭代步骤实现整个DBN模型的参数优化;
步骤4的实现包括:
对未知状态信号重复步骤1,形成测试样本集,然后将测试样本集输入训练好的DBN模型,获得输出值,并通过输出值判断设备状态。