文 /Stephen wolfram
编译 / 柳叶惊鸿
最近,美国众议院常设情报特别委员会 (U.S.House Permanent Select Committee on Intelligence) 的一个人联系我,说他们正在举行一场有关 Deep Fakes(深度造假) 的听证会。虽然我不能参加听证会,但这次谈话让我想到了 "Deep Fakes" 这个话题,我很快做了一些笔记。
人们对修改图像的想法和摄影艺术诞生的时间一样古老。在很早的时候,修改图像或图画需要手工完成 (有时需要喷枪),而到了 20 世纪 90 年代,人们已经开始习惯用 Photoshop 等图像处理软件来完成这项工作。能通过以假乱真的技术成功欺骗他人是一门艺术,就像将一个人塞入一个场景中一样。光线或阴影不一致,就很容易看出一个图像并不是真实的。
而对于视频呢 ? 如果一个人通过动作捕捉系统,并且付出了足够的努力去模仿或学习,就完全有可能得到以假乱真的结果,比如为外星人制作动画,或者将去世的演员放进电影中。这种方法的工作原理是从一张脸上挑出关键点,然后利用动作捕捉技术把它们映射到另一张脸上。
而在最近几年,这类技术有了新的突破,原先需要通过动作捕捉技术的过程基本上可以通过机器学习实现自动化一神经网络,它们只要经过简单地训练就能实现 " 换脸 "。
从本质上说,这些神经网络所做的就是将一个内部模型拟合到一个脸上,然后将其应用到另一个脸上。模型的参数实际上是通过观察大鱼的真实场景以及观察更现这些场景所需的内容而获得的。目前的方法一股是使用生成对抗网络 (GANs),其中两个网络之间存在迭代:一个试图生成结果,另一个试图将结果与真实结果区分开来。目前的 Deep Fakes 应用还远远不够完美,用肉眼判断出什么地方不真实并不难。但是,随着工程师对算法的调整以及更高性能计算机的使用,这项技术将会快速进步。因此,我们完全有理由相信未来能实现生成出人类肉眼无法区分的 Deep Fakes。
机器学习能自我管理吗?
虽然人类无法马上分辨出那些图像的真假,但机器生成的图像肯定有一些 " 机器生成 " 的特征。那么为何不让机器来做识别呢?
实际上,生成机器图像的整个方法就是让模型尽可能真实地再现真实图像的 " 统计数据 ",而在 GAN 内部有一个用来区分 " 真或假 " 的判别器网络 (Discrimi-nator Network) 。GAN 的关键意义是迭代一持续性地迭代直到判别器无法分辨生成的东西和真实的东西之间的区别。
你能找到 GAN 没有注意到的图像的其他特征吗?比如一张脸是否足够对称,或者背景文字是否可读?当然可以,但在这个层面上,GAN 的判别更类似一场军备竞赛 : 一旦识别出一个特征,就会把它放入神经网绪正在使用的模型中,然后就不能再用这个特征进行区分了。
然而,这也有局限性。因为一个典型的神经网络能够学习的东西是有限的。一般来说,神经网络在图像识别等人类不需要思考的任务上做得很好,但如果一个人试图让神经网络做数字,比如寻找因子数,那就是另一回事了。
想象一下,如果在修改一个视频时,你必须填充一个复杂计算的参数一比如说数学计算。那么,一个标准的神经网络基本上没有机会去对视频进行修改。
会不会很容易验证出它是错的 ? 确实存在这种可能,比如你正在处理公祖加密或数字签名,你当然可以设置一些参数,使神经网络很难生成正确的东西,但是却很容易检査它的结果是否正确。不过这种东西会出现在真实的图像或视频中吗?
在实际的科学工作中已经表明,即使在规则非常简单的系统中,不可化约的复杂性非常普遍,甚至在自然界的中也同样存在。比如水里的水花,要是想弄清楚水花滋起来的细节,需要进行复杂的计算。虽然一个神经网络通过训练可以得到一些基本上看起来像沿水的东西,但是要想得到一个特定溅水的细节就要困难得多。
但即使在抽象的计算不可化约性中可能很常见,而我们人类在进化和为自己建立的环境中,最终往往会尽最大努力避免它。我们有曲线平滑的形状,我们用简单的几何结构来建造东西,我们试图让事物变得可演变或可理解。正是这种时计算不可化约性的避免,使得神经网络能够成功地模拟像我们一些实际并不存在的类似特效场景这样的事物。
当然,有人会破坏这一点。只需在图片中显示一些复杂的计算(例如 cell-auto)。如果有人试图用神经网络来伪造这方面的东西,那么它(至少是靠它自己)就不可能得到正确的细节。
我怀疑,在未来的人类技术中,当我们在计算宇宙中深入挖掘时,不可化约计算将在我们所构建的东西中更加普遍。但到目前为止,这种情况仍然很少见。因此,我们可以期望神经网络能够成功地对正在发生的事情进行建模,至少能够愚弄其他神经网络。
如何区分什么是真实的
如果无法通过分析图像中的像素来判断它是否是真实的照片,这是否意味着我们无法判断图
像真假 ? 不。因为我们还可以考虑与图像相关的元数据一比如图像的来源,图像是什么时候创建的 ? 是由谁创建的 ? 等等。
假设我们创建了一个图像。我们怎样才能建立起这样的机制来证明我们什么时候做的?在现代技术看来,这其实很简单 : 我们获取图像,井从中计算得到哈希值。然后我们把这个哈希值放到区块链上。
区块链充当一个永久性的分布式账本。一旦我们把数据放到上面,它就永远不会被改变,我们总是可以回去看看数据是什么,以及什么时候添加到区块链的。这个设置允许我们证明创建图像的时间。如果想要证明这幅图像是我们最早创建的,那么当为圏像创建哈希值时,我们可以将这个图像的哈希值放入到区块链中。
但是如何知道是谁创建了这个图像呢?它需要一些与证明网站真实性非常相似的加密基础设施。但是,如果您可以信任一些 " 证书颁发机构 ",那么您可以将数字签名与验证创建者的圏像关联起来。
那么如何知道照片的拍摄地点昵 ? 假设一个人对设备或软件有一定程度的访问权限,他可以修改设备或软件的参数,那么 GPS 就会被欺骗,从而导致图像携带的信息也是错误的。如果一个人在拍摄照片时记录了足够多的环境信息,那么拍摄岀来的图像就会越来越难以欺骗。比如附近的 Wi-Fi 网络是什么 ? 芯牙延迟多少 ? 温度 ? 气压 ? 声音水平 ? 加速度计读数 ? 如果一个人在拍摄时收集了足够的信息,那么就更容易判断图像是否有不正确的信息。
有几种方法能做到这一点。比如我们可以用机器学习来检测异常,或者可以将信息与一些公共消息联系起来。据说照片拍摄地的天气真的是那样吗 ? 为什么头顶上没有某某飞机的影子 ? 为什么电视上播放的东西不是应有的拍摄时间信息等。
如果一个人仅仅局限于知道自己的创造时间和创造者 ID,那么如何在实践中验证它们呢?最好的方案似乎类似于现代浏览器处理网站安全的方式。浏览器尝试检查网站的加密数字签名,如果匹配浏览器会显示一些内容,说明网站是安全的 ; 如果不匹配,那么网站会显示某种警告。
因此,让我们假设一个图像,它带有关于其创建时间和创建者 ID 的数据。这些数据可以是元数据(比如 EXI F 数据),也可以是嵌入到图像中详细位的水印。然后图像查看器(比如在浏览器中)可以检查区块链上的哈希是否与图像提供的数据含义一致。如果是一致的,那么就通过验证,图像查看器可以提供创建时间和创建者 ID。如果没有,图像查看器应警告用户似乎有什么不对劲。
对于视频来说也可以做同样的事情。它只需要视频播放器计算视频的哈希值,并与区块链上的哈希值进行比较。通过这样做,我们可以保证观看者能看到一个与原视频完全一样的完整视频。
这在现实中如何运作呢 ? 可能人们并不希望看到在某些事件中拍摄的所有原始视频。但是,如果人们愿意,那么可以授权新闻机构允许点击进入查看相关的图像或视频。我们可以很容易地想象数字签名机制,它可以用来确保一个视频不包含源视频之外的内容,也就是保证了原视频不受篡改。
前进的道路
那么,这会给我们帯来什么样的 Deep Fakes 呢 ? 机器学习本身救不了我们,也并不会有一个纯粹的真假探测器可以在任何图像或视频上运行。当然,是有一些方法可以保护图像不被伪造。
但我认为,打击 Deep Fakes 的真正方法是使用区块链技术,并将获取图像的环境中的图像和传感器数据存储在一个公共的分布式账本中。哈希的存在可以保证是何时获取图像,再结合来自传感器和其他渠道的数据,这样的 " 三角测量 " 可以让人相信我们所看到的图像或视频是其实世界中发生的事情。
当然,这其中还有很多技术细节需要解决。但我希望随着时间的推移,图像和视频观众能够定期检查区块链(以及 " 数据三角计算 "),这样更类似现在的 Web 浏览器检查安全证书的方式。如果这项技术能够普及,那么我们对 Deep Fakes 的认知将会从 " 这个照片是真的吗 ?" 转变为 " 这个照片并不在区块链上,它肯定是假的 "。
来源链接:mp.weixin.qq.com
来源:时代观察