2018年1月5日星期五

AI研发新药真有那么神?可能哈佛、斯坦福和阿斯利康实验室都在吹牛

安妮 李林 编译自 Medium量子位 出品 | 公众号 QbitAI

近年来,向往着用AI研发新药的美好愿景,巨头纷纷投下了重注。

制药巨头赛诺菲和AI药物发现平台Exscientia签下3亿美元巨额订单,葛兰素史克随后也出了4200万美元。默克和Atomwise、强生旗下的杨森制药与BenevolentAI也都有类似的合作。

风投也非常看好这个领域。硅谷VC公司安德森·霍洛维茨(A16Z)为投资AI药物发现公司,组建了一支4.5亿美元的基金。

好像巨头都上车了,小玩家要不要跟上?

今天,硅谷极客们最爱的HackerNews上有一篇热门文章就在探讨这件事。大部分评论者都同意这篇文章的基本观点:AI在药物发现中的作用被过度吹捧了

这篇文章通过分析制药公司阿斯利康、名校哈佛和斯坦福、以及创业公司Insilico Medicine等名声卓著的实验室最近的一些研究,来说明AI研究者是如何过度吹捧他们的成果的。

以下是这篇热门文章的主要内容,量子位编译整理:

1981年的《财富》杂志封面:

在默克,用计算机设计药物

我乐观地认为,这些事情2018年会有变化。这可能并不是因为人工智能的突破,而是因为这些研发机构会有进步:现在,随着在线教育和社交媒体的兴起,更强力的检查和平衡已经成为可能,为开放同行评议提供了新机会,这会成为挤泡沫的力量。

接下来,让我们进入技术部分,谈谈最近一些过度吹捧的AI研究案例。

阿斯利康

最近,英国制药公司阿斯利康和明斯特大学、上海大学的研究者一起发表了一项研究,尝试用循环神经网络(RNN)和强化学习来生成新分子。

相关论文:

Generating Focussed Molecule Libraries for Drug Discovery with Recurrent Neural Networks

http://ift.tt/2hZoE0x

这个问题很重要,因为一个创造性的AI能为发现引导物的流程中带来更多多样性。

这篇论文引起了我的注意,是因为用了很大篇幅来讲模型的评价。这看起来很有深度,他们给出了基于谷本系数相似性度量和基于levenshtein距离等多个衡量指标。论文中还有大量的可视化展示。

然而,他们的衡量标准都是用在AI生成的分子与自然分子之间的,总是"省略"了对AI产生的分子彼此之间距离的测量。这种省略让人有一种"多样性"的错觉:AI生成的分子和自然分子之间的距离很大,就可以认为AI具有创造性,探索了化学空间中的新方向。

于是我们就有了如下图所示的错觉:

真正的多样性:蓝色圆点代表AI生成的分子,红色十字代表自然分子

而实际上,如果AI生成的分子之间距离很小,这就意味着我们陷入了下图所示的状况,模型所产生的分子基本位于同一位置,并没有多样性:

多样性错觉:AI生成的分子(蓝色圆点)和自然分子(红色十字)之间仍然有很大距离,但AI生成的分子集中在一起

简单来说,阿斯利康这篇论文对房间里的大象视而不见,最近这家公司一些其他论文依然有这个问题。

比如:

Molecular De Novo Design through Deep Reinforcement Learning

http://ift.tt/2Cuw2wi

Application of generative autoencoder in de novo molecular design

http://ift.tt/2CYmElF

哈佛

哈佛的一个团队注意到了这个多样性的问题。他们通过查看人工智能生成的样本,感觉出了问题,想要做点什么,于是提出了ORGAN模型。

相关论文:

Objective-Reinforced Generative Adversarial Networks (ORGAN) for Sequence Generation Models

http://ift.tt/2rzcjJb

Optimizing distributions over molecular space. An Objective-Reinforced Generative Adversarial Network for Inverse-design Chemistry (ORGANIC)

http://ift.tt/2wnt62j

GitHub地址:

http://ift.tt/2qSyYfu

他们的想法是要带来更丰富的化学多样性和化学现实主义,用第二个神经网络——鉴别器来校正生成器。如果分子看起来不太自然,它就惩罚生成器。这个想法来自AI学术界火爆的"生成对抗网络(GAN)"。

这是个好想法,但执行得非常糟糕。他们的结论是ORGAN比较好,但这个说法只是基于他们自己的观察得到的,没有任何量化支持。他们的定量实验并不支持这一结论。

而且,他们训练模型的方式是有问题的。看他们在GitHub上公开的训练日志就会发现,鉴别器总是在高度惩罚生成器,这个鉴别器太追求完美了,根本就是消灭了GAN的好处。

斯坦福

斯坦福有个用AI和深度学习研究化学的大团队,团队负责人是Vijay Pande,具有斯坦福教授和A16Z风投公司投资人的双重身份。

在Vijay Pande管理的投资项目中,"专为用机器学习方法测试分子性质而设计的基准"MoleculeNet最受关注的一个。

这个项目看起来画风严肃,包含大量化学知识、图形及深度学习模型,尤其关注graph-CNN和斯坦福团队其他为化学问题特制的神经网络。

MoleculeNet中的特制图

然而,还有一个大家心知肚明但却避而不谈的问题:上述Pande团队没有努力将他们的数据插入到一个字符级的卷积神经网络(char-CNN)中。自2015年Yann LeCun的论文Text Understanding from Scratch提出这种方法后,字符级CNN就容易被例行公事地用在各种AI任务中进行文本处理,并且比graph-CNN简单得多。

如果想使用字符级CNN,插入"SMILES(simplified molecular-input line-entry system)"字符串就好了。

回过头来想想,为什么斯坦福的研究人员不选择这种更简单的操作呢?在论文MoleculeNet: A Benchmark for Molecular Machine Learning的第17页,我们可以看到:

最近的研究已经证明了用更复杂的方法从SMILES字符串学习有用表示的能力,所以在不久的将来,将SMILES字符串用于进一步的学习任务是可行的。

MoleculeNet: A Benchmark for Molecular Machine Learning

http://ift.tt/2mtuVrg

我不太相信字符级CNN对这个斯坦福团队来说过于复杂了,他们甚至在另外一篇文章中用到了字符级CNN。

Retrosynthetic reaction prediction using neural sequence-to-sequence models

http://ift.tt/2rWdans

一个更合理、更尴尬的解释是,他们害怕字符级CNN的效果会更好。这意味着,他们心爱的graph-CNN模型将在分子基准测试中被击败,而这并不符合他们的期望。

原因很简单。DeepChem是一个斯坦福领导的开源库,用来实现MoleculeNet模型。如果字符级CNN比graph-CNN效果好,那么实践者就无需DeepChem了,他们可以直接用简单的TensorFlow或Pytorch实现。

DeepChem主页

