https://www.toutiao.com/a6692287092103315979/

本文经O'Reilly授权发布

大数据文摘字幕组作品

作者:effy

AI正在重塑人类社会的方方面面,例如研发新的药物,改善人们的生活习惯等。那么在这个崭新的时代,AI是如何重塑软件工程这个行业的呢?

本文基于Caffe的创始人、TensorFlow核心作者之一贾扬清在O'Reilly和Intel共同举办的AI Conference旧金山站所做的演讲《在AI时代重新思考软件工程》,通过揭秘传统软件工程的痛点,他希望向各位分享自己对人工智能时代,软件工程行业发展的思考。

长期以来,我们一直把分辨某个物体、颜色、形状的能力想成理所当然。什么意思呢?比如,当文摘菌提道“斩男色”的时候,相信很多小姐姐都心领神会,但是你如何给不知道这个颜色的ta,或者计算机描述/形容“斩男色”?

注:斩男色,传说涂上这个颜色的口红可以就能天下无敌,撩弟无数,斩获所有直男的心。

在图像识别和处理领域,传统的软件工程是通过设计规则(rules),也就是使用硬编码来描述物体特征,来研究计算机视觉的问题。在深度学习之前,方向梯度直方图(histogram of gradients 简称HOG)火遍了大江南北。

什么是HOG?简单的说,HOG试图在图像的局部收集统计数据,或者可以理解为,它试图找到物体各个方向上的边界。比如,当你认真仔细看箭头下的图,(希望)你可以看出类似汽车的物体轮廓。

是不是仿佛回到了小时候体检看色盲卡?再来一张,这张是不是好多了?

因此,传统软件工程需要告诉电脑,规则是什么,或者特征是什么,并一步一步‘告诉’电脑该怎么做。可想而知,这种设计本身限制了计算机视觉的进一步发展。

从逻辑编程到自调适模型:从授之以鱼到授之以data

传统图片识别技术错误率在26%停滞不前,急坏了众多科学家、学者、研究人员。

这时,一位名叫Alex Krizhevsky的小哥哥,提出用一种更抽象的方式写模块,设计出了我们今天称为‘卷积神经网络‘的模型。并用大量的数据构建和训练它,实现了图像识别从传统的逻辑编程到建模的转变。

这种方法的效果惊天地泣鬼神,和传统图片识别技术相比,在准确性方面实现了飞越。AlexNet在2012年ImageNet中以15%的错误率取得前5的好成绩。

AlexNet由5个卷积层和3个全连接层,650,000个神经元以及60,000,000个参数构成。其中,卷积层扮演着抽象和提取特征的角色。

传统图像识别的方法,是将人为指定的、通过HOG提取出来的特征再放入分类器中,进行识别。而AlexNet实现了通过卷积层自主学习图片特征,并通过全连接层输出概率,确定分类的‘一条龙’服务。真的非常优秀了!

reference:

http://www.image-net.org/challenges/LSVRC/2012/supervision.pdf

有意思的是,AlexNet还有生物后端的支持。研究发现,在我们的视觉皮层中,神经元会进行分层推断。信息从一层传递到下一层,再到下一层,从而让大脑提取越来越复杂的信息。

数据金矿

传统的方式是如何编写软件呢?我们编写软件时,会把源代码放入编译器中,编译器会将源代码转换成计算机能解读、运行的低阶机器语言。

而在人工智能领域,我们写的程序或者说模型已经和传统软件工程编译不同了。它不再是一组逻辑,而是会根据不同的训练数据和目标数据,得到不同的程序和模型。这些模型可以推导出一个通用的规则,然后使用大量的数据和计算来得到精确的结果。

举个例子,对于大约有一百二十万张图片的数据集来说,传统的方式处理这些编译的一个挑战是,它需要进行大约百万万亿次的计算(1 exaflop)来训练一个图像网络模型。

这是什么概念呢?如果让每个伦敦人每秒都做一个浮点运算的话,需要大约四千年的时间来训练这个模型。

其实我们已经意识到,人工智能的计算在某种程度上是非常野蛮的。特别是在卷积神经网络,或者叠加的神经网络,我们需要做大量的浮点运算(float operations)。

因此,在几年前,我们就开始建立和研发更高效的硬件。而且,我们还建立起了数据中心、规模集群或环境(scale clusters or environment)来进行计算。

