一、AutoML

AutoML 是谷歌的一个能够制造子 AI 的 AI 系统。2017 年 5 月,谷歌大脑研究人员宣布创建了 AutoML,该 AI 系统能够创造自己的 AI 系统。最近,他们决定让 AutoML 攻克迄今为止对它来说最大的挑战,令人惊讶的是,AutoML 创造了一个非常厉害的「后代」,它的表现甚至超过了所有人类设计的 AI 系统。

Google AutoML 系统自主编写机器学习代码,其效率在某种程度上竟然超过了专业的研发工程师。AutoML的目标并不是要将人类从开发过程中剥离出去,也不是要开发全新的人工智能,而是让人工智能继续维持某种速度来改变世界。

人工神经网络已经实现了学习模型的自编码,还需要人来训练。而AutoML更进一步,实现了训练过程的自编码,通过类似Axure的拖拽方式就能完成对话操作。

在AutoML中,一种控制器神经网络能够提议一个“子”模型架构,然后针对特定任务进行训练与质量评估;而反馈给控制器的信息则会被用来改进下一轮的提议。我们重复这个过程数千次——从而生成新的架构,然后经过测试和反馈,让控制器进行学习。最终,控制器将学会为好的架构分配高的概率,以便在延续的验证数据集上实现更高的准确性,并且对于架构空间的差异很小。

AutoML 在机器学习系统的编程上,远胜于创造它的研究人员。在某个图像识别任务中,其实现了创纪录的 82% 的准确率。即使在一些复杂的人工智能任务中,其自创建的代码也比人类程序员优越。它可以在图像中标记多个点,准确率达到 42%;作为对比,人类打造的软件只有 39% 。

二、AutoML对AI意味着什么?

它像一款制作Demo的工具,可以帮PM理解端到端学习的应用边界。大部分PM(尤其转型中的)并不具备AI工程师的实操能力,这是个真实存在的痛点。以后若要验证新的场景思路,可以先做个Demo试试。解放出更多精力,分摊到分析场景、获取数据、设计方案、推进落地上。

三、AutoML系统背后的基础知识

如果你用过机器学习算法,那一定体验被算法调参支配的恐怖。面对错综复杂的算法参数,算法使用者们往往要花费无尽的黑夜去不断尝试,犹如大海捞针。有的时候加班到深夜,终于找到了一个靠谱的参数组合,然而找到的参数组合真的是最优的么?天知道。

然而在搭建机器学习链路的过程中,往往不止调参这一步耗时耗力。好不容易生成了算法模型,怎么把模型部署成服务供手机、PC这些终端调用也是困扰开发同学的一大难题。有的时候,为了打通这样的链路,要耗费整晚的时间调试不同格式的模型和服务端的关联。

AutoML用于描述模型选择和/或超参数优化的自动化方法。这些方法适用于许多类型的算法,例如随机森林,梯度提升机器(gradient boosting machines),神经网络等。AutoML尽量不通过人来设定超参数,而是使用某种学习机制,来调节这些超参数。这些学习机制包括传统的贝叶斯优化,多臂老虎机(multi-armed bandit),进化算法,还有比较新的强化学习。

四、进化算法

一般的进化算法其实大同小异,差别在如何选择变异,有比较细的变异,比如在Large-Scale Evolution of Image Classifiers 这篇文章中,就定义了非常具体的变异,比如有改变通道数量,改变filter大小,改变stride等等;而在Simple And Efficient Architecture Search for Convolutional Neural Networks这篇论文中,它的变异,就借鉴了现有公认的比较好的结构,加深网络就用conv-bn-relu3件套,加宽网络加大通道数量,增加skip connection。

这些进化算法在做自动模型选择时,每次迭代都不可避免的需要在整个数据集上跑若干个epoch,而每次迭代都有许多个变异,又需要很多次迭代,导致最后的训练时间太久。

fine-tune基础上的进化

Simple And Efficient Architecture Search for Convolutional Neural Networks 这篇论文提出,我们先用一个成熟的模型去训练(也可以fine-tune训练),然后在这个模型的基础上去变异,变异之后用fine-tune训练几个epoch即可。这带来两个好的结果:

  1. fine tune减少了大量的训练时间

  2. 我们最后拿出来的模型,至少不比成熟模型差

五、AI真能帮你写代码吗?

其实,我们所使用的现代IDE,已经带了丰富的代码提示功能,大家为什么都觉得IDEA比Eclipse好用,其实部分原因就是因为IDEA强大的提示功能,能帮程序员减少很多的键盘敲击事件。而AI写代码,更进一步,它能帮你写模块,帮你实现功能,当然要依赖人类建立的模型来实现。

以后,编程肯定是AI的事,人类能做的,应该就是在业务上为难AI了。

记住:人人都是产品经理!


我的微信公众号:架构真经(关注领取免费资源)

