细思极恐!人工智能编程已经超越人类工程师了

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

近日,据外媒 TNW 报道,Google AutoML 系统居然自己写了一串机器学习代码,其效率竟然超过了专业的研发工程师。这让我们人类的优越感何存?你们这些机器人学生啊,学习能力不要太强哦。

在人工智能顶级人才匮乏的情况下,为了让机器学习模型的设计过程更加简单,提升研发效率,谷歌于今年 5 月推出了“AutoML”,顾名思义,AutoML 实际上就是一种让模型设计过程自动化的机器学习软件,该系统会进行数千次模拟来确定代码的哪些方面可以作出改进,并在改变后继续该过程,直到达成目标。

为了测试 AutoML,谷歌将其自行设计的模型用在了专注图像识别的 CIFAR-10 与语言建模的 Penn Treebank 两大数据集上。实验证明,AutoML 设计的模型的性能表现与目前机器学习专家所设计的先进模型不相上下。令人尴尬的是,有些模型甚至还是 AutoML 团队的成员设计的,也就是说,AutoML 在某种程度上超越了自己的缔造者。

5 个月过后,AutoML 又往前迈进了一部。据外媒 TheNextWeb 报道,在某个图像识别任务中,AutoML 设计的模型实现了创纪录的 82% 的准确率即使在一些复杂的人工智能任务中,其自创建的代码也比人类程序员更好,比如,在为图像标记多个对象的位置这一任务中,它的准确率达到了 42%;作为对比,人类打造的软件只有 39% 。

AutoML 的进展超出了很多人的预期,那么为何机器在设计深度学习模型这一任务上表现的如此出色?先让我们来了解下 AutoML 的工作原理。

AutoML 是如何设计模型的?

作为 AI 领域的领头羊,谷歌其实暗地里做了不少尝试,包括进化算法(evolutionary algorithms)和强化学习算法(reinforcement learning algorithms)等,并且都展现了不错的前景,而 AutoML 则是谷歌大脑团队利用强化学习取得的成果。

在 AutoML 架构中,有一个名为“the controller(控制器)”的 RNN(循环神经网络),它可以设计出一种被称为“child”的模型架构(子模型),而这个“子模型”在训练后可以通过特定任务来进行质量评估。随后,反馈的结果返回到控制器中,以此来帮助提升下一次循环中的训练设定。如下图所示:

细思极恐!人工智能编程已经超越人类工程师了

生成新的架构、测试、把反馈传送给控制器以吸取经验——这一过程将重复几千次,最终,控制器会倾向于设计那些在数据集上取得更好的准确性的架构。

AI 工程师古筱凡表示,AutoML 的运作过程实际上可以分成以下两部分:

  • 元学习的热启动:在机器学习框架中寻找效果好的算法;计算不同数据集之间的相似度,相似的数据可以采取类似的超参数。

  • 超参数优化,算法包括:Hyperopt(TPE 算法);SMAC(基于随机森林);Spearmint。输入不同的超参数为,以损失函数为准确率,调优器会在随机选择一些值的基础上,利用贪心算法去寻优。

  • 下图的两个模型是基于 Penn Treebank 数据集设计的预测模型,其中左边是人类专家设计的,右边则是 AutoML 设计的。

    细思极恐!人工智能编程已经超越人类工程师了

    谷歌团队表示,机器自行选择架构的过程其实和人类设计模型架构的过程是有共通之处的,比如两者都采用了合并输入,并借鉴了前向的隐藏层。不过,AutoML 也有一些值得一提的亮点,比如机器选择的架构包含了乘法组合( multiplicative combination),比如上图中 AutoML 设计的模型的最左边的“elem_mult”。对 RNN 而言,出现这种组合的情况并不常见,可能是因为研究人员并没有发现这种组合有什么明显优势。但是有意思的地方在于,近来正好有人提议过这种方法,并认为乘法组合能够有效缓解梯度消失/爆炸的问题。这意味着,机器选择的架构对探索新的神经网络架构有很大的帮助。

    此外,这种方法或许还能教会人类:为何某些特定类型神经网络的效果更好?比如上图右边的架构有非常多的 channels,因此梯度可以向后传递,这也解释了为何 LSTM RNNs 的表现比标准 RNNs 的性能更好。

    AutoML 开源地址是 http://github.com/automl,感兴趣的朋友可以自己动手尝试一下。

    AutoML 会取代 AI 工程师吗?

    AutoML 能在短时内取得显著进步,证明了用机器设计模型这个方向是有前途的,但是 AutoML 的终极目的是为了取代 AI 工程师吗?

    现如今,AI 专家必须通过本能和试错来不断调试神经网络的内部架构。加州大学伯克利分校研究员 Roberto Calandra 表示 :“工程师的很大一部分工作本质上非常无聊,需要尝试各种配置来看哪些(神经网络)效果更好。”Calandra 认为,因为要解决的问题越来越难,神经网络也越来越深,未来设计一个深度学习模型的将会是一个艰巨的挑战。

    而从理论上来讲,AutoML 未来设计一个深度神经网络所耗费的时间,与人类专家相比几乎可以忽略不计,而且这个由机器设计的模型的效果也会更好,显然 AutoML 将大有可为。

    但是,这并不意味着 AutoML 会将人类从 AI 系统的开发过程中剔除出去。

    实际上,AutoML 的主要目的会降低机器学习的门槛,促进 AI 的民主化。要知道,即便实力雄厚如谷歌,也不敢说自己已经拥有足够的 AI 人才,因此降低门槛,提高效率,对 AI 行业的发展至关重要。

    谷歌首席执行官 Sundar Pichai 在上周的发布会上表示:“如今,这些(AI 系统)都是机器学习专家亲手搭建的,而全世界只有几千名科学家能够做到这一点。我们希望让成千上万的开发者也能够做到这一点。” 

    因此,虽然 AutoML 可能没有继承谷歌顶尖工程师的理论基础和数学才华,但是它却可以帮助 AI 工程师节省时间,或者启发他们,为他们提供灵感。 

    古筱凡也认为,AutoML 是真正的机器学习,它把经验性的工作自动化,现在的机器学习只是半成品。AutoML 能极大地降低未来机器学习的门槛,将是普通人使用机器学习的利器。

    据悉,AutoML 团队将会对机器所设计的架构进行深入的分析和测试,帮助 AI 工程师重新审视自身对这些架构的理解。如果谷歌成功,这意味着 AutoML 将有可能引发新的神经网络类型的诞生,也能让一些非专业研究人员根据自己的需要创造神经网络,造福全人类。

    AutoML 可能不会取代 AI 工程师,但是机器都这么努力了,你还有什么借口偷懒?!

    参考资料:

    http://research.googleblog.com/2017/05/using-machine-learning-to-explore.html

    http://thenextweb.com/artificial-intelligence/2017/10/16/googles-ai-can-create-better-machine-learning-code-than-the-researchers-who-made-it/#

    http://zhuanlan.zhihu.com/p/27792859

    http://www.wired.com/story/googles-learning-software-learns-to-write-learning-software/

    -------- 热闻回顾 --------

    细思极恐!人工智能编程已经超越人类工程师了

    我为什么放弃了 Python,选择了 Go?

    细思极恐!人工智能编程已经超越人类工程师了

    阿尔法狗 3 天走完人类千年棋史,被反超的我们该如何绝地求生?34 个开源项目告诉你!

    细思极恐!人工智能编程已经超越人类工程师了

    一个 38 岁程序员的中年危机

    细思极恐!人工智能编程已经超越人类工程师了