我15岁的时候写过聊天机器人,还发起了一个网站:http://ai.ivydom.com。
当时写聊天机器人有两个主要原因,一是受猫娘计划_互动百科刺激。猫娘计划开始于2011年初,发起人仅仅比当时的我大两岁。我当时就在想:“我17岁的时候能独立发起这样一个在二次元圈广泛传播的计划吗?”,于是我关注当下,马上开始动手。二是,15岁的时候,我觉得Google、Facebook已经占据了互联网最大的两块流量,我已经无法成为他们了,而我若想塑造下一个伟大的公司,机会一定在人工智能上(后来移动互联网证明了这是错的)。
于是,2011年的夏天和冬天,我对人工智能如痴如醉。
我主要做了两件事,第一件事是完成了一个IDE和中文编程语言解释器。这个解释器可以按行解析中文代码并翻译成VB执行,我当时不懂数据结构,所以所有的语法结构,我都自创了一个字符串结构去存储,当然这个字符串结构远没有json、yaml清晰,甚至到了后来我解析我这个字符串结构的时候发现还要再定义另外一套结构存储,这根本就是个无限递归嘛。再然后我就找,有没有一种可以直接操作内存而不用先解析字符串再操作内存的方法,后来我就看到了数据结构,自此我的另一扇门被打开了。这个中文编程语言拖VB的福,不仅实现了if..else...,for循环,还实现了GUI编程。然而这个语言的下场是,跟着我那台坏掉的电脑一起消失了。
第二件事是从零开发了一套聊天系统,从自然语言处理到上下文联想,包括数据构建,都是从零开始的。这个聊天机器人达到了,我说一个词“茄子”,他能根据上下文联想到“拍照”和“吃饭”这两件事中的一件事。开发这套系统的时候,我仍然是一个高一的学生,但我在课堂内,课堂外,写了大量关于人工智能的文章,现在它们仍躺在我大学的宿舍里。让我痛惜的事情是,又一次电脑坏掉之后,我爸将这台电脑重装了系统,于是代码又没了,为了这件事,我没少跟他生气。但是在这之后,我学会了使用版本控制,并在github上注册了账号,那一年是2012年。
这件事做完之后,我深深的感受到了实现通用人工智能的难度之大,说其不可能毫不为过。从那时起,人工智能在我的眼里,就是有多少人工就有多少智能的傻瓜机器。后来我又接触到了prolog,一款逻辑编程语言,原以为通过它可以实现一些意想不到的事情,后来在用它做一些算法题时发现,其实现难度甚至比使用普通的编程语言更大。
然后,猫娘计划倒闭了,要高考了,我的人工智能历程也到此结束了。
接着就到了2017年,人工智能又成了热词。百度指望着用AI成为千亿美金市值的公司,联想拿上身家性命赌AI,刘强东已经用无人机送货了,无人驾驶已经上路了,AT也相继成立了AI Lab,甚至连ofo都宣布要航天了。
人人都想从其中分一杯羹。打着AI旗号的公司太多,多如牛毛。一场泡沫忽的又被吹起来了,AI泡沫,这是第三次了,所有人都希望它能够接替移动互联网成为新的经济增长引擎。
那么回到问题,人工智能究竟需要多少人工?
答案是显而易见的,有多少智能就有多少人工,甚至成倍的人工都有可能。
私以为,真正的强人工智能应该有以下能力:
- 将非结构化数据自动结构化
- 根据结构化数据自动编程,生成代码
- 自调试,自运行,自检错
给人类自身的反射就是:
- 随便给一段自然语言,机器能够理解正确
- 随便给一段自然语言描述的需求,机器能够响应并完成需求
而仅仅是第一步“将非结构化数据自动结构化”就是一个世界性难题。冯·诺伊曼架构的计算机,在原理上就无法模拟大脑。当然,如果有足够的数据和人力,确实可以弥补这个缺陷。现行的人工智能都属于垂直领域的智能,但即使是垂直领域的智能,也需要大量的人力和时间。
最明显的例子,百度无人车有三千多个场景,一万多个if。对,没错,就是这样的穷举罗列,这就是现在的人工智能。
在运维领域,有一种理念叫DevOps,它主张从开发到上线的全自动无人化管理,你说这东西可不可以叫人工智能?它也使机器自动化完成一些任务,只是这些任务比较简单,可能几个shell脚本就可以做到。去年双11的时候,阿里部署了几十万docker容器,这些容器都实现了自动监控,弹性伸缩,你说这算不算人工智能?
没有人觉得这是人工智能,它们只能被称作为自动化系统。最本质的区别在于,上面的自动化系统在处理机器与机器之间的通信,而人工智能要处理人与机器之间的通信。
机器与机器之间的通信,可以用机器的语言表达,其实就是数据结构。
而人与机器中间的通信,其中间格式就多了去了,有文本、视频、图片、音频等,每一项中间格式,都可以撑起一个产业。这些产业研究的重点就在于,如何将这些人类可读的数据高效转化成机器可读的数据结构然后执行。
我以前学Web的时候,写多了,觉得计算机世界用4个字就可以描述清楚:CRUD——增删改查。看似高大上的人工智能,其实也在做这件事:
- C(Create,增):将人类现实世界的数据二进制化
- R(Read,查):根据二进制化数据查找人类世界事物之间的关系
- U(Update,改):根据人类反馈不断修正关系、数据、模型
- D(Delete,删):根据人类反馈删除脏数据
后来,我觉得,世界本身也是CRUD。计算机吸引我的地方也在于此,既可以创造一个世界,也可以反射真实的世界。
虽然人工智能需要很多人工,但是如果人工足够的话,真的出现了智能也说不定。
本文转自 知乎,原文链接:https://zhuanlan.zhihu.com/p/27855821,如需转载请自行联系原作者