人工智能迟早会灭了程序猿?

2017-11-4 22:39| 发布者: johnny| 查看: 2329| 评论: 0

摘要:   前些日子,去人类文明发祥地埃及转了一圈,不料想人类文明已临大敌——DeepMind又在搞事情了,完全靠左右互搏练出来的Alpha Zero,居然不顾人类心理阴影面积,碾压几千万张棋谱喂出来的前辈。  看起来,不仅人 ...


  前些日子,去人类文明发祥地埃及转了一圈,不料想人类文明已临大敌——DeepMind又在搞事情了,完全靠左右互搏练出来的Alpha Zero,居然不顾人类心理阴影面积,碾压几千万张棋谱喂出来的前辈。
  看起来,不仅人类经验已成废柴,连我们膜拜的大数据也将一无是处?正好相反,Alpha Zero的胜利,恰恰说明了数据在AI领域的唯一神性。现在,请把所有异端踩在脚下,来跟我一起念:
  万物非主,唯有数据;
  深度学习,数据使者!
  什么是数据?其实就是一个二元组(x, y):其中x是一次观测值,也就是“看到了什么”;而y是观测的标签,也就是“看到的是什么”。这两个要素,凑在一起才叫一条数据,缺一不可。举个例子,在语音识别中,x就是一段声音信号,y就是对应的文本;而在人脸识别中,x就是一副图片,y就是这个人的编号。



  人们对数据唯一神性的认识,并非一帆风顺。在原始AI时代,由于计算能力的限制,纵有数据也无法处理,于是多神崇拜盛行:有人信算法,有人信专家,有人信穷举,也有人只信人品。直到本世纪,采用GPU的深度学习方案实用以后,我们才恍然大悟:原来数据里蕴藏着那么多的宝藏,只是过去我们无力挖掘罢了。现在看来,有充足(x, y)这样的数据是AI必要的物质基础。既然数据如此关键,聪明人肯定会问——能不能自动获得数据呢?对此,Alpha Zero给了我们一个并不意外的漂亮答案。
  在围棋问题里,x是某局棋,而y就是这局棋的输赢。由于围棋的规则确定,任给一个x很容易算出y,于是机器就可以自动生产数据了。这揭示了无监督训练的一个本质要求:由观察x能够显著降低y的不确定性。对于围棋,x定了y也就定了,这简直太美妙了,三千万棋谱又算什么?我这儿要多少给你编多少!
  自动生成的棋谱当然还得靠谱才行。就算你算力超过奥特曼,可是天天冥思苦想下图>>环珠格格<<中紫薇下出的弱智局面,也不过是浪费电罢了。这提出了自动生成数据的另一个要求:生成的数据p(x)分布,要跟真实分布尽量接近。对此,Alpha Zero是否考虑了,怎么解决的,我还没有仔细研究过。



  AlphaZero的胜利,一靠数据至上的信仰,二靠围棋自生数据的特点。不过,不要以为在其他领域,也会被这样的馅饼砸到,因为能自生数据的任务并不常见。那么,有没有可能通过方法上的改进,大幅降低对数据的依赖性呢?有可能。对比一下人与AI视觉,会发现两者对数据的利用效率大为不同:有宝宝的可以留意,他们在画上见过一张卡通长颈鹿,到了动物园就能认出真的长颈鹿;而目前的AI要认长颈鹿,怎么也得看个几万张高清无码长颈鹿写真才行。



  其实,从动物到人的上亿年进化中,视觉系统不断地被外界景象所刺激,也就在不断吸收数据和加强能力。妙就妙在,人类的视觉能力一则可以遗传,二则可以在不同任务上复用。想想也是,辨别纹理、线条,与认长颈鹿还是河马并无关系。那一张卡通图片的作用,只是告诉小孩子怎么拼出轮廓罢了。
  这与“强AI“可能有些关系:深度神经网络的下面若干层,往往表达的是类似“线条、纹理”这样的初级信息,与高级语义的关系较弱。如果我们能把这些初级单元复用起来,AI就能够充分利用类似任务的数据,而不是撂爪就忘。这样一来,缺少数据的问题就大大缓解了。
  人类的感知系统还有另一点令人困惑:别忘了在进化过程中,从来没人告诉一只猴子,眼前的哪个物体是鳄鱼。也就是说,人类的感知进化很可能是无监督的,这给了我们无限的希望,也让我们后背发凉。
  先不扯那么远,仅就目前的AI来看,判断某项工作是不是会被机器替代,有一个大前提,和一个小前提:大前提,是可以获得足够的有效数据(能自动生成数据则无敌),也就是说机器有快速进化的基础;小前提,是人本身的进化过程没有见过大量的数据,也就是说人的起点并不高。
  速记、客服这些与语音视觉相关的工作,满足大前提,不满足小前提。AI从这里起兵却遭遇劲旅——人类的视听系统可是上亿年的数据喂出来的啊!反而是股票操盘手、互联网数据分析师这些工作,迟早是AI的菜,人类并无还手之力——不信去测测基因,您有祖上遗传下来的炒股本能么?
  还有什么工作容易被AI颠覆呢?考虑到“自动生成数据”这个关键,我冥思苦想以后,无奈地告诉大家,还真没准是编程。
  机器自动写代码并不是个新问题,这叫做“归纳程序综合”(Inductive Program Synthesis,IPS)。IPS问题可以描述为:给定一组<输入,输出>数据对,自动产生一段代码,将这些给定的输入转换为给定的输出。传统的IPS方法,有点类似只能在4路小棋盘上的暴力搜索;可实际的编程任务,好比是19路大棋盘上的对局,还得靠万物灵长的程序猿来人肉搞定。
  可如今天下大变,机器在19路围棋上已经碾压人类,凭什么编程就不行呢?机器人下棋,靠的是统计的方法和大量数据;而机器人编程,当然也要用机器学习替代暴力搜索。这里的关键,还是数据从哪里来。在这点上,Alpha Zero给了我们极大的启发。
  如果在某些问题中,编程需求可以像围棋规则那样形式化表达。此时,给定一种输入,输出很容易确定,这就可以自动生成大量的测试数据。有了这些数据,后面无非就是算法进化的问题了。
  所以,真正的难点,还在那个形式化的需求表达。目前这离我们有多远,我也说不清。设想一下,应该是在不同领域各个突破,分别制定表达方案。不过,编程领域的基础准备相当充分:那个叫Gitbub的网站,将是机器颠覆人类程序猿的大本营!从Github上的海量项目出发,分领域定义需求表达模式的话,后面的数据生成和编程模型训练,其进展恐怕比我们想象得要快得多。



  现有的码农工作流程,可以分为沟通、设计、实现、调试、测试这几个步骤。某典型程序员随着年资变化,这几个步骤的时间占比大致是上图的样子。如果形式化脚本+自动编程成为现实,上图中的实现、测试、调试逐步骤就可以交给机器了。而沟通这一步,也将大大简化。
  由于可能自动地生成数据,机器人编程解决复杂的任务恐怕是迟早的事儿。到了那一天,程序猿就要大幅减少,产品狗势力会进一步扩张:就算是不懂什么堆排序、B+树、CNN,只要用脚本把需求表达出来,一样能做出产品。不过,那时对产品狗的要求可高多了,得有真正的逻辑提炼和任务分解能力,就会吵个架、抢个功是远远不够的。
  “遍身绮罗者,不是养蚕人。”亲爱的程序猿们,不要天真地以为你们创造了未来,未来就属于你们。狡兔死,走狗烹未必是机器自发的愿望,无奈编程这样高度形式化、数据可自生的任务,可能正是AI铁蹄首先要踏过的沃土。除了少量的高端码皇,广大码农码畜们只有尽早皈依大数据教,向高级产品狗快速进化,才能避免被淘汰的命运。


