首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

论文笔记:Semi-supervised Learning with Deep Generative Models

Preliminary

在之前提到的vae模型中,作者将KL散度加入到误差函数之中,将传统的自编码器中一个样本点对应一个z,改成了一个样本点对应一个z的分布q(zx),也就是一个样本点x对应了多个z,误差中的重构误差迫使模型学习到从z到x的重构函数,从而使得模型学习到了一个连续的隐层空间。

vae神奇的地方在于,它对数据特征的高效表达。我们此处用mnist数据作为例子:

令人惊艳的是,vae在隐层空间有一个对数据的压缩特征z的一个聚类。对于mnist来说,这是一种对数字类别的高效表达。很明显的,不同的类别处于空间中的不同位置。

所以产生了一个问题,如果我们用这些特征z来训练一个分类器,效果如何呢?用这些特征z我们可以做什么更进一步的事情呢?这篇文章从一定程度上回答了这些问题。

Models

作者在文中提出了三个模型,其一是Discriminative model,其二是Semi-supervised model,其三是两种模型的结合。

Discriminative model

模型一的构造和vae一致,直接使用Latent feature z来训练分类器,当然也是模型二的基础。

Semi-supervised model

模型二是半监督模型,对于半监督学习来讲,有两个数据集。其一是带标签的数据X=,另外一种便是不带标签的数据X_=。数据的生成过程如下:

对于不带标签的数据,y和z一样被当做隐层变量。作者假设y控制了生成的图片类别,z控制了一些其他的特性,例如书写风格等。

在vae中encoder是q(zx),在semi-vae中encoder可以表示为q(z,yx)。因为文中假设x,y相互独立所以q(z,yx)可以被表示为q(zx)q(yx),前一项是vae中的encoder,后一项可以看做是一个判别器。我们用M1,M2来分别表示Discriminative model和Semi-supervised model的encoder网络,具体如下:

对于此模型的优化目标,需要分成带标签的数据X和不带标签的数据X_来分别讨论。

对于带标签的数据,优化目标如下:

对于不带标签的数据,优化目标如下:

所以对于完整的数据集,只需要整合这两个目标所以就变成了:

我们可以发现,q(yx)只在不带标签的目标中出现,也就是这在这一项 贡献误差。然而这对我们的数据判别器是极其不利的,因为对于X=来说标签数据y可以给我们的判别网络提供一个很重要的误差。所以作者人为把这些误差添加到了整体的目标中。最终的目标变成了:

Stacked generative semi-supervised model

模型三结合了这两个模型。首先我们训练一个普通的vae并得到了一个隐层的表达z1,然后我们直接用学到的表达z1来训练semi-vae。实验结果最终表明,模型三取得了很好的成绩。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171218G0U7K100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券