本文是 Alex Honchar 在 Medium 上发布的三篇系列博客之二。这三篇博客分别从 AI 研究者、产业界的应用开发人员、普通人的角度介绍了作者对于 2018 年人工智能发展趋势的看法。AI 科技评论对原文进行了编译。
在第一篇 AI 研究趋势的文章中我尝试介绍了 2018 年人工智能研究领域中可能发生重要发展的方向。尽管做人工智能的理论研究很酷,但是也存在一些具体的 AI 技术,它们在 2017 年已经成熟并且将有可能在 2018 年得到大规模的商业应用。这也正是本文所要探讨的内容——我将向你介绍一些技术,这些技术也许可以应用到你当前的工作中,或者用于构建自己的初创项目。
重要提示:本文给出了一份 AI 领域算法或技术的盘点,它们已经相当成熟,这意味着可以直接使用。例如,你可以在盘点中看到时间序列分析(Time series analysis),因为深度学习正在信号处理领域迅速替代传统的优秀方法。但是在这份盘点中,你看不到强化学习(Reinforcement learning),尽管强化学习也许更加好玩,但是在我看来,它当前还不够成熟,不足以应用到商业开发中去。但是强化学习确实是一个令人惊叹、日新月异的研究领域。
再次提醒一下,这是三篇系列文章的其中一篇,在这个系列文章中我尝试从三个不同的角度分享我对人工智能在未来一年发展趋势的看法:
AI 开发者,负责将 AI 算法落实到商业场景中
生活在这个 AI 新时代的普通大众
希望各位读者能找到自己喜欢的内容,并且有所收获!
PS:在本文我不介绍图像识别和一些简单的计算视觉问题,毕竟这块已经发展好几年了。
GANs 和造假术
虽然生成对抗网络(Generative adversarial networks, GANs)已经被提出来好几年了,我依然对它非常怀疑。并且尽管生成对抗网络已经在 64x64 分辨率的图像上取得了巨大的进步却依然无法打消我的疑虑。然后在我阅读了相关的数学文章之后,我更加怀疑生成对抗网络事实上并没有学习到数据分布。但是这一点在今年有所改观,首先是新颖有趣的架构(如 CycleGAN)的提出和理论性的提升(Wasserstein GAN)促使我在实践中尝试了生成对抗网络,然后它们的效果也还可以。另外在两次应用过生成对抗网络之后,我开始被它深深折服,并且开始坚信我们必须使用生成对抗网络进行对象生成。
首先,我非常喜欢英伟达的关于生成真实逼真的全高清图像的研究论文(前一年仅能实现 64x64 的图像生成):
但是我真正喜欢的(作为一个骚年的完美梦想应用程序),并且让我留下深刻印象的是生成假的色情电影:
我也看到了生成对抗网络在很多游戏行业中的应用。比如用 GAN 生成景观、英雄乃至整个世界。而且我认为生成对抗网络造假的能力将越来越强。
神经网络的统一格式
现代发展(不只是 AI 领域)的一个重要问题是,我们往往可以拥有几十个不同的框架来做同一件事情。现今,每个进行机器学习研究的大公司都必须拥有自己的框架:谷歌、Facebook、亚马逊、微软、英特尔,甚至是索尼和优步以及许多的其它开源方案!在单个 AI 应用中我们会希望采用不同的框架,比如计算机视觉问题采用 Caffe2,NLP 采用 PyTorch,推荐系统采用 TensorFlow/Keras。然而接下来将这些模块合并却需要花费大量的开发时间,这使得数据科学家和软件开发人员无法将注意力集中于更重要的任务中。
该解决方案必须是一个统一的神经网络格式,它可以轻易地从任意框架中获得,然后开发人员可以轻易实现部署,科学家可以轻易上手使用。而这就是 ONNX:
事实上,它只是非循环计算图(Acyclic computational graphs)的简单格式,但在实践中它给我们提供了部署复杂 AI 应用方案的机会。而且我个人发现它非常有吸引力的一点是——人们可以在那些没有强大部署工具和不依赖于 TensorFlow 生态系统的框架中进行开发,比如 PyTorch。
模型库暴增
三年前,人工智能领域最令人兴奋的事情是 Caffe 的模型库(Caffe Zoo)。当时我正在从事与计算机视觉有关的工作,我当时尝试了所有的模型,并且逐一检查了它们的工作机制以及运行效果。之后我使用这些模型进行实现迁移学习(Transfer learning)或者用于特征提取。最近我使用了两种不同的开源模型,作为一个大型计算机视觉任务的数据流处理管道的一部分。这意味着什么呢?这意味着实际上我们没必要去训练自己的网络模型,例如,对 ImageNet 对象识别或者地点识别,这些基础的东西能够直接下载并添加到你的系统中去。除了 Caffe 模型库,其它的框架也有着类似的模型库。但是让我最吃惊的是,你可以直接将计算机视觉、NLP 甚至是加速度计信号处理模型插入到 iPhone 中:
我认为这些模型库将越来越多,并且会出现像 ONNX 这样的生态系统,然后这些模型也将更加集中(也会使用 ML 区块链应用来去中心化)。
AutoML 设计方法替换
设计一个神经网络的体系结构是一个痛苦的任务——有时你可以通过简单地堆叠卷积层得到相当好的结果,但是大多数时候,你需要凭借经验和超参数搜索方法(例如,随机搜索或贝叶斯优化)非常仔细地设计网络的宽度、深度和超参数。特别是当你不在计算机视觉领域开展研究时,你可以微调一些在 ImageNet 上训练的 DenseNet。但是对于 3D 数据分类或者多变量时间序列应用则不行。
有许多人尝试过使用一个神经网络从头开始创建另一个神经网络架构,但是对我而言,最好的也是最便捷的是 Google Research 的 AutoML:
他们用 AutoML 来生成的计算机视觉模型,比人类手工设计的网络还要更快和更好。我相信很快就会有很多关于这个话题的论文和开源代码了。
技术栈
对于这个概念,我在 Anatoly Levenchuk 的博客上看到了很多。Anatoly Levenchuk 是一名来自俄罗斯的系统分析师、教练和 AI 爱好者。在下面的图片中,你可以看到一个被称为「AI 栈」的例子:
它不仅仅包含有机器学习算法和你最喜欢的框架,而且也深入更底层中,并且每个层面都有自己的发展和研究。
我认为人工智能开发行业已经拥有了足够多的不同专家,而且已经足够成熟。在你的团队中只有一名数据科学家是远远不够的——你需要不同的人员,分别负责硬件优化、神经网络研究、AI 编译器、解决方案最优化和生产实施。在他们之上必须有不同的团队领导、软件架构师(必须为每个问题单独设计上面的堆)和管理者。我已经提到了这个概念,希望在 AI 领域的技术专家能够在未来成长(对于那些想要成为 AI 或者技术领导者的软件架构师——你需要知道学习路线)的某种愿景。
基于语音的应用
目前来说人工智能所能解决的精度能达到 95% 以上的问题非常少:我们可以将图像分成 1000 个类别;我们可以判断文本中的情绪是正面的还是负面的;其实我们还可以做一些更加复杂的事情。我认为还有一个领域即将迎来商业应用的爆发,那就是语音识别和生成。事实上,在 DeepMind 的 WaveNet 发布之后的一年内,WaveNet 都还算不错,不过由于最近百度的 DeepVoice 和 Google Tacotron2 的提出,我们在这块走的更远了:
这个技术很快就会在开源社区中进行公布(或者被一些聪明人所复制),并且每个人都能够以非常高的精度识别语音并生成它。它能在哪里派上用场呢?我们将得到更好的私人助理、自动电子书阅读器、谈判记录器(Negotiation transcripters)以及声音造假。
更聪明的机器人
我们今天所看到的机器人都有一个很大的问题——其中 99% 根本不是人工智能,它们只是硬编码。这就是为什么 Facebook Messenger 或 Telegram 中的大部分机器人都采用硬编码的命令,或者最好情况也是采用了一些基于 LSTM 和 word2vec 技术的神经网络句子分类器。但是现代最先进的 NLP 技术可不止这样。来看看 Salesforce 做了哪些有趣的研究工作:
他们正在构建 NLP 与数据库的接口,克服现代编码器-解码器自动回归模型,不仅能为单词或句子训练嵌入向量,而且还能给字符训练向量。此外,还有一个有趣的研究是关于使用强化学习将 NLP 得分作为 ROUGE 进行最优化。
我相信随着这些技术的发展,我们可以通过更多的智能信息检索(Intelligent information retrieval)和命名实体(Named entity)来提高机器人。甚至在一些封闭域的垂直应用中可能出现完全由深度学习驱动的机器人。
最佳的时间序列分析
在 Salesforce 之后的第二个被低估的公共机器学习研究实验室是 Uber AI Labs。前端时间,他们发表了一篇博客,展示了他们对时间序列预测的方法。说实话这让我感到受宠若惊,因为我在应用程序中使用了基本相同的方法!这是将统计特征和深度学习表征相结合的惊人例子:
我最近从事的是基于深度学习的时间序列分析,我已经亲自验证了这个神经网络效果非常好,与「黄金标准(Golden standards)」相比,你可以轻易获得 5-10 倍的性能增长。
优化策略也很重要
我们要如何训练我们的神经网络?说实话,大多数人只是使用「Adam()」优化函数和标准的学习率。而一些聪明的人会选择最合适的优化器,并调整合适的学习率。由于训练优化的时候我们只需要按下「训练」按钮,然后等待网络收敛,因此这导致人们往往低估了优化中的学问。但是在拥有同等计算力资源、内存和开源代码解决方案的时候,能够在最短时间内优化训练模型的人将胜出。这有一篇 2017 年优化算法的改进盘点(http://ruder.io/deep-learning-optimization-2017/index.html)。
我鼓励大家看看上面的 Sebastian 的 Ruder 博客,该博客介绍了 2017 年最新的一些关于如何确定优化算法,以及其他一些非常有用的简单改进。
回归理性
这张照片能告诉我们什么呢?特别是在已经阅读了这篇文章前几点之后。考虑到目前已经出现了这么多开源的工具以及算法,要开发出一些新的有价值的东西并且还要从中赚取很多钱并不容易。我认为 2018 年对于像 Prisma 这样的创业公司来说不是最好的一年——因为可能会出现很多竞争对手,他们可以把开源项目作为移动应用进行部署,从而开始创业。
今年我们必须专注于基本的事情,而不是挣快钱——即使我们打算使用谷歌的 Ratacon 服务来实现有声读物的语音识别,我们也不能单纯地将它作为一个简单的网络服务器,而是要想清楚业务模式、合作伙伴以获得一些投资。
总结
最后再总结一下,我们有几种技术可以用于实际产品落地:时间序列分析、GANs、语音识别。我们不应该再为分类或者回归设计基本架构了,因为 AutoML 将会为我们实现这个。我希望借助一些优化上的提高,AutoML 将运行得比以前更快。然后有了 ONNX 和模型库之后我们将能够通过两行代码就实现将模型插入到应用中去。我认为制作基于 AI 的应用程序在当前来说是非常容易的,这对于整个工业界而言也是福音。而想知道新一年里人工智能研究领域会如何发展请看我前一篇文章。
Via AI in 2018 for developers,AI 科技评论编译。
目前有10000+人已关注加入我们,欢迎您关注