在2018年,开源框架是一种战略性资产,就像通过Android,谷歌主宰了移动操作系统市场一样。DeepChem可能也想走一条类似的道路,控制AI在药物发现领域的发展。这可能就是MoleculeNet对字符级CNN视而不见的原因。

我自己使用DeepChem的经历印证了这个推测。曾经我天真地想在项目中使用DeepChem,直到我发现,无法将DeepChem模型和非DeepChem模型混合在一起。用DeepChem辨别器和非DeepChem生成器对对抗训练很有用,但我无法实现这个想法。相反,我被牢牢锁在DeepChem的代码中,没有料想到还有如此恶意的东西。

为了逃离这个陷阱,让DeepChem真正开源,我不得不挖掘复杂的代码。

项目地址:

http://ift.tt/2lYhJsL

对于一个更成熟的项目来说,这样做会更加困难。所以我的印象是,用这种"厂商锁定"的策略,DeepChem想吃掉AI世界来做化学研究。所以我对他们的合作投资人中有Marc Andreessen一点都不惊异。

Marc Andreessen曾有句名言:简而言之,软件正在吃掉世界

虽然MoleculeNet的团队成员刻意避免用字符级CNN做基准测试,但他们仍为MoleculeNet和DeepChem设计了精美的网页。这表明他们还是太注重表面,PR优先于坚实的科学研究。这也是硅谷的典型策略,初创公司设计虚假产品吸引流量,然后依靠社区来构建真实的东西。

硅谷知道,设计外表面比建造房屋更有用

Insilico Medicine

Insilico Medicine是AI创业公司中生成模型的先驱。在一篇论文中,Alex Zhavoronkov和他的团队提出了DruGAN,一种先进的生成式对抗自编码模型。我一直搞不明白这个模型哪里先进了。

druGAN: An Advanced Generative Adversarial Autoencoder Model for de Novo Generation of New Molecules with Desired Molecular Properties in Silico

http://ift.tt/2wUBDwa

就发现药物这个需求来说,DruGAN肯定已经不先进了:它和其他的生成模型有相同的缺点,可能会让人失望。

在最近的一篇论文中他们使用了更复杂的工具,但也称不上先进吧。在他们论文的第9-10页,有这样一段话:

本研究使用的MACCS分子指纹不是理想的分子结构表征。Direct SMILES、InChI、分子图以及其他化学和生物相关的分子结构表征可作为更好的训练类型。

他们甚至还没有用到基准测试的变分自编码器(VAE)。在论文中他们声称DruGAN比VAE好,但是在Github上,一个DruGAN的作者提出了相反的观点:

实际上,我们没有像AAE[DruGAN]那样调优VAE网络,所以这种比较不公平。我的意思是,你可以优化VAE,并超越我们的AAE。

所以我认为,DruGAN只比他们8个月前发表的论文先进。在整个论文中,他们不断提到相比以前工作的改进。也许,"进步"只是一个自我祝贺的词。

综上所述,我认为,AI在药物研发领域的应用被很多研究人员夸大了。

http://ift.tt/2CrUoL1

欢迎大家关注我们的专栏:量子位 - 知乎专栏

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复"招聘"两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态



via 量子位 - 知乎专栏 http://ift.tt/2Edf2eb
RSS Feed

RSS5

IFTTT

AI玩微信跳一跳的正确姿势:跳一跳Auto-Jump算法详解


最近,微信小游戏跳一跳可以说是火遍了全国,从小孩子到大孩子仿佛每一个人都在刷跳一跳,作为无(zhi)所(hui)不(ban)能(zhuan)的 AI 程序员,我们在想,能不能用人工智能(AI)和计算机视觉(CV)的方法来玩一玩这个游戏?


于是,我们开发了微信跳一跳 Auto-Jump 算法,重新定义了玩跳一跳的正确姿势,我们的算法不仅远远超越了人类的水平,在速度和准确度上也远远超越了目前已知的所有算法,可以说是跳一跳界的 state-of-the-art,下面我们详细介绍我们的算法。


算法的第一步是获取手机屏幕的截图并可以控制手机的触控操作,我们的 github 仓库里详细介绍了针对 Android 和 IOS 手机的配置方法。


Github 地址:

http://ift.tt/2CSdsyV


你只需要按照将手机连接电脑,按照教程执行就可以完成配置。在获取到屏幕截图之后,就是个简单的视觉问题。我们需要找的就是小人的位置和下一次需要跳的台面的中心。


如图所示,绿色的点代表小人当前的位置,红点代表目标位置。




多尺度搜索 Multiscale Search


这个问题可以有非常多的方法去解,为了糙快猛地刷上榜,我一开始用的方式是多尺度搜索。我随便找了一张图,把小人抠出来,就像下面这样。




另外,我注意到小人在屏幕的不同位置,大小略有不同,所以我设计了多尺度的搜索,用不同大小的进行匹配,最后选取置信度(confidence score)最高的。


多尺度搜索的代码长这样:




我们来试一试,效果还不错,应该说是又快又好,我所有的实验中找小人从来没有失误。


不过这里的位置框的底部中心并不是小人的位置,真实的位置是在那之上一些。




同理,目标台面也可以用这种办法搜索,但是我们需要收集一些不同的台面,有圆形的,方形的,便利店,井盖,棱柱等等。由于数量一多,加上多尺度的原因,速度上会慢下来。


这时候,我们就需要想办法加速了。首先可以注意到目标位置始终在小人的位置的上面,所以可以操作的一点就是在找到小人位置之后把小人位置以下的部分都舍弃掉,这样可以减少搜索空间。


但是这还是不够,我们需要进一步去挖掘游戏里的故事。小人和目标台面基本上是关于屏幕中心对称的位置的。这提供了一个非常好的思路去缩小搜索空间。


假设屏幕分辨率是(1280,720)的,小人底部的位置是(h1, w1),那么关于中心对称点的位置就是(1280 - h1,720 - w1),以这个点为中心的一个边长 300 的正方形内,我们再去多尺度搜索目标位置,就会又快有准了。


效果见下图,蓝色框是(300,300)的搜索区域,红色框是搜到的台面,矩形中心就是目标点的坐标了。




加速的奇技淫巧(Fast-Search)


玩游戏需要细心观察。我们可以发现,小人上一次如果跳到台面中心,那么下一次目标台面的中心会有一个白点,就像刚才所展示的图里的。


更加细心的人会发现,白点的 RGB 值是(245,245,245),这就让我找到了一个非常简单并且高效的方式,就是直接去搜索这个白点,注意到白点是一个连通区域,像素值为(245,245,245)的像素个数稳定在 280-310 之间,所以我们可以利用这个去直接找到目标的位置。


这种方式只在前一次跳到中心的时候可以用,不过没有关系,我们每次都可以试一试这个不花时间的方法,不行再考虑多尺度搜索。


讲到这里,我们的方法已经可以运行的非常出色了,基本上是一个永动机。下面是用我的手机玩了一个半小时左右,跳了 859 次的状态,我们的方法正确的计算出来了小人的位置和目标位置,不过我选择狗带了,因为手机卡的已经不行了。




