神经网络专家系统

时间:2010-01-08 07:22:38

标签: architecture neural-network expert-system

有谁知道如何使用神经网络模拟专家系统?一个例子是20q.net网站。

我对如何设计网络更感兴趣;即输入多少,输入表示什么,网络输出什么,这些输出如何指向答案。非常有趣的东西。

5 个答案:

答案 0 :(得分:6)

专家系统与神经网络的系统非常不同

这些系统在许多方面都有所不同,无论是在架构方面还是在用途方面。

专家系统(至少在对该词的传统理解中)是由[通常]高级规则驱动的,引擎根据某些输入使用这些规则推断出有关输入的一些结论。规则通常是明确输入的,实质上是将特定域中的专家所做的一些语句转换为专家系统中实现的任何谓词表示。

另一方面,

神经网络(NN)可能会手动/显式设置其拓扑,但通常能够自动学习如何将某些输入或输入序列与特定关联输出。

以上描述肯定会减少这两个概念,尤其是神经网络,它们有许多不同的形式和风格(有许多不同的用法,远远超出模式识别),但是,我希望,能帮助你理解它们之间的差别这些系统是。

一个显着的差异可能是“透明度”,专家系统通常可以为其扣除输出一些“解释”(“输入1和规则#3表示结论A,概率为81%”),而NN往往是黑盒子。这并不是说NN不能对他们的世界进行非常精确的“理解”(并且这种理解被封装在网络拓扑中以及与各种输入和/或神经元相关的相对权重),只是这种专业知识关于他们的世界并不是那么容易翻译成简单的英语。关于透明度,和 非常宽泛的术语中,NN将数字公式与数学公式进行比较,其中专家系统更像是食谱书。

如上所述,另一个显着的差异是专家系统需要翻译和加载明确的规则(“如果温度超过200度,安全阀开始打开”),神经网络发现这样的“规则”基于提供给它的训练集(例如标记的输入集)。

答案 1 :(得分:2)

我不知道Q20神经网络是如何工作的,但你可以使用神经网络来训练信念网络中的连接。基本上,每个问题都有一个“被要求”的愿望,这个问题是根据先前提出的问题的输出进行修改的。换句话说,具有最高初始“欲望”的3个问题可能是“它是动物吗?” “这是蔬菜吗?”或者“它是矿物质吗?”我们只是说你分开领带并选择“它是动物吗?”如果此人回答“是”,则会增加提出问题的概率/愿望,例如“它有头发吗?”并减少诸如“它是豆类吗?”之类的问题的可能性。

在这个方案中,可以用神经网络完成增量概率函数的参数。换句话说,决定增加或减少下一次询问“它有头发吗?”的概率。可以根据“它是动物吗?”的成功或失败来完成 - >是的,“它有头发 - >”... [结果]在很多游戏中。请注意,虽然可能与NN一起使用,但NN的效率并不直观 - 统计方法一直回到贝叶斯,直到“支持向量机”是修改问题之间联系的替代方法,以便更好地学习。

根据我对人工智能的经验,我怀疑你不会成功只是将所有问题都放入锅中并完全交叉连接它们,但宁愿必须有一系列子网来实现目标。但我不确定。关于Q20算法引人注目的一点是,它似乎似乎具有离散的子目标 - 我认为你可以随时看到任何问题。这真是令人印象深刻。

答案 2 :(得分:0)

这有点像一个开放式的问题,或者至少在这里难以回答。查看 http://www.cs.waikato.ac.nz/ml/weka/http://marsyas.sness.net/用于数据挖掘和机器学习算法的一些有趣的文档和实现。

答案 3 :(得分:0)

这些是非常不兼容的主题。

专家系统依赖于一套规则和推理引擎;规则集由知识工程师提供。规则是“if-then”语句,易于阅读/纠正/维护等。

另一方面,神经网络被认为是黑盒子。权重和神经元基于输入/输出模式进行适应,但这些权重不表示为规则。没有推理引擎,因为输入用于各种计算以提供输出。

在极少数情况下,您可以从NN中提取一些规则(例如参见rule extraction for Fuzzy ARTMAP);但是,据我所知,这种方法在实践中很少遇到。它即将逆转嵌入NN的知识工程,这一过程高度依赖于网络的具体架构。

另一个很大的区别:NN可以专门用于数字输入(非数字输入必须转换为数字,但这有时是非自然过程),而专家系统接受名义值。

答案 4 :(得分:0)

你可以做的是用神经网络替换特定规则甚至规则集,然后只是在树中构建对那些神经网络的调用(类似于经常开始简单的问答系统)或者在列表中你会顺序完成或在某种图形网络中工作。您放弃的是内置的RETE网络实现,除非您构建在专家系统中使用的函数中使用的神经网络。实际上,您也可以在表示N个规则的一组输入上训练神经网络 - 在这种情况下,神经网络只是记忆输入和输出模式而不是概括模式。