我们正生活在下一场工业革命即将来临的时代:前三场工业革命,将大多数人从艰辛的劳动当中解放出来。而这一轮革命的意义,在于进一步超越我们人类能够在地球上获得统治地位的根本:智能。在本文中,我们不会过多纠结于这场革命的伦理学、政治以及社会影响,而是更多集中在技术层面做出探讨。这里要先强调一点,机器相比于人类的真正优势,实际上与目前大部分媒体所强调的结论有所不同。
过去几年以来,人工智能领域发展速度最快的技术当数计算机视觉、自然语言处理、语音处理以各种功能不同的客户分析类应用(例如推荐系统)。我知道,很多朋友可能不喜欢推荐系统,但提高针对性广告的准确度确实能够帮助企业增加收入。那么,在这几个领域当中,最先进的技术代表分别是什么?给我们留下深刻印象的,可能是DeepFakes深度伪造视频、生成逼真的人脸图像、听起来与真人无异的语音记录,以及由OpenAI Transformers撰写的假新闻等等。
ICLR 2019统计:三大主题中的生成式建模, https://ailab.criteo.com/iclr-2019-stats-trends-and-best-papers/
面对这一切,大家可能顺理成章地提出这样一个问题:
这些深度伪造与文本生成跟智能有什么关系?它们代表的,是真正的创造力吗?
当然不是,它们代表的只是一些复杂的非线性统计数据。
那它们能取代艺术家、作家以及分析师吗?
并不能,它们目前甚至连实际性的辅助效果都达不到。
难道我们除了生成高分辨率的小猫图片,让照片里的人脱掉衣服,或者让Mark Zuckerberg说出奇怪的话之外,就没什么正事可做了吗?为什么拥有最强大人才储备、最雄厚财力资源的企业巨头,要把时间和金钱浪费在这些事上面呢?
为了回答这一系列问题,我们需要深入探讨机器学习中的基础知识,特别是神经网络等模型在通过训练尝试解决我们提出的问题时,其内部到底发生了什么。下面,我们先对今天需要探讨的内容做出总结:
我无法创造自己理解不了的东西。 — Richard Feynman
下面,我们来看看现代机器学习算法是如何生成事物的。大多数AI应用程序的运作流程如下所示:
用数学术语来说,我们拥有一个包含大量自由度的函数(最近最热门的此类函数当数深度神经网络)。只要正确发现这些自由度(或者叫权重,或者参数),即可将复杂的输入数据(包括图像、文本、声音、统计数据等)与定义的输出映射起来(可以是类别集合、真值、甚至是图形等非常复杂的结构化输出结果)。
f — 使用一组参数w,将输入x映射至输出y。
如何找到正确的参数?通常,我们会定义一些良好的标准以实现最大化(例如最大化分类准确性),确定数学替代式(例如交叉熵,亦被称为损失函数),并通过可微分数据建模函数及可微分损失函数等运行数值优化流程,同时观察这套最大化模型在自由度方面的实际表现。
需要针对模型进行参数优化的交叉熵函数
其中的y^{p}{n}为该模型相对于输入x{n}的输出结果,正则y_{n}则是来自数据集的真实对应标签
在优化过程结束时,只要具备足够大的输入数据集与相应的正确输出,同时选择了良好的数据建模函数,那么由此找到的参数就能够将肺部X射线图像与对应的健康状况类型对应起来,其效果甚至普遍优于人类医师。当然,一切训练流程的关键在于发现的一组参数,这些参数在使用某些特定数据时能够在某些特定问题中获得最佳结果。但如果抛开特定数据,其找到的是否真的就是最优解?
大家都知道,监督学习模型能够在很多任务中带来良好表现,但是这种卓越的准确率背后也有一定代价。具体来讲,AI研究虽然能够在越来越强大的数学模型的支持下更好地满足人类预期,但负责监督这些模型的人员却存在滥用倾向,或者是把无法满足期望与模型错误联系起来。
过度拟合有很多具体表现形式,其在日常实践中则主要体现为以下三种情况:
从数学意义上来讲,这意味着我们的参数w无法描述训练集之外的其它数据中的模式。
目前,越来越多企业开始全面采用机器学习模型,而这些模型中也开始出现来自人类的性别歧视、种族主义、沙文主义以及其它负面的偏见模式。这种倾向有可能毁掉他人的生活,如上图所示就是个非常现实的例子。那么,我们能否从过往算法中找到解决办法?
在数学意义上讲,这意味着参数w不受数据特征与真实属性的影响,而是首先受到反馈y的影响,而反馈y中很可能包含偏见。
利用ImageNet训练得出的CNN偏向于纹理;增加形状偏见能够提高其准确性与鲁棒性, https://openreview.net/forum?id=Bygh9j09KX")
在研究阶段运行良好的算法,很可能在实际问题上意外失败。例如,事实证明目前得到广泛使用的卷积神经网络(CNN)极易受到对抗性攻击的影响,而且其学习到的往往并不是视觉对象的形状,而是其纹理(详见上图及链接)。问题可能在于我们为此类模型选定的核心数学运算——卷积——似乎不够鲁棒。
另一个常见的例子,就是代理的强化学习。其本应该在具有相同目标的不同环境当中带来相同的表现。但是如果将需要吃掉的橙色圆球替换为蓝色圆球时,它就有可能陷入迷茫。我们可以认为其出现了过度拟合,但问题的核心还是在算法设计身上。
在数学上,这意味着向量w在网络结构中未能得到正确构建。
如大家所见,大多数问题源自模型参数、参数的值以及某些结构问题。在大多数情况下,“添加更多(正确)数据”规则以及在特定场景下提供更多标记数据(例如特斯拉的无人驾驶训练方式)能够带来改善;但除此之外,不少准生成方法也受到人们的关注,其能够对预训练模型进行微调,进而在基于其它任务的不同大规模数据集上继续发挥作用。实际上,这已经成为当前AI研究的一大热点。为什么?因为每当面对新问题时都得重新训练算法,显然不符合我们对于机器智能的基本定义。假设我们拥有一款应用程序,它能够区分猫与狗的图像;我们当然不希望在每次有新品种出现时都对它进行重新训练,它应该学会自行推断这些新品种到底是猫还是狗。
统计学习的历史回顾为了建立完整的观点,我们先来看看机器学习经典论著中对机器学习的定义——例如Christopher Bishop所著的《模式识别与机器学习(Pattern recognition and machine learning)》。作者通过降低复杂性,将建模流水线整理为三个高级选项:
用于分类的贝叶斯框架:分别为每个类C_{k}提供第一模型类条件密度p(x|C_{k}),而后应用贝叶斯定理。
如大家所见,所有现代深度学习都选择了后一种选择,这也是最简单也最肤浅的解决方法。而完全贝叶斯方法的主要问题,在于它目前还无法直接应用于高维复杂数据。
既然我们都同意,直接监督学习可能并不是学习有效及广义表示的最佳方式,同时也检查了贝叶斯方法并确定其与生成式建模的第一阶段相关,下面自然该审视目前主流的生成式建模算法,并讨论它们为什么能够成为数据科学家手中的强大工具了。在这里,我们将选择生成对抗网络(GAN)与变分自动编码器(VAE)作为最受欢迎也最具代表性的研究对象。
GAN属于基于神经网络的架构,由两套模型构成:其一为生成器G(有时候也被称为艺术家),其二为鉴别器D(有时亦称评论家)。大家应该能够想到,生成器是负责生成对象的部分,而鉴别器则负责判断其生成的样本内容是否真实。两套网络将共同进行联合训练,其中生成器若产生了不够逼真的样本,则会受到惩罚。实际结果令人惊讶,但问题是面向其它场景的重复使用则比较困难。我们将在下一章节中具体阐述。
GAN的损失函数旨在最大化鉴别器网络的准确性,并最小化来自生成器网络的生成样本方差。也有人认为,这就是一场D与G之间的“竞争”,而GAN的训练其实就是一场比大小的游戏。这里的x_{i}为来自数据的真实样本,样本z_{i}为输入至生成器网络的随机噪声,w_{d}属于D的权重,w_{g}为G的权重。
VAE是一类相对简单的模型,但其中仍然包含两套神经网络。其一(编码器)通过训练将输出内容编码为压缩码;其二(解码器)则尝试利用压缩码还原出输入内容。其基本思路在于,只要正确进行选择与训练,压缩表示将能够包含来自输入内容的所有必要信息,同时维度更低。我们坚信,只要解码器神经网络能够将压缩码还原为输入内容,那么该压缩码即准确可信。此外,如果我们立足特定分布对该码进行采样,则利用解码器借此生成新的实际数据样本。当然,其中还包括与压缩码控制以及码元素特定属性相关的其它一些方法。
VAE通过训练对上述变分下限进行优化。其中的w_{e}与w_{d}分别代表编码器与解码器网络的权重。e与d分别代表编码器与解码器网络输出产生的分布。损失函数的第一部分为编码器分布与解码器分布(E近似为D)之间的KL散度。损失函数的第二部分,则可以是规定的交叉熵,或者是代表微小变化的均方差。
在GAN与VAE当中,我们都能获得数据(或者码)的表示,该数据可利用某种解码器或者生成器模型根据数据集生成实际对象。但是,我们要如何利用它处理真正感兴趣的分类、回归以及其它下游任务?
利用VAE进行推理任务相对比较简单——以无监督方式下的大量数据训练为例,我们可以使用经过训练的编码器提取特征(对象码),并通过此码训练另一算法,从而线性回归出另一套神经网络。感兴趣的朋友可以通过以下链接参阅这篇半监督文本分类文章,其中VAE能够在训练中使用较少的标记数据带来更好的实际表现:
GAN的使用则相对复杂,因为其并不能像VAE那样生成明确的表示。一般来说,鉴别器不仅负责区分样本的真假,同时也将负责解决下游任务。由于“看到”过大量关于真假的示例,鉴别器天然要比纯监督学习模型更为强大。以下链接展示了GAN在遥感图像分类方面取得的重大成果:
后续研究进一步提高了准确率,且复杂性与数据需求量反而有所下降。最酷的是,在这两种场景下,我们甚至能够实现生成与分类的联合训练——其效率不仅高于逐一训练,甚至性能也有所提升。
好了,说了这么多,我们到底该怎么让这些模型从经典的监督学习场景下学习并提取表示、解决实际问题,并为我们带来新的发展机遇与生成方式?
说到这里,大家可能会将生成式模型视为标准统计学习框架的一种理想延伸与扩展,毕竟它更擅长整理关于底层数据的一般性知识。那么,为什么AI行业没有这么做?为什么大多数大学课程、MOOC以及教程都在强调监督学习,而无监督生成建模只偶尔出现在博士论文以及学生/学术机构的博客当中?答案是,这个转换过程正在推进。这里我只提一部分案例,感兴趣的朋友也可以自行搜索更多支持性素材。
当然,本篇文章的目的并不是劝阻大家继续进行监督学习,转而利用自动编码器解决您所面对的全部问题。相反,我的目标是扩展数据科学思维,提醒大家关于统计学习的基本原理,并解释为什么AI研究社区如此痴迷于生成式建模技术——这绝对不只是为了好玩。
另外,我建议大家新自体验一下生成建模的能力。最好的起步方式之一,在于选择您最熟悉的监督学习流水线,训练模型以生成数据的真实样本(如果处理的是图像则使用卷积VAE,如果处理的是文本则使用自回归转换器),而后在新的小型子集之上对监督任务进行微调。我相信,结果绝对会令您大吃一惊。
最后,我要再分享几项无监督/自监督或生成式模型的实际用例。这些模型在解决此类问题方面不仅完全超越人类,同时也是监督学习范式所几乎不可能实现的!
原文链接:
https://medium.com/cantors-paradise/generative-ai-a-key-to-machine-intelligence-674c89a81bc
领取专属 10元无门槛券
私享最新 技术干货