精彩推荐

更多>
[克米楼主好帖 V1.1][discuzx3.2插件][百度云盘下载] 如上图,飞网就是用这个插件 ...查看全文
【bbs.cfei.net分享】Android群英传.pdf 这本书不错,我买了纸质版的,京东上搞的,感 ...查看全文
java电子书推荐:《深入理解OSGi:Equinox原理、应用与最佳实践》 java电子书推荐理由 ...查看全文
一线架构师实践指南.pdf [24.5M][百度云私密下载] 内容简介   《一线架构师实践 ...查看全文
RabbitMQ实战 高效部署分布式消息队列.pdf 【89.47M】【334页】 飞网推荐    ...查看全文
[每日一模][Apricot模板]html模板 百度云下载 这套模板我喜欢他的背景与配色,左右两 ...查看全文
Java并发编程实战(第16届Jolt大奖提名图书,Java并发编程必读佳作) pdf 百度云盘下 ...查看全文
深入理解Java虚拟机:JVM高级特性与最佳实践 pdf 百度云盘下载   超级畅销书全新升 ...查看全文
用AngularJS开发下一代Web应用.pdf 百度云盘下载   来自Google,潜力的JavaScript框 ...查看全文
java电子书推荐:《Java常用算法手册》 推荐理由:本书上一版备受读者青睐,108个经典 ...查看全文

精品专区

  • 美好家 加厚钢管宜家简易衣柜 24款可选拍下
  • 女士修身长袖中长款蕾丝拼接连衣裙拍下53元
  • 韩版修身长袖灯芯绒休闲衬衫拍下19.9元包邮
  • 北极绒 黄金甲保暖内衣套装 29.9元包邮
  • 牛肉干 木府土司卤汁牛肉酱牛肉250g 21.8元
  • 打开微信扫一扫