无监督学习:生成模型

本文是关于无监督学习中的生成模型的介绍,重点讨论Pixel RNN和VAE。Pixel RNN用于图像生成,通过逐步预测像素来完成图像重建。而VAE是一种变分自编码器,通过引入噪声来学习数据的潜在分布,可用于图像生成和文本生成等任务。文章详细阐述了VAE的工作原理,包括其过程、优势和存在的问题。
摘要由CSDN通过智能技术生成

National Taiwan University (NTU)李宏毅老师的《Machine Learning》的学习笔记,因此在全文对视频出现的内容多次引用。初出茅庐,学艺不精,有不足之处还望大家不吝赐教。

欢迎大家在评论区多多留言互动~~~~

1. 生成模型

  2016年PixelRNN,2014年Variational Autoencoder (VAE),2013年Generative Adversarial Network (GAN)。

2. Pixel RNN

  这种方法的主要过程如下所示

在训练的过程中,首先输入图像的第一个像素,这个时候NN的输出应该是图像的第二个像素;然后输出图像的第一、二个像素,这个时候NN输出的是图像的第三个像素,依次类推,对网络进行训练。假设我们给出了图像的一半,希望得到另一半的结果时,实验结果如下

如上图,最左侧的图像为原始图像,中间的为输入图像,已经将图像的一半遮盖住,希望补全另一半图像。后面是得到的三种结果,还算可以把。

  在训练上面这个网络的时候,一个直观的方法是将图像的 RGB 三个通道作为输入,但是这种方法得到的测试结果往往会偏灰色和棕色,这是因为神经网络的输出常常使得输出的三个值在数值上十分接近。因此在这里利用 1 of N encoding 对颜色进行编码,但是如果对所有颜色进行编码的话,总共有256256256种编码,维数过高,所以首先对颜色进行聚类,对聚在一类的颜色使用相同的编码,大大降低了编码的维数。

3. Variational Autoencoder (VAE)

3.1 VAE的过程

  自编码器在之前的博客中已经介绍了,主要的过程如下所示

如果随机产生 code 然后经过 decode 之后是可以产生图像,但是要产生需要的图像,这个时候就需要VAE的帮助了。VAE的主要过程如下图所示

它的过程与 Aotuencoder 十分相似,前面的编码和后面的解码部分没有变化,中间的部分是添加的部分。首先如果你中间的编码部分希望得到的维数是3维的话,那么就会输出一个三维的 m 和一个三维的 σ \sigma σ,同时利用正态分布生成一个相同维数的向量 e e e ,经过计算得到编码 c c c(计算过程如上图所示),然后是解码的过程,最终的损失函数是同时最小化重建误差和下面的累加求和。
  下面是VAE的实验结果

![这里写图片描述](https://img-blog.csdn.net/20180117155236632?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHVndWRhaWJv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

可以看出来 VAE 想画点什么东西出来,但是并不知道 VAE 具体想画什么出来。那么他与pixel Rnn 的区别在于哪呢?在 VAE 中,可以如下图所示

假如我们中间编码的是一个十维的向量,那么可以保持其中的八维不变,变化其中的两维,看看这两维对于图像的影响是怎样的。具体的实验结果如下图所示

  或者也可以使用VAE写诗。将上面的的输入输出都改成 sentence,之后如下图所示

随便输入两个句子,找到它们的编码向量,在两个向量之间做一条连线,在连线上等间距的取若干个点(即一些编码),将这些编码进行解码就可得到对应的句子。

3.2 为什么要用VAE的直观解释

  从直观的理解为什么使用VAE,与之前的自编码的区别在于哪里呢?

如上图,左侧是自编码过程,右侧是VAE过程。如果在左图中,取满月和弦月编码的之间点,输出的结果是怎么样的,会不会是介于两者之间的月相是不好说的。但是如果采用VAE的方法,他实际上相当于在编码的时候向里面加入了噪声,使得含有噪声的图像仍然可以恢复为原来的图像,那么加入取两者中间重叠的点,这个时候由于损失函数要使得恢复的误差最小,这样就需要综合满月和弦月的图像,很有可能就得到介于两者之间的图像。

  加入噪声的原理如下图所示

其中的 m m m 可以认为是原始的编码,而 σ \sigma σ 认为是方差, e e e 本身是从正太分布得到的,所以本身有固定的方差,将两者相乘相当于向编码中加入方差为某一个值的噪声,其中 e e e 要取指数,这个时候就可以保证所得到的方差是整数的,而且又由于 σ \sigma

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值