本系列是机器学习课程的第02篇,主要介绍机器学习中专家系统的应用介绍
完成一个特定行业的算法应用全过程:
定义问题(Problem Definition) -> 数据收集(Data Collection) -> 数据分割(Dataset Spit up) -> 模型训练(Model Training) -> 模型评估(Model Evaluation) -> 应用部署(System Deployment) -> 改变世界(Impact the world)!
作者:adi0229 链接:「ML笔记」- 机器学习生命周期(Machine Learning Lifecycle)
懂业务+会选择合适的算法+数据处理+算法训练+算法调优+算法融合 +算法评估+持续调优+工程化接口实现
专家系统(Expert System, ES)是在某一特定领域中,能够像人类专家一样解决复杂问题的计算机软件系统。它能够有效地运用专家多年积累的经验和专业知识,通过模拟专家的思维过程,解决需要专家才能解决的问题。专家系统需要通过一定的知识获取方法,将专家知识保存在知识库中,然后运用推理机,结合人机交互接口进行工作。
专家系统属于人工智能的一个发展分支,自1968年费根鲍姆等人研制成功第一个专家系统以来,专家系统获得了飞速的发展,并且运用于医疗、军事、地质勘探、教学、化工等领域,产生了巨大的经济效益和社会效益。此后,国内外专家分别研制出了一些非常有价值的专家系统。
国外研制的专家系统:
MYCIN系统(斯坦福大学 ):血液感染病诊断专家系统
PROSPECTOR系统(斯坦福研究所 ):探矿专家系统
CASNET系统(拉特格尔大学):用于青光眼诊断与治疗。
AM系统(斯坦福大学):模拟人类进行概括、抽象和归纳推理,发现某些数论的概念和定理。
HEARSAY系统(卡内基-梅隆大学):语音识别专家系统
我国研制的专家系统:
施肥专家系统(中国科学院合肥智能机械研究所)
新构造找水专家系统(南京大学)
勘探专家系统及油气资源评价专家系统(吉林大学)
服装剪裁专家系统及花布图案设计专家系统(浙江大学)
关幼波肝病诊断专家系统(北京中医学院)
基于规则推理(Rule Base Reasoning,RBR)的方法是将专家所掌握的现有知识和经验, 通过一定的方法转化为规则, 适用推理解进行启发式推理。根据明确的前提条件,得到明确的结果。
例如对动物的分类:
IF(有毛发 or 能产乳)and((有爪子 and 有利齿 and 前视)or 吃肉)and 黄褐色 and 黑色条纹,THEN 老虎
IF(有羽毛 or 能飞 and 生蛋))and 不会飞 and 游水 and 黑白色,THEN 企鹅
基于规则的专家系统是最早期的一种专家系统,推理过程比较明确,只要规则正确结论就比较准确,是一种简单实用的专家系统,应用范围比较广泛,也是本人比较推荐的专家系统。
基于规则的专家系统缺点主要是规则构造严重依赖专家的经验积累,经验如果不准确则结果也不准确;其次是基于规则的专家系统没有自学习能力,更新迭代需要专家经验的不断积累。不过,这两点个人觉得都不是什么问题,因为从系统开发的角度来看,专家系统一定是持续迭代优化的,而且也并不希望专家系统因为自学习而出现结果不可预料的情况。
基于案例推理(Case Based Reasoning,CBR)的方法就是通过检索曾经类似的,已解决的问题和案例,通过比较新旧问题间的各种特征、问题发生条件等,得到相同点和差异点,然后重新参考现有知识进行推理,从而得到解决问题的新方法。
推理过程首先获取当前问题信息,接着寻找最相似的以往案例。如果找到了合理的匹配,就建议使用和过去所用相同的解;如果搜索相似案例失败,则将这个案例作为新案例。最常用的匹配算法是最近邻法,k-近邻法等。
基于案例的专家系统能够不断学习新的经验,以增加系统求解问题的能力。只要案例覆盖面足够大,基于案例的专家系统基本上一定能给出相似的案例分析。
从系统应用的角度来讲,基于案例的专家系统一定要和基于规则的专家系统相结合来使用。因为这两个系统具有很强的互补性,规则能够得出案例,案例也有助于优化规则。
基于人工神经网络的专家系统可以认为是基于规则专家系统的升级版。基于规则的专家系统可以认为是有固定数量的特征值,规则推导的逻辑比较固定。基于人工神经网络的专家系统特征值数量可以是动态增加的,没有固定的推导逻辑,但是需要大量的数据来训练模型。人工神经网络拥有强大的学习能力,大规模并行处理能力,能克服无穷推理,组合爆炸等困难,实现自适应推理和联想推理,能够显著的提升专家系统的处理能力和智能化水平,并能增强系统的鲁棒性。
基于人工神经网络的专家系统是当前的热点研究方向,学者们提出了各种各样的模型,取得了一定的成果。不过作者认为这种专家系统并没有基于规则的专家系统实用,一方面是需要训练模式的数据量太多,冷启动不友好,另一方面结论可能具有不确定性,这个用来做研究还行,做项目还是要对可行性进行充分的验证。
除了上述三种比较常用的专家系统外,还有一些应用较少的专家系统。
基于框架的专家系统:框架(Frame) 是一种通用数据结构,能够将某一类对象的所有知识组织在一起,在将相互关联的框架组合在一起,构成框架系统。 基于模糊逻辑的专家系统:在某些情形下,专家系统需要解决不完整、不确定等模糊数据,因此出现了模糊专家系分支。模糊逻辑是一种不确定的多值逻辑,不同于布尔逻辑中非 1 即 0 的情况,模糊逻辑可能会根据不同的实际情况出现 0-1 间的多个值,例如很少,较高,超高等语义。 基于 D-S 证据理论的专家系统:D-S 证据理论是较早应用于专家系统的一种不确定推理方法。在 D-S 证据理论中,将互不相容的基本命题,构成完备的集合,作为识别看框架,表示针对某一问题的所有可能性答案,其中只有一个正确的。 基于遗传算法的专家系统:遗传算法是借鉴了生物进化规律,演化出的一种随机化搜索方法,主要特点是直接对结构对象进行分析,具有更好的全局搜索能力。而且采用了基于概率的最优查询方法,能自动的获取、优化搜索空间,在不需要确定规则的情况下,自适应的调整搜索方向。
解释专家系统的任务是通过对已知信息和数据的分析与解释,确定它们的含义。专家系统具有以下特点:
系统处理的数据量大,而且往往是不准确的、有错误的或不完全的 系统能够从不完全的信息中得到解释,并能对数据做出某些假设 系统推理过程复杂,要求系统具有对自身的推理过程做出解释的能力。 解释专家系统的例子有语音理解、卫星云图分析、地质勘探数据分析等。
预测专家系统的任务是通过对过去和现在的已知状况的分析,推断未来可能发生的情况。预测专家系统具有以下特点:
系统处理的数据随时间变化,而且可能是不准确和不完全的 系统需要有适应时间变化的动态模型,能够从不完全的和不准确的信息中得出预报,并达到快速响应的要求 预测专家系统的例子有气象预报、军事预测、人口预测等。
诊断专家系统的任务是根据观察到的数据来推测出某个对象出现故障的原因。诊断专家系统具有以下特点:
能够了解被诊断对象或客体各组成部分的特性以及它们之间的联系 能够区分一种现象及其所掩盖的另一种现象 能够向用户提供测量的数据,并从不确切信息中得出尽可能正确的诊断 诊断专家系统的例子有医疗诊断、电子机械和软件故障诊断、材料失效诊断等。
设计专家系统的任务是分解设计要求,求出能够满足设计问题约束的目标配置。设计专家系统具有如下特点:
善于从多方面的要求中得到符合要求的设计结果 系统需要检索较大的可能解空间 善于分析各种子问题,并处理好各个子问题间的互相作用 能够试验性地构造出可能的设计方案,并易于对所得设计方案进行修改 能够使用已被证明是正确的设计来解释当前的设计 设计专家系统可用于电路设计、土木建工设计、计算机结构设计、机械产品设计和生产工艺设计等。
规划专家系统的任务在于寻找出某个能够达到给定目标的多做序列或寻找步骤。规划专家系统的特点如下:
所要规划的目标可能是动态的或静态的,因而需要对未来动作做出预测 所涉及的问题可能是复杂的,要求系统能抓住重点,处理好各子目标的关系和不确定数据信息,并通过试验性动作做出可行规划 规划专家系统可用于机器人规划、交通运输调度、工程项目论证、通信与军事指挥以及农作物管理等。
监视专家系统的任务在于对系统、对象或过程进行不断观察,并把观察到的行为与其应当有的行为进行比较,以发现异常情况并作出警报。监视专家系统具有下列特点:
具有快速反应能力,在造成事故之前及时发出警报 系统发出的警报需要有较高的准确性 系统能够随时间和条件的变化而动态地处理输入信息 监视专家系统可用于安全监视、防空监视与警报、国家财政监控、疫情监控和农作物病虫害监控等。
控制专家系统的任务是以自适应方式管理一个受控对象或客体的全面行为,使之满足预期要求。
控制专家系统能够解释当前的情况,预测未来可能发生的情况,诊断可能发生的问题并分析原因,不断修正计划并控制计划执行。
控制专家系统可用于交通管控,生产过程控制,生产质量管控等。
调试专家系统的任务是对矢量的对象给出处理意见和方法。调试专家系统的特点是同时具有规划、设计、预报、诊断等专家系统的功能。调试专家系统可以用于新产品和新系统的调试,亦可以用于设备检修。
虽然专家系统按功能分成了上述几种(其实还有更多种类),但是我们真正实现的时候,功能可能不是单一的,而是多种功能的组合。比如,我们研发一套故障诊断专家系统,那么这套系统会具有三种功能:监视设备运行状态(监视专家系统),预测设备发生故障的可能性(预测专家系统),对设备发生的故障做出诊断(诊断专家系统)。
专家系统模型通常包括:人机界面、知识获取程序、知识库、解释器、推理机、综合数据库六个模块构成。
知识库用来存放专家提供的知识。专家系统的问题求解过程是通过知识库中的知识来模拟专家的思维方式。因此,知识库是专家系统质量是否优越的关键所在,即知识库中知识的质量和数量决定着专家系统的质量水平。
一般来说,专家系统中的知识库与专家系统程序是相互独立的,用户可以通过改变、完善知识库中的知识内容来提高专家系统的性能。
知识表示是知识库中知识的组织和形式化的方法。在专家系统中运用得较为普遍的知识是产生式规则。产生式规则的理解非常简单:如果前提条件得到满足,就产生相应的动作或结论。它是以IF-THEN-ELSE规则的形式。任何专家系统的成功主要取决于知识库中存储的信息的质量,完整性和准确性。
例如,在“动物识别”专家系统中有这样一条规则:
IF 能做单腿跳吗 = 否 AND 在苏格兰吗 = 是 AND 高度 = 大 THEN 动物 = 马
解释器能够向用户解释专家系统的行为方法,包括解释推理结论的正确性以及系统输出其他候选结果的原因,如“系统是怎样得出这一结论的” 、“系统为什么要提出这样的问题来询问用户”等。 为了回答“为什么”得到某个结论的询问,系统通常需要反向跟踪动态库中保存的推理路径,并把它翻译成用户能接受的自然语言表达方式。
推理机是专家系统的大脑。推理机包含解决特定问题的规则。它是指从知识库中获取的知识。当试图回答用户的查询时,它选择要应用的事实和规则。它为知识库中的信息提供了推理。它也有助于解决问题。这一组成部分也有助于制定结论。
推理引擎通常会使用以下策略:前进链和向后链。
前进链:专家系统的策略是回答“接下来会发生什么”的问题。在这里,推理引擎遵循条件和派生链,最终推断出结果。它考虑所有的事实和规则,并在结束解决之前进行排序。遵循这一策略来处理结论,结果或效果。例如,预测股市情况是利率变动的影响。 向后链:有了这个策略,一个专家系统就会找出问题的答案:“为什么会这样?根据已经发生的事情,推理机试图找出过去可能发生的这种情况。遵循这一策略找出原因或原因。例如,诊断人类的血癌。
人机界面是系统与用户进行交流时的界面。通过该界面,用户输入基本信息、回答系统提出的相关问题,并输出推理结果及相关的解释等。
用户界面提供ES用户和ES本身之间的交互。它通常是自然语言处理,以便被精通在任务范围的用户使用。ES的用户不必一定是人工智能的专家。
人机接口(Interface)是专家系统与领域专家、知识工程师、一般用户之间进行交互的界面,由一组程序及相应的硬件组成,用于完成输入输出工作。
知识获取机构通过人机接口与领域专家及知识工程师进行交互,更新、完善、扩充知识库。 推理机通过人机接口与用户交互。 在推理过程中,专家系统根据需要不断通过人机接口向用户提问,以得到相应的事实数据。 在推理结束时会通过人机接口向用户显示结果。 解释机构通过人机接口与用户交互,向用户解释推理过程,回答用户问题。
知识获取(Knowledge Acquisition)是建造和设计专家系统的关键,也是目前建造专家系统的“瓶颈”。知识获取的基本任务是为专家系统获取知识,建立起健全、完善、有效的知识库,以满足求解领域问题的需要。
知识工程师负责从领域专家那里抽取知识,并用适合的方法把知识表达出来。
知识获取机构把知识转换为计算机可存储的内部形式,然后把它们存入知识库。在存储过程中,要对知识进行一致性、完整性的检测。
综合数据库(Global Database)又称动态数据库或黑板,主要用于存放初始事实、问题描述及系统运行过程中得到的中间结果、最终结果等信息。
综合数据库中还必须具有相应的数据库管理系统,负责对数据库中的知识进行检索、维护等。从计算机技术角度,知识库和综合数据库都是数据库。它们所不同的是:
知识库的内容在专家系统运行过程中是不改变的,只有知识工程师通过人机接口进行管理。 综合数据库在专家系统运行过程中是动态变化的,不仅可以由用户输入数据,推理的中间结果的存入也会改变其内容。
专家系统为专业领域的问题提供快速有效的解决方案。 专家系统可以收集稀缺的专业知识并有效地使用它。 专家系统为重复性问题提供一致的答案。 专家系统可以稳定地工作,而不会感到情绪化,紧张或疲劳。
当知识库不足时,不能保证有准确的判断。 专家系统不具有提炼自己知识的能力,需要专家不断提升专家系统的知识量。 专家系统不能完全代替人的能力,需要结合人的判断。
针对完全没有基础的同学们 1.确定机器学习的应用领域有哪些 2.查找机器学习的算法应用有哪些 3.确定想要研究的领域极其对应的算法 4.通过招聘网站和论文等确定具体的技术 5.了解业务流程,查找数据 6.复现经典算法 7.持续优化,并尝试与对应企业人员沟通心得 8.企业给出反馈