面向开发者的2018年AI趋势分析
摘要: 本文从开发者的角度分析2018年AI的趋势:拿来即用的AI领域、算法与技术。例如GANs、ONNX、Zoo、AutoML、语音识别、时间序列分析、NLP、高智能机器人等。
在2017年有些人工智能的技术已经变得非常成熟,并已做好了大规模应用的准备。这就是本文将要讨论的问题---介绍当前的工作中能够使用的技术,或者能基于哪些技术来构建自己的创业公司。例如,您可以看到时间序列分析,因为在时间信号处理中,深度学习正在迅速取代以前的技术。但是在这你看不到强化学习,即使它更酷,但依我拙见,它现在还不能用于工业应用。但,它是一个非常具有研究价值的领域。
我将在三篇系列文章中,分别从人工智能研究员、应用机器学习开发人员和普通人三个不同的观点出发,分享我对未来一年在人工智能领域将会发生什么的观点。
生成对抗网络(GANs)
之前我对几年前创建的生成对抗网络保持非常怀疑的态度,即使它这几年进步巨大,尤其在读完数学文章后更加怀疑GAN是否真的了解分布。但是今年这种情况发生了一些变化,首先是新的有趣的架构(如CycleGAN)和数字改进(Wasserstein GAN)让我在实践中尝试使用了GANs,而且它们工作的差不多都很好,在接下来的两个应用程序中,我确信我们可以并且必须使用它们来生成。
首先,我非常喜欢英伟达(NVIDIA)关于生成逼真的全高清图像的研究报告,但是我真正喜欢的是并留下深刻印象的是生成假的色情影片。
其次,它正在被广泛应用到游戏行业,如生成景观,英雄人物,甚至用GANs创建整个世界。而且我们必须意识到这种全新的假货水平,从生成假的影片开始,最后将在网上生成能够以假乱真的人(也许很快就会实现了)。
所有神经网络的独特格式
现代发展的一个问题是,许多不同的框架在做同样的事情,如今,每一家从事机器学习的大公司都拥有自己的框架和其他开源解决方案。
在单独的AI应用中,我们希望使用不同的框架,例如计算机视觉的Cafle2, NLP的PyTorch和一些推荐系统的Tensorkow/Keras。合并它们需要大量的开发时间,它分散了数据科学家和软件开发人员从事更重要任务的注意力。
解决方案必须是一种独特的神经网络格式,可以很容易的从任何框架中获得,然后开发人员能够轻松地部署,科学家可以轻松地使用,在这里我们遇到了ONNX标准:
实际上它只是简单的非循环计算图表格式,但在实践中它给了我们机会部署真正复杂的人工智能的解决方案,我个人认为非常有吸引力的是:人们可以在没有强大的部署工具并且不依靠TensorFlow生态系统的前提下,在PyTorch这样的框架中开发神经网络。
Zoos大爆发
之前我使用Cafle Zoo的模型进行迁移学习或特性提取,最近发现它就像大型计算机视觉管道的一部分一样。这意味着实际上没有必要训练自己的网络,例如,对于ImageNet对象的识别或局部识别,这些基本的东西可以下载并插入到您的系统中。除了Cafle Zoo之外,还有其他一些框架的Zoo,但让我惊奇的是,你可以在计算机视觉、NLP和加速计信号处理的iPhone上插入模型:
我认为这些Zoos会越来越多,并且会关注像ONNX这样的生态系统,它们会更加集中(同时也会使用ML区块链应用程序进行分散)
AutoML更换管道
设计一个神经网络框架是一个非常痛苦的任务——虽然有时通过叠加卷积层能获得相当好的结果,但是大多数时候需要非常小心的使用直觉和超参数搜索方法设计宽度、深度和超参数,如随机搜索或者贝叶斯优化。特别是当你不在计算机视觉研究时,这意味着没法在ImageNet上完成一些DenseNet模型的训练,但是可以使用一些3D数据分类或多变量时间序列应用。
虽然有很多不同的方法尝试从一个神经网络中创建另一个神经网络架构。但对我来说最好用最干净的是最近的Google研究开发结果:
他们能够用它来生成比人类设计的网络更好更快的计算机视觉模型!我相信很快会有很多关于这个话题的论文和开源代码。
形式化的智能堆栈
为了了解这一概念,我大量阅读了俄罗斯系统分析师和AI爱好者的Anatoly Levenchuk的博客。在下图中你可以看到一个能够称为“AI堆栈”的例子:
http://www.tvmlang.org/2017/10/06/nnvm-compiler-announcement.html
“AI堆栈”更深层次,在每一个层面都有自己的发展和研究,而不只是由机器学习算法和你最喜欢的框架构成。
我认为人工智能开发行业已经足够成熟,它需要有更多不同的专家。在团队中只有一名数据科学家是远远不够的——你需要不同的人来进行硬件优化、神经网络研究、人工智能编译器、解决方案优化、生产实现。以上人员必须是不同的团队领导,软件架构师(必须分别为每个问题设计上面的堆栈)和管理者。我曾经提到过这个概念,它提供了一些愿景,在未来人工智能领域的技术专家能够成长成什么样子(对于那些想成为人工智能或技术领域的软件架构师的人来说,你需要知道该研究什么)。
基于语音的应用
AI可以用>95%的精确度解决的问题列表其实很短,我认为还有一个领域可以通过努力达到这个标准,那就是语音识别和生成。实际上,从一年前DeepMind的WaveNet发展到最近谷歌开发的Tacotron2,该技术已经进步飞快:
很快,这项技术将会在开放源码中被发布,每个人都能够识别声音并以非常高的准确度生成它。等待我们的是什么?更好的个人助理,自动图书朗读器和谈判抄写员,当然,还有配音。
更加聪明的机器人
我们今天看到的99%的机器人根本不是人工智能,它们只是硬编码或者最好的情况下机器人有一些基于句子分类神经网络的长短期记忆网络(LSTM)和词向量(word2vec)。但是现在最先进的神经语言程序学(NLP)略高于这个水平了。让我们看看Salesforce做了哪些有趣的研究:
他们将NLP接口构建到数据库中,克服了现代编码-解码器的自回归模型,不仅只对文字或句子,还对字符进行训练嵌入。
我相信,通过这些开发,我们可以增强我们的机器人,至少在更智能的信息检索和命名实体识别方面,或许也可能,在一些封闭的领域实现完全深度学习驱动的机器人。
时间序列分析现状
在公共机器学习实验室里,排在Salesforce之后的第二名是严重被低估的Uber AI Labs。不久前,他们发布了一个博客展示了他们对时间序列预测的方法。下图所示,这是一个非常好的将统计特征和深度学习表现结合的例子:
例如使用34-layer 1D ResNet模型诊断心律失常。它最酷的部分是性能:不仅比常见的统计模型更好,甚至诊断准确率优于专业心脏病专家!我最近在深度学习的时间序列分析中做了大量的工作,我可以亲自确保神经网络工作的非常好,你可以很容易地得到比“黄金标准”高5-10倍的性能。
内嵌函数之外的优化
我们如何训练神经网络?说实话,我们大多数人只是使用“Adam()”和标准的学习率。 一些聪明的人选择最合适的优化器,并调整和安排学习速度。 我们总是低估优化的主题,因为我们只需按下“训练”按钮,就只等到我们的网络收敛。 但是在计算能力,内存和开源解决方案方面,我们都拥有几乎平等的机会,而优胜者是那些能够用最短时间获得最佳性能的——这一切都来源于优化。
一般炒作放缓
cdn.aiindex.org/2017-report.pdf
这幅图能告诉我们什么,尤其是在阅读了这篇文章之后?要开发新的、有价值的东西并从中获得大量的资金并不容易,要考虑到已经有多少开源工具和算法被发布了。我认为,2018年对初创公司来说不是最好的一年,因为有太多的竞争对手和太多的“聪明人”,他们可以利用今天的开源网络并将其部署为移动应用,并称之为初创公司。
今年我们必须专注于基本的事情,而不是快速赚钱——即使我们打算用谷歌的Ratacon来为一些有声读物的初创公司提供语音识别服务,它也不可能是一个简单的web服务,而是与合作伙伴开启业务,通过商业模式来获得一些投资。
总结
我简单地总结一下,有几种技术现在可以用于实际产品:时间序列分析,GANs,语音识别,NLP的一些进展。我们不应该再设计用于分类或回归的基本框架,因为AutoML就能做这些。我希望通过一些优化改进,AutoML能够比以前更快。再加上ONNX和Model Zoo,只需两行代码就能为我们的app加入基本的模型。我认为制作基于AI的应用程序已经变得非常容易,至少在目前最先进的水平上如此,这对整个行业来说都是好事!
本文由阿里云云栖社区组织翻译。
文章原标题《30 Amazing Machine Learning Projects for the Past Year (v.2018)》
作者:Mybridge
译者:奥特曼,审校:袁虎。