Page 289 - 《软件学报》2021年第7期
P. 289

贾修一  等:基于变分自编码器的异构缺陷预测特征表示方法                                                    2207


                 集的跨项目软件缺陷预测,以解决异构度量集问题.他们使用每个实例的分布特征向量作为新的度量标准,以
                 实现缺陷预测.为了解决异构跨项目缺陷预测设置下的类别不平衡问题,Cheng 等人                            [14] 提出了一种代价敏感
                 迁移支持向量机方法.为了减轻不平衡数据的影响,他们通过将代价因素纳入支持向量机模型中,对有缺陷和
                 无缺陷类别采用了不同的误分类成本.Zhang 等人                [15] 利用基于连接的聚类方法对跨项目缺陷预测问题进行
                 研究,发现基于谱聚类的无监督方法比项目间缺陷预测的有监督模型更为有效.Li 等人                              [16,17] 和 Tong 等人 [18]
                 都从核学习角度对异构缺陷预测中的类别不平衡问题和线性不可分问题进行了研究,并取得了非常好的效
                 果.Gong 等人  [19] 在异构缺陷预测问题中引入神经网络模型进行分类,并通过最大均值差异距离来降低源项
                 目和目标项目分布不匹配情况.Chen 等人            [20] 实验对比了多种异构缺陷预测方法,并得出 CTKCCA 性能最好
                 的结论.

                 2    基础知识

                    本文所提方法主要基于变分自编码器和最大均值差异,下面就相关概念和基本知识予以介绍.
                 2.1   变分推断和变分自编码器
                    对于常见的缺陷度量数据,可以假设它们是由更高层的变量生成,并且这些隐变量满足特定的分布,一般代
                 表着数据的内在结构或者某种抽象.例如,缺陷数据集可以看作是由度量代码的复杂程度、组织结构的混乱程
                 度等隐式特征生成的数据.假设原始缺陷数据集为 X                  {x ii N 1
                                                              } 包含 N 个独立同分布的连续变量 x,这些数据是利
                 用未观测到的隐变量 z 通过某些随机过程而生成.这个过程一般包含两个步骤.
                    (1)  从隐变量所服从分布 p(z)的概率密度函数中生成一个值 z i ;
                    (2)  根据值 z i 条件概率分布 (| )px z 生成新的 x i .
                    也就是说,原始数据集的边缘概率分布 p(x)可由对随机变量 z 积分 ()p x                  pz
                                                                                ( ) ( | )d ,px z z 其中,p(z)是隐变量
                 服从的先验分布.
                    推断问题要解决的问题是,给定数据样本 x i ,如何推断出后验分布 (| ).pz x             i  由贝叶斯公式可得后验分布计算
                 如下:
                                                            () (p x
                                                    (| )x 
                                                   pz      pz    i  | )z                              (1)
                                                       i
                                                              ()
                                                             px i
                    然而, (| )px z 的参数往往会非常复杂且难以计算,因而真实样本的边缘概率分布 p(x)是难以估计的,从而通
                 过推断获取数据集的后验分布 (| )pz x 以获取编码的分布往往也很困难.
                                              i
                    解决上述问题常用的方法有蒙特卡洛马尔可夫链                  [21] 和变分推断  [22] .使用蒙特卡洛 EM 算法进行优化时,每
                 一步的采样极为耗时,难以处理大型的数据集.常用的变分推断的主要问题有,对数据的结构做了很强的假设或
                 者只能基于近似寻找到次优的解            [23] ,无法取得令人满意的效果.最近的相关工作利用神经网络的强大拟合能力
                 结合反向传播算法,能够有效地解决推断问题,其中最受欢迎的框架之一就是变分自编码器.变分推断利用平均
                 场变分推断来近似后验分布,变分自编码器最大的特点是利用神经网络同时拟合生成模型和推断模型.其中推
                 断模型就是自编码器中的编码层,生成模型是自编码器中的解码层.
                    变分自编码的目标是通过最大化训练数据的边缘对数似然来学习参数化的隐式变量模型.它的边缘对数
                 似然是由每个独立的数据点的边缘似然值求和所得,如下式:
                                                               N
                                                 log ( ,px  , x N )   l go ( )x i                  (2)
                                                      1
                                                               i 1
                 其中, X   {x ii N 1  表示训练数据集.通过引入的近似后验分布 qz
                                                                  (| )x 去拟合真实的后验分布 (| ),pz x 那么单个
                           }
                                                                 
                 样本的边缘似然可以写成下式:
                                          log ( )px   i  D KL (q  ( | ) || ( | ))z x i  p z x i     VAE ( ;x  i )  (3)
                    等式右手边第 1 项表示近似的后验分布与真实后验分布之间的 KL 散度,并且 KL 散度的值是恒大于 0 的.
   284   285   286   287   288   289   290   291   292   293   294