专家系统演讲

学期临近尾声,我们的一些课程也到了最后的部分。我们这学期的《专家系统》一课从这周三和今天停课了,因为到最后讲的一些只是收集、商业系统之类的东西已经与我们的关系不大了。我们从下周一开始会有一周的时间,让每个听课的同学做一个关于一个专家系统的seminar,这两天停课正好让我们准备。

我之前写过文章讲我目前对专家系统的态度,觉得目前专家系统领域的研究有点像进入了一个死胡同的感觉。现在我仍然这样想。不过,不管怎样,还是要把seminar做好。我之前对专家系统并没有系统上的认知,听了这门课才知道世界上有各种各样、形形色色的专家系统。我们要从中捡出一个来讲15分钟。在课堂上老师介绍过几种专家系统:有用于辅助销售计算机配件的XCON,有为病患开处方的MYCIN,有只能的煮饭工具fuzzy rice cooker,有操纵驾驶日本地铁的专家系统,检验宝丽金光碟封面的系统等等。不过这些方面的系统多数与生活、商业有关,反而与计算领域关系不大,我一直不想往这些方面走。这也是我现在对专家系统负面感觉的原因之一。

老师给我安排的演讲时间是下周三,因此我这个周末就要准备相关的材料。老师在这两天停课的另一个原因是我们可以去找他讨论seminar的选题等问题。我不希望在讲的时候才发现我和别人选了相同的题目,因此决定在这两天去找他一次。昨天晚上开始搜索了一些资料,不过没有我感兴趣的。今天早上起得早,洗完澡后还有40多分钟才要出门,于是我就翻了一下老师之前借给我们的书《Building Expert Systems: Principles, Procedures, and Applications》,其中有一节中有两个表格分别列出了传统的专家系统和比较近期的专家系统,以及它们的作者、作用以及开发语言。我当时非常吃惊的从传统专家系统列表里看到了MACSYMA的名字,一时间眼前一亮。

我第一次听到MACSYMA,还是从王垠的网页那里。王垠当时介绍了一种名叫MAXIMA的代数计算工具,提到了MAXIMA其实就是MACSYMA的GPL版本。说句题外话,其实除了MAXIMA,我有很多计算机方面的知识都是从那里来的,比如Linux、Emacs(我现在的Emacs配置文件里还有很多是王垠的Emacs网页上抄来的),有很多还是第一次听到,比如TeX和MAXIMA。在2005年王垠退学前大概两、三年的时候我就经常看他的网页,当时由于上网费用贵,家里又有打印机,就把他的很多网页都打印了下来,有空就翻翻,一直到现在都珍藏了很多。王垠退学导致了他在技术之外的世界里声名大噪,舆论对他的评价也不一。我倒是一直都把他当作技术人物,我从他的网页上学到的太多了。

第二次听到MACSYMA,是从一篇名叫《Berkeley二十年Unix历史》的文章中看到的。这篇文章是早期加州大学伯克利分校的计算机系统研究小组(CSRG)的成员,Marshall Kirk McKusick写的BSD UNIX操作系统的历史,文章非常棒,从Ken Thompson和Dennis Ritchie于1973年在Purdue大学的操作系统研讨会写起,一直写到1995年4.4BSD-lite 2发布、CSRG解散为止,中间穿插了Bill Joy等人的传奇,以及vi、TCP、Internet的历史。我在国内的家里还保存这这篇文章的打印版本,当时是在FreeBSDChina.org上的论坛上贴出来的,我从精华区里找到了这篇文章。后来FreeBSDChina的论坛改版,打印文章很不方便,我倒是很庆幸之前打印了这篇文章。再后来我再去找这篇文章,论坛上已经没有了,文章被移动到了专门的网页上,不过已经不是原先的样子,章节混乱不堪,令人不胜唏嘘啊。好在从Google上搜索还能搜到别人过去转载的,虽然不如原版的好看,但聊胜于无。这篇文章的一节讲了早期在伯克利使用的PDP-10/11机器无法满足MACSYMA的开发,因此在1978年初,Richard Fateman教授等人申请了经费买来了当时最新的VAX系统,后来伯克利的人给当时运行在VAX上的UNIX系统加上了虚拟内存功能,导致了VAX UNIX系统的诞生。

