而现实生活中,我们可能并不知道每个 P(概率分布模型)到底是什么,我们已知的是我们可以观测到的源数据。所以,最大似然估计就是这种给定了观察数据以评估模型参数(也就是估计出分布模型应该是怎样的)的方法。 比如,如果校长想调查全校同学的成绩,假如这个校长很懒但是统计学得很好的话,他会选择通过采样来估计一个靠谱的成绩分布。 首先,假设我们独立采样 X1,X2,......Xn 共 n 个同学的成绩,并且是我们使用的是 f 模型,只是它的参数θ未知,那么这个方程可表示为:
此刻,我们已知的是 X1......Xn,未知的是θ,那么我们的似然就可以定义为: 两边取对数,得到:
设
log L(θ|x1...xn) 称为对数似然,称为平均对数似然。那么最大的平均对数似然就是:
这就是幻灯片中那个公式的含义。 接下来几页幻灯片介绍了整个生成模型的大家族。 大家都同根于最大似然玩法,但是有着显隐密度的区分。大多数你们听过的强大的生成模型都需要用到马尔可夫链,而 GAN 是目前唯一一种直接从数据观测的一步到位的生成模型。(后面会讲具体原因。)
比如 Fully Visible Belief Nets 就用到了典型的显性密度链:
P(X1) 类似于一个先验概率,然后每往后一个数据的概率都是基于前面的已知数据的条件概率。最终得到整个模型的分布。但它的缺点也很明显:对于 N 个数据点,你得跑 N 次。也就是,这是个 O(n) 的算法。 同理,还有其它各种算法,但那些不是本篇重点,在此不做赘述。
与它们不同的是,GAN 的特点是: 使用了 latent code(用以表达 latent dimension、控制数据隐含关系等等); 数据会逐渐统一; 不需要马尔可夫链; 被认为可以生成最好的样本(当然,ian 本人也说,这事儿没法衡量什么是「好」或「不好」)。
GAN是如何工作的? 要理解生成对抗模型(GAN),首先要知道生成对抗模型拆开来是两个东西:一个是判别模型,一个是生成模型。
简单打个比方就是:两个人比赛,看是 A 的矛厉害,还是 B 的盾厉害。比如,我们有一些真实数据,同时也有一把乱七八糟的假数据。A 拼命地把随手拿过来的假数据模仿成真实数据,并揉进真实数据里。B 则拼命地想把真实数据和假数据区分开。 这里,A 就是一个生成模型,类似于卖假货的,一个劲儿地学习如何骗过 B。而 B 则是一个判别模型,类似于警察叔叔,一个劲儿地学习如何分辨出 A 的骗人技巧。 如此这般,随着 B 的鉴别技巧的越来越牛,A 的骗人技巧也是越来越纯熟。 一个造假一流的 A,就是我们想要的生成模型! (责任编辑:本港台直播) |