74

人工智能迟早灭了程序猿

 6 years ago
source link: http://mp.weixin.qq.com/s/t9ZY3evzbSiLVssikfWkaw
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

人工智能迟早灭了程序猿

Original 北冥乘海生 计算广告 2017-11-02 23:58 Posted on

Image

前些日子,去人类文明发祥地埃及转了一圈,不料想人类文明已临大敌——DeepMind又在搞事情了!完全靠左右互搏练出来的AlphaZero,居然不顾人类心理阴影面积,碾压几千万张棋谱喂出来的前辈,真是婶可忍,叔不可忍!

看起来,不仅人类经验已成废柴,连我们膜拜的大数据也将一无是处?正好相反,AlphaZero的胜利,恰恰说明了数据在AI领域的唯一神性。现在,请把所有异端踩在脚下,来跟我一起念:

万物非主,唯有数据;

深度学习,数据使者!

什么是数据?其实就是一个二元组(xy):其中x是一次观测值,也就是“看到了什么”;而y是观测的标签,也就是“看到的是什么”。这两个要素,凑在一起才叫一条数据,缺一不可。举个例子,在语音识别中,x就是一段声音信号,y就是对应的文本;而在人脸识别中,x就是一副图片,y就是这个人的编号。

Image

人们对数据唯一神性的认识,并非一帆风顺。在原始AI时代,由于计算能力的限制,纵有数据也无法处理,于是多神崇拜盛行:有人信算法,有人信专家,有人信穷举,也有人只信人品。直到本世纪,采用GPU的深度学习方案实用以后,我们才恍然大悟:原来数据里蕴藏着那么多的宝藏,只是过去我们无力挖掘罢了。现在看来,有充足(xy)这样的数据是AI必要的物质基础。既然数据如此关键,聪明人肯定会问——能不能自动获得数据呢?对此,AlphaZero给了我们一个并不意外的漂亮答案!

在围棋问题里,x是某局棋,而y就是这局棋的输赢。由于围棋的规则确定,任给一个x很容易算出y,于是机器就可以自动生产数据了!有了无穷无尽的数据,AI笑傲江湖在战略上并无意外。这揭示了无监督训练的一个本质要求:由观察x能够显著降低y的不确定性。对于围棋,x定了y也就定了,这简直太美妙了,三千万棋谱又算什么?我这儿要多少给你编多少!

自动生成的棋谱当然还得靠谱。就说你算力超过奥特曼,可是天天冥思苦想下图《环珠格格》中紫薇下出的弱智局面下的策略,也不过是浪费电罢了。这提出了自动生成数据的另一个要求:生成的数据p(x)分布,要跟真实分布尽量接近。对此,AlphaZero是否考虑了,怎么解决的,我还没有仔细研究过。

Image

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

Image

其实,从动物到人的上亿年进化中,视觉系统不断地被外界景象所刺激,也就在不断吸收数据和加强能力。妙就妙在,人类的视觉能力一则可以遗传,二则可以在不同任务上复用。想想也是:辨别纹理、线条,与认长颈鹿还是河马并无关系。那一张卡通图片的作用,只是告诉小孩子怎么拼出轮廓罢了。这与“强AI“可能有些关系:深度神经网络的下面若干层,往往表达的是类似“线条、纹理”这样的初级信息,与高级语义的关系较弱,如果我们能把这些初级单元复用起来,AI就能够充分利用类似任务的数据,而不是撂爪就忘。这样一来,缺少数据的问题就大大缓解了。

人类的感知系统还有另一点令人困惑:别忘了在进化过程中,从来没人告诉一只猴子,眼前的哪个物体是鳄鱼。也就是说,人类的感知进化很可能是无监督的,这给了我们无限的希望,也让我们后背发凉。

Image

先不扯那么远,仅就目前的AI来看,判断某项工作是不是会被机器替代,有一个大前提,和一个小前提:大前提,是可以获得足够的有效数据(能自动生成数据则无敌),也就是说机器有快速进化的基础;小前提,是人本身的进化过程没有见过大量的数据,也就是说人的起点并不高。

速记、客服这些与语音视觉相关的工作,满足大前提,不满足小前提,AI从这里起兵却遭遇劲旅——人类的视听系统可是上亿年的数据喂出来的啊!反而是股票操盘手、互联网数据分析师这些工作,迟早是AI的菜,人类并无还手之力——不信去测测基因,您有祖上遗传下来的炒股本能么?

还有什么工作容易被AI颠覆呢?考虑到“自动生成数据”这个关键,我冥思苦想以后,无奈地告诉大家,还真没准是编程。

机器自动写代码并不是个新问题,这叫做“归纳程序综合”(Inductive Program Synthesis,IPS)。IPS问题可以描述为:给定一组<输入,输出>数据对,自动产生一段代码,将这些给定的输入转换为给定的输出。传统的IPS方法,有点类似只能在4路小棋盘上的暴力搜索;可实际的编程任务,好比是19路大棋盘上的对局,还得靠万物灵长的程序猿来人肉搞定。

可如今天下大变,机器在19路围棋上已经碾压人类,凭什么编程就不行呢?机器人下棋,靠的是统计的方法和大量数据;而机器人编程,当然也要用机器学习替代暴力搜索。这里的关键,还是数据从哪里来。在这点上,AlphaZero给了我们极大的启发。

如果在某些问题中,编程需求可以像围棋规则那样形式化表达。此时,给定一种输入,输出很容易确定,这就可以自动生成大量的测试数据。有了这些数据,后面无非就是算法进化的问题了。

所以,真正的难点,还在那个形式化的需求表达,目前这离我们有多远,我也说不清。设想一下,应该是在不同领域各个突破,分别制定表达方案。不过,编程领域的基础准备相当充分:那个叫Gitbub的网站,将是机器颠覆人类程序猿的大本营!从Github上的海量项目出发,分领域定义需求表达模式的话,后面的数据生成和编程模型训练,其进展恐怕比我们想象得要快得多。

Image

现有的码农工作流程,可以分为沟通、设计、实现、调试、测试这几个步骤。某典型程序员随着年资变化,这几个步骤的时间占比大致是上图的样子。如果形式化脚本+自动编程成为现实,上图中的实现、测试、调试逐步骤就可以交给机器了。而沟通这一步,也将大大简化。由于可能比较自动地生成数据,机器人编程解决复杂的任务,恐怕是迟早的事儿。到了那一天,程序猿就要大幅减少,产品狗势力会进一步扩张:就算是不懂什么堆排序、B+树、CNN,只要用脚本把需求表达出来,一样能做出产品!不过,那时产品狗的要求可高多了,得有真正的逻辑提炼和任务分解能力,就会吵个架、抢个功是远远不够的。

“遍身绮罗者,不是养蚕人。”亲爱的程序猿们,不要天真地以为你们创造了未来,未来就属于你们。狡兔死,走狗烹未必是机器自发的愿望,无奈编程这样高度形式化、数据可自生的任务,可能正是AI铁蹄首先踏过的沃土。除了少量的高端码皇(参见《20万、50万、100万的算法工程师,到底有什么区别?》一文),广大码农码畜们只有尽早皈依大数据教,向高级产品狗快速进化,才能避免被淘汰的命运!

Image

公众号文章精选:

年入几百万那些人,真的是靠运气么?

从薛之谦到林心如,大V们有多少僵尸粉?

从初夜权到在线广告——拍卖中的趣味与玄机

要获得BAT的offer,要先学会“把点开活”

会当凌绝顶,一览众山小——谈谈人工智能里的优化

达则兼妓天下,穷则独占妻身——论大数据教的起源

Image

Image

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK