前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >惊呆!谷歌 AI 自动编程效率超研发工程师,作为 AI 工程师的我感到了森森的压力

惊呆!谷歌 AI 自动编程效率超研发工程师,作为 AI 工程师的我感到了森森的压力

原创
作者头像
AI科技大本营
修改于 2017-10-25 01:42:23
修改于 2017-10-25 01:42:23
2.5K0
举报

作者 : 周翔

背景

今天,TNW一则热门新闻炸开了锅:google AutoML 系统近日居然自己写了一串机器学习代码,其效率竟然超过了专业的研发工程师。这让我们人类的优越感何存?你们这些机器人学生啊,学习能力不要太强哦

人工智能可谓是目前最热门的行业,与此同时,相关人才的身价也跟着水涨船高。根据拉勾网的数据,2017 年,人工智能招聘领域,2000 人以上大公司平均薪酬 25.2k。

而领英的数据则显示,截至 2017 年一季度,基于领英平台的全球AI领域技术人才数量已经超过 190 万,排名全球第一的美国相关人才总数超 85 万,相较而言,位列第七的中国只有 5 万人左右,缺口巨大。

在高需求和高薪资的双重刺激下,不管是学生物的,还是学材料的,想要转战 AI 的人越来越多,这也从侧面验证了为什么吴恩达等 AI 大牛每次推出新的在线课程都能引发一轮“集体高潮”。

不过,想要转行的同学要抓紧了,AI 既然可以速记员,取代翻译,未来有没有可能取代程序员呢?

5 个月前,谷歌开发出的 AI 自主设计的深度学习模型已经比创造它的工程师还要好了,如今这个 AI 系统又更进一步,在某些复杂任务上的表现也超越了人类工程师。

对此,你怎么看?

前言

在人工智能的浪潮下,深度学习模型已经广泛应用于语音识别机器翻译图像识别等诸多领域,并取得了非常不错的成果。但是深度学习模型的设计却是一个艰辛且繁复的过程,因为所有可能组合模型背后的搜索空间非常庞大,比如一个典型的 10 层神经网络就有种神经网络组合,为了应对这样庞大的数量级,神经网络的设计不仅耗时,而且需要机器学习专家积累大量的先验知识。

图:GoogleNet 架构,从最初的卷积架构开始,这种神经网络的设计需要进行多年的细心试验和调试。

在人工智能顶级人才匮乏的情况下,为了让机器学习模型的设计过程更加简单,提升研发效率,谷歌于今年 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 的运作过程实际上可以分成以下两部分:

  1. 元学习的热启动:在机器学习框架中寻找效果好的算法;计算不同数据集之间的相似度,相似的数据可以采取类似的超参数。
  2. 超参数优化,算法包括:Hyperopt(TPE 算法);SMAC(基于随机森林);Spearmint。输入不同的超参数为,以损失函数为准确率,调优器会在随机选择一些值的基础上,利用贪心算法去寻优。

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

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

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

AutoML 开源地址是 https://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 工程师,但是机器都这么努力了,你还有什么借口偷懒!

就在这篇文章的留言区,营长找到了好几条评论称:“作为AI工程师的我,感到了深深的压力。机器学习能力照着么发展下去,没准饭碗儿就真丢了......”

参考资料:

  1. https://research.googleblog.com/2017/05/using-machine-learning-to-explore.html
  2. https://thenextweb.com/artificial-intelligence/2017/10/16/googles-ai-can-create-better-machine-learning-code-than-the-researchers-who-made-it/#
  3. https://zhuanlan.zhihu.com/p/27792859
  4. https://www.wired.com/story/googles-learning-software-learns-to-write-learning-software/

