机器学习将成为基本技能,学习机器学习永远不会迟编者按:人工智能正在日益渗透到所有的技术领域。而机器学习(ML)是目前最活跃的分支。最近几年,ML取得了许多重要进展。其中一些因为事件跟大众关系密切而引人瞩目,而有的虽然低调但意义重大。Statsbot一直在持续评估深度学习的各项成就。值此年终之际,他们的团队决定对过去一年深度学习所取得的成就进行盘点。
1. 文字
1.1. Google自然机器翻译
将近1年前,Google发布了新一代的Google Translate。这家公司还介绍了其网络架构递归神经网络(RNN)的细节情况。
其关键成果是:将跟人类翻译准确率的差距缩小了55%—85%(由人按照6个等级进行评估)。如果没有像Google手里的那么大规模的数据集的话,是很难用这一模型再生出好结果的。
1.2. 谈判。能否成交?
你大概已经听说过Facebook把它的聊天机器人关闭这则愚蠢的新闻了,因为那机器人失去了控制并且发明了自己的语言。Facebook做这个聊天机器人的目的是为了协商谈判,跟另一个代理进行文字上的谈判,以期达成交易:比如怎么分摊物品(书、帽等)。每一个代理在谈判时都有自己的目标,但是对方并不知道自己的目标。不能达成交易就不能推出谈判。
出于训练的目的,他们收集了人类谈判协商的数据集然后做一个有监督的递归涡轮里面对它进行训练。接着,他们用强化学习训练代理,让它自己跟自己讲话,条件限制是语言跟人类类似。
机器人学会了一条真正的谈判策略——假装对交易的某个方面展现出兴趣,然后随后放弃这方面的诉求从而让自己的真正目标受益。这是创建此类交互式机器人的第一次尝试,结果还是相当成功的。
当然,说这个机器人发明了自己的语言完全就是牵强附会了。在训练(跟同一个代理进行协商谈判)的时候,他们取消了对文字与人类相似性的限制,然后算法就修改了交互的语言。没什么特别。
过去几年,递归网络的发展一直都很活跃,并且应用到了很多的任务和应用中。RNN的架构已经变得复杂许多,但在一些领域,简单的前向网络——DSSM也能取得类似的结果。比方说,此前Google用LSTM在邮件功能Smart Reply上也已经达到了相同的质量。此外,Yandex还基于此类网络推出了一个新的搜索引擎。
2. 语音
2.1. WaveNet:裸音频的生成式模型
DeepMind的员工在文章中介绍了音频的生成。简单来说,研究人员在之前图像生成(PixelRNN和PixelCNN)的基础上做出了一个自回归的完全卷积WaveNet模型。
该网络经过了端到端的训练:文本作为输入,音频做出输出。研究取得了出色的结果,因为跟人类的差异减少了50%。
这种网络的主要劣势是生产力低,由于自回归的关系,声音是串行生产的,所以一秒钟的音频要1到2分钟才能生成。
我们来看看……哦对不起,是听听这个例子。
如果你撤销网络对输入文字的依赖,只留下对之前生成音素的依赖,则网络就能生成类似人类语言的音素,但这样的音频是没有意义的。
听听这个生成语音的例子。
同一个模型不仅可以应用到语音上,而且也可以应用在创作音乐等事情上。想象一下用这个模型(用某个钢琴游戏的数据集训练,也是没有依赖输入数据的)生成音频。
2.2. 理解唇语
唇语理解是另一个深度学习超越人类的成就和胜利。
Google Deepmind跟牛津大学合作在《唇语自然理解》这篇文章中介绍了他们的模型(通过电视数据集训练)是如何超越职业唇语解读师的。
这个数据集总共有包含100000个句子的音视频。模型:音频用LSTM,视频用CNN+LSTM。这两个状态向量提供给最后的LSTM,然后再生成结果(字符)。
训练过程中用到了不同类型的输入数据:音频、视频以及音视频。换句话说,这是一种“多渠道”模型。
2.3. 合成奥巴马:从音频中合成嘴唇动作
华盛顿大学干了一件严肃的工作,他们生成了奥巴马总统的唇语动作。之所以要选择他是因为他讲话的网上视频很多(17小时的高清视频)。
光靠网络他们是没有办法取得进展的,因为人工的东西太多。因此,文章作者构思了一些支撑物(或者花招,你要是喜欢这么说的话)来改进纹理和时间控制。
你可以看到,结果是很惊艳的。很快,你就没法相信这位总统的视频了。
3. 计算机视觉
3.1. OCR:Google Maps和StreetView(街景)
Google Brain Team在博客和文章中报告了他们是如何引入一种新的OCR(光学字符识别)引擎给Maps,然后用来识别街道名牌和商店标志。
在技术开发的过程中,该公司编译了一种新的FSNS(法国街道名牌),里面包含有很多复杂的情况。
为了识别每一块名牌,该网络利用了名牌多至4张的照片。特征由CNN来析取,在空间注意(考虑了像素坐标)的帮助下进行扩充,然后再把结果送给LSTM。
同样的方法被应用到识别广告牌上的商店名上面(里面会有大量的“噪声”数据,网络本身必须“关注”合适的位置)。这一算法应用到了800亿张图片上。
3.2. 视觉推理
有一种任务类型叫做视觉推理,神经网络被要求根据一张照片来回答问题。比方说:“图中橡皮材料的物品跟黄色金属圆柱体的数量是不是一样的?”这个问题可不是小问题,直到最近,解决的准确率也只有68.5%。
不过Deepind团队再次取得了突破:在CLEVR数据集上他们达到了95.5%的准确率,甚至超过了人类。
这个网络的架构非常有趣:
把预训练好的LSTM用到文本问题上,我们就得到了问题的嵌入。
利用CNN(只有4层)到图片上,就得到了特征地图(归纳图片特点的特征)
接下来,我们对特征地图的左边片段进行两两配对(下图的黄色、蓝色、红色),给每一个增加坐标与文本嵌入。
我们通过另一个网络来跑所有这些三元组然后汇总起来。
结果呈现再到一个前向反馈网络里面跑,然后提供softmax答案。
3.3. Pix2Code应用
Uizard公司创建了一个有趣的神经网络应用:根据界面设计器的截屏生成布局代码:
这是极其有用的一种神经网络应用,可以帮助软件开发变得容易一些。作者声称他们取得了77%的准确率。然而,这仍然在研究中,还没有讨论过真正的使用情况。
他们还没有开源代码或者数据集,但是承诺会上传。
3.4. SketchRNN:教机器画画
你大概已经看过Google的Quick, Draw!了,其目标是在20秒之内画出各种对象的草图。这家公司收集了这个数据集以便来教神经网络画画,就像Google在他们的博客和文章中所说那样。
这份数据集包含了7万张素描,Google现在已经开放给公众了。素描不是图片,而是画画详细的向量表示(用户按下“铅笔”画画,画完时释放所记录的东西)。
研究人员已经把RNN作为编码/解码机制来训练该序列到序列的变自编码器(Sequence-to-Sequence Variational Autoencoder)。
最终,作为自编码器应有之义,该模型将得到一个归纳原始图片特点的特征向量。
鉴于该解码器可以从这一向量析取出一幅图画,你可以改变它并且得到新的素描。
甚至进行向量运算来创作一只猫猪:
3.5. GAN(生成对抗网络)
生成对抗网络(GAN)是深度学习最热门的话题之一。很多时候,这个想法都是用于图像方面,所以我会用图像来解释这一概念。
其想法体现在两个网络——生成器与鉴别器的博弈上。第一个网络创作图像,然后对二个网络试图理解该图像是真实的还是生成的。
用图示来解释大概是这样的:
在训练期间,生成器通过随机向量(噪声)生成一幅图像然后交给鉴别器的输入,由后者说出这是真的还是假的。鉴别器还会接收来自数据集的真实图像。
训练这样的结构是很难的,因为找到两个网络的平衡点很难。通常情况下鉴别器会获胜,然后训练就停滞不前了。然而,该系统的优势在于我们可以解决对我们来说很难设置损失函数的问题(比方说改进图片质量)——这种问题交给鉴别器最合适。
GAN训练结果的典型例子是宿舍或者人的图片
此前,我们讨论过将原始数据编码为特征表示的自编码(Sketch-RNN)。同样的事情也发生在生成器上。
利用向量生成图像的想法在这个以人脸为例的项目http://carpedm20.github.io/faces/中得到了清晰展示。你可以改变向量来看看人脸是如何变化的。
相同的算法也可用于潜在空间:“一个戴眼镜的人”减去“一个人”加上一个“女人”相当于“一个戴眼镜的女人”。
3.6. 用GAN改变脸部年龄
如果在训练过程中你把控制参数交给潜在向量,那么在生成潜在向量时,你就可以更改它从而在在图片中管理必要的图像。这种方法被称为有条件GAN。
《用有条件生成对抗网络进行面部老化》这篇文章的作者就是这么干的。在用IMDB数据集中已知年龄的演员对引擎进行过训练之后,研究人员就有机会来改变此人的面部年龄。
3.7. 专业照片
Google已经为GAN找到了另一种有趣的应用——选择和改善照片。他们用专业照片数据集来训练GAN:生成器试图改进糟糕的照片(经过专业拍摄然后用特殊过滤器劣化),而鉴别器则要区分“改进过”的照片与真正的专业照片。
经过训练的算法会筛查Google Street View的全景照片,选出其中最好的作品,并会收到一些专业和半专业品质的照片(经过摄影师评级)。
3.8. 通过文字描述合成图像
GAN的一个令人印象深刻的例子是用文字生成图像。
这项研究的作者提出不仅把文字嵌入到生成器(有条件GAN)的输入,同时也嵌入到鉴别器的输入,这样就可以验证文字与图像的相关性。为了确保鉴别器学会运行他的函数,除了训练以外,他们还给真实图像添加了不正确的文字。
3.9. Pix2pix应用
2016年引人瞩目的文章之一是Berkeley AI Research (BAIR)的《用有条件对抗网络进行图像到图像的翻译》。研究人员解决了图像到图像生成的问题,比方说在要求它用一幅卫星图像创造一幅地图时,或者根据素描做出物体的真实纹理。
这里还有一个有条件GAN成功表现的例子。这种情况下,条件扩大到整张图片。在图像分割中很流行的UNet被用作生成器的架构,一个新的PatchGAN分类器用作鉴别器来对抗模糊图像(图片被分成N块,每一块都分别进行真伪的预测)。
Christopher Hesse创作了可怕的猫形象,引起了用户极大的兴趣。
你可以在这里找到源代码。
3.10. CycleGAN图像处理工具
要想应用Pix2Pix,你需要一个包含来自不同领域图片匹配对的数据集。比方说在卡片的情况下,收集此类数据集并不是问题。然而,如果你希望做点更复杂的东西,比如对对象进行“变形”或者风格化,一般而言就找不到对象匹配対了。
因此,Pix2Pix的作者决定完善自己的想法,他们想出了CycleGAN,在没有特定配对的情况来对不同领域的图像进行转换——《不配对的图像到图像翻译》
其想法是教两对生成器—鉴别器将图像从一个领域转换为另一个领域,然后再反过来,由于我们需要一种循环的一致性——经过一系列的生成器应用之后,我们应该得到类似原先L1层损失的图像。为了确保生成器不会将一个领域的图像转换成另一个跟原先图像毫无关系的领域的图像,需要有一个循环损失。
这种办法让你可以学习马—>斑马的映射。
此类转换不太稳定,往往会创造出不成功的选项:
源码可以到这里找。
3.11. 肿瘤分子学的进展
机器学习现在已经走进了医疗业。除了识别超声波、MRI以及进行诊断以外,它还可以用来发现对抗癌症的药物。
我们已经报道过这一研究的细节。简单来说,在对抗自编码器(AAE)的帮助下,你可以学习分子的潜在表征然后用它来寻找新的分子。通过这种方式已经找到了69种分子,其中一半是用于对抗癌症的,其他的也有着重大潜能。
3.12. 对抗攻击
对抗攻击方面的话题探讨得很热烈。什么是对抗攻击?比方说,基于ImageNet训练的标准网络,在添加特殊噪声给已分类的图片之后完全是不稳定的。在下面这个例子中,我们看到给人类眼睛加入噪声的图片基本上是不变的,但是模型完全发疯了,预测成了完全不同的类别。
Fast Gradient Sign Method(FGSM,快速梯度符号方法)就实现了稳定性:在利用了该模型的参数之后,你可以朝着想要的类别前进一到几个梯度步然后改变原始图片。
Kaggle的任务之一与此有关:参与者被鼓励去建立通用的攻防体系,最终会相互对抗以确定最好的。
为什么我们要研究这些攻击?首先,如果我们希望保护自己的产品的话,我们可以添加噪声给captcha来防止spammer(垃圾群发者)的自动识别。其次,算法正日益渗透到我们的生活当中——比如面部识别系统和自动驾驶汽车就是例子。这种情况下,攻击者会利用这些算法的缺陷。
这里就有一个例子,通过特殊玻璃你可以欺骗面部识别系统,然后“把自己扮成另一个人而获得通过”。因此,在训练模型的时候我们需要考虑可能的攻击。
此类对标识的操纵也妨碍了对其的正确识别。
这里有来自竞赛组织者的一组文章。
已经写好的用于攻击的库:cleverhans和foolbox。
4. 强化学习
强化学习(RL)也是机器学习最有趣发展最活跃的分支之一。
这种办法的精髓是在一个通过体验给予奖励的环境中学习代理的成功行为——就像人一生的学习一样。
RL在游戏、机器人以及系统管理(比如交通)中使用活跃。
当然,每个人都听说过Alphago在与人类最好围棋选手的比赛中取得的胜利。研究人员在训练中使用了RL:机器人个你自己下棋来改进策略。
4.1. 不受控辅助任务的强化训练
前几年DeepMind已经学会了用DQN来玩大型电玩,表现已经超过了人类。目前,他们正在教算法玩类似Doom这样更复杂的游戏。
大量关注被放到了学习加速上面,因为代理跟环境的交互经验需要现代GPU很多小时的训练。
4.2. 学习机器人
在OpenAi,他们一直在积极研究人类在虚拟环境下对代理的训练,这要比在现实生活中进行实验更安全。
他们的团队在其中一项研究中显示出一次性的学习是有可能的:一个人在VR中演示如何执行特定任务,结果表明,一次演示就足以供算法学会然后在真实条件下再现。
如果教会人也这么简单就好了。
4.3. 基于人类偏好的学习
这里是OpenAi和DeepMind联合对该主题展开的工作。基本上就是代理有个任务,算法提供了两种可能的解决方案给人然后指出哪一个更好。这个过程会不断反复,然后获取人类900的字位反馈(二进制标记)的算法就学会了如何解决这个问题。
像以往一样,人类必须小心,要考虑清楚他教给机器的是什么。比方说,鉴别器确定算法真的想要拿那个东西,但其实他只是模仿了这个动作。
4.4. 复杂环境下的运动
这是另一项来自DeepMind的研究。为了教机器人复杂的行为(走路、跳跃等),甚至做类似人的动作,你得大量参与到损失函数的选择上,这会鼓励想要的行为。然而,算法学习通过简单奖励学习复杂行为会更好一些。
研究人员设法实现了这一点:他们通过搭建一个有障碍的复杂环境并且提供一个简单的回报机制用于运动中的处理来教代理(躯体模拟器)执行复杂动作。
你可以观看这段视频,结果令人印象深刻。然而,用叠加声音观看会有趣得多!
最后,我再提供一个最近发布的算法链接,这是OpenAI开发用于学习RL的。现在你可以使用比标准的DQN更先进的解决方案了。
5. 其他
5.1. 冷却数据中心
2017年7月,Google报告称它利用了DeepMind在机器学习方面的成果来减少数据中心的能耗。
基于数据中心数千个传感器的信息,Google开发者训练了一个神经网络,一方面预测数据中心的PUE(能源使用效率),同时进行更高效的数据中心管理。这是ML实际应用的一个令人印象深刻的重要例子。
5.2. 适用所有任务的模型
就像你知道的那样,训练过的模型是非常专门化的,每一个任务都必须针对特殊模型训练,很难从一个任务转化到执行另一个任务。不过Google Brain在模型的普适性方面迈出了一小步,《学习一切的单一模型》
研究人员已经训练了一个模型来执行8种不同领域(文本、语音、图像)的任务。比方说,翻译不同的语言,文本解析,以及图像与声音识别。
为了实现这一点,他们开发了一个复杂的网络架构,里面有不同的块处理不同的输入数据然后产生出结果。用于编码/解码的这些块分成了3种类型:卷积、注意力以及门控专家混合(MoE)。
学习的主要结果:
得到了几乎完美的模型(作者并未对超参数进行调优)。
不同领域间的知识发生了转化,也就是说,对于需要大量数据的任务,表现几乎是一样的。而且在小问题上表现更好(比方说解析)。
不同任务需要的块并不会相互干扰甚至有时候还有所帮助,比如,MoE——对Imagenet任务就有帮助。
顺便说一下,这个模型放到了tensor2tensor里面。
5.3. 一小时弄懂Imagenet
Facebook的员工在一篇文章中告诉我们,他们的工程师是如何在仅仅一个小时之内教会Resnet-50模型弄懂Imagenet的。要说清楚的是,他们用来256个GPU(Tesla P100)。
他们利用了Gloo和Caffe2进行分布式学习。为了让这个过程高效,采用大批量(8192个要素)的学习策略是必要的:梯度平均、热身阶段、特殊学习率等。
因此,从8个GPU扩展到256个GPU时,实现90%的效率是有可能的。不想没有这种集群的普通人,现在Facebook的研究人员实验甚至可以更快。
6. 新闻
6.1. 无人车
无人车的研发正热火朝天,各种车都在积极地进行测试。最近几年,我们留意到了英特尔收购了Mobileye,Uber与Google之间发生的前员工窃取技术的丑闻,以及采用自动导航导致的第一起死亡事件等等。
我想强调一件事情:Google Waymo正在推出一个beta计划。Google是该领域的先驱,它认为自己的技术是非常好的,因为它的车已经行驶了300多万英里。
最近无人车还被允许在美国全境行驶了。
6.2. 医疗保健
就像我说过那样,现代ML正开始引入到医疗行业当中。比方说,Google跟一个医疗中心合作来帮助后者进行诊断。
Deepmind甚至还设立了一个独立的部门。
今年Kaggle推出了Data Science Bowl计划,这是一项预测一年肺癌情况的竞赛,选手们的依据是一堆详细的图片,奖金池高达100万美元。
6.3 投资
目前,ML方面的投资非常大,就像之前在大数据方面的投资一样。
中国在AI方面的投入高达1500亿美元,意在成为这个行业的领袖。
公司方面,百度研究院雇用了1300人,相比之下FAIR的是80人。在最近的KDD上,阿里的员工介绍了他们的参数服务器鲲鹏(KunPeng),上面跑的样本达1000亿,有1万亿个参数,这些都是“普通任务”。
你可以得出自己的结论,学习机器学习永远不会迟。无路如何,随着时间转移,所有开发者都会使用机器学习,使得后者变成普通技能之一,就像今天对数据库的使用能力一样。
-
翻译
+关注
关注
0文章
47浏览量
10738 -
计算机视觉
+关注
关注
8文章
1694浏览量
45894 -
无人车
+关注
关注
1文章
299浏览量
36441 -
深度学习
+关注
关注
73文章
5459浏览量
120863
原文标题:深度 | 2017 年,深度学习领域有哪些成就?
文章出处:【微信号:melux_net,微信公众号:人工智能大趋势】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论