没头脑和不高兴的博客分享 http://blog.sciencenet.cn/u/suxiaolu 这里是没头脑和不高兴组成的团队

博文

消灭程序员需要百年吗?(下) 精选

已有 6088 次阅读 2011-4-5 15:04 |个人分类:信息技术|系统分类:观点评述| 程序员

辅助系统相对独立,我们先从这里说起。软件中最重要的辅助系统就是人机界面,人机界面到底有多重要,看看微软如何发家,以及今天微软Google为什么打破头就知道了,只要真正的人工智能还没有实现,人机界面就是最有利可图的领域。然而刚入行的程序员通常都不理解这一点,我自己十多年前也只喜欢编写命令行程序和系统服务,功能复杂不要紧,只要界面少到没有就好。人机界面常常被认为是美工们的工作范围,是没有技术含量的体力活,然而事实总是无情地教训他们,最近编FLASH的平均工资已经高过编JAVA和C#的了,这就足够说明问题了。程序员们之所以有这种偏见,主要是他们脑子里计算机技术装得太满,而应用场景少到几乎不存在。人机界面是软件中比较难以自动生成的部分,特别是如果追求个性化用户体验的话。我曾想过把用户界面都做成主视角游戏的形式,人们可以自然地走进并探索赛博空间,或许比较接近用户界面的终极形式。这当然还没实现,如果实现了,以后老板们恐怕就再也搞不清楚员工是在工作还是在玩游戏了吧。在系统中,用户界面的作用无与伦比,首先,不管做什么计算,用户总是从用户界面得到计算结果;其次,模型通常是反复滚动计算的,经常需要通过用户界面输入、补充或者修正数据;最后,模型未必完全由计算机实现,模型中有些部分常常不适合今天的计算机处理,比如说图像内容识别,需要把这部分处理负担转移给人,然后人在把处理结果返回计算机,以便计算机继续计算,这样就变成了人机配合完成整个模型的计算,这种人机结合的地方也必然需要用户界面。在软件系统的所有部分中,人机界面可能将会是是程序员最后的领地。其他的辅助系统主要是人机界面以外的各种输入输出接口,这是最容易实现自动编程的领域,无需细说。

数据源的问题也相对简单,而且有TBL等牛人一直在推动数据标准化和互操作,这件事情看起来是无需我们操心了。如果他们最终成功(我毫不怀疑这一点),最终任何数据都可以按对象组织起来,并且得到一个人类能看懂的标签,而且标签的编写方法符合严格的形式化定义,我们只要等着到时候从w3c下载解释程序就足够了。至于这些对象该放到系统里的什么地方去,那就与他们无关了,是构造模型的人考虑的事情。

模型代码化不仅取决于模型本身,更受计算环境的制约,这是绝大多数程序员所认可的“纯技术”活,需要调动程序员最多的关于计算机系统的知识来完成。模型代码化的工作包括写出使计算机可以完成模型运算的代码,以及把模型与周边辅助系统衔接在一起的代码。高手和软件厂商通常都会编写一些程序框架,以便抹去计算环境不同带来的复杂性,让程序员专心处理模型,语言虚拟机,应用服务器都属于这一类。模型中有一些功能是比较容易自动编程的,比如各个对象的属性定义和CRUD方法,这部分代码的自动生成今天已经基本实现了。至于模型规则的代码化,这个麻烦可就大了,要先解决了模型本身的复杂度才行。

