监督学习的数据需要标签,目标是学习一个函数把数据x映射成标签y。
监督学习的 例子有:分类、回归、目标检测、语义分割、生成图像描述等等。
无监督学习则不需要标签,它想要学习数据的隐藏信息。
无监督学习的例子有:聚类、降维、密度估计(从大量的数据中估计数据的分布)等等。
训练图像是服从某个概率分布的,生成模型(一个无监督的模型)想要学习这个分布,这样就能从这个分布中生成新的数据。
生成模型有两大类,一种显式定义分布并解决它,另一类只学习如何从分布中生成新的数据,不需要显式地定义分布。
为什么要学习生成模型?
- 生成艺术性图像、图像超分辨率、图片上色
- 学习有用的特征为后续任务(比如分类)服务
- 获取高维数据(比如物理、医学图像)间的联系
- 为现实世界建模(机器人和强化学习)
会讲3种生成模型:PixelRNN/CNN(显式密度估计,能直接解决的)、变分自编码(显式密度估计,不能直接解决的)、GAN(隐式密度估计)
PixelRNN/CNN
使用链式法则表达图像x的似然函数。在前面所有像素确定的情况下,预测下一个像素的值。
在前面所有像素确定的情况下,预测下一个像素的值,这很容易想到RNN。
但是PixelRNN(每次生成一个像素)在训练阶段和应用阶段都非常慢。
PixelCNN还是和PixelRNN一样,从图像的角落开始,每次生成一个像素。不过PixelCNN不使用前面的