文章来源于 AI 科技大本营微信公众号

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
odoo 开发入门教程系列-模型之间的关系(Relations Between Models)
上一章介绍了为包含基本字段的模型创建自定义视图。然而,在任何真实的业务场景中,我们都需要不止一个模型。此外,模型之间的链接是必要的。人们可以很容易地想象一个模型包含客户,另一个模型则包含用户列表。你可能需要参考任何现有业务模型上的客户或用户。
授客
2023/04/01
4.7K0
odoo 开发入门教程系列-模型之间的关系(Relations Between Models)
odoo 开发入门教程系列-安全-简介
前一章中我们已经创建了第一个打算用于存储业务数据的表。在odoo这样的一个商业应用中,第一个考虑的问题就是谁(Odoo 用户(或者组用户))可以访问数据。odoo为指定用户组用户提供了一个安全的数据访问机制。
授客
2023/03/26
1K0
Odoo 菜单定义和修改学习总结
指定菜单图标,格式:模块名称,图标路径,形如estate,static/img/icon.png 意为estate模块下的static/img/icon.png图标。其中图标路径,一般是相对于模块根目录的相对路径
授客
2023/02/26
1.5K0
odoo 开发入门教程系列-继承(Inheritance)
Odoo的一个强大方面是它的模块化。模块专用于业务需求,但模块也可以相互交互。这对于扩展现有模块的功能非常有用。例如,在我们的房地产场景中,我们希望在常规用户视图中直接显示销售人员的财产列表。
授客
2023/04/23
2.5K0
odoo 开发入门教程系列-继承(Inheritance)
odoo ORM API学习总结兼orm学习教程
默认的,字段的标签(Lable,即用户可见字段名称)为对应字段名称开头字母改成大写后的值,可通过 string 字段属性改成修改字段Label
授客
2023/03/12
14K0
odoo ORM API学习总结兼orm学习教程
odoo 开发入门教程系列-QWeb简史
到目前为止,我们的房地产模块的界面设计相当有限。构建列表视图很简单,因为只需要字段列表。表单视图也是如此:尽管使用了一些标记,如<group>或<page>,但在设计方面几乎没有什么可做的。
授客
2023/04/28
2.4K0
odoo 开发入门教程系列-QWeb简史
odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)
模型之间的关系是任何Odoo模块的关键组成部分。它们对于任何业务案例的建模都是必要的。然而,我们可能需要给定模型中字段之间的链接。有时,一个字段的值是根据其他字段的值确定的,有时我们希望帮助用户输入数据。
授客
2023/04/02
3.4K0
odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)
odoo wizard界面显示带复选框列表及勾选数据获取
如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中的"选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页中内联tree视图("Offers" Tab页)的列表记录展示到向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。
授客
2023/05/24
5.6K0
odoo wizard界面显示带复选框列表及勾选数据获取
odoo 开发入门教程系列-一个新应用
form视图顶层区域概括了房产的重要信息,比如name,Property Type, Postcode等等。
授客
2023/03/25
1.4K0
odoo 开发入门教程系列-一个新应用
odoo 开发入门教程系列-一些用户界面
上一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便的,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。比如包含HTML tags的 help field。虽然可以通过CSV文件加载这样的数据,但是使用XML更方便。
授客
2023/03/26
3.3K0
odoo 开发入门教程系列-一些用户界面
odoo context上下文用法总结
Model.with_context([context][, **overrides]) -> records[源代码]
授客
2023/03/09
2.3K0
odoo 给列表视图添加按钮实现数据文件导入
odoo14\custom\estate\models\estate_customer.py
授客
2023/02/26
3.7K0
odoo 给列表视图添加按钮实现数据文件导入
odoo 开发入门教程系列-模块交互
在上一章中,我们使用继承来修改模块的行为。在我们的房地产场景中,我们希望更进一步,能够为客户生成发票。Odoo提供了一个开发票模块,因此直接从我们的房地产模块创建发票是很简单的,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序中创建发票
授客
2023/04/24
1.9K0
odoo 开发入门教程系列-模块交互
odoo 开发入门教程系列-基本视图
在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。
授客
2023/03/27
3.6K0
odoo 开发入门教程系列-基本视图
odoo Actions学习总结
action可以存储在数据库中,也可以作为字典直接返回,例如按钮方法。所有Action都有两个强制属性:
授客
2023/03/09
2.9K0
odoo 开发入门教程系列-模型和基本字段
在上一章的末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。在我们的房地产模块中,我们希望将与房地产相关的信息(名称(name)、描述(description)、价格(price)、居住面积(living area)…)存储在数据库中。odoo框架提供了数据库交互的工具
授客
2023/03/25
2.6K0
odoo 开发入门教程系列-模型和基本字段
odoo 开发入门教程系列-约束(Constraints)
上一章介绍了向模型中添加一些业务逻辑的能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误的数据?例如,在我们的房地产模块中,没有什么可以阻止用户设置负预期价格。
授客
2023/04/08
1.7K0
odoo 开发入门教程系列-约束(Constraints)
odoo 给form表单视图内联列表添加按钮
odoo14\custom\estate\models\estate_customer.py
授客
2023/02/26
1.6K0
odoo 给form表单视图内联列表添加按钮
Salesforce学习 权限管理
Salesforce 对于权限的管理是非常严谨的并且支持不同维度的权限控制。常用的有Profiles(简档)、Permissions Set(权限集)、Role Hierarchy(角色层级结构)和Organization-Wide(组织范围)这四项用来控制控制相应的权限。
repick
2020/01/23
2.4K0
odoo 为form表单视图添加chatter功能
如图,给表单新增一个类似聊天的窗口,当记录一些表单活动(本例为自动记录当前记录状态变化)
授客
2023/02/26
8690
odoo 为form表单视图添加chatter功能
推荐阅读
相关推荐
odoo 开发入门教程系列-模型之间的关系(Relations Between Models)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档