因为生成式模型很难估计,所以,我们在机器学习中更多的是使用“判别式机器学习模型”的。这种模型和“生成式概率模型”是有一个本质的区别的。 我们过去熟悉的模型如逻辑回归,SVM和深度学习等,多是判别式模型。就是:给你一个样本,模型不关注样本是怎么“真正”生成的,也不关心样本构造的真实因果关系和概率值, 而是直接判别样本属于哪一类。 我们可以管这种判别的方式叫做“懒人主义”。 相反,生成式模型可以被认为是一个“完美主义。” 什么是完美主义呢?我们要去判别一个事,从它最原始的那个点开始分析,产生先验概率分布,然后根据因果关系一直推到可观察的样本分布,最后再得到样本。这样,一旦得到整个联合概率分布,就可以对缺失数据和未来的事件做出准确的预测。 所以,到了完成了这个联合分布的学习时,我们机器学习的工作就做的差不多了。 生成式模型和判别式模型的区别很像人和机器的区别:机器采取的是完美主义,因为它可以不断优化,追求极致。而人不会如此,人是够好了就满足了。从这一点上来说,人完全没有必要和阿尔法狗去比赛,因为这是不明智的。我们人类的构造不是干这个的,atv,我们的构造是能把一件事给做完了。比方说,人应该去比的是你有多快能学会下围棋,并从中得到多少乐趣。而把围棋下的极致这件事是机器擅长的。 有没有办法,利用有限的数据,通过不断提高的方式,建立一个生成式模型呢?Ian Goodfellow提出了一种新的方法,很值得我们思考: 他的设想是用一个生成式模型(Generator)来生成模拟样本,再用一个判别式模型来区分这个生成的样本是否真实,这样的一对系统,可以互相对弈,共同提高。 以作画为例。 假设我们的目的是设计一台机器人来模拟大师们的画作。 最开始,机器人先通过生成式模型完成某个画作。 这幅画可能很差,离大师的水平差的很远。如果这个时候有一个评论员(判别式模型)来告诉机器人这幅画的缺点,那机器人就可以在下一幅画中加以提高。如果评论员自己犯了错误,没认对,那机器人就可以告诉评论员如何提高鉴赏能力。 评论员总是在问这样一个问题:这幅画是大师画的还是机器人画的?如果判别式模型可以准确地辨认出来是机器画的,那说明这个生成式模型还不够好,如果判别不出来,就说明画作已经能够以假乱真了,而判别式模型就有待提高。这里,生成式模型和判别式模型,利用不断反馈,实现相互提高。
这让我们想起了图灵测试——计算机和裁判聊天,他们互相看不到彼此,如果在沟通的时候,裁判无法辨别哪个是计算机,“人工智能”在它身上就实现了。这个双机结构和图灵测试不同的地方就是,机器和判官都可以学习,不断提高,最后两者都可以达到最好。 这样,就把我们带到“生成式对抗网络” (GenerativeAdverserial Network, 或者GAN)这个概念。如下图所示, 我们有两个系统,在互相对抗, 两个系统都试图优化自己的目标函数。第一个系统对应判别式模型D: 判别式模型D在试图识别到来的样本是否是自然真实的;它在尽量增大对真实样本的识别率,同时减少对模拟生成的样本的误判率。另一个系统则对应着生成式模型G:G希望它生成的模拟样本可以在D那里鱼目混珠。 所以G试图最大可能地模拟真实的样本。 判别器D从判别角度来说,判别的越好,D的目标实现的就越优 。但对于生成器G来说,它要最小化(minimize)对方的优化函数,这就相当于最大化(maximize)它自己的优化函数。这个过程就像G和D在下棋一样(如下图的博弈树)。在这个树里有两个棋手,一个在不断更新判别器,一个是在不断更新生成器。把这两个合并起来,叫做Minimax算法,这是利用AI下棋的一个基本算法。在这里,就是G和D两个系统在竞争中不断成长,最后两个都达到最优。 (责任编辑:本港台直播) |