以下是效果演示:




到这里就结束了吗?那我们和业余玩家有什么区别?下面进入正经的学术时间,非战斗人员请迅速撤离。


CNN Coarse-to-Fine 模型


考虑到 iOS 设备由于屏幕抓取方案的限制(WebDriverAgent 获得的截图经过了压缩,图像像素受损,不再是原来的像素值,原因不详,欢迎了解详情的小伙伴提出改进意见)无法使用 fast-search,同时为了兼容多分辨率设备,我们使用卷积神经网络构建了一个更快更鲁棒的目标检测模型。


下面分数据采集与预处理,coarse 模型,fine 模型,cascade 四部分介绍我们的算法。


数据采集与预处理


基于我们非常准确的 multiscale-search 和 fast-search 模型,我们采集了 7 次实验数据,共计大约 3000 张屏幕截图,每一张截图均带有目标位置标注,对于每一张图,我们进行了两种不同的预处理方式,并分别用于训练 coarse 模型和 fine 模型,下面分别介绍两种不同的预处理方式。


Coarse 模型数据预处理


由于每一张图像中真正对于当前判断有意义的区域只在屏幕中央位置,即人和目标物体所在的位置,因此,每一张截图的上下两部分都是没有意义的。


于是,我们将采集到的大小为 1280*720 的图像沿 x 方向上下各截去 320*720 大小,只保留中心 640*720 的图像作为训练数据。


我们观察到,游戏中,每一次当小人落在目标物中心位置时,下一个目标物的中心会出现一个白色的圆点。




考虑到训练数据中 fast-search 会产生大量有白点的数据,为了杜绝白色圆点对网络训练的干扰,我们对每一张图进行了去白点操作,具体做法是,用白点周围的纯色像素填充白点区域。


Fine 模型数据预处理


为了进一步提升模型的精度,我们为 fine 模型建立了数据集,对训练集中的每一张图,在目标点附近截取 320*320 大小的一块作为训练数据。




为了防止网络学到 trivial 的结果,我们对每一张图增加了 50 像素的随机偏移。fine 模型数据同样进行了去白点操作。


Coarse 模型


我们把这一问题看成了回归问题,coarse 模型使用一个卷积神经网络回归目标的位置。




经过十小时的训练,coarse 模型在测试集上达到了 6 像素的精度,实际测试精度大约为 10 像素,在测试机器(MacBook Pro Retina, 15-inch, Mid 2015, 2.2 GHz Intel Core i7)上 inference 时间 0.4 秒。


这一模型可以很轻松的拿到超过 1k 的分数,这已经远远超过了人类水平和绝大多数自动算法的水平,日常娱乐完全够用,不过,你认为我们就此为止那就大错特错了。


Fine 模型


Fine 模型结构与 coarse 模型类似,参数量稍大,fine 模型作为对 coarse 模型的 refine 操作。




经过十小时训练,fine 模型测试集精度达到了 0.5 像素,实际测试精度大约为 1 像素,在测试机器上的 inference 时间 0.2 秒。


Cascade




总体精度 1 像素左右,时间 0.6 秒。


总结


针对这一问题,我们利用 AI 和 CV 技术,提出了合适适用于 iOS 和 Android 设备的完整解决方案,稍有技术背景的用户都可以实现成功配置、运行。


我们提出了 Multiscale-Search,Fast-Search 和 CNN Coarse-to-Fine 三种解决这一问题的算法,三种算法相互配合,可以实现快速准确的搜索、跳跃,用户针对自己的设备稍加调整跳跃参数即可接近实现「永动机」。


讲到这里,似乎可以宣布,我们的工作 terminate 了这个问题,微信小游戏跳一跳 Game Over!

友情提示:适度游戏益脑,沉迷游戏伤身,技术手段的乐趣在于技术本身而不在游戏排名,希望大家理性对待游戏排名和本文提出的技术,用游戏娱乐自己的生活。


声明:本文提出的算法及开源代码符合 MIT 开源协议,以商业目的使用该算法造成的一切后果须由使用者本人承担。


原文链接:http://ift.tt/2AyZak7


]]> 原文: http://ift.tt/2CNy9Q0
RSS Feed

机器知心

IFTTT

腾讯优图为「刷脸」之旅打造新任守护者——「极光守卫」

腾讯优图实验室成功研发光线活体技术,通过闪光模拟实现多重随机信息的编码和解码,使方法建立在密码学的坚实基础之上,是目前已知安全级别最高的技术之一。

 

极光守卫 Aurora Guard,这个名字听起来好似是某部好莱坞大片中惩恶扬善的超级英雄,或是科幻小说里拯救地球的未来战士。他一出场就自带舞台效果,眼里有星辰大海,身后有万丈光芒,铜墙铁骨坐镇一方,一身孤勇足以抵御八方来袭。

 

不过事实上,这个酷炫名字的背后并非一个有血有肉的「守护者」,而是腾讯优图实验室研发的一项新技术——光线活体,它在我们触摸不到的计算机世界里恪尽职守,基于神经网络模型分析投射到人脸上的光线数据,然后推导出活体判断所需的人脸三维和质感信息,在验证成功时放行,同时阻挡企图蒙混过关的攻击者的袭击。


「极光守卫」的诞生


众所周知,活体检测环节在人脸识别解决方案中的作用至关重要。

 

随着人脸技术的火速发展,不法分子的人脸攻击手段也层出不穷,仅凭二维信息实现活体检测已经不够缜密。为了阻挡屏幕翻拍、照片打印、3D 面具等浑水摸鱼手段,三维重建成为了活体检测中必不可少的一个过程。

 

三维重建并不是一个新颖的课题,基于双目视觉原理的三维重建早已应用于自动驾驶等领域。而 2017 年上市的 iPhone X,则让基于结构光的三维重建出尽风头,结构光技术在业内人士口中出现的频率也陡然上升。


腾讯优图团队继独创的唇语活体上线并广泛应用后,于 2016 年初就着手准备研发新的活体检测技术,致力于挖掘手机上各式传感器的潜力。在展开了头脑风暴并提出了一系列天马行空的想法后,团队最终锁定了最具潜力的结构光原理,期望可以从反射光中提取有价值的信息,并于 2016 年 10 月正式进行光线活体技术的研发。

 

结构光三维重建的实现需要具备三个要素,分别是两个硬件要素和一个逻辑要素。硬件要素包括发射光线的发射器以及接收反射光线的接收器,逻辑要素是保证光线处于动态。

 

同样利用了结构光原理的 iPhone X 上就部署了前置 3D 结构光摄像模组,然后通过发射光斑让光线发生变化,然后对不同帧进行匹配从而恢复精准的三维信息。

 

而腾讯优图则让手机屏幕担当发射器的工作,发射出不同颜色和强度的光线。而由于人脸是立体的,光线打到不同部位的变化幅度有所不同,使用一系列算法处理和卷积神经网络,可以从包含变化光线信号的视频中构建出相应的深度信息。目前,团队正在撰写光线活体技术实现细节的相关论文,计划于今年发表。