参考文章

  1. https://www.jianshu.com/p/616a777e0bcc
  2. https://baike.baidu.com/item/AutoML/22237135?fr=aladdin
  3. http://m.elecfans.com/article/799923.html
  4. https://www.jianshu.com/p/8178bb4d2ec3

算法高级(47)-AI现在都可以写代码了-辅助编程相关推荐

  1. 阿里CTO程立:好的架构师,都是写代码写出来的!

    阿里CTO程立在访谈中提到,好架构师都是写代码写出来的,PPT是架构师必备的一个技能. 关于这段访谈的文字版如下: "反正我认为架构师是要写代码的.首先的话,好的架构师都是写代码写出来的.本 ...

  2. 有个AI陪你一起写代码,是种怎样的体验?| 附ICLR论文

    麻瓜栗 发自 凹非寺 量子位 出品 | 公众号 QbitAI 从前,任何程序的任何功能,都需要一行一行敲出来. 后来,程序猿要写的代码越来越多,世界上便有了各种各样的API,来减少大家的工作量.有些功 ...

  3. 为什么 CTO、技术总监、架构师都不写代码,还这么牛?

    作者| Mr.K   整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 常常会被问到这样的问题:CTO.技术总监.架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? ...

  4. 为什么CTO、总监、架构师都不写代码,还这么牛逼?

    见字如面,我是军哥! 常常会被问到这样的问题:CTO.技术总监.架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了.就好比问:导演.制片人为什么不懂演戏,还能指导演员 ...

  5. 为什么CTO、技术总监、架构师都不写代码,还这么牛逼?

    常常会被问到这样的问题:CTO.技术总监.架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? 其实,这个问题本身就错了.就好比问:导演.制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的? ...

  6. 人工智能都可以写代码了,程序员怎么做才能不被时代淘汰?

    随着技术的发展,人工智能在我们生活中扮演着越来越重要的角色.管理.维修以及监视等需要人力的工作在联网设备中都逐渐转向自动化运行.越来越多的企业乃至编程人员,开始利用AI辅助软件开发流程--软件开发人员 ...

  7. 算法与设计第二章根据伪代码写代码(归并算法)

    代码:`public class MS { public static void main(String[] args) { int array[] = { 2, 63, 25, 33, 24, 19 ...

  8. python桌面界面开发在那种编译器写代码_Python智慧编程——第1讲 遇见Mu editor

    第1课Python智慧编程 1.1聊聊编程与计算机语言 和人类一样,计算机使用多种语言来沟通,这里所说的语言就是编程语言.简单地说,一种编程语言就是一种特定的与计算机交谈的方式,这种方式使用计算机和人 ...

  9. python编程代码怎么用_Python新手如何在手机上写代码!最新编程工具分享!手快有!...

    先说下为什么学习Python?当然是因为Python火啊!现在用Python做爬虫,做web,做图像分析等等的公司越来越多,而且价格通常都不低,在北京基本月薪都是5位数起的呀!而且上手容易,如果你学过 ...

最新文章

  1. h桥控制电机刹车_控制直流电机正反转以及刹车电路设计 (转载)
  2. 运用Kubernetes进行分布式负载测试
  3. 1000内同时被3,5,7整除的数
  4. 5月16 JSON的一些知识点及AJAX的应用
  5. 被寄予厚望的区块链 能否为游戏行业带来新的曙光?
  6. LeetCode Algorithm 507. 完美数
  7. 求n的阶乘的算法框图_算法|从阶乘计算看递归算法
  8. flutter网络dio框架公共请求参数、请求header使用总结
  9. 【机器学习笔记之六】Bagging 简述
  10. 从手动测试菜鸟到自动化测试老司机,如何完成蜕变
  11. C 标准库 —— limits.h
  12. 数据挖掘与数据化运营实战. 3.9 卖家(买家)交易模型
  13. Adversarial learned Inference(对抗学习推断器)
  14. pycharm Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon run
  15. 从why到how,双态IT的落地联想为何能走在最前列
  16. 数据分析的坑,都在统计学里埋过
  17. 磁碟机病毒专杀3月20日更新到6.4版 (另附上多种专杀工具)
  18. Mybatis提高查询效率的方式
  19. 如何在CAD图纸中添加文字
  20. 我的 2019 年 - 当勤精进,但念无常,何以解忧,唯有暴富

热门文章

  1. 代码自动生成工具的补充
  2. gRPC-go源码(1):连接管理
  3. SpringCloud Ribbon负载均衡介绍及使用
  4. display:none的表单也会被提交
  5. PHP key() 函数
  6. 浅谈-tomcat中的项目之间的访问
  7. 从源码分析RocketMQ系列-start()方法详解
  8. Linux IO模型
  9. Linux 启动流程即init程序分析--1
  10. 在Qt 中如何使用OpenCV库