与此同时,我们还看到了科学计算算法的回归,比如那些传统的用来预测天气的方法。

这都推动了软件设计的发展,现在我们不再使用代码进行编译,而是用代码和数据放在一个计算阶段(compute phase),或者我们也可以称其为现代版的代码编译。

当然,引用一句谚语:巧妇难为无米之炊。数据已经成为了人工智能生态系统中一个非常重要的部分。

互联网时代,大量的数据产生并充斥着我们的生活。那么面对如同大量的金矿一般的数据,我们真的能从中开采出黄金吗?或者我们的模型可以处理如此大量的数据么?

在Facebook,有一群非常优秀的小伙伴尝试回答这个问题。他们通过在网上分享大量的公共图片,和相关的信息,比如标签,来训练模型找出这些图像中有哪些东西。

随着这个项目的训练数据不断增加,最后达到大约四十五亿张图片,模型的质量和准确率也随之上升。也就是说,只要有更多的数据,就能带给我们更多更好更高质量的模型。

在这些领域中,我们看到的是用数据驱动的方法,代替硬编码或者说传统软件工程的方案。我们要做的只是提供大量的数据,然后在没有太多人工干预的情况下,就能得到理想的模型。完美!

算力呢?

人工智能时代的软件工程逐渐形成三个关键部分的良性循环:我们设计的模型可以从大量的数据中获取信息,利用我们现在拥有的巨大的计算能力,或者说更好的算法,开启智能之门。

大量数据的涌入,使我们能够为这些复杂模型的培训提供燃料。硬件的开发,使我们能够获得更多的计算资源,并且使我们能够在几天,几小时甚至几秒内完成这样的任务。

而随着硬件和计算机技术的发展,现在我们能够将这些模型部署到各种设备上。以前,我们的手机就是手机。今天,我们的手机不止是一部电话,还是一个私人助理,一台照相机和一种连接到智能世界的方式。

未来已来?or还未来?

有时我会想,我们还需要做些什么呢?好像已经全部做完了呀。难道不是么?人工智能渐渐变得常见并被大家了解和认识,我们已经有了很多高大上的模型和厉害的硬件设备,但是我们仍处于一个非常原始的阶段。

当我们试图管理实验的模型,我们有时会使用一些非常古老的手工方法,比如说excel表格。现在,在传统的软件工程中有更好的方法,比如,持续集成(continuous integration)。

我们知道当我们在写软件的时候,有复杂的系统来进行版本控制(version control),以确保代码的测试和质控。而当我们的项目考虑使用表格来管理我们的实验时,这些问题并没有出现。

所以问题来了,我们如何做到现代化的版本控制和现代的SDK和现代的持续集成呢?对于AI系统,这变得非常困难。不仅仅因为算法在改变,数据每天都在变化。而反过来,这些又改变和影响了将要部署的模型和即将出现的新硬件。

这三个因素会相互作用,并交织在一起难舍难分。因此,现在的软件工程不仅仅只是停留在代码层面了,它还需要处理数据和计算资源,从而保证结果的准确性,并确保我们能够对这些软件和系统有效管理。

这是一个开放的问题,因为我们还需要做很多工作,才能让AI继续发展下去。让我开心和激动的是,越来越多的人对AI感兴趣和加入。现在越来越多的学术论文在引用卷积神经网络,数量呈现指数级的增长,这和摩尔定律非常相似。于我个人而言,我非常期待看到人工智能的进步和更多的应用,帮助我们的社会的推进和提升。