据腾讯优图团队介绍:「活体」听起来多少有点恐怖的意思,所以他们想取一个有亲和力、好接受的名字,后来便想到了「极光守卫」。

 


视频攻击没有通过「极光守卫」的验证,其中用于攻击的人脸合成视频摘自国外学术论文,其合成精细程度和动作自然程度都较为逼真


腾讯优图活体技术的升级之旅

 

2016 年底,团队完成了光线活体检测的原型 Demo。之所以能在短短的一个多月时间里初步完成技术层面的研发,离不开腾讯优图此前在活体检测领域的积累和沉淀。

 

腾讯优图在活体检测技术上的探索之旅最早要追溯到 2014 年的下半年。

 

当时腾讯优图团队开始接触微众银行的金融核身业务,该场景中的产品需求是让用户无需跑到线下,而是在线上通过人脸验证远程实现证件开户。

 

面对这个需求,腾讯优图实验室的人脸团队从 0 开始研发整套人脸核身解决方案,其中就包括活体检测部分,并在之后不断对其进行更新完善。

 

事实上,那时业内已经普遍动作活体检测方法,例如让用户进行摇头、眨眼等简单的互动模式,从而判断镜头前的是否为真人。


据介绍,衡量活体检测的安全级别可以从两个维度进行考量,一为识别模式是否难以被设备重现,二为识别模式是否难以被构造生成。而从这两个维度出发,动作活体的检测效果并不乐观。

 

用户进行摇头、眨眼这类简单动作互动的原始视频一旦被攻击者拿到,那么就完成了重现过程,这种屏幕翻拍方法也是在「刷脸」核身早期阶段的主要攻击手段。而随着攻击技术的提升,人脸合成技术开始出现,摇头、眨眼等动作互动的生成难度也随之降低。

 

考虑动作活体检测方案有限的安全性和创新程度等因素,团队索性决定研发一套全新的技术手段。经过短期的调研与研究,团队选择把主要精力投入到唇语活体技术的研发上面,旨在通过用户念一串随机的数字,结合用户的唇语和语音数据,联合判断镜头前的是否为真人。而为了适配行业内的常见交互形式,仅在动作活体检测上投入较少的精力。

 

由于用户朗读的数字是随机生产的,所以攻击者较难在事先拿到带有用户读取随机数字的口型的视频,重现难度较高。此外,合成用户朗读数字的声线也并非易事,生成难度也有所提升。要想攻破唇语活体检测模型,攻击者不仅需要合成用户念数字的口型,还要具备语音合成工具,攻击成本大幅增加。

 

因此,相较于动作活体,唇语活体从多维度增添了攻击门槛,安全级别较高,并在之后落地于滴滴、微信公众号的应用场景。

 

不过,唇语活体的研发与落地之路也并非一帆风顺,难点主要受限于移动端的种种因素。

 

首先,读取随机数字这个过程增加了用户的使用门槛,使得交互变得复杂。腾讯优图将最初上线的唇语活体检测版本需要用户念出 8 个数字,后来精简到了 4 个。



腾讯优图的唇语活体检测技术


其次,唇语活体存在一定的不可控性,可能出现方言或是吐字不清的情况,用户念数字的速度也有快有慢,而且不同人念同一个数字的口型也会不同。因此要提升算法的判别效果、构建鲁棒的模型,需要海量的数据。另外,覆盖用户念全所有随机数字的视频有可能容量较大,不易传送到后台进行全量的分析。


据团队介绍,在研发光线活体技术的过程中遇到的最大障碍也是如此,主要在于学术研究到应用场景的移植。在产品化的过程中,团队需要考虑到方方面面的影响因素,例如光线、机型适配,模型对数据的敏感性以及用户体验等。

 

无疑,当年在唇语活体上的摸索都为如今「极光守卫」的实现提供了宝贵经验和解决思路。


此外,为了抵御各种攻击情况,腾讯优图还研发了多种检测手段交叉融合以实现面面俱到,例如人脸纹理分析,视频条纹防翻拍等。通过复合活体检测手段对细节进行分析,可以最大化检测通过率和防攻击率。光线活体技术与这些手段策略的结合则为活体检测提供了多重保障。

 

「自上而下」的研发思路


作为腾讯优图在活体技术上的进一步升级,「极光守卫」光线活体技术已经在微众银行场景正式展开应用。据了解,上线以来,「极光守卫」的运营十分平稳,通过率和便捷效果都较为理想,算法、工程上没有出现较大问题,主要问题仅集中在后台服务的处理性能优化上。

 

可以发现,这项技术的用户体验较好,无需用户进行任何动作交互,只需短暂保持姿态就可以瞬间完成「刷脸」验证,而且支持所有移动设备和刷脸机器的使用,在平台和机型上具有普适性。

 

作为腾讯优图在活体技术上的进一步升级,光线活体技术通过闪光模拟实现了多重随机信息的编码和解码,建立在密码学的坚实基础之上,是目前已知安全级别最高的技术之一。


目前,光线活体可以有效抵御普通的人脸面具、人脸模型以及所有的屏幕翻拍和照片,不过,这并不意味着光线活体检测技术的安全级别达到了极致或是足够完美。技术在不断发展,团队的研发没有停步,还在继续优化,防范可能出现的新攻击形态。

 

优图团队向我们介绍时提到:「团队研发的逻辑是自上而下,先把安全性最高的活体检测方案做出来,实验论证之后再考虑如何兼顾用户体验和场景应用。如果是由下而上,一开始先考虑的是如何应用,在有限的条件下做出相对安全的东西,那么之后从下向上拔高的空间非常有限。」

 

这是腾讯优图实验室自带的基因,也是与业务为先的创业公司最大的区别,那就是团队的主要研发目的是解决学术界的难题。

 

未来,腾讯优图团队也将不断挖掘前沿算法的最大潜力,并尝试真正解决业内存留的一系列难题,在活体检测的道路上带来更多惊喜,也让「刷脸」背后的「守护者」更值得信赖。


]]> 原文: http://ift.tt/2lYYsHw
RSS Feed

机器知心

IFTTT

2017 年 GitHub 中最为流行的 30 个开源机器学习项目

2017 年里哪些机器学习项目最受人关注?Mybridge 为我们整理了一份 Top 30 列表,以下所有项目均附有 GitHub 链接。


我们对比了近 8800 个开原机器学习项目,并挑选了其中最好的 30 个列举于此。这是一个非常具有竞争力的列表,其中包含 2017 年 1 月-12 月份开源的各类优秀机器学习库、数据集和应用。Mybridge AI 通过流行度、参与度和新鲜程度来对它们进行评级。先给你一个直观印象:它们的 GitHub 平均 stars 是 3558 个。