构造模型是人脑的一个基本功能,所以我们常常觉得这很容易。然而一旦交给计算机,其中的复杂性就显现出来了。人脑中最简单的模型是场景模型,也就是所谓的形象思维,具像思维。这是每个人在小时候,能够使用语言进行抽象思维之前,唯一可用的思考模型,有一定思维能力的高级动物也具有使用场景模型的能力。场景模型是最常用的思考模型,在其他模型无法解决问题的时候,场景模型总是作为最后的手段。场景模型的推演是基于经验的,因此只要能够构造出来,就总是能够有效地完成推演,而不必担心没有理论可用。然而场景模型并不简单,世界上对场景模型认识最深刻的人群莫过于影视导演了,他们几十年的功力都花在营造让大多数人感到真实可信的场景上了,只要看看成为高水平的大导演的难度,就知道全面认识场景模型有多困难。今天的计算机系统是不具备像人类这样的场景推演能力的,不过人工视觉的研究近年来进展很快,其中相当大的一部分就是解决计算机对视觉场景自动建模的问题,而视觉又是人类获得场景信息的主要信息源,可以说只要解决了视觉场景的建模,机器理解场景就至少成功了一半。这方面我乐观一点估计,20年后技术基本就成熟了。比场景模型高级一点的是语言逻辑模型,这种模型的理论都是用语言表示的,模型本身也都可以用语言精确描述出来,相比之下,场景模型虽然也可以用语言来描述,但是很难做到完全不丢失和歪曲信息,特别是当其中有些物体无法对应到被人们广泛熟知的概念上的时候。语言逻辑模型的推演就是我们平常所说的逻辑推理,也就是用语言形成一条逻辑因果链的过程。这类模型因为本身就是形式化的,能用语言外在地表达,而且较少模糊与歧义,因此传统人工智能领域研究得比较深入透彻,剩下的工作主要是与其他模型如何结合的问题。如果一个问题可以建立语言逻辑模型,那么一定比针对这同一个问题所建立起来的场景模型运算量小很多,这就是抽象的优势,因此效率大大提高了。在场景模型和语言逻辑模型基础上,人脑发展出了称为“数学”的东西,这是更高级的模型系统,具有更高的推演效率,心理学家把感官信号称为第一信号系统,这个系统对应着场景模型,把语言称为第二信号系统,这个系统对应语言逻辑模型,照此推理,数学应该称为第三信号系统才对。数学因为具有逻辑模型的抽象特点,因此很多数学问题可以形式化,非常适合计算机处理,然而,因为数学又有一些部分以场景模型为基础,所以也有一些数学问题很难用计算机处理,这些不好处理的特例,恐怕要等计算机处理场景模型成熟起来之后才有望解决,我认为30年是个合理的预期。

在解决了模型自动构造的基础上,就有希望创造出具有人类思维能力的计算机系统,然而,计算机比人脑还缺一样重要的东西,我们前面说过,计算机没有主观能动性,因此处理信息的工作需要人来驱动。如果要象人脑那样完成复杂的工作,计算机必须要自我驱动。今天的计算机有时候也能完成很复杂的计算任务,但是这是以软件复杂性的极度增加为代价的,而这增加的复杂性,其实所做的只不过是把启动程序时人类赋予的那个初始驱动力,不断的转换成各种形式,传递给各个计算单元而已。人类这种神奇的初始驱动力,来源于自身的生命力,或者说具体点,来源于人脑的情感欲望系统。生命力并不是什么神奇的东西,动物也都一样具有,只不过地球上的人类以外的动物还都没有聪明到能够学会计算机,所以它们不能驱动计算机帮他们做事情。情感欲望在计算中所起的作用,至今一直都被学界忽视了,这个系统看似与理性无关,却是产生智能所需的核心部件,人工智能至今没有实现,恐怕和科学家们还没有想到这一点大有关系。再说句题外话,这恐怕和研究信息技术的以男性为主大有关系,男性大多在情感上迟钝,欲望又简单直白,没有深度,所以想不到这其中的关联也在情理之中。未来的智能计算架构,应当是一大群计算单元,具备各种模型处理能力,在一个模拟人类情感欲望驱动机制的核心的驱动之下,不断碰撞组合,相互竞争,优胜的计算单元获得更多资源和信任,从而推动整个计算体系不断进化,最终产生出智能。50年后,在我离开这个世界之前,或许能够看到这样的系统最终成熟起来。

模型的自动组合,其实就是软件的自动组合,在有了这样的系统之后,任何软件都能自动组合出来,等到那一天,最后一位人类程序员就终于可以退休了。


http://blog.sciencenet.cn/blog-533026-429877.html

上一篇:消灭程序员需要百年吗?(中)
下一篇:浅谈中国式知识表示策略的优劣

7 张伟 郭桅 王萌杰 田灿荣 陈绥阳 谢鑫 mbb

发表评论 评论 (29 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2020-10-30 09:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部