2. 矿山数字化教育部工程研究中心(中国矿业大学), 江苏 徐州 221116;
3. 中国科学院 计算技术研究所 智能信息处理重点实验室, 北京 100190
2. Mine Digitization Engineering Research Center of Ministry of Education(China University of Mining and Technology), Xuzhou 221116, China;
3. Key Laboratory of Intelligent Information Processing, Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190, China
玻尔兹曼机(Boltzmann machine, 简称BM)是一种概率图模型.该模型能够学习到输入数据的统计特性[1]. Smolensky在BM的基础上提出了受限玻尔兹曼机(restricted Boltzmann machine, 简称RBM)[2].RBM是一种产生式无监督学习方法, 它不仅能够从数据中学习到有效的特征, 而且能够利用学习到的特征重构出原始数据. 2006年, Hinton等人在《SCIENCE》上提出一种有效的深度网络学习方法——深度置信网(deep belief network, 简称DBN), 掀起了深度学习的研究热潮[3].其实, 以受限玻尔兹曼机为基石的深度网络模型除了深度置信网以外, 还有深度Sigmoid置信网[4]、深度玻尔兹曼机[5]等.
与RBM相比, 以RBM为基石的深度网络模型会表现出较好的分类能力.但是在处理噪声图像时, 这些深度网络并没有展现出优于RBM的学习能力.如果数据中存在噪声, 那么RBM学习到的特征也会蕴含噪声信息.特征选择方法可以从蕴含噪声信息的特征中找到与分类有关的特征[6].Sohn等人结合受限玻尔兹曼机与特征选择方法提出了Point-wise Gated受限玻尔兹曼机(point-wise gated RBM, 简称pgRBM)[7].pgRBM不仅能够得到与分类有关的特征, 还能在噪声数据中找到数据中与分类有关的部分.Zhang等人结合pgRBM提出了Point- wise Gated深度置信网(point-wise gated deep belief network, 简称pgDBN)和Point-wise Gated深度玻尔兹曼机[8].这表明以RBM为基石的深度网络在处理噪声时, 传统的RBM学习到的特征中蕴含的噪声信息影响了深度网络的性能.但是当一组数据中有噪声数据和干净数据时, 如何应用干净数据提升pgRBM在噪声数据中的学习能力, 从而进一步提高深度网络模型处理噪声的能力, 这是一个重要的研究问题.
本文在传统的pgRBM基础上提出一种基于随机噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机(pgRBM based on random noisy data and clean data, 简称pgrncRBM)方法.它可以利用干净数据提升算法在随机噪声数据上的学习能力.pgRBM把隐层节点分为与分类有关的和与分类无关的两个部分, 其连接权值的初值是用特征选择的方法对RBM学习的权值处理得到的.pgrncRBM就是在传统的pgRBM基础上对pgRBM学习到的数据二次去噪, 其与分类无关的隐层节点相连权值的初值是用特征选择的方法对RBM对一次降噪的数据学习到的权值处理得到的, 但是其与分类有关的隐层节点相连权值的初值是用RBM对不含噪声的数据学习得到的.这样, pgrncRBM在处理随机噪声数据时可以学习到更为“干净”的数据.如果噪声是图片时, pgrncRBM不能很好地去除噪声.传统的RBM一般只适于处理二值图像.为了更好地处理实值图像, 提出了一系列的RBM的变种算法, 如均值与协方差受限玻尔兹曼机(mcRBM)[9]和Spike-and-Slab受限玻尔兹曼机(ssRBM)[10].mcRBM和ssRBM都表现出较好的实质图像数据建模能力, 但不同的是, 当隐层节点状态保持固定时, mcRBM求取数据在可见层的联合概率分布用的是混合蒙特卡洛算法(HMC), 而ssRBM采用的是简单而有效的Gibbs采样方法.因此, 本文将ssRBM与pgRBM相结合, 提出了一种基于图像噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机(pgRBM based on image noisy data and clean data, 简称pgincRBM)方法.该方法使用ssRBM对噪声建模, 其在处理图像噪声数据时可以学习到更为“干净”的数据.然后, 本文可以在pgrncRBM和pgincRBM的基础上堆叠出深度置信网络模型, 如基于随机噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机(pgDBN based on random noisy data and clean data, 简称pgrncDBN)以及基于图像噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机(pgDBN based on image noisy data and clean data, 简称pgincDBN).
训练神经网络时常常会遇到过拟合问题, 以RBM为基石的深度网络也是如此.目前, RBM中常常用的解决过拟合问题有权值衰减、Dropout[11]、Dropconnect[12, 13]、权值不确定性[14-16].Zhang等人将权值不确定性引入pgRBM和pgDBN, 验证了权值不确定性在这两种网络中的有效性[8].本文将权值不确定性引入pgrncRBM和pgincRBM中, 把pgrncRBM和pgincRBM中与分类有关的权值看作一组符合高斯分布的变量而不是固定值.同样地, 本文还将权值不确定性引入以pgrncRBM和pgincRBM为基石的深度网络pgrncDBN和pgincDBN中, 并探究了这几种算法的可行性.
本文第1节简述受限玻尔兹曼机算法、深度置信网算法和Point-wise Gated受限玻尔兹曼机算法.第2节详述本文提出的基于噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机算法和以它们为基石的Point- wise Gated深度置信网算法.第3节介绍权值不确定性方法在pgncRBM和pgncDBN两种网络模型中的应用.第4节用含噪声的手写数据集测试本文提出的算法的性能.实验结果表明, pgrncRBM和pgincRBM都是有效的神经网络学习方法.
1 相关工作 1.1 受限玻尔兹曼机与深度置信网算法受限玻尔兹曼机(RBM)是一种生成式随机网络, 由可见层和隐层组成.RBM网络的权值θ由可见层和隐层的连接权值矩阵W=(Wij)∈RD×J、可见层的偏置向量
$E(\mathit{\boldsymbol{v}}, \mathit{\boldsymbol{h}};\theta ) = - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {{v_i}{W_{ij}}{h_j}} } - \sum\limits_{j = 1}^J {{b_j}{h_j}} - \sum\limits_{i = 1}^D {{c_i}{v_i}} $ | (1) |
$P(\mathit{\boldsymbol{v}};\theta ) = \sum\limits_\mathit{\boldsymbol{h}} {P(\mathit{\boldsymbol{v}}, \mathit{\boldsymbol{h}};\theta )} = \frac{1}{{Z(\theta )}}\sum\limits_\mathit{\boldsymbol{h}} {\exp ( - E(\mathit{\boldsymbol{v}}, \mathit{\boldsymbol{h}};\theta ))} $ | (2) |
其中, vi∈{0, 1};hj∈{0, 1};
$P({v_i} = 1|\mathit{\boldsymbol{h}}) = \sigma \left( {\sum\limits_j {{W_{ij}}{h_j}} + c{}_i} \right)$ | (3) |
$P({h_j} = 1|\mathit{\boldsymbol{v}}) = \sigma \left( {\sum\limits_i {{v_i}{W_{ij}}} + b{}_j} \right)$ | (4) |
其中,
深度置信网(DBN)是一个概率生成模型.它是由RBM堆叠构成的深度网络模型.首先, DBN通过利用不带标签数据, 用RBM算法自底向上逐层训练得到深度网络的初值.在预训练之后, DBN通过利用带标签数据, 用BP算法对网络的权值进行调整.
1.2 Point-wise Gated受限玻尔兹曼机算法与RBM不同, pgRBM把隐层节点分为与分类有关的和与分类无关的两个部分.pgRBM的网络结构如图 1所示.此时, pgRBM的能量函数可表述为
$\left. \begin{gathered} E(\mathit{\boldsymbol{v}}, \mathit{\boldsymbol{z}}, {\mathit{\boldsymbol{h}}^1}, {h^2};\theta ) = - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\sum\limits_{r = 1}^2 {(z_i^r{v_i})W_{ij}^rh_j^r} } } - \sum\limits_{j = 1}^J {\sum\limits_{r = 1}^2 {b_j^rh_j^r} } - \sum\limits_{i = 1}^D {\sum\limits_{r = 1}^2 {c_i^r(z_i^r{v_i})} } \\ {\rm{s}}{\rm{.t}}{\rm{. }}\sum\limits_{r = 1}^2 {z_i^r} = 1, {\rm{ }}i = 1, ..., D \\ \end{gathered} \right\}$ | (5) |
其中, 与分类有关的隐层h1对应的权值为{W1, c1, b1}, 与分类无关的隐层对应的权值为{W2, c2, b2}.
当可见层、转换层和隐层任意两层状态固定时, pgRBM的条件概率分布可以表述为
$P(h_i^r = 1|\mathit{\boldsymbol{z}}, \mathit{\boldsymbol{v}}) = \sigma \left( {\sum\limits_i {(z_i^r{v_i})W_{ij}^r} + b_j^r} \right)$ | (6) |
$P({v_i} = 1|\mathit{\boldsymbol{z}}, {\mathit{\boldsymbol{h}}^1}, {\mathit{\boldsymbol{h}}^2}) = \sigma \left( {\sum\limits_r {z_i^r\left( {\sum\limits_j {W_{ij}^rh_j^r} + c_i^r} \right)} } \right)$ | (7) |
$P(z_i^r = 1|\mathit{\boldsymbol{v}}, {\mathit{\boldsymbol{h}}^1}, {\mathit{\boldsymbol{h}}^2}) = \frac{{\exp \left( {{v_i}\left( {\sum\limits_j {W_{ij}^rh_j^r} + c_i^r} \right)} \right)}}{{\sum\nolimits_s {\exp \left( {{v_i}\left( {\sum\limits_j {W_{ij}^sh_j^s} + c_i^s} \right)} \right)} }}$ | (8) |
其中,
Zhang等人将权值不确定性引入pgRBM, 提出了权值不确定性Point-wise Gated受限玻尔兹曼机(weight uncertainty pgRBM, 简称pgwRBM)算法.与pgRBM不同的是, pgwRBM将与分类有关的隐层与可见层、转换层的连接权值W1看作符合高斯分布的变量, 其均值和标准差分别是μ1和σ1=log(1+exp(ρ1)).此时, pgwRBM的能量函数可表述为
$\left. \begin{array}{l} E\left( {{\mathit{\boldsymbol{v}}^\prime },{\mathit{\boldsymbol{z}}^\prime },{\mathit{\boldsymbol{h}}^1},{\mathit{\boldsymbol{h}}^2};\theta } \right) = - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\left( {z_i^{\prime 1}{v_i}} \right)} } \left( {\mu _{ij}^1 + \log \left( {\left( {\rho _v^1} \right)} \right) \odot \varepsilon _{ij}^1} \right)h_j^1 - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\left( {z_i^{\prime 2}{v_i}} \right)} } W_v^2h_j^2 - \sum\limits_{j = 1}^J {\sum\limits_{v = 1}^J {b_j^r} } h_j^r - \sum\limits_{i = 1}^D {\sum\limits_{r = 1}^D {c_i^r} } \left( {z_i^rv_i^\prime } \right)\\ {\rm{s}}{\rm{.t}}{\rm{.}}\sum\limits_{r = 1}^2 {z_i^{\prime r}} = 1,i = 1, \ldots ,D \end{array} \right\} $ | (9) |
其中, ⊙表示矩阵中的元素对位相乘.
pgwRBM的学习过程详见文献[8].和RBM一样, pgRBM和pgwRBM也可以使用CD等算法去计算权值的梯度, 从而更新网络的权值.
2 基于噪声数据与干净数据的Point-wise Gated深度置信网络模型 2.1 基于随机噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机算法当数据中存在少量噪声时, 添加噪声在某些情况下可以增加分类器的泛化能力.但是, 如果数据中存在大量噪声, 噪声的添加就降低了训练数据的分类准确率, 并且还不能获得更好的泛化能力.Point-wise Gated受限玻尔兹曼机就是针对这种情况提出来的.它能够在噪声数据中找到数据中与分类有关的部分, 从而提升分类器的分类准确率.但是, 当一组训练数据中同时出现噪声数据和干净数据时, 如何应用干净数据提升传统的pgRBM在噪声数据上的学习能力, 是一个重要的研究问题.针对这一问题, 本文首先在传统的pgRBM基础上提出一种基于随机噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机方法.它可以利用不含噪声的数据提升算法在噪声数据上的学习能力.和传统的pgRBM一样, pgrncRBM的网络结构同样可以用图 1来表示.当给定一组可见层状态和隐层状态时, pgrncRBM的能量函数也可以表述为
$\left. \begin{array}{l} E\left( {{\mathit{\boldsymbol{v}}^\prime },{\mathit{\boldsymbol{z}}^\prime },{\mathit{\boldsymbol{h}}^2},{\mathit{\boldsymbol{h}}^2};\theta } \right) = - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\sum\limits_{r = 1}^2 {\left( {z_i^{\prime r}v_i^\prime } \right)} } } W_{ij}^rh_j^r - \sum\limits_{j = 1}^J {\sum\limits_{r = 1}^2 {b_j^r} } h_j^r - \sum\limits_{i = 1}^D {\sum\limits_{r = 1}^2 {c_i^r} } \left( {z_i^{\prime r}{\bf{v}}_i^\prime } \right)\\ {\rm{s}}{\rm{.t}}{\rm{.}}\sum\limits_{r = 1}^2 {z_i^r} = 1,i = 1, \ldots ,D \end{array} \right\} $ | (10) |
其中, v'是pgRBM对噪声数据v处理之后得到的与分类有关的数据[7].我们可以看出, pgrncRBM就是在传统的pgRBM基础上对pgRBM学习到的数据二次去噪.并且, pgrncRBM网络权值的赋初值的方法也与传统的pgRBM不同.pgncRBM同样把隐层节点分为与分类有关的和与分类无关的两个部分, 那么其与分类有关的隐层相连权值的初值是用RBM对不含噪声的数据学习得到的, 并且其与分类无关的隐层相连权值的初值还是用特征选择的方法对RBM对一次降噪的数据v是pgRBM对噪声数据学习到的权值处理得到的.pgrncRBM预训练完成后, 通过利用带标签的噪声数据与BP算法对网络的权值进行调整.在pgRBM中, 网络的输入数据是pgRBM对噪声数据v处理之后得到的“干净”数据, 输出是与数据对应的标签.同理, 在pgrncRBM中, 网络的输入数据是pgrncRBM对一次降噪的数据v是pgRBM对噪声数据处理之后得到的更为“干净”的数据, 输出是与数据对应的标签.
2.2 基于图像噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机算法pgrncRBM在处理随机噪声数据时可以学习到更为“干净”的数据, 但当噪声是图片时, 它不能很好地去除噪声.针对这一问题, 本文又将ssRBM与pgRBM相结合, 提出一种基于图像噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机方法.该方法使用ssRBM对噪声建模, 其在处理图像噪声数据时可以学习到更为“干净”的数据, 可以利用不含噪声的数据, 提升算法在图像噪声数据上的学习能力.当给定一组可见层状态和隐层状态时, pgincRBM的能量函数也可以表述为
$\left. \begin{array}{l} E\left( {{\mathit{\boldsymbol{v}}^\prime },{\mathit{\boldsymbol{z}}^\prime },{\mathit{\boldsymbol{h}}^1},{\mathit{\boldsymbol{h}}^2},{\mathit{\boldsymbol{s}}^2};\theta } \right) = - \sum\limits_{i = 1}^D {\sum\limits_{r = 1}^2 {c_i^r} } \left( {z_i^rv_i^\prime } \right) - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\left( {z_i^{\prime 1}v_i^\prime } \right)} } W_{ij}^1h_j^1 - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\left( {z_i^{\prime 2}v_i^\prime } \right)} } W_{ij}^2h_j^2s_j^2 - \sum\limits_{j = 1}^J {\sum\limits_{r = 1}^2 {b_j^r} } h_j^r + \frac{1}{2}\sum\limits_{j = 1}^J {{\alpha _j}} {\left( {s_j^2} \right)^2}\\ {\rm{s}}{\rm{.t}}{\rm{.}}\sum\limits_{r = 1}^2 {z_i^r} = 1,i = 1, \ldots ,D \end{array} \right\} $ | (11) |
其中, v'是pgRBM对噪声数据v处理之后得到的与分类有关的数据,α'j是对
$P(h_j^1 = 1|\mathit{\boldsymbol{z}}, \mathit{\boldsymbol{v}}) = \sigma \left( {\sum\limits_i {(z_i^1{v_i})W_{ij}^1} + b_j^2} \right)$ | (12) |
$P(h_j^2 = 1|\mathit{\boldsymbol{z}}, \mathit{\boldsymbol{v}}) = \sigma \left( {\frac{1}{2}{{({\alpha _j})}^{ - 1}}{{\left( {\sum\limits_i {(z_i^2{v_i})W_{ij}^2} } \right)}^2} + b_j^2} \right)$ | (13) |
$P(s_j^2|\mathit{\boldsymbol{z}}, \mathit{\boldsymbol{v}}, h_j^2) = N\left( {{{({\alpha _j})}^{ - 1}}h_j^2\sum\limits_i {(z_i^r{v_i})W_{ij}^2} , {{({\alpha _j})}^{ - 1}}} \right)$ | (14) |
$P({v_i} = 1|\mathit{\boldsymbol{z}}, {\mathit{\boldsymbol{h}}^1}, {\mathit{\boldsymbol{h}}^2}, {s^2}) = \sigma \left( {z_i^1\left( {\sum\limits_j {W_{ij}^1h_j^1} + c_i^1} \right) + z_i^2\left( {\sum\limits_j {W_{ij}^2h_j^2s_j^2} + c_i^2} \right)} \right)$ | (15) |
$P(z_i^1 = 1|\mathit{\boldsymbol{v}}, {\mathit{\boldsymbol{h}}^1}, {\mathit{\boldsymbol{h}}^2}, {\mathit{\boldsymbol{s}}^2}) = \sigma \left( {{v_i}\left( {\sum\limits_j {W_{ij}^1h_j^1} + c_i^1} \right) - {v_i}\left( {\sum\limits_j {W_{ij}^2h_j^2s_j^2} + c_i^2} \right)} \right)$ | (16) |
和pgrncRBM一样, pgincRBM也可以使用CD等算法去计算权值的梯度, 从而更新网络的权值.pgincRBM预训练完成后, 通过利用带标签的噪声数据和BP算法对网络的权值进行调整.在pgincRBM中, 网络的输入数据是pgincRBM对一次降噪的数据v'处理之后得到的更为“干净”的数据, 输出是与数据对应的标签.
2.3 基于噪声数据与干净数据的Point-wise Gated深度置信网算法在处理含噪声的图像时, DBN并没有展现出优于RBM的学习能力.Zhang等人结合pgRBM提出了Point- wise Gated深度置信网(pgDBN), 并且pgDBN展示出优于pgRBM的分类能力.我们得出, 以传统的RBM为基石的深度网络在处理噪声时, 传统的RBM学习到的特征中蕴含的噪声信息影响了深度网络的性能.当一组数据中同时出现噪声数据和干净数据时, 就可以利用干净数据进一步提高深度网络模型处理噪声的能力.因此, 本文堆叠pgrncRBM、pgincRBM、传统的RBM, 构建出两种基于噪声数据与干净数据的Point-wise Gated深度置信网(pgDBN based on noisy data and clean data, 简称pgncDBN), 包含基于随机噪声数据和干净数据的Point-wise Gated深度置信网, 以及基于图像噪声数据和干净数据的Point-wise Gated深度置信网.以两隐层pgrncDBN为例, 图 2给出了pgrncDBN的预训练过程.首先, pgrncDBN和pgincDBN分别用pgrncRBM或者pgincRBM对一次降噪的数据v'预训练, 得到更为“干净”的数据; 然后, 它们都利用RBM预训练隐层间的连接权值; 最后, 它们都随机确定最后一层隐层与输出层的连接权值, 随后用BP算法微调整个网络的权值.
3 权值不确定性方法在pgrncDBN与pgincDBN深度网络中的应用
权值不确定性方法是一种神经网络中常见的解决过拟合现象的方法.它把神经网络中的每个权值看作一个可能值的概率分布, 而不是以前的单一的固定值, 这样学习到的特征更为鲁棒.Zhang等人把权值不确定性方法引入RBM, 提出了权值不确定性受限玻尔兹曼机(weight uncertainty RBM, 简称wRBM), 其将每个可见层与隐层间的连接权值看作一个可能值的概率分布.同时, Zhang等人将权值不确定性引入pgRBM, 提出了权值不确定性受限玻尔兹曼机, 其将与分类有关的隐层节点相连的权值看作一个可能值的概率分布.wRBM能够有效地解决RBM的过拟合问题, 但它在处理含噪声的数据时并不是都能达到理想的效果.权值不确定性中权值的波动也可以理解为训练数据的变化, 这种数据中噪声的波动可能在一定程度上影响了算法的性能, 因此, pgwRBM中与分类无关的隐层节点相连的权值还是实值.也就是说, 我们可以将pgwRBM中与分类有关的数据看作是变化的, 将与分类无关的噪声看作是不变的.本文同样将权值不确定性引入pgrncRBM和pgincRBM, 提出了基于随机噪声数据与干净数据的Point-wise Gated权值不确定性受限玻尔兹曼机(weight uncertainty pgrncRBM, 简称pgwrncRBM)以及基于图像噪声数据与干净数据的Point-wise Gated权值不确定性受限玻尔兹曼机(weight uncertainty pgincRBM, 简称pgwincRBM).为了对比两种模型引入权值不确定性前后的性能, pgwrncRBM和pgwincRBM也是在传统的pgRBM基础上对pgRBM学习到的数据二次去噪.
在pgwrncRBM算法中, 与分类有关的隐层与可见层、转换层的连接权值W1被看作符合高斯分布的变量, 其均值和标准差分别表述为μ1和σ1=log(1+exp(ρ1)).与pgwRBM类似, 当给定一组可见层状态和隐层状态时, pgwrncRBM的能量函数可表述为
$\left. \begin{array}{l} E\left( {{\mathit{\boldsymbol{v}}^\prime },{\mathit{\boldsymbol{z}}^\prime },{\mathit{\boldsymbol{h}}^1},{\mathit{\boldsymbol{h}}^2};\theta } \right) = - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\left( {z_i^{\prime \prime }{v_i}} \right)} } \left( {\mu _{ij}^1 + \log \left( {1 + \exp \left( {\rho _{ij}^1} \right)} \right) \odot \varepsilon _{ij}^1} \right)h_j^1 - \sum\limits_{i = 1}^D {\sum\limits_{i = 1}^J {\left( {z_i^{\prime 2}{v_i}} \right)} } W_{ij}^2h_j^2 - \sum\limits_{j = 1}^J {\sum\limits_{i = 1}^2 {b_j^r} } h_j^r - \sum\limits_{i = 1}^D {\sum\limits_{r = 1}^D {c_i^r} } \left( {z_i^rv_i^\prime } \right)\\ {\rm{s}}{\rm{.t}}.\sum\limits_{r = 1}^2 {z_i^{\prime r}} = 1,i = 1, \ldots ,D \end{array} \right\} $ | (17) |
其中, 与分类有关的隐层h1对应的权值为{μ1, ρ1, c1, b1}, 与分类无关的隐层对应的权值为{W2, c2, b2}.
pgwrncRBM与pgwRBM的不同之处有:一是赋初值的方法不同, 二是学习的数据不同.pgwrncRBM与分类无关的隐层相连权值{W2, c2, b2}的初值还是用特征选择的方法对一次降噪的数据v'学习到的RBM权值处理得到的, 但其与分类有关的隐层相连权值{μ1, c1, b1, ρ}的初值有两种方式:一是用wRBM对不含噪声的数据学习得到的, 二是权值{μ1, c1, b1}的初值用RBM对不含噪声的数据学习得到的, 权值ρ1的初始值是随机赋值的. pgwrncRBM是对pgRBM学习到的数据v'二次去噪, 而pgwRBM是对原始的噪声数据去噪.pgwrncRBM的连接权值矩阵W1可以表述为W1=μ1+log(1+exp(ρ1))⊙ε1(其中, ε1~N(0, I)), 则当可见层、转换层和隐层任意两层状态固定时, pgwrncRBM的条件概率分布可以用公式(6)~公式(8)表示.当pgwrncRBM用CD-k算法调整权值时, 参数{μ1, ρ1, W2}的梯度分别为
$\left.\Delta \mu_{i j}^{1}=\alpha_{w}\left(P\left(h_{j}^{1} | \boldsymbol{z}^{\prime 1(0)}, \boldsymbol{v}^{\prime 1(0)}\right)\left(z_{i}^{\prime 1(0)} v_{i}^{\prime 1(0)}\right)\right)-P\left(h_{j}^{1} | \boldsymbol{z}^{\prime 1(k)}, \boldsymbol{v}^{\prime 1(k)}\right)\left(z_{i}^{\prime 1(k)} v_{i}^{\prime 1(k)}\right)\right)$ | (18) |
${\rm{\Delta }}\rho _{ij}^1 = \Delta \mu _{ij}^1 \times \frac{{\varepsilon _{ij}^1}}{{1 + \exp ( - \rho _{ij}^1)}}$ | (19) |
$\left.\Delta W_{i j}^{2}=\alpha_{w}\left(P\left(h_{j}^{2} | \boldsymbol{z}^{\prime 2(0)}, \boldsymbol{v}^{2(0)}\right)\left(z_{i}^{2(0)} v_{i}^{\prime 2(0)}\right)\right)-P\left(h_{j}^{2} | \boldsymbol{z}^{\prime 2(k)}, \boldsymbol{v}^{2(k)}\right)\left(z_{i}^{\prime 2(k)} v_{i}^{\prime 2(k)}\right)\right)$ | (20) |
用CD-k算法调整权值时, pgwrncRBM的{c1, b1, W2, c2, b2}的梯度的计算方法与pgrncRBM一致.
pgwincRBM算法的能量函数与pgwrncRBM和pgwRBM略有不同, 其使用ssRBM对噪声建模.假设pgwincRBM与分类有关的隐层与可见层、转换层的连接权值W1是符合高斯分布变量, 其均值和标准差同样可表述为μ1和σ1=log(1+exp(ρ1)).当给定一组可见层状态和隐层状态时, pgwincRBM的能量函数可表述为
$\left. \begin{array}{l} E\left( {{\mathit{\boldsymbol{v}}^\prime },{\mathit{\boldsymbol{z}}^\prime },{\mathit{\boldsymbol{h}}^1},{\mathit{\boldsymbol{h}}^2},{\mathit{\boldsymbol{s}}^2};\theta } \right) = - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\left( {z_i^{\prime 1}{v_i}} \right)} } \left( {\mu _{ij}^1 + \log \left( {1 + \exp \left( {\rho _{ij}^1} \right)} \right) \odot \varepsilon _{ij}^1} \right)h_j^1 - \sum\limits_{i = 1}^D {\sum\limits_{j = 1}^J {\left( {z_i^{\prime 2}v_i^\prime } \right)} } W_{ij}^2h_j^2s_j^2 \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;- \sum\limits_{j = 1}^J {\sum\limits_{r = 1}^2 {b_j^r} } h_j^r + \frac{1}{2}\sum\limits_{j = 1}^J {{\alpha _j}} {\left( {s_j^2} \right)^2} - \sum\limits_{i = 1}^D {\sum\limits_{r = 1}^2 {c_i^r} } \left( {z_i^{rr}v_i^\prime } \right)\\ {\rm{s}}{\rm{.t}}{\rm{.}}\sum\limits_{r = 1}^2 {z_i^{\prime r}} = 1,i = 1, \ldots ,D \end{array} \right\} $ | (21) |
其中, 与分类有关的隐层h1对应的权值为{μ1, ρ1, c1, b1}, 与分类无关的隐层对应的权值为{W2, c2, b2, α}.
与pgincRBM相比, pgwincRBM与分类无关的隐层相连权值{W2, c2, b2, α}的初值还是用特征选择的方法对一次降噪的数据v'学习到的ssRBM权值处理得到的, 但其与分类有关的隐层相连权值{μ1, c1, b1, ρ1}的赋初值方式和pgwrncRBM一样.在pgwincRBM算法中, 当可见层、转换层和隐层任意两层状态固定时, 剩余一层节点被激活的概率(或者概率分布)可以用公式(12)~公式(16)表示.当pgwincRBM用CD-k算法调整权值时, 其参数{μ1, ρ1, W 2}的梯度分别为
$\left.\Delta \mu_{i j}^{1}=\alpha_{w}\left(P\left(h_{j}^{1} | \boldsymbol{z}^{\prime 1(0)}, \boldsymbol{v}^{1(0)}\right)\left(z_{i}^{1(0)} v_{i}^{\prime 1(0)}\right)\right)-P\left(h_{j}^{1} | \boldsymbol{z}^{1^{1}(k)}, \boldsymbol{v}^{1(k)}\right)\left(z_{i}^{\prime 1(k)} v_{i}^{1(k)}\right)\right)$ | (22) |
$\Delta \rho _{ij}^1 = \Delta \mu _{ij}^1 \times \left( {\frac{{\varepsilon _{ij}^1}}{{1 + \exp ( - \rho _{ij}^1)}}} \right)$ | (23) |
$\begin{aligned} \Delta W_{i j}^{2}=& \alpha_{w}\left(P\left(h_{j}^{2} | \boldsymbol{z}^{\prime 2(0)}, \boldsymbol{v}^{2(0)}\right) \times P\left(s_{j}^{2} | \boldsymbol{z}^{\prime 2(0)}, \boldsymbol{v}^{2(0)}, h_{j}^{2(0)}=1\right) \times\left(z_{i}^{\prime 2(0)} v_{i}^{\prime 2(0)}\right)-\right.\\ &\left.P\left(h_{j}^{2} | \boldsymbol{z}^{\prime 2(k)}, \boldsymbol{v}^{\prime 2(k)}\right) \times P\left(s_{j}^{2} | \boldsymbol{z}^{\prime 2(k)}, \boldsymbol{v}^{\prime 2(k)}, h_{j}^{2(k)}=1\right) \times\left(z_{i}^{\prime 2(k)} v_{i}^{\prime 2(k)}\right)\right) \end{aligned} $ | (24) |
用CD-k算法调整权值时, pgwincRBM的{c1, b1, W2, c2, b2}的梯度的计算方法与pgincRBM一致.
和pgrncDBN与pgincDBN类似, 可以通过堆叠pgwrncRBM、pgwincRBM和wRBM分别构造出包含基于随机噪声数据与干净数据的Point-wise Gated权值不确定性深度置信网(pgwDBN based on random noisy data and clean data, 简称pgwrncDBN)以及基于图像噪声数据与干净数据的Point-wise Gated权值不确定性深度置信网(pgwDBN based on image noisy data and clean data, 简称pgwincDBN).pgwrncDBN(pgwincDBN)首先用pgwrncRBM(pgwincRBM)对一次降噪的数据v'预训练, 得到更为“干净”的数据.和pgrncDBN(pgincDBN)一样, pgwrncDBN(pgwincDBN)网络的输入层与隐层, 以及隐层与隐层间的连接权值的初值也有两种赋初值方式:一是利用pgwrncRBM(pgwincRBM)对一次降噪的数据v'预训练得到转换层、可见层与第1层隐层的连接权值, 随后用wRBM预训练隐层间的连接权值; 二是利用wRBM通过对不含噪声的数据学习得到转换层、可见层与第1层隐层的连接权值, 随后同样用wRBM预训练隐层间的连接权值.pgwrncDBN(pgwincDBN)最后随机确定最后一层隐层与输出层的连接权值, 随后用BP算法微调整个网络的权值.
4 实验与分析 4.1 实验设置与数据集为了测试提出的算法的性能, 将其与RBM、wRBM、pgRBM、pgwRBM、DBN、wDBN、pgDBN、pgwDBN和卷积神经网络(convolutional neural network, 简称CNN)进行比较.以上几种方法都是在Intel(R) Xeon(R) CPU E4500 0@3.6GHZ处理器、18GB内存、Windows 7 64位操作系统和MATLAB 2015B(其中, CNN是通过Python3.5+ TensorFlow框架实现的)的环境中运行的.本文实验所用的随机噪声数据集是依据文献[18]的方法对MNIST basic和MNIST rotated处理得到的数据集.设置不同邻域相关度值{0, 0.2, 0.4, 0.6, 0.8, 1}, 使MNIST basic中每个像素点的边缘分布在(0, 1), 可以得到6种不同的数据集MNIST basic-back-random-a/b/c/d/e/f.同样可以对MNIST rotated处理得到数据集MNIST rotated-back-random-a/b/c/d/e/f.本文实验所用的图像数据集是文献[18]中的MNIST back-image和MNIST rotated-back-image.在所有的数据集中, 训练样本都有10 000个噪声数据和10 000个干净数据, 验证和测试样本分别为2 000个和50 000个噪声数据, 样本维数是784, 标签数目为10.图 3给出了若干数据集的部分样本.
在本文中, 所有算法都采用mini-batch方法学习, 并且批量的大小均为100.RBM和wRBM隐层节点数为500或1 000.pgRBM和pgwRBM都是通过特征选择的方法对隐层节点数为1 200的RBM学习到的权值处理得到初值, 并且它们的与分类有关的隐层和与分类无关的隐层节点数均为500.
pgrncRBM、pgincRBM、pgwrncRBM和pgwincRBM都是在传统的pgRBM基础上对pgRBM学习到的数据二次去噪, 并且它们的与分类有关的隐层和与分类无关的隐层节点数均为500.
pgrncRBM、pgincRBM、pgwrncRBM和pgwincRBM与分类有关的隐层相连权值的初值是用RBM或wRBM对不含噪声的数据学习得到的, 其与分类无关的隐层相连权值的初值都是用特征选择的方法对隐层节点数为1 200的RBM或者ssRBM对一次降噪的数据v'学习到的权值处理得到的.
DBN、wDBN、pgDBN、pgwDBN、pgrncDBN、pgincDBN、pgwrncDBN和pgwincDBN的隐层结构均为500-500-2 000.CNN是五隐层网络结构, 依次为卷积层(32个5×5卷积核)、池化层(过滤器大小为2×2)、卷积层(64个5×5卷积核)、池化层(过滤器大小为2×2)和全连接层(1 024个隐层节点).所有算法最后均使用梯度下降算法分类, 最大迭代次数为200(其中, CNN的最大的迭代数目为500), 并且依据验证数据集的错误率采用提前终止方法.
4.2 算法性能比较与分析表 1给出了RBM、wRBM、pgRBM、pgwRBM、pgrncRBM和pgwrncRBM算法在含随机噪声的手写数据集上的错误率.
我们可以看出,pgwrncRBM在所有数据集上都表现出优于其他浅层学习算法的分类效果.
通过对比pgRBM和pgrncRBM, 我们可以看出, pgrncRBM在所有数据集上的分类性能都优于pgRBM.这说明利用不含噪声的数据可以提升pgrncRBM在随机噪声数据上的学习能力.通过对比表 1中的算法, 我们还可以发现:
1) wRBM基本上在所有随机噪声数据集上都表现出优于RBM的分类性能.
2) pgwRBM仅在MNIST back-random-a、MNIST rotated-back-b和MNIST rotated-back-d这3个数据集上的错误率略高于pgRBM.
3) pgwrncRBM在所有数据集上都表现出优于pgrncRBM的分类性能.
4) 随机噪声数据中噪声结构越简单, 与pgRBM相比, pgrncRBM提升的分类效果就越明显.
表 2给出了RBM、wRBM、pgRBM、pgwRBM、pgincRBM 和 pgwincRBM 算法在含图像噪声的手写数据集上的错误率.同样地,pgwincRBM 在所有图像噪声数据集上都表现出优于其他浅层学习算法的分类效果.
通过对比表 2中的算法, 我们还可以发现:
1) wRBM在所有图像噪声数据集上的分类性能略优于RBM.
2) pgwRBM在MNIST rotated-back-image数据集上的错误率略高于pgRBM.
3) pgwincRBM在所有图像噪声数据集上都表现出优于pgncRBM的分类性能.
从表 1和表 2我们可以得出:1)权值不确定性方法能够有效地解决RBM、pgRBM、pgrncRBM和pgincRBM在处理含噪声的数据时出现的过拟合问题; 2)利用不含噪声的数据, 可以提升pgrncRBM和pgincRBM在噪声数据上的学习能力.
图 4展示了pgrncRBM在MNIST back-random-f上的分类性能随干净样本数目变化曲线.
我们可以从图 4中看出, 当干净样本数目增大时, pgrncRBM分类效果越来越好, 这和我们的直观理解是一致的.pgrncRBM中与分类有关的隐层节点相连权值的初值是用RBM对不含噪声的数据学习得到的, 干净样本越多, RBM学习到的不含噪声数据的信息就越多, pgrncRBM也能更好地将噪声数据中与分类有关的信息表示出来.图 5给出了pgRBM和pgrncRBM在MNIST back-random-a/f两种数据集上的学习结果, 图 6给出了pgRBM和pgincRBM在MNIST back-image数据集上的学习结果.pgRBM、pgrncRBM和pgincRBM都把隐层节点分为与分类有关的和与分类无关的两个部分, 并且都能在含噪声的数据中自适应找到数据中与分类有关的部分.但是, 我们可以从图 5和图 6中看出:
1) pgRBM学习得到的与分类无关的图像(也就是噪声)中包含的噪声信息很少, pgRBM学习得到的与分类有关的图像与原始的含噪声图像相差不是很大.
2) pgrncRBM是在pgRBM基础上对其学习到的与分类有关的图像二次去噪, 但是pgrncRBM可以很好地把图像中与分类有关的信息(也就是手写数字)和噪声信息分别学习出来, 特别是pgncRBM在MNIST back-random-f这个数据集上学习得到的与分类有关的图像基本上没有噪声.
3) pgincRBM是在pgRBM基础上对其学习到的与分类有关的图像二次去噪, pgncRBM可以把图像中与分类有关的信息(也就是手写数字)和图像噪声信息分别学习出来, 但是有时也只能学习到部分与分类有关的信息, 如第1列中的数字2.
表 3给出了含噪声的原始图像、pgRBM学习到的与分类有关的图像和pgincRBM/pgrncRBM学习到的与分类有关的图像与干净数据的信噪比.我们可以得出, pgrncRBM和pgincRBM可以在传统的pgRBM基础上对pgRBM学习到的数据二次去噪得到蕴含噪声信息较少的图像, 从而达到更好的分类效果.pgrncRBM在MNIST back-random-f和MNIST rotated-random-f上的错误率分别是5.03%和21.49%, 而pgRBM在这两个数据集的错误率是pgrncRBM的2倍以上.并且, 特别是在文献[18]中, RBM在MNIST basic和MNIST rotated的错误率分别是3.94%和14.69%, 这与pgrncRBM在MNIST back-random-f和MNIST rotated-random-f上的错误率还是比较接近的.
表 4给出了DBN、wDBN、pgDBN、pgwDBN、pgncDBN、pgwncDBN和CNN算法含随机噪声的手写数据集上的错误率.我们从表 4可以看出, pgwrncDBN在绝大多数数据集上的性能都表现出优于其他深度学习算法的分类效果.通过对比pgDBN和pgncDBN, 我们可以看出, pgrncDBN在所有随机噪声数据集上的分类性能都优于pgDBN.实验结果表明, pgrncDBN还是一种有效的神经网络学习算法.我们又可以发现以下结果.
1) wDBN在所有数据集上都要表现出优于DBN的分类性能.
2) pgwDBN在所有数据集上都要表现出优于pgDBN的分类性能.
3) pgwrncDBN仅在MNIST rotated-back-f数据集上的错误率略高于pgrncDBN.
4) CNN仅在MNIST back-random-a、MNIST back-random-b和MNIST rotated-random-a这3个数据集上的错误率低于pgrncDBN和pgwrncDBN.
表 5给出了DBN、wDBN、pgDBN、pgwDBN、pgincDBN、pgwincDBN和CNN算法在含图像噪声的手写数据集上的错误率.除了在MNIST back-image上的错误率略高于CNN以外, pgwincDBN在所有图像噪声数据集上都表现出优于深度浅层学习算法的分类效果.通过对比表 5中的算法, 我们还可以发现:
1) wDBN在所有图像噪声数据集上的分类性能略优于DBN.
2) pgwDBN在所有图像数据集上的错误率略高于pgDBN.
3) pgwincRBM在所有图像噪声数据集上都表现出优于pgncRBM的分类性能.
4) CNN仅仅在MNIST back-image数据集上的错误率略低于pgincDBN和pgwincDBN.
从表 4和表 5中我们可以得出:1)权值不确定性方法有效地解决了pgrncDBN和pgincDBN两种深度网络中出现的过拟合问题; 2) pgrncDBN/pgwrncDBN和pgincDBN/pgwincDBN可以在绝大多数数据集上的性能超过CNN的主要原因是pgrncRBM/pgwrncRBM和pgincRBM/pgwincRBM可以学习得到更为“干净”的数据.通过对比RBM、DBN和wDBN, 我们可以得出, DBN在处理含噪声数据时出现过拟合现象, 并没有展现出比RBM更好的学习能力, 并且权值不确定性方法有效地解决了DBN深度网络中出现的过拟合问题.通过对比pgRBM与pgDBN、pgrncRBM与pgrncDBN、pgincRBM与pgincDBN, 我们又可以发现, 堆叠pgRBM/pgrncRBM/ pgincRBM和RBM构造出的深度网络(pgDBN、pgrncDBN和pgincDBN)展现出优于浅层网络(pgRBM、pgrncRBM和pgincRBM)的学习能力.
5 结束语Point-wise Gated受限玻尔兹曼机是一种针对噪声数据的浅层学习算法.本文在此基础上利用干净数据提升其在噪声数据上的学习能力, 提出了两种基于噪声数据与干净数据的Point-wise Gated受限玻尔兹曼机(pgrncRBM和pgincRBM)方法, 然后将它们学习到的与分类有关的数据子集用到深度置信网中, 提出了两种基于噪声数据与干净数据的Point-wise Gated深度置信网(pgrncDBN和pgincDBN).pgrncRBM和pgincRBM在绝大多数手写数据集上都表现出优于pgRBM的学习能力.同样, 以pgrncRBM和pgincRBM为基石的pgrncDBN和pgincDBN一般都优于pgDBN.然后, 本文将权值不确定性方法用在所提出的4种算法中, 并将这几种算法称为基于噪声数据与干净数据的Point-wise Gated权值不确定性受限玻尔兹曼机(pgwrncRBM和pgwincRBM)以及基于噪声数据与干净数据的Point-wise Gated权值不确定性深度置信网(pgwrncDBN和pgwincDBN).实验结果表明, 权值不确定性方法能够有效地解决pgrncRBM、pgincRBM、pgrncDBN和pgincDBN在处理含噪声数据时出现的过拟合问题.我们同时发现, pgRBM、pgrncRBM和pgincRBM并不能在部分噪声数据集(数据中与分类有关的部分被噪声损坏时)上取得理想的结果.如何把它们应用到更多的噪声数据上, 也是我们下一步的研究方向.
[1] |
Ravanbakhsh S, Póczos B, Schneider J. Stochastic neural networks with monotonic activation functions, In:Gretton A, Robert CC, eds. Proc. of the 19th Int'l Conf. on Artificial Intelligence and Statistics. Cadiz:MIT Press, 2016, 809-818.
|
[2] |
alakhutdinov R, Hinton GE.. An efficient learning procedure for deep Boltzmann machines. Neural Computation, 2012, 24(8): 1967-2006.
[doi:10.1162/NECO_a_00311] |
[3] |
Hinton GE, Salakhutdinov RR. Reducing the dimensionality of data with neural networks. Science, 2006, 313(5786): 504-507.
[doi:10.1126/science.1127647] |
[4] |
Zhao S, Muraoka Y, Fujimaki R, Carin L. Scalable model selection for belief networks. In:Guyon I, Luxburg UV, Bengio S, Wallach H, Fergus R, Vishwanathan S, Garnett R, eds. Proc. of the Advances in Neural Information Processing Systems 30. Long Beach:MIT Press, 2017.4612-4622.
|
[5] |
Zhang N, Ding SF, Zhang J, Xue Y. An overview on RESTRICTED Boltzmann machines. Neurocomputing, 2018, 275: 1186-1199.
[doi:10.1016/j.neucom.2017.09.065] |
[6] |
Guyon I, Elisseeff A. An introduction to variable and feature selection. Journal of Machine Learning Research, 2003, 3: 1157-1182.
http://d.old.wanfangdata.com.cn/NSTLQK/10.1162-153244303322753616/ |
[7] |
Sohn BK, Zhou G, Lee C, Lee H. Learning and selecting features jointly with point-wise gated Boltzmann machines. In:Proc. of the 30th Int'l Conf. on Machine Learning. Atlanta:MIT Press, 2013, 217-225.
http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=CC0214139690 |
[8] |
Zhang N, Ding SF, Zhang J, Xue Y. Research on point-wise gated deep networks. Applied Soft Computing, 2017, 52: 1210-1221.
[doi:10.1016/j.asoc.2016.08.056] |
[9] |
Ranzato M, Hinton GE. Modeling pixel means and covariances using factorized third-order Boltzmann machines. In:Proc. of the 23rd IEEE Conf. on Computer Vision and Pattern Recognition. San Francisco:IEEE Press, 2010, 2551-2558.
[doi:10.1109/CVPR.2010.5539962] |
[10] |
Courville A, Desjardins G, Bergstra J, Bengio Y. The spike-and-slab RBM and extensions to discrete and sparse data distributions. IEEE Trans. on Pattern Analysis and Machine Intelligence, 2014, 36(9): 1874-1887.
[doi:10.1109/TPAMI.2013.238] |
[11] |
Srivastava N, Hinton GE, Krizhevsky A, Sutskever I, Salakhutdinov RR. Dropout:A simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 2014, 15: 1929-1958.
[doi:10.1214/12-AOS1000] |
[12] |
Wan L, Zeiler M, Zhang S, Le Cun Y, Fergus R. Regularization of neural networks using dropconnect. In:Proc. of the 30th Int'l Conf. on Machine Learning. Atlanta:MIT Press, 2013, 1058-1066.
http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=CC0214139130 |
[13] |
Iosifidis A, Tefas A, Pitas I. DropELM:Fast neural network regularization with dropout and DropConnect. Neurocomputing, 2015, 162: 57-66.
[doi:10.1016/j.neucom.2015.04.006] |
[14] |
Blundell C, Cornebise J, Kavukcuoglu K. Weight uncertainty in neural networks. In:Bach FR, Blei DM, eds. Proc. of the 32nd Int'l Conf. on Machine Learning. Lille:MIT Press, 2015, 1613-1622.
http://d.old.wanfangdata.com.cn/Periodical/rjxb201804020 |
[15] |
Zhang J, Ding SF, Zhang N, Xue Y. Weight uncertainty in Boltzmann machine. Cognitive Computation, 2016, 8(6): 1064-1073.
[doi:10.1007/s12559-016-9429-1] |
[16] |
Ding SF, Zhang N, Shi ZZ. Laplacian multi layer extreme learning machine. Ruan Jian Xue Bao/Journal of Software, 2017, 28(10): 2599-2610(in Chinese with English abstract).
http://www.jos.org.cn/1000-9825/5128.htm [doi:10.13328/j.cnki.jos.005128] |
[17] |
Hinton GE. Training products of experts by minimizing contrastive divergence. Neural Computation, 2002, 14(8): 1711-1800.
[doi:10.1162/089976602760128018] |
[18] |
Larochelle H, Erhan D, Courville A, Bergstra J, Bengio Y. An empirical evaluation of deep architectures on problems with many factors of variation. In:Ghahramani Z, ed. Proc. of the 24th Int'l Conf. on Machine Learning. New York:MIT Press, 2007, 473-480.
[doi:10.1145/1273496.1273556] |
[16] |
丁世飞, 张楠, 史忠植. 拉普拉斯多层极速学习机. 软件学报, 2017, 28(10): 2599-2610.
http://www.jos.org.cn/1000-9825/5128.htm [doi:10.13328/j.cnki.jos.005128] |