开源项目对于数据科学家而言非常有意义,我们可以通过阅读源代码,在前人的基础上构建更加强大的项目。现在,你可以尽情尝试一下这些去年最佳项目了。




No.1


FastText:快速文本表示/分类库,来自 Facebook(GitHub 11,786 stars)


链接:http://ift.tt/2awIApQ


参考内容:Facebook发布新版fastText:拓展至移动端,加入教程


又及 Muse:多语言无监督/监督词嵌入,基于 FastText(GitHub 695 stars)


链接:http://ift.tt/2yTVCJ8


No.2


Deep-photo-styletransfer:康奈尔大学 Fujun Luan 论文《Deep Photo Style Transfer》的代码与数据(GitHub 9747 stars)


链接:http://ift.tt/2mZ72Fr


No.3


face recognition:最简单的 Python 命令行面部识别 API,来自 Adam Geitgey(GitHub 8672 stars)


链接:http://ift.tt/2mldbf7


参考内容:基于Python的开源人脸识别库:离线识别率高达99.38%


No.4


Magenta:机器智能音乐与艺术生成器(GitHub 8113 stars)


链接:http://ift.tt/1OHJf3P


参考内容:谷歌Magenta项目是如何教神经网络编写音乐的?


No.5


Sonnet:基于 TensorFlow 的神经网络库(GitHub 5731 stars),来自 DeepMind 成员 Malcolm Reynolds


链接:http://ift.tt/2o5B6AS


参考内容:DeepMind开源Sonnet:可在TensorFlow中快速构建神经网络


No.6


deeplearn.js:来自 Google Brain 团队 Nikhil Thorat 的网页端硬件加速机器学习库(GitHub 5462 stars)


链接:http://ift.tt/2wf0ebY


参考内容:谷歌开源DeepLearn.js:可在网页上实现硬件加速的机器学习


No.7


Fast Style Transfer:TensorFlow 快速风格转换,来自 MIT 的 Logan Engstrom(GitHub 4843 stars)


链接:http://ift.tt/2fxnTiH


No.8


Pysc2:星际争霸 2 学习环境,来自 DeepMind Timo Ewalds 等人(GitHub 3683 stars)


链接:http://ift.tt/2hLA7pU


No.9


AirSim:基于虚幻引擎的开源自动驾驶模拟器,由微软研究院 Shital Shah 等人提出(GitHub 3861 stars)


链接:http://ift.tt/2lIgvUy


No.10


Facets:机器学习数据集可视化工具,来自 Google Brain(GitHub 3371 stars)


链接:http://ift.tt/2u1IVui


参考内容:谷歌开源机器学习可视化工具 Facets:从全新角度观察数据


No.11


Style2Paints:AI 漫画线稿上色工具,来自苏州大学(GitHub 3310 stars)


链接:http://ift.tt/2ftQYKj


参考内容:Style2paints:专业的AI漫画线稿自动上色工具


No.12


Tensor2Tensor:用于广义序列-序列模型的工具库,来自 Google Brain 的 Ryan Sepassi(GitHub 3087 stars)


链接:http://ift.tt/2rBdSY0


参考内容:一个模型库学习所有:谷歌开源模块化深度学习系统Tensor2Tensor


No.13


CycleGAN and pix2pix in PyTorch:基于 PyTorch 的图像-图像转换工具,来自 UC Berkeley 在读博士朱俊彦(GitHub 2847 stars)


链接:http://ift.tt/2oIkq2v


参考内容:你来手绘涂鸦,人工智能生成「猫片」:edges2cats图像转换详解


No.14


Faiss:用密集向量高效相似性搜索与聚类的工具库,来自 Facebook(GitHub 2629 stars)


链接:http://ift.tt/2lfuXUB


No.15


Fashion-mnist:一个类似于 MNIST 的时尚产品数据集,来自 Zalando Tech 的 Han Xiao(GitHub 2780 stars)


链接:http://ift.tt/2w4nCux


No.16


ParlAI:用于在各种公开可用的对话数据集上训练与评估 AI 模型的框架,来自 Facebook 的 Alexander Miller(GitHub 2578 stars)


链接:http://ift.tt/2pDvMqt


参考内容:Facebook开源人工智能框架ParlAI:可轻松训练评估对话模型


No.17


Fairseq:来自 FAIR 的序列到序列工具包(GitHub 2571 stars)


链接:http://ift.tt/2q3fxlj


参考内容:Facebook提出全新CNN机器翻译:准确度超越谷歌而且还快九倍(已开源)


No.18


Pyro:使用 Python 和 PyTorch 进行深度通用概率编程,来自 Uber AI Labs(GitHub 2387 stars)


链接:http://ift.tt/2ysnHeg


参考内容:Uber与斯坦福大学开源深度概率编程语言Pyro:基于PyTorch


No.19


iGAN:基于 GAN 的交互图像生成器(GitHub 2369 stars)


链接:http://ift.tt/2d9oPW6


参考内容:伯克利大学和Adobe开源深度学习图像编辑工具 iGAN


No.20


Deep-image-prior:使用神经网络进行图像恢复,同时无需学习过程,来自 Skoltech 的 Dmitry Ulyanov(GitHub 2188 stars)


链接:http://ift.tt/2zCwffj


No.21


Face classification:基于 Keras CNN 模型与 OpenCV 的实时面部检测和表情/性别分类,训练与 fer2013/imdb 数据集(GitHub 1967 stars)


链接:http://ift.tt/2q78xCp


No.22


Speech to Text WaveNet:使用 DeepMind 的 WaveNet 和 TensorFlow 构成的端到端句级英语语音识别,来自 Kakao Brain 的 Namju Kim(GitHub 1961 stars)


链接:http://ift.tt/2fXluxk


参考内容:DeepMind WaveNet,将机器合成语音水平与人类差距缩小50%


No.23


StarGAN:用于多领域图像-图像转换的统一生成对抗网络(GitHub 1954 stars)


链接:http://ift.tt/2n7KjeO


No.24


MI-agents:Unity 机器学习智能体,来自 Unity3D 的 Arthur Juliani(GitHub 1658 stars)


链接:http://ift.tt/2wtV3sn


No.25


Deep Video Analytics:分布式可视化搜索和可视化数据分析平台,来自康奈尔大学的 Akshay Bhat(GitHub 1494 stars)


链接:http://ift.tt/2lEIcuv


No.26


OpenNMT:Torch 上的开源神经机器翻译(GitHub 1490 stars)


链接:http://ift.tt/2h4WNPz


参考内容:哈佛大学NLP组开源神经机器翻译工具包OpenNMT:已达到生产可用水平


No.27


Pix2PixHD:使用条件 GAN 合成和处理 2048×1024 分辨率的图像,来自英伟达 AI 科学家 Ming-Yu Liu(GitHub 1283 stars)


链接:http://ift.tt/2iyskNn


No.28


Horovod:分布式 TensorFlow 训练框架,来自 Uber 工程团队(GitHub 1188 stars)


