深度学习:从基础到实践(全2册)
上QQ阅读APP看书,第一时间看更新

1.5 生成器

假设我们正在拍摄一部电影,一个重要的场景发生在放着波斯地毯的仓库里,我们迫切需要仓库里有几十条甚至几百条的地毯,要地板上有地毯,墙壁上有地毯,中间的大架子上也有地毯,而我们希望每条地毯看起来真实但又与其他地毯有所不同。

但是预算远没有多到可以购买或者租借数百条独一无二的地毯,所以我们只买了几条地毯,然后交给道具部门并告诉他们“做一些类似于这几条的地毯,但是每一条都不一样”。他们可能只是用大而柔软的纸画一些地毯,但是不管怎样,我们只是想让他们做一些独特的东西,而且看起来像真的地毯,可以让我们挂在仓库里。图1.18显示了最初我们购买的地毯。

图1.18 最初我们购买的波斯地毯

图1.19展示了一些根据图1.18“做”出来的地毯,但是与最初我们购买的地毯有所不同。

图1.19 根据图1.18中的地毯制作的一些新地毯

我们可以用机器学习算法做同样的事情,这一过程称为数据增强(data amplification)或数据生成(data generation),由生成器(generator)算法实现。在这个小例子中,我们只从一条地毯开始,以此作为示例,而通常在实际中我们会用大量的例子来训练生成器,这样生成器就能生成拥有许多变体的新版本。

因为不需要使用标签来训练生成器,所以我们可以称之为无监督学习。但是在生成器的学习过程中,我们确实会给它们一些反馈,通过这些反馈来使它们知道是否为我们制造了足够逼真的“地毯”。基于此,我们也可能需要把生成器放到监督学习中。

生成器是处于中间地带的,它不需要标签,但是又从我们这里得到了一些反馈,因此我们把这一中间地带称为半监督学习(semi-supervised learning)。