贾扬清:从授之以鱼到授之以data,人工智能如何重塑传统软件行业相关推荐

  1. 授之以鱼不如授之以渔!五分钟教会您手工查杀***!

    授之以鱼不如授之以渔!五分钟教会您手工查杀***! 经常看到有人求助- 为什么我的主页被改了,死活改不回来呀? 这个进程是不是正常进程呀? 这个程序是什么程序呀?为什么死活杀不掉呢? ....... ...

  2. 现代化的中国教育,缺失的不是钱,是思想(之一)--“授之以鱼不如授之以渔”的局限性

    之一:理论部分:"授之以鱼不如授之以渔"的局限性 1.理论错误: 在经典的教育思想中,师者:"传道授业解惑".教育的法则亦云:"授之以鱼不如授之以渔. ...

  3. 码垛机器人逐渐代替人工,“授之以鱼不如授之以渔”

    前言 码垛机器人逐渐代替人工,搬运工即将面临着失业???授之以鱼不如授之以渔,掌握一门技能,才能更好的适应时代的变化... 近年来,随着科学技术的发展,我国智能制造迅速发展,对自动化生产的需求逐渐增加 ...

  4. Python爬虫小白全攻略-授之以鱼不如授之以渔

    最近研究项目需要用到一些资料,无奈网上资源要么添加无数广告花里胡哨,要么就是1页内容给你分了N页得来回点数次.研究的东西挺明确的,看文档给我整蒙了,为了让自己看着舒服及归纳总结,决定做个爬虫,由于Py ...

  5. 授之以鱼不如授之以渔

    提起笔,一下冒出了关于书的名言: 书是人类进步的阶梯---高尔基 还记得有意思的关于读书的辩论主题: 正方:行万里路胜过读万卷书 反方:行万里路不如读万卷书 关于读书还有很多,诸如读死书.死读书读书无 ...

  6. 授之以鱼,授之以渔?

    今天编码进入了第10天,大家的代码还没有完,这时是最吃紧的时候.从PL,到我,到下面的员工,都很紧.但是欲速而不达,就是在这个时候,各种各样的怪问题都出来了.于是PL和我都帮着新人们(虽然他们都是研究 ...

  7. “授之以鱼” 不如 “授之以渔“(网页设计-第十次作业-思路分享)

    一,为什么要写一篇思路分享的文章? 预料之外–阅读量上升 因为我将网页制作和java作业整理上传的CSDN的最初原因,是为了数据归档,当然也可以给有需要的朋友参考一下.之前看了一下,好像网页制作的作业 ...

  8. 转:授之于鱼还是授之以渔,金蝶给了企业SaaS一个完整答案

    [img]file:///C:\Users\zkzx\AppData\Local\Temp\ksohtml\wps822.tmp.png[/img][img]http://img13.poco.cn/ ...

  9. Pivotal的数字转型经:授之于鱼不如授之于渔

    2月21日,大雪 在北京2017年的第一场大雪中,笔者如约来到Pivotal新办公室所在地融科资讯中心,与Pivotal大中华区总经理刘伟光先生履行在半年前就已经约定的采访,就像第一次采访刘伟光先生是 ...

最新文章

  1. 修改或隐藏Nginx的版本号
  2. Java.util.Random 各种方法介绍
  3. Matlab分布式和并行编程
  4. CentOS 下安装
  5. A__Java为数据结构提供的实用包的运用(减少代码量)---更新中ing
  6. mysql的基本的查询语句_Mysql的基本查询语句
  7. 网管交换机与非网管交换机的利弊介绍
  8. BZOJ 3207: 花神的嘲讽计划Ⅰ
  9. DIY一款600元成本的电路板热成像故障分析仪
  10. spark学习9:sparkStreaming
  11. Android项目实战(八):列表右侧边栏拼音展示效果
  12. [SeLinux]audit2allow安装与使用
  13. GeForce RTX 3070安装mmdetection
  14. java-net-php-python-springboot学校在线作业考试系统计算机毕业设计程序
  15. MobileNet_v1:深度可分离卷积
  16. 美团校招年薪35万!老员工薪资倒挂,如何应对?
  17. Android 房租计算器,简单计算器
  18. linux 嵌入式汇编 adc,嵌入式Linux ARM汇编(四)——ARM汇编程序设计
  19. Win7下安装Ubuntu11.10(解决linux try(hd0,0):NTFS5:no ang0引导问题)
  20. 厦门考计算机竞赛保送北大清华名单,福建44名学生保送北大清华 厦门人数最多有19人...

热门文章

  1. KeyError: ((1, 1), ‘<i8‘)
  2. 双软企业两免三减半政策
  3. 哦买噶!李佳琦重现淘宝直播间!机器学习工程师的提效神器;『优化导论』神书;『IE521 凸优化』课程资料 | ShowMeAI资讯日报
  4. 那些年的,那些人的,那些事。
  5. Linux下的硬件驱动——USB设备配置以及开发
  6. 微信扫码支付:此公众号并没有这些scope的权限,错误码:10005
  7. 开发管理---配置管理与文档管理
  8. stm32---RS485半双工通信
  9. PVE虚拟机开启支持虚拟化
  10. git 申请合并冲突:rebase 解决合成一条再合并