链接:http://ift.tt/2hNFRPV


参考内容:详解Horovod:Uber开源的TensorFlow分布式深度学习框架


No.29


AI-Blocks:强大而直观的 WYSIWYG 界面,可让任何人创建机器学习模型(GitHub 899 stars)


链接:http://ift.tt/2hGMHHS


No.30


Voice Conversion with Non-Parallel Data:基于 TensorFlow 的深度神经网络语音转换(语音风格转换),来自 Kakao Brain 团队的 Dabi Ahn(GitHub 845 stars)


链接:http://ift.tt/2CJ5BGj;


原文链接:http://ift.tt/2m0Ij5b


]]> 原文: http://ift.tt/2EcFxAE
RSS Feed

机器知心

IFTTT

处理器高危漏洞无人幸免?树莓派:我们不受影响

过去几天,对 Meltdown 和 Spectre 安全漏洞的讨论甚嚣尘上。该漏洞影响了所有的现代英特尔处理器,Spectre 还影响了 AMD 处理器和 ARM 内核。Spectre 漏洞使得攻击者可以绕过软件检查读取当前地址空间中的任意位置数据;Meltdown 漏洞使得攻击者可以读取操作系统核地址空间的任意位置数据(用户程序通常不可访问该数据)。这两种漏洞皆通过边信道攻击(side-channel attack)利用很多现代处理器都有的性能特征(缓存和推测执行)泄漏数据。近日,树莓派创始人 Eben Upton 称树莓派不受这些漏洞的影响,并撰文详解其原因。


谷歌 Project Zero 团队发现的漏洞分别被称为「Meltdown」和「Specter」。这些漏洞允许恶意程序从其它程序的内存中窃取信息,这意味着恶意程序可以监听密码、账户信息、密钥及理论上存储在进程中的任何内容。


其中,「Meltdown」影响英特尔处理器,它打破了用户应用程序和操作系统之间最基本的隔离。这种攻击允许程序访问其它程序和操作系统的内存,这可能导致数据泄露。而「Spectre」除了能影响英特尔处理器外,还能影响 AMD 与 ARM 架构的大量处理器,这意味着除服务器与个人电脑以外,智能手机等终端设备也会受到影响,几乎所有现代计算机处理器均无法幸免。它打破了不同应用程序之间的隔离,这意味着,攻击者可以使用恶意程序来获取被隔离的私有数据。


英特尔近日表示,在未来数周内将有软件补丁发布。尽管大多数 PC 用户不会受到影响,但安全补丁会导致处理器 0-30% 的运算速度下降。


本文介绍现代处理器设计的一些概念,使用简单的 Python 程序解释这些概念,比如:

t = a+b u = c+d v = e+f w = v+g x = h+i y = j+k

尽管你的计算机处理器不会直接执行 Python,但这里的语句足够简单,大致相当于简单的机器指令。本文不详述过多处理器设计中的重要细节(主要是 pipelining 和寄存器重命名),它们对理解 Spectre 和 Meltdown 的工作原理不太重要。


想全面了解处理器设计和现代计算机架构,可参阅 Hennessy 和 Patterson 的经典著作《Computer Architecture: A Quantitative Approach》。


什么是标量处理器?


最简单的现代处理器每次循环执行一个指令,我们称之为标量处理器。上述示例在标量处理器上需要执行六次循环。


树莓派 1 和树莓派 Zero 中使用的 Intel 486 和 ARM1176 都是标量处理器。


什么是超标量处理器?


很明显,加速标量处理器的方式就是提高其时钟频率(clock speed)。但是,我们很快就到达处理器内部逻辑门运行的极限;因此处理器设计人员开始寻找一次性处理多件事情的方式。


有序超标量处理器检查收到的大批指令,尝试在一个 pipeline 中一次性执行多个指令,这取决于指令之间的依赖关系。依赖关系很重要:你或许认为双向超标量处理器可以将 6 个指令配对执行,如下所示:

t, u = a+b, c+d v, w = e+f, v+g x, y = h+i, j+k

但是这没有作用:我们必须先计算 v 再计算 w,即第三个和第四个指令无法同时执行。双向超标量处理器实际上无法找到与第三个指令配对的指令,因此,该示例将执行四个循环:

t, u = a+b, c+d v    = e+f                   # second pipe does nothing here w, x = v+g, h+i y    = j+k

超标量处理器包括 Intel Pentium 以及树莓派 2 和树莓派 3 分别使用的 ARM Cortex-A7 和 Cortex-A53。树莓派 3 的时钟频率只比树莓派 2 高 33%,但性能大约是后者的 2 倍:部分原因在于 Cortex-A53 超出 Cortex-A7 的对大量指令的配对执行能力。


什么是无序处理器(out-of-order processor)?


回到我们的示例,我们可以看到即使 v 和 w 之间存在依赖关系,我们也可以找到其他独立的指令填补第二次循环中空的 pipe。无序超标量处理器能够打乱指令的顺序(同样受限于指令之间的依赖关系)以保持每个 pipeline 都处于忙碌状态。


无序处理器可以有效交换 w 和 x 的顺序:

t = a+b u = c+d v = e+f x = h+i w = v+g y = j+k

允许执行三次循环:

t, u = a+b, c+d v, x = e+f, h+i w, y = v+g, j+k

无序处理器包括 Intel Pentium 2(以及大部分后续 Intel 和 AMD x86 处理器,除了一些 Atom 和 Quark 设备)和很多近期的 ARM 处理器,如 Cortex-A9、-A15、-A17、-A57。


什么是分支预测器(branch predictor)?


上述示例是直线式代码块。真正的程序不是这样的:他们还包括正向分支(用于实现条件运算,如 if 语句)、反向分支(用于实现 loop)。分支可能是无条件的(通常被采用),也可能是有条件的(是否采用取决于计算值)。


获取指令时,处理器可能遇到依赖于计算值的条件分支(而该值目前尚未计算出)。为了避免停顿,处理器必须猜测下一个要获取的指令:内存顺序(对应未采用分支)或分支目标(对应采用分支)上的下一个指令。分支预测器通过收集某一个分支之前被采用频率的相关统计数据,帮助处理器猜测该分支是否被采用。


现在分支预测器非常复杂,可以生成非常准确的预测。树莓派 3 的额外性能部分是由于 Cortex-A7 和 Cortex-A53 之间分支预测的改进。但是,攻击者也可以通过执行精心设计的一系列分支,误训练分支预测器作出较差的预测。


什么是推测?


重排序顺序指令(reordering sequential instruction)是一种恢复指令级别并行化的强大方法,但是由于处理器变得更宽(能够一次执行三个或四个指令),保证所有 pipeline 处于忙碌状态变得更难了。因此,现代处理器提高了推测能力。推测执行可以处理并不需要的指令:这样就可以保证 pipeline 处于忙碌状态,如果最后该指令没有被执行,我们只需要放弃结果就可以了。