当我第一次在王垠那里听到MAXIMA后,我就找机会从网上下载了安装文件,在本地上尝试了一下。不过当时我正在高中时期,一来没有时间,二来当时对需要用到MAXIMA来处理的高等数学也没有什么认识,所以MAXIMA对我的吸引力不大,我只知道了它大概的样子就没有再管它。这学期学了专家系统后,竟然一直不知道MACSYMA竟然也是专家系统,因此今天早上看到专家系统的列表上有它的名字后,着实吃了一惊。我当机下载了MAXIMA的代码,看了一会,并不像通过我们学的专家系统外壳写出来的事实和规则组成的系统,到像是一个一个函数组成的。不过从solve之类的函数中还是能看出一点端倪来。

不过既然有我熟悉的系统,而且又是用于公式推倒、符号演算的代数系统,也好过了去研究那些用于医药、信用卡验证之类的我不感兴趣的东西。于是就给我们的老师发了一封邮件,问问有没有人要讲这个,并告诉他今天中午去找他谈话。之前因为选题没有定下来,因此我一直都有点紧张,一种不确定感一直在困扰着我。发了邮件后,立刻觉得轻松了下来,有种兵来将挡、水来土掩的感受。上学路上坐的公交车也开得格外流畅没有中间没有堵车的情况。

顺便说一句,之前的文章我一直说,我对专家系统的最初印象是CMU做的非特定用户的语音识别系统,也就是李开复在那里读博士的时候。他的导师等一群人工智能专家在用专家系统的方法来训练计算机听懂人话,结果李开复最后用统计学做出来了。今天早上我在看列表的时候,也看到了CMU做的专家系统,就是面向语音识别的,名字叫HEARSAY,使用的开发工具是SAIL。这个系统输入的是声波,输出的是系统猜测的声音意思。在1975年,系统有了1000个单词的语料库,达到了75%的精确律。我估计就是李开复那时候的那个。书上说那个系统只对训练它的人有效,换了一个陌生人后识别率马上就下来了。后来李开复通过统计,把精确律提高到98%,并且对每个人都有效。

到了学校后,看到了老师回的邮件,说这个题目可以,我这才放下了心。下了上午的课后,我从网上针对MACSYMA找了些资料。目前来说最有帮助的是Joel Moses写的《Macsyma: A Personal History》。Joel Moses是MACSYMA当年的作者之一,他在这篇文章中从最早期在读研究生的时候研究的问题开始,讲述了MACSYMA的早期历史。不过其它方面的文章就不大好找了,因为很多文章都不开放。它们大多指向ACM的Portal文献系统,即使我有ACM的学生会员,也无法访问,必须花钱买更深一层的会员才可以。我先从别处找找办法再说。

到了中午,去了老师的办公室,跟他谈了一会。他虽然说这个题目很老,不过也是可以的。他从书橱上翻了翻,查看了一下几本书的索引,借给我了一本Donald A. Waterman写的《A Guide to Expert Systems》。这本书看来很老了,在亚马逊上买二手的,加上运费才4美元(其中运费3.99美元),不过我翻了一下目录后,却觉得比老师之前借给我们的《Building Expert Systems: Principles, Procedures, and Applications》要好一些。之前那本书主要讲了专家系统领域里的一些大方向,算是一个框架,不如这本书有技术性一些。

另外,我也问了老师关于专家系统近期发展的问题,比如我们学的Jess是不是现在流行的工具,现在专家系统领域有没有新的研究成果之类的。老师说Jess不是专门用于教学的软件,因此除了最新的一些系统外,Jess仍然在使用中。现在专家系统应用的并不少,只是人们更倾向于叫它“商业系统(Business System)”罢了。至于最新的研究成果,有别的国家的学生发表过一篇论文,讨论Fuzzy Logic应用的,可能用到了FuzzyJess,不过他记不清了。这更加让我觉得专家系统这条路是死胡同了。

不管怎样,有了题目,剩下的就好办多了。不过我周日还有另一门作业要交,要求我们从已经写好的虚拟机代码中加入DMA支持,可以让汇编语言访问硬盘。这个作业我已经想了两天了,觉得应该不会太难,就是不知道到时候要调试多长时间,以及会不会有新问题出现了。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据