基于改进的稀疏降噪自编码 网络的三维模型识别方法
2018-11-06王新颖
刘 钢, 王 慧, 王新颖
(长春工业大学 计算机科学与工程学院, 长春 130012)
三维信息的快速增长是信息采集、 传输和存储工具快速发展以及计算机社会化的结果[1]. 从波音、 空中客车等大型飞机制造公司到小型的模具制造公司, 都保存着许多数字化的产品模型[2], 各种三维模型数量庞大, 使得全自动三维模型识别技术[3]、 投影检测算法[4]、 三维模型手绘检索方法[5]等三维模型识别及检索技术备受关注.
目前, 对三维模型的识别和检索已有多种方法[6]. 传统的三维模型识别算法: 一方面训练过程采用从三维原始模型中提取出几何、 拓扑、 外形、 纹理和颜色等低层形状特征, 将其转换为特征描述符, 然后再进行描述符之间的相似度计算, 对标签样本的泛化能力较差[7]; 另一方面, 对三维模型的形状、 颜色和纹理等视觉特征相近的模型干扰较大, 整体精度不高[8].
近年来, 深度学习[9]在机械、 化工、 材料等领域迅速发展, 深度学习方法不仅适用于三维模型小数据集, 还可以应用在复杂的三维模型大数据中[10]. 本文提出一种改进的无监督特性的稀疏降噪自编码模型构建深度神经网络, 从而对三维模型信息进行加工处理, 最后用softmax回归处理得到最终的softmax分类器, 进而对三维模型进行分类识别. 结果表明, 与栈式自编码神经网络和自学习神经网络相比, 该方法识别性能更好.
1 自编码与降噪自编码
自编码(AE)[11]是一种多层前传神经网络, 通常使用一个输入层、 一个隐藏层及一个输出层. 设输入样本的向量表示为X, 隐藏层y和输出层z的激活函数为
y=s(WX+b),z=s(W′Y+b′),
其中:s为softmax函数;W为权值矩阵,b为偏置向量;W′=WT互为转置;b′=b. 自编码的学习目标是输出值hW,b(X)=(x1,x2,…,xn)T与输入值X=(x1,x2,…,xn)T尽量相等, 对于一个包含m个样本的数据集, 可以用受限的拟牛顿法求解神经网络, 其损失函数为
JAE=JE+λJW.
(1)
式(1)由两部分的和组成: 第一部分
是均方差项,i为样本的个数,ti为隐藏单元i的激活值; 第二部分
是权重差值防止过优化的正则化项,i和j分别为权值矩阵行和列序号,n和d分别为权值矩阵行和列的最大值,λ表示调节参数.
降噪自动编码器(DA)[12]在训练时对输入进行污染, 使自动编码器更具鲁棒性, 更好地对存在噪声的数据进行编码. 稀疏自动编码器在训练自动编码器时, 通常还可引入额外的约束, 限制隐层神经元的激活数目, 使得对于一个样本, 只有少部分隐层神经元被激活, 在式(1)的基础上加入相对熵后, 其损失函数为
JDA=JE+βJsparse,
(2)
其中
2 改进的稀疏降噪自编码模型
本文提出的改进稀疏降噪自编码(ISDAE)模型包含一个带有稀疏性的降噪自编码器和一个softmax分类器. 模型先要计算隐层权重W, 然后为了防止模型的过拟合, 采用受限的拟牛顿法计算JISDAE, 计算公式如下:
其中:αk表示隐藏层步长;pk表示向量方向;k表示迭代次数. 算法描述如下:
1) 选取最初点W0, 存在误差ε>0, 保留近期图片中的某点迭代数目m(一般m=6);
2)k=0,H0=I,R=WJISDAE(W0);
4) 计算本次迭代的可行方向pk=-rk;
5) 如果步长αk>0, 则计算
6) 更新权重Wk+1=Wk+αkpk;
7) 如果k>m, 则保存近期的m次矢量, 并删除(sk-m,yk-m);
8) 计算并保存sk=Wk+1-Wk和yk=f(Wk+1)-f(Wk);
9) 利用递归算法求得rk=Hkf(xk),k=k+1, 转3).
训练模型时, 每次操作都需要Hk-m和rk, 经多次实验验证表明,
其中:I表示输入向量;sk表示相邻两次迭代权重之差;yk表示相邻两次迭代偏导之差;rk表示某次偏导值. 为达到使代价函数JISDAE的值缩小的目的, 需持续不断地重复受限拟牛顿法的迭代步骤, 从而训练整个神经网络模型.
(11)
从而可得到一种更有效、 更简单的表示方法. 本文用线性代数中的向量形式, 即分量的形式表示系统模型的激活函数
f([z1,z2,…,z400])=[f(z1),f(z2),…,f(z400)],
于是式(7)~(10)可化简为
3 基于ISDAE的网络结构
基于稀疏自编码器和softmax分类器, 构建一个含有一个隐藏层与一个最终 softmax分类器的稀疏降噪自编码神经网络, 如图1所示. 步骤如下:
1) 数据预处理. 采用PSB中的三维模型标准库[13]作为实验数据源, 对三维模型经过平移、 旋转和缩放, 将规范化后的数据进行平行投影, 得到每个三维模型的投影三视图, 同时将每张投影图片进行归一化处理.
2) 构建ISDAE模型. 采用自编码恢复原始数据的原理, 获取隐藏层的权值W1, 并得到隐藏层的输出表达y.
3) 先用步骤2)的特性表达y作为softmax分类器的输入数据, 再用有污染的或插入噪声的原始信息获得softmax分类器的权值W0.
4) 预训练过程. 用步骤2),3)处理后得到的权值参数W0和W1表示网络模型的初始化参数, 通过网络模型, 最终得到整个模型的损失函数JISDAE, 即预训练网络模型.
5) 微调过程. 计算输出层和隐含层权重参数W, 采用受限的拟牛顿法神经网络调整损失函数JISDAE.
图1 基于ISDAE的网络结构Fig.1 Network structure based on ISDAE
在训练网络模型时, 先将输入数据经过加污染插入噪声处理, 并通过持续不断地重复受限拟牛顿法的迭代步骤处理网络得到网络权值Wi, 从而得到隐藏层的输入数据. 数据依次经过网络, 最终被抽象表示为隐藏单元的输出y, 将y作为softmax分类器的输入, 得到具有数字标签能力的参数y; 将部分输入数据的标签实际值与分类输出结果进行比较, 对分类错误的数值进行逆变化传播给编码层, 微调整个网络模型, 从而迭代优化整个网络的参数, 最终获得改进的稀疏降噪自编码特征提取模型, 并将该模型应用于三维模型特征提取和识别.
4 实验结果与分析
图2 由PSB数据库中三维模型库随机选取的数据集Fig.2 Random selection of data sets from 3D model base in PSB database
对三维模型进行预处理, 将每个模型进行平移、 缩放和旋转变换, 并提取模型的三视图投影, 即正视图、 侧视图和俯视图, 如图3所示.图4为在ISDAE模型中加入少量噪声后, 利用自编码重构原理训练学习得到隐藏层的网络参数权值的可视化表示.
图3 提取的三维模型三视图Fig.3 Three views of extracted 3D model
图4 特征的可视化表示Fig.4 Visual representation of features
图5 3种算法的参数优化性能比较Fig.5 Comparison of parameters optimization performance of three algorithms
在相同条件下, 用ISDAE模型选择随机梯度下降法、 受限的拟牛顿法和共轭梯度法, 对3种算法中JISDAE和W的优化性能进行比较, 结果如图5所示. 由图5可见, 本文的受限拟牛顿算法优于其他两种算法.
在分类实验中, 采用栈式自编码神经网络(SAE)[12]、 自学习神经网络(SL)[14]和改进的稀疏降噪自编码神经网络(ISDAE)3种方法, 比较这3种方法对三维模型的识别率.图6为不同隐藏层节点数目对网络系统的三维模型识别性能的比较结果. 其中, 网络模型为采用6类数据集, 经过20次实验取得的均值. 由图6可见, 随着隐藏层节点数的不断降低, 三维模型识别性能呈上升趋势, 当隐藏层节点数为400时, 性能最优.
图7为3种方法分别对6类和9类模型, 采用正视图(A)和三视图(B)时的分类平均识别率比较结果. 其中, 各网络模型的输入单元神经元数量为729, 输出单元神经元数量为2 116, 隐藏层神经元数量均为400. 由图7可见: 当有少量样本时, 三视图比正视图各算法识别率均增加约3%; 随着样本数量的增加, ISDAE识别率差别较小, 有较强的去噪能力. 因此, 该模型对低质量的数据有一定的泛化能力和鲁棒性.
图6 隐藏节点数对三维模型识别性能的影响Fig.6 Influence of number of hidden nodes on recognition performance of 3D model
图7 不同算法对三维模型的识别性能Fig.7 Recognition performance of 3D model by different algorithms
图8为分别采用本文三视图方法(A)、 形状分布方法(SD64)[15](B)和表面体素化球面调和方法(SHV_8_32_F)[16](C)提取三维模型的特征, 并利用ISDAE,SAE和SL模型平均识别率的比较结果. 由图8可见, 本文方法在识别率上明显高于其他两种特征提取方法.
图8 不同数据预处理方法对三维模型的识别性能Fig.8 Recognition performance of 3D model by different data preprocessing methods
综上所述, 本文采用改进的稀疏降噪自编码构建深度网络模型, 使用无监督贪婪预训练及受限的拟牛顿法计算方法对自编码神经网络进行处理, 用得到的特征采用softmax回归训练最终的softmax分类器, 最后应用在三维模型识别上, 取得了较好的分类效果.