推测执行不必要的指令(以及支持推测和重排序的基础架构)需要耗费大量能源,但是在很多情况下为了获取单线程性能的提升,这种方法是值得的。分支预测器用于选择通过程序最可能的路径,最大化推测获得收益的可能性。


为了展示推测的好处,我们可以看一下另一个示例:

t = a+b u = t+c v = u+d if v:    w = e+f    x = w+g    y = x+h

现在,我们具备从 t 到 u 到 v、从 w 到 x 到 y 的依赖关系,那么没有推测的双向无序处理器无法填充第二个 pipeline。它用三次循环来计算 t、u 和 v,之后处理器知道 if 语句的主体是否被执行,然后用三次循环来计算 w、x 和 y。假设 if(由一个分支指令实现)使用了一次循环,那么该示例可以执行四次(v 是零)或七次循环(v 不是零)。如果分支预测器表明 if 语句的主体很可能被执行,那么推测可以有效打乱程序,如下:

t = a+b u = t+c v = u+d w_ = e+f x_ = w_+g y_ = x_+h if v:    w, x, y = w_, x_, y_

因此现在我们有了额外的指令级别的并行来保持 pipeline 繁忙:

t, w_ = a+b, e+f u, x_ = t+c, w_+g v, y_ = u+d, x_+h if v:    w, x, y = w_, x_, y_

循环计数在推测性无序处理器中变得不太明确,但是 w、x 和 y 的分支和条件更新(几乎)是空闲的,因此上述示例几近于执行三个循环。


什么是缓存?


在过去,处理器速度与内存访问速度成正比。我的 BBC Micro(2MHz 6502),可以每 2μs(微秒)执行一次指令,存储周期为 0.25μs。在接下来的 35 年中,处理器已经变的非常快,但是内存几乎没变化:树莓派 3 中的一个 Cortex-A53 可以每 0.5ns(纳秒)执行一次指令,但是可能需要 100ns 才能访问主存。

a = mem[0] b = mem[1]

需要 200ns。


但在实践中,程序倾向于以相对可预测的方式访问内存,同时展示时间局部性(如果我访问一个定位,我很可能很快再次访问它)和空间局部性(如果我访问一个定位,我很可能很快访问附近的位置)。缓存利用这些属性来降低访问内存的平均成本。


缓存是一个小的片上内存,接近于处理器,存储最近使用的位置(及其近邻)内容的副本,以便在随后的访问中可以快速获取。借助缓存,上述示例的执行将稍微超过 100ns:

a = mem[0]    # 100ns delay, copies mem[0:15] into cache b = mem[1]    # mem[1] is in the cache

从 Spectre 和 Meltdown 的角度来看,最重要的一点是你可以对内存访问的时间进行计时,你可以知道访问的地址是在缓存之中(短时)或者不在(长时)。


什么是边信道?


来自维基百科:


「边信道攻击是基于从密码系统的物理实现获得的信息的任何攻击,而不是算法中的蛮力或理论弱点(相较于密码分析学)。例如,定时信息、功耗、电磁泄漏甚至声音都可以提供额外的信息源,这些信息可被用来破解系统。」


Spectre 和 Meltdown 属于边信道攻击,通过定时来观察缓存中是否有另一个可访问的位置,以推断内存位置的内容,这些内容通常不应该被访问。


把它放在一起


现在让我们看看如何结合推测和缓存以允许类似 Meltdown 的攻击。考虑下面这个示例,它是一个有时读取所有非法(内核)地址的用户程序,并导致错误(崩溃):

t = a+b u = t+c v = u+d if v:    w = kern_mem[address]   # if we get here, fault    x = w&0x100    y = user_mem[x]

现在,假设我们可以训练分支预测器,使其相信 v 很可能是非零的,那么我们的无序双向超标量处理器就会混洗程序,像这样:

t, w_ = a+b, kern_mem[address] u, x_ = t+c, w_&0x100 v, y_ = u+d, user_mem[x_]  if v:    # fault    w, x, y = w_, x_, y_      # we never get here

即使处理器总是推测性地读取内核地址,它必须推迟产生的错误,直到知道 v 是非零。从表面上看,这是安全的,因为:

  • v 是零,所以非法读取的结果不会被提交给 w
  • v 是非零,但在读取结果被提交给 w 之前发生了错误


然而,假设我们在执行代码之前刷新缓存,并排列 a、b、c、d 以使 v 实际上为零。现在第三个循环中的推测性读取为:

v, y_ = u+d, user_mem[x_]

其将依赖非法读取结果的第八位获取用户地址 0x000 或 0x100,并把地址及其近邻加载进缓存。由于 v 是零,推测性指令的结果将被摈弃,执行将继续。如果我们随后访问其中一个地址,就可以决定哪个地址在缓存之中。恭喜:你刚刚从内核地址空间读取了一个位!


真正的 Meltdown 实际上要比这更复杂(特别是,为了避免错误训练分支预测器,作者无条件地优先执行非法读取,并处理产生的异常),但原理是相同的。Spectre 使用相似方法来颠覆软件阵列边界检查。


结论


现代处理器竭尽全力保持抽象,从而成为直接访问内存的有序标量机器,而事实上,使用包括缓存、指令重排序和推测在内的大量技术来提供比简单处理器更高的性能有望成为现实。Meltdown 和 Spectre 就是当我们在抽象的语境中推理安全性,然后在抽象与现实之间遇到细微差别时会发生的事情的实例。


树莓派使用的 ARM1176、Cortex-A7 和 Cortex-A53 内核中推测的缺失使我们免于此类攻击。

]]> 原文: http://ift.tt/2F38ss1
RSS Feed

机器知心

IFTTT

几张贴纸就让神经网络看不懂道路标志,伯克利为真实环境生成对抗样本

因为感知细节的能力和识别方式等方面的差异,在人类眼中看起来差别不大的东西在机器看来则可能具有非常不同的意义。近日,伯克利人工智能研究实验室(BAIR)在博客上介绍了他们在真实世界中的对抗攻击上的研究新成果,有望为自动驾驶等人工智能应用领域带来新的思考和见解。该研究的论文已经发布:http://ift.tt/2m6lL2X


深度神经网络(DNN)已经在图像处理、文本分析和语音识别等各种应用领域取得了很大的进展。DNN 也是很多网络与实体相连接的系统(cyber-physical system)的重要组成部分。比如说,自动驾驶汽车的视觉系统可以利用 DNN 来更好地识别行人、车辆和道路标志。但是,近来的研究表明 DNN 容易受到对抗样本(adversarial example)的影响:在输入中加入精心设计的对抗扰动(adversarial perturbation)可以误导目标 DNN,使其在运行中给该输入加标签时出错。当在实际世界中应用 DNN 时,这样的对抗样本就会带来安全问题。比如,加上了对抗扰动的输入可以误导自动驾驶汽车的感知系统,使其在分类道路标志时出错,从而可能造成灾难性的后果。

 

