基于变分自编码器的聚类方法和装置与流程

    专利2022-07-08  91


    相关申请的交叉引用

    本申请要求清华大学于2020年10月27日提交的、申请名称为“基于变分自编码器的聚类方法和装置”的、中国专利申请号“202011165489.x”的优先权。

    本申请涉及深度学习技术领域,尤其涉及一种基于变分自编码器的聚类方法和装置。



    背景技术:

    目前,无监督聚类广泛应用于多种实际领域,比如,图像或图像特征的聚类。相关技术中,通过变分自编码器模型实现数据聚类,比如,ltvae通过使用隐变量上的树模型贪心的学习隐变量之间的树形结构,据此构成的复杂先验约束变分自编码器模型进行聚类;gmvae、vade均使用平均场近似处理隐变量之间的关系以实现数据聚类。但是,ltvae采用复杂的树模型迭代式的优化其隐变量之间的结构关系,聚类性能差,gmvae、vade采用平均场近似,但该近似在实际数据中不一定成立,导致聚类准确度较低。



    技术实现要素:

    本申请提出一种基于变分自编码器的聚类方法和装置,该方法在变分自编码器的基础上进行改进,舍弃平均场近似,采用直接分解联合概率分布获取离散类别隐变量的概率分布,进而确定输入数据的类别,提高了聚类效果和准确度。

    本申请第一方面实施例提出了一种基于变分自编码器的聚类方法,包括:获取输入数据x;根据所述输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;将所述输入数据x、所述离散类别隐变量y以及所述连续高斯隐变量z,结合所述变分自编码器,获取对应的联合概率分布q(z,y|x);利用所述变分自编码器对所述联合概率分布q(z,y|x)进行直接分解,根据所述离散类别隐变量y的概率分布,确定所述输入数据x的类别。

    本申请实施例的基于变分自编码器的聚类方法,通过获取输入数据x;根据所述输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;将所述输入数据x、所述离散类别隐变量y以及所述连续高斯隐变量z,结合变分自编码器,获取对应的联合概率分布q(z,y|x);利用所述变分自编码器对所述联合概率分布q(z,y|x)进行直接分解,根据所述离散类别隐变量y的概率分布,确定所述输入数据x的类别。该方法在变分自编码器的基础上进行改进,舍弃平均场近似,采用直接分解联合概率分布获取离散类别隐变量的概率分布,进而确定输入数据的类别,提高了聚类效果和准确度。

    本申请第二方面实施例提出了一种基于变分自编码器的聚类装置,包括:第一获取模块,用于获取输入数据x;第二获取模块,用于将所述输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;第三获取模块,用于将所述输入数据x、所述离散类别隐变量y以及所述连续高斯隐变量z,结合变分自编码器,获取对应的联合概率分布q(z,y|x);聚类模块,用于利用所述变分自编码器对所述联合概率概率分布q(z,y|x)进行直接分解,根据所述离散类别隐变量y的概率分布,确定所述输入数据x的类别。

    本申请实施例的基于变分自编码器的聚类装置,通过获取输入数据x;将所述输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;将所述输入数据x、所述离散类别隐变量y以及所述连续高斯隐变量z,结合所述变分自编码器,获取对应的联合概率分布q(z,y|x);利用所述变分自编码器对所述联合概率分布q(z,y|x)进行直接分解,根据所述离散类别隐变量y的概率分布,确定所述输入数据x的类别。该装置可实现在变分自编码器的基础上进行改进,舍弃平均场近似,采用直接分解联合概率分布获取离散类别隐变量的概率分布,进而确定输入数据的类别,提高了聚类效果和准确度。

    本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

    附图说明

    本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

    图1为根据本申请一个实施例的基于变分自编码器的聚类方法的流程示意图;

    图2为根据本申请一个实施例的变分自编码器的模型结构示意图;

    图3为根据本申请一个实施例的基于变分自编码器的聚类装置的结构示意图。

    具体实施方式

    下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

    下面参考附图描述本申请实施例的基于变分自编码器的聚类方法和装置。需要说明的是,本申请实施例的基于变分自编码器的聚类方法的执行主体为基于变分自编码器的聚类装置,该基于变分自编码器的聚类装置可应用于任一计算机设备中,以使该计算机设备可以执行基于变分自编码器的聚类功能。其中,计算机设备可以为个人电脑(personalcomputer,简称pc)、云端设备、移动设备、服务器等,移动设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等具有各种操作系统、触摸屏和/或显示屏的硬件设备。

    图1为根据本申请一个实施例的基于变分自编码器的聚类方法的流程示意图。

    如图1所示,该基于变分自编码器的聚类方法的具体实现过程如下:

    步骤101,获取输入数据x。

    在本申请实施例中,数据x可为图像中的多个特征数据或者原始图像数据(原始像素值矩阵),比如,数据x={x1,x2,…xn}。作为一种示例,可对图像进行特征提取,获取图像中的特征数据,将特征数据作为输入数据x。其中,需要说明的是,输入数据x可为高维空间的随机向量。

    步骤102,将输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z。

    需要理解的是,变分自编码器可包括编码器、隐层表示和解码器三部分。其中,编码器可将数据编码为隐层表示向量,解码器可将隐层表示向量恢复为数据。

    可选地,变分自编码器中的编码器可将输入数据x编码成隐层表示向量,将该隐层表示向量作为离散类别隐变量y。其中,需要说明的是,离散类别隐变量y可理解为变分自编码器模型所选择的具体的高斯变量,比如,第i个高斯变量。

    接着,在本申请实施例中,变分自编码器中的编码器可根据输入数据x、离散类别隐变量y,得到对应的连续高斯隐变量z,其中,需要说明的是,连续高斯隐变量z服从正态分布,连续高斯隐变量z依赖于输入数据x以及离散类别隐变量y,连续高斯隐变量z可刻画输入数据x的信息。

    为了获取到准确的隐变量,在本申请实施例中,在将输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z之前,可先对变分自编码器进行模型训练。

    作为一种示例,采用蒙特卡洛目标作为损失函数,结合方差退火,对变分自编码器进行模型训练。

    在本申请实施例中,可使用蒙特卡洛目标作为训练目标,蒙特卡洛目标是比elbo(变分自编码器原始的训练目标)更紧的变分下界。采用蒙特卡洛目标作为训练的损失函数,且直接用整体的梯度对模型参数做训练,可使其隐变量y和z无需重参数化。具体表现公式为:

    其中,lm(x;θ,φ)表示训练的蒙特卡洛目标,表示对采样得到的联合样本求期望,qφ(z,y|x)表示可学习的后验分布,pθ(x,y(m),z(m))和qφ(z(m),y(m)|x)表示第m组(y,z)联合样本后求得的概率密度。

    需要说明的是,当损失函数值几乎不变时模型训练结束,通常模型训练给定的轮数(如500),根据验证集损失函数值进行早停法选取最优模型。

    为了能够稳定模型训练并取得最佳的聚类结果,可采用方差退火稳定模型训练,从而取得最佳的聚类结果,也就是说,在训练初期在高斯后验分布的方差上加较大的下界来限制其概率密度的大小,从而阻止蒙特卡洛目标在重要性采样估计器方差较大时变得过大(从而导致损失函数发散)。随着模型训练的进行,逐步收缩此下界到较小常数值,从而保证总体训练目标不变。具体可表现为如下公式:σ‘=softplus(σ) ε,其中,σ‘和σ分别是新方差和原始方差,ε是可收缩下界。

    需要说明的是,方差退火不仅能够显著稳定模型训练,还能够帮助模型学到更加可分离的隐式表达(尤其对于原始图片数据)。最终,可以通过最大的q(y|x)对应的离散类别隐变量y来确定每个输入x的类别,完成聚类任务。

    举例而言,y是离散类别隐变量,例如y属于{1,…,k}。对每个类别y,q(y|x)是一个概率密度值。由于类别数k有限,对应的q(y|x)中可选出一个最大的值q(y=y0|x),则y0即为输入数据x对应的类别。

    此外,还需要说明的是,对于偶然出现的较差初始化可能会影响模型的最终性能,在本申请实施例中,可采用一个简单的预训练初始化来解决此问题。作为一种示例,可预训练一个简单的标准自编码器(具有与变分自编码器模型相同的网络结构),之后在标准自编码器的隐藏层上训练高斯混合模型。自编码器的网络参数被用于初始化变分自编码器模型中对应的网络层,高斯混合模型的各分布均值被用于初始化变分自编码器模型中混合高斯先验的均值(代替随机初始化)。采用此方法初始化的模型能够取得稳定性更强的聚类结果。

    步骤103,将输入数据x、离散类别隐变量y以及所述连续高斯隐变量z,结合变分自编码器,获取对应的联合概率分布q(z,y|x)。

    需要理解的是,如图2所示,变分自编码器可利用两个神经网络分别建立两个概率模型:一个用于输入数据的变分推断,获取隐变量的概率分布,称为变分模型(网络参数为φ);另一个根据隐变量的概率分布,还原生成输入数据的近似概率分布,称为生成模型(网络参数为θ)。

    在本申请实施例中,如图2所示,将输入数据x、离散类别隐变量y以及连续高斯隐变量z,利用变分自编码器对应的变分模型,获取隐变量z,y的联合概率分布q(z,y|x)。

    步骤104,利用变分自编码器对联合概率分布q(z,y|x)进行直接分解,根据离散类别隐变量y的概率分布,确定输入数据x的类别。

    在本申请实施例中,在变分自编码器中,可采用如下公式对联合概率分布q(z,y|x)进行分解:

    q(z,y|x)=q(z|y,x)q(y|x)

    其中,q(y|x)表示离散类别隐变量y的概率分布,q(z|y,x)表示连续高斯隐变量z的概率分布。其中,需要说明的是,q(z,y|x)=q(z|y,x)q(y|x)概率论意义下的准确分解,不需要采用额外的近似手段,无论z和x是否在给定x的情况下条件独立,该分解始终能够如实表达所有可能的联合概率分布q(z,y|x)。

    需要说明的是,在本申请实施例中,可采用联合概率分布q(z,y|x)来逼近真实的后验概率分布p(z,y|x),由于总体先验概率分布p(z,y)为若干高斯概率分布的组合,每个高斯概率分布对应一个类别,在变分自编码器模型中,损失函数中的kl散度项会约束后验概率分布q(z,y)逼近先验概率分布p(z,y),从而使隐空间中后验概率分布q(z,y)形成分离的表征,每个类别的x对应的z服从一个高斯概率分布,从而能在隐空间中形成聚类簇,由于z为每个类别数据的隐式特征表达,离散类别变量y可表征每个数据类别,因此,可根据离散类别隐变量y的概率分布,确定输入数据x的类别。

    本申请实施例的基于变分自编码器的聚类方法,通过获取输入数据x;将输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;将输入数据x、离散类别隐变量y以及连续高斯隐变量z,结合变分自编码器,获取对应的联合概率分布q(z,y|x);利用变分自编码器对联合概率分布q(z,y|x)进行直接分解,根据离散类别隐变量y的概率分布,确定输入数据x的类别。该方法在变分自编码器的基础上进行改进,使用非重参数化方法和方差退火技术进行模型训练,舍弃平均场近似,采用直接分解联合概率分布获取离散类别隐变量的概率分布,进而确定输入数据的类别,显著地提高了聚类效果和准确度,同时降低了模型训练开销。

    为了实现上述实施例,本申请还提出一种基于变分自编码器的聚类装置。

    图3为根据本申请一个实施例的基于变分自编码器的聚类装置的结构示意图。

    如图3所示,该基于变分自编码器的聚类装置300包括:第一获取模块310、第二获取模块320、第三获取模块330、聚类模块340。

    其中,第一获取模块310,用于获取输入数据x;第二获取模块320,用于将输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;第三获取模块330,用于将输入数据x、离散类别隐变量y以及连续高斯隐变量z,结合变分自编码器,获取对应的联合概率分布q(z,y|x);聚类模块340,用于利用变分自编码器对联合概率概率分布q(z,y|x)进行分解,根据离散类别隐变量y的概率分布,确定输入数据x的类别。

    作为本申请实施例的一种可能实现方式,利用变分自编码器对所述联合概率分布q(z,y|x)进行分解,具体表现公式为:

    q(z,y|x)=q(z|y,x)q(y|x)

    其中,q(y|x)表示离散类别隐变量y的概率分布,q(z|y,x)表示连续高斯隐变量z的概率分布。

    作为本申请实施例的一种可能实现方式,基于变分自编码器的聚类装置300还包括:训练模块,用于采用蒙特卡洛目标作为损失函数,结合方差退火,对所述变分自编码器进行模型训练。

    作为本申请实施例的一种可能实现方式,采用蒙特卡洛目标作为损失函数,具体表现公式为:

    其中,lm(x;θ,φ)表示训练的蒙特卡洛目标,表示采样得到的联合样本求期望,qφ(z,y|x)表示可学习的后验分布,pθ(x,y(m),z(m))和qφ(z(m),y(m)|x)表示第m组(y,z)联合样本的概率密度。

    本申请实施例的基于变分自编码器的聚类装置,通过获取输入数据x;将输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;将输入数据x、离散类别隐变量y以及连续高斯隐变量z,结合变分自编码器,获取对应的联合概率分布q(z,y|x);利用变分自编码器对联合概率分布q(z,y|x)进行直接分解,根据离散类别隐变量y的概率分布,确定输入数据x的类别。该装置可实现在变分自编码器的基础上进行改进,使用非重参数化方法和方差退火技术进行模型训练,舍弃平均场近似,采用直接分解联合概率分布获取离散类别隐变量的概率分布,进而确定输入数据的类别,显著地提高了聚类效果和准确度,同时降低了模型训练开销。

    为了实现上述实施例,本申请还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本申请前述实施例提出的基于变分自编码器的聚类方法。

    为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请前述实施例提出的基于变分自编码器的聚类方法。

    为了实现上述实施例,本申请还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行如本申请上述实施例提出的基于变分自编码器的聚类方法。

    在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

    此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

    流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

    在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

    应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

    本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

    此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

    上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。


    技术特征:

    1.一种基于变分自编码器的聚类方法,其特征在于,包括:

    获取输入数据x;

    将所述输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;

    将所述输入数据x、所述离散类别隐变量y以及所述连续高斯隐变量z,结合所述变分自编码器,获取对应的联合概率分布q(z,y|x);

    利用所述变分自编码器对所述联合概率分布q(z,y|x)进行直接分解,根据所述离散类别隐变量y的概率分布,确定所述输入数据x的类别。

    2.如权利要求1所述的方法,其特征在于,所述利用所述变分自编码器对所述联合概率分布q(z,y|x)进行直接分解,具体表现公式为:

    q(z,y|x)=q(z|y,x)q(y|x)

    其中,q(y|x)表示所述离散类别隐变量y的概率分布,q(z|y,x)表示所述连续高斯隐变量z的概率分布。

    3.如权利要求1所述的方法,其特征在于,将所述输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z之前,还包括,

    采用蒙特卡洛目标作为损失函数,结合方差退火,对所述变分自编码器进行模型训练。

    4.如权利要求3所述的方法,其特征在于,所述采用蒙特卡洛目标作为损失函数,具体表现公式为:

    其中,lm(x;θ,φ)表示训练的蒙特卡洛目标,表示对采样得到的联合样本求期望,qφ(z,y|x)表示可学习的后验分布,pθ(x,y(m),z(m))和qφ(z(m),y(m)|x)表示第m组(y,z)联合样本后求得的概率密度。

    5.一种基于变分自编码器的聚类装置,其特征在于,包括:

    第一获取模块,用于获取输入数据x;

    第二获取模块,用于将所述输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;

    第三获取模块,用于将所述输入数据x、所述离散类别隐变量y以及所述连续高斯隐变量z,结合所述变分自编码器,获取对应的联合概率分布q(z,y|x);

    聚类模块,用于利用所述变分自编码器对所述联合概率概率分布q(z,y|x)进行直接分解,根据所述离散类别隐变量y的概率分布,确定所述输入数据x的类别。

    6.如权利要求5所述的装置,其特征在于,所述利用所述变分自编码器对所述联合概率分布q(z,y|x)进行直接分解,具体表现公式为:

    q(z,y|x)=q(z|y,x)q(y|x)

    其中,q(y|x)表示所述离散类别隐变量y的概率分布,q(z|y,x)表示所述连续高斯隐变量z的概率分布。

    7.如权利要求5所述的装置,其特征在于,所述装置还包括:

    训练模块,用于采用蒙特卡洛目标作为损失函数,结合方差退火,对所述变分自编码器进行模型训练。

    8.如权利要求7所述的装置,其特征在于,所述采用蒙特卡洛目标作为损失函数,具体表现公式为:

    其中,lm(x;θ,φ)表示训练的蒙特卡洛目标,表示采样得到的联合样本求期望,qφ(z,y|x)表示可学习的后验分布,pθ(x,y(m),z(m))和qφ(z(m),y(m)|x)表示第m组(y,z)联合样本的概率密度。

    技术总结
    本申请公开了一种基于变分自编码器的聚类方法和装置,其中,方法包括:获取输入数据x;将输入数据x,结合变分自编码器,获取对应的离散类别隐变量y及连续高斯隐变量z;将输入数据x、离散类别隐变量y以及连续高斯隐变量z,结合变分自编码器,获取对应的联合概率分布q(z,y|x);利用变分自编码器对联合概率分布q(z,y|x)进行直接分解,根据离散类别隐变量y的概率分布,确定输入数据x的类别。该方法在变分自编码器的基础上进行改进,舍弃平均场近似,采用直接分解联合概率分布获取离散类别隐变量的概率分布,进而确定输入数据的类别,提高了聚类效果和准确度。

    技术研发人员:裴丹;李之涵
    受保护的技术使用者:清华大学
    技术研发日:2020.11.02
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-19121.html

    最新回复(0)