有谁知道如何使用神经网络模拟专家系统?20q.net网站就是一个例子。
我对网络的设计方式更加好奇;即有多少输入,输入代表什么,网络输出什么,这些输出如何指向答案。非常有趣的东西。
有谁知道如何使用神经网络模拟专家系统?20q.net网站就是一个例子。
我对网络的设计方式更加好奇;即有多少输入,输入代表什么,网络输出什么,这些输出如何指向答案。非常有趣的东西。
这些系统在很多方面都不同,无论是在架构上还是在使用上。
专家系统(至少在这个词的传统理解中)是由 [通常] 高级规则驱动的,引擎使用这些高级规则以及一些输入来推断关于输入的一些结论。规则通常是明确输入的,本质上是将特定领域专家的一些陈述翻译成专家系统中实现的任何谓词表示。
另一方面,神经网络(NN) 可以手动/显式设置其拓扑结构,但通常能够自动学习如何将某些输入或输入序列与特定输出相关联。
上面的描述肯定是对这两个概念的简化,尤其是神经网络,它有许多不同的形式和风格(有许多不同的用法,远远超出了模式识别),但是,我希望能帮助你理解这些系统有多么不同.
一个显着的区别可能与“透明度”有关,专家系统通常可以为他们的推论输出一些“解释”(“输入 1 和规则 #3 表示结论 A,概率为 81%”),而 NN 倾向于成为黑匣子。这并不是说 NN 不能非常精确地“理解”他们的世界(这种理解被封装在网络拓扑和与各种输入和/或神经元相关的相对权重中),只是这种专业知识关于他们的世界并不是那么容易翻译成简单的英语。关于透明度, 从广义上讲,NN 有点类似于数学公式,专家系统更像是一本食谱书。
如上所述,另一个显着的区别是专家系统需要翻译和加载明确的规则(“如果温度超过 200 度,安全阀开始打开”),神经网络根据提供给它的训练集(例如标记的输入集)。
我不知道 Q20 神经网络是如何工作的,但是您可以使用神经网络来训练信念网络中的连接。本质上,每个问题都有一个“希望被问到”,它会根据先前问过的问题的输出进行修改。换句话说,最初“欲望”最高的 3 个问题可能是“它是动物吗?” “是蔬菜吗?” 或“它是矿物吗?” 假设您将领带分开并选择“它是动物吗?” 如果这个人回答“是”,你就会增加提出诸如“它有头发吗?”之类的问题的可能性/欲望。并减少诸如“它是豆类吗?”之类的问题的概率。
在这个方案中,delta 概率函数的参数可以用神经网络来完成。换句话说,关于增加或减少下一次询问“它有头发吗?”的概率的决定。可以根据“它是动物吗?”-> TRUE、“它有头发->”...[结果] 在大量游戏中的成功或失败来完成。请注意,虽然这可以用 NN 完成,但 NN 是否有效并不直观——统计方法一直追溯到贝叶斯和“支持向量机”将是修改链接的替代方法在问题之间更好地学习。
根据我在 AI 方面的经验,我怀疑您将所有问题都扔进一个锅中并完全交叉连接它们不会成功,而是必须拥有一系列实现目标的子网。不过我不确定。Q20 算法引人注目的一件事是它似乎没有离散的子目标——我认为你可以随时看到任何问题。这是非常令人印象深刻的。
这在某种程度上是一个开放式问题,或者至少在这里很难回答。查看 http://www.cs.waikato.ac.nz/ml/weka/和http://marsyas.sness.net/获取一些有趣的文档以及数据挖掘和机器学习算法的实现。
这些是完全不相容的话题。
专家系统依赖于一套规则和一个推理引擎;这组规则由知识工程师给出。规则是“if-then”语句,易于阅读/更正/维护等。
另一方面,神经网络被认为是一个黑匣子。权重和神经元根据输入/输出模式进行调整,但这些权重不表示为规则。没有推理引擎,因为输入用于各种计算以提供输出。
在少数情况下,您可以从 NN 中提取一些规则(例如,参见Fuzzy ARTMAP 的规则提取);但是,据我所知,这种方法在实践中很少遇到。它即将对嵌入 NN 的知识进行逆向工程,这是一个高度依赖于网络具体架构的过程。
另一个很大的区别:NN 可以专门用于数字输入(非数字输入必须转换为数字,但这有时是一个非自然过程),而专家系统接受标称值。
您可以做的是用神经网络替换特定规则甚至规则集,然后将对这些神经网络的调用构建在树中(类似于简单的问答系统通常开始的方式)或在您将按顺序排列的列表中通过或在某种图形网络中工作。你所失去的是一个内置的 RETE 网络实现,除非你在专家系统中使用的函数中构建你使用的神经网络。实际上,您也可以只在代表 N 条规则的一组输入上训练神经网络——在这种情况下,神经网络只是记住输入和输出模式,而不是对模式进行泛化。