研究者已经提出了一些用于生成和防御对抗样本的技术。在这篇博客文章中,我们将简要介绍当前最佳的用于生成数字对抗样本的算法,还将讨论我们用于在变化的环境条件下基于真实物体生成实体对抗样本的算法。未来我们还将继续更新我们在针对物体检测器的实体对抗样本上的研究工作。


数字对抗样本

 

研究者们已经提出了一些用于在白盒设置(white-box setting)中生成对抗样本的不同方法,其中对抗者能够完全读取访问该 DNN。白盒设置假设对抗者很强大,所以基于其进行研究有助于为未来开发绝对可靠的防御技术奠定基础。这些方法能帮助我们更好地理解数字对抗样本。

 

Goodfellow 等人提出了快速梯度(fast gradient)方法,该方法应用了损失函数的一种一阶近似来构建对抗样本;参阅:http://ift.tt/2fVuEel

 

也有研究者提出了基于优化的方法来为目标攻击创建对抗扰动;参阅:http://ift.tt/2m5dWdU L2 范数是一种常见的度量标准。通常而言,L2 距离低的输入彼此之间更为接近。因此,我们有可能计算出这样的输入——它们在人眼看来非常接近,但对机器分类器而言却非常不同。

 

近来的一项研究成果检查了数字对抗样本的黑盒迁移性(black-box transferability),表明在黑盒设置中生成对抗样本也是可能的;参阅:http://ift.tt/2qt5iL6


实体对抗样本

 

为了更好地理解这些薄弱之处,研究者对对抗样本影响部署在实际世界中的 DNN 的可能方式进行了广泛的研究。

 

Kurakin 等人的研究表明当使用智能手机摄像头观察打印出来的对抗样本时,这些样本可能会被错误地分类;参阅:http://ift.tt/2m6lME3 等人通过在眼镜框中打印对抗扰动而攻击了人脸识别系统;参阅:http://ift.tt/2qz4fZS

 

我们近期的研究《对深度学习模型的稳健的实体世界攻击(Robust physical-world attacks on deep learning models)》则展示了针对分类器的实体攻击。理所当然,接下来我们又攻击了物体检测器。这些计算机视觉算法可以识别场景中的相关物体以及预测得到指出了这些物体的位置和种类的边界框。与分类器相比,检测器更难欺骗,因为它们会处理整张图像并且可以在预测中使用背景信息(比如目标物体在场景中的方向和位置)。

 

我们演示了针对 YOLO 检测器的实体对抗样本。YOLO 检测器是一种流行的算法,具有优良的实时性表现。我们的样本采用了贴纸扰动的形式,应用在真实的「停止」标志上。下图给出了我们的实体对抗扰动示例。




通过录制视频来测试检测表现,我们还执行了动态测试。可以在视频中看到,YOLO 网络在几乎所有帧中都无法感知识别出「停止」标志。如果一辆真实的自动驾驶汽车在具有这样的对抗式「停止」标志的道路上行驶,它就无法看到这种「停止」标志,从而有可能造成交叉路口撞车事故。我们创造的这种扰动很稳健,不受距离和角度影响——这两者是自动驾驶场景中最常见的变化因素。

 

更有趣的是,为 YOLO 检测器生成的实体对抗样本也可以骗过标准的 Faster-RCNN。我们的演示视频包含了一次实体对抗样本在 Faster-RCNN 上的动态测试。因为这是针对 Faster-RCNN 的黑盒攻击,所以没有 YOLO 案例那么成功。当然,这个结果是可以预见的。但我们也相信再多使用一些额外的技术(比如集成训练)可以让这种黑盒攻击更有效。此外,针对对 Faster-RCNN 的攻击进行具体优化也能得到更好的结果。我们目前正在撰写一篇更详细地探索这些攻击的论文。下图给出了 Faster-RCNN 无法感知识别「停止」标志的示例。



在这两个案例中(YOLO 和 Faster-RCNN),只有当相机非常靠近「停止」标志时才会进行检测(大约相距 3 到 4 英尺)。在真实情况下,这个距离对汽车而言太近了,根本无法采取有效的补救措施。请关注我们即将发布的论文,其中包含了有关该算法的更多细节以及针对当前最佳的物体检测器的实体扰动的结果。

 

攻击算法概述

 

这个算法基于我们在攻击分类器方面的早期研究。根本上而言,我们采用了一种优化方法来生成对抗样本。但是,我们的实验经验表明:与欺骗分类器所需的条件相比,为检测器生成稳健的实体对抗样本需要模拟更大规模的变化的实体环境。这很可能是因为检测器在生成预测时会考虑远远更多的背景信息。该算法的关键特性包括:可以指定实体环境模拟的序列,以及可以指定平移不变性(translation invariance)属性。也就是说,不管目标物体位于场景中的什么位置,扰动都应该有效。因为物体的位置可能会因观看者的情况而自由变化,所以如果不针对这种性质进行优化,扰动就可能会在物体移动时失效。我们即将发布的围绕这一主题的论文将会包含有关该算法的更多细节。


潜在的防御方法

 

因为在数字世界和实体世界中都存在这种对抗样本,所以潜在的防御方法也得到了广泛的研究。在这些方法中,不同类型的对抗训练方法是最有效的。Goodfellow 等人最早提出将对抗训练用于有效地提升 DNN 的稳健性从,参阅《学界 | OpenAI 探讨人工智能安全:用对抗样本攻击机器学习》。Tramèr 等人则将其延展成了集成对抗学习(ensemble adversarial learning),参阅:http://ift.tt/2m6lNb5 等人还提出通过使用对抗样本进行迭代式的训练来得到稳健的网络,参阅:http://ift.tt/2qxCFvZ Carlini 和 Wagner 的研究表明其它那些已有的防御方法在面对自适应攻击时都不够稳健;参阅:http://ift.tt/2lwkEJ4

 

总的来说,我们还远未找到针对这些对抗样本的最优防御策略,我们期待对这一激动人心的研究领域的探索。

 

演示视频

 

  • 针对 YOLO 的实体对抗贴纸扰动:https://www.youtube.com/watch?v=gkKyBmULVvM
  • 针对 YOLO 的实体对抗样本:https://www.youtube.com/watch?v=zSFZyzHdTO0
  • 将为 YOLO 生成的实体对抗样本进行黑盒迁移,用在 Faster RCNN 上:https://www.youtube.com/watch?v=_ynduxh4uww


原文链接:http://ift.tt/2lrPZMX


]]> 原文: http://ift.tt/2m5e2lM
RSS Feed

机器知心

IFTTT

LangChain 彻底重写:从开源副业到独角兽,一次“核心迁移”干到 12.5 亿估值 -InfoQ 每周精要No.899期

「每周精要」 NO. 899 2025/10/25 头条 HEADLINE LangChain 彻底重写:从开源副业到独角兽,一次"核心迁移"干到 12.5 亿估值 精选 SELECTED 1000 行代码手搓 OpenAI gpt-oss 推理引...