基于机器学习的故障决策系统设计

2018-01-19 11:35李绍宗
软件导刊 2018年10期
关键词:机器学习

李绍宗

摘 要:针对机器学习(Machine Learning,ML)模型训练困难和数据量大,难以在传统故障决策系统中同步进行训练与诊断问题,提出分布式服务型层次结构的软件体系结构。通过改进软件体系结构,不仅能够实现训练与诊断的完全分离,提高系统实时性,而且能进一步解除不同组件之间的耦合性,更加便于系统维护。提出训练机概念,专门对机器学习模型进行训练,以提高模型训练效率。使用Web Service技术作为系统连接子连接系统构件,为在线决策系统提供服务,能够满足实际应用需求。通过优化软件体系结构,优化系统物理架构,有效提高故障决策系统的适应性和实时性。

关键词:机器学习;故障决策系统;分布式服务型层次结构;训练机;连接子

DOIDOI:10.11907/rjdk.181142

中图分类号:TP303

文献标识码:A 文章编号:1672-7800(2018)010-0032-04

英文摘要Abstract:In machine learning,there exists model training difficulties and large amount of data,and it is difficult to train and diagnose traditional fault decision system at the same time.We propose the software architecture of distributed service hierarchy by improving the software architecture,which can not only achieve a separation in the training and diagnosing and increase the real-time performance of system,but also can further remove the coupling between different components and it is more convenient for system maintenance.At the same time,we put forward the concept of training machine which is used to train machine learning model specially and improve the model training efficiency.In practice,the system uses the Web Service technology as the system connector to connect the system components,provides the service for the online decision system,and can meet the practical application requirements.Therefore,the adaptability and real-time performance of the fault decision system are achieved by optimizing the software architecture and the physical architecture of the system.

英文關键词Key Words:machine learning; fault decision system; distributed service hierarchy; training machine; connector

0 引言

在工业4.0时代浪潮下,有关机器学习的故障决策系统研究日益受到重视。之前机器学习一直作为辅助决策应用于专家决策系统,结合专家系统的逻辑推理能力和机器学习的鲁棒性、学习能力[1],决策系统无法摆脱现有知识理论约束,无法挖掘数据中的隐性知识。为此,本文设计了一种完全基于机器学习的故障决策系统。

实时故障决策系统在生产中能够起到降低维护成本、提高生产效率、减小财产损失、提高可靠性、避免事故等作用。传统的故障决策系统是基于故障本体的,也就是说必须了解本体的工作原理才能开发出该本体的故障分析系统[2]。随着生产工艺的提高、生产材料的更换,传统决策系统不能很好满足生产的更新换代,软件适应性(software flexibility)[3]差。

大数据时代,传统决策系统难以处理爆炸性增长的数据。使用机器学习模型进行故障决策,能够解决大数据给故障决策系统带来的建模困难问题。但由于机器学习模型甚多,过程复杂,训练困难,导致系统实时性差。

基于以上两点,在保证系统可用、稳定、准确的基础上,利用分布式服务对系统的实时性以及扩展性进行改进,以保证系统实用性。

1 机器学习模型

1.1 机器学习模型种类

作为人工智能的最前沿技术,机器学习以强大的拟合、分类、预测能力在设备故障分析中崭露头角,并且取得了不凡成绩。机器学习就是通过假设、迭代更新参数,拟合数据集中存在的线性或非线性关系,建立数据空间与故障空间的一种对应关系,从而做到故障分析以及基于数据的故障决策。

机器学习模型根据需要解决问题的种类可划分为[4]:

(1)监督学习。指给定一组样本输入X与它们的结果Y,监督学习的目标是产生一个通用映射函数f,使每个输入都有确定的输出,即Y=f(x)。

(2)无监督学习。指学习不知道结果的样本数据,即Y未知。所以主要是学习样本输入数据的结构,发现数据中隐含的关联。

(3)强化学习。指算法对不同的环境作出不同的反应,然后通过收益函数不断对算法进行优化,直至模型达到近似最优。

将机器学习应用到故障决策系统基于以下3点[5]:①数据的爆炸性增长完全依靠人工处理不现实;②机器学习算法能够发现人尚未了解的隐性知识;③机器学习能够很大程度上摆脱个人因素影响,使结果更加客观。

1.2 机器学习流程

从系统概念设计角度出发,机器学习组成如图1所示,其中展示了机器学习流程,从数据获取到得到模型并部署到生产系统中。

2 决策系统设计

2.1 分布式服务型层次结构

作为控制软件复杂性、提高软件系统质量、支持软件开发和复用的重要手段之一,软件体系结构(software architecture,简称SA)自提出以来,日益受到软件行业关注,并发展成为软件工程的一个重要研究领域[6]。

在层次结构上提出服务型层次结构体系。所谓分布式服务型层次结构体系指分布式环境下在系统层次结构的基础上解除层次之间的直接依赖关系,将构件之间的互联机制作为一阶实体(first-class entity)[7]独立出来,称为连接子,服务分布在不同的服务器上,如图2所示[8]。在全测试环境人工智能交换与服务标准(artificial intelligence exchange and service tie to all test environments,AI-ESTATE,即IEEE1232[9])提出的诊断模型层级关系基础上,本文提出改进模型及服务方式。

分布式结构从层次上将应用系统分为客户端应用程序、应用程序服务器和数据库服务器3个部分,每部分在逻辑上相互独立。组件技术从功能上将应用系统分解成若干颗粒,彼此通过接口相互通信[10]。在分布式服务型层次结构中采用服务列表作为连接子,将服务注册到服务列表中,服务存在于不同的服务器上,但逻辑上仍是一个集合。服务列表记录了服务的名称、位置、参数、返回结果等信息,由系統统一管理。技术上采用Json或XML,使用时直接引用服务列表中的服务,并将参数进行传递,直接获取结果。与层次结构相比,服务型层次结构更具有泛型能力,功能更具一般性,比如在层次结构中底层开发可能是针对上层某一功能开发的,所以传递的参数和返回的结果类型更加具体。而服务型层次结构并不了解需要为哪一部分提供服务,所以传递的参数和返回类型更具一般性,这样的服务更具重用性且更符合组件开发的思想。

在系统维护更新升级时,如果对某一具体任务需求发生变动时,则需要对其支持的服务进行修改或增加新的服务,然后更改服务列表中的映射即可。系统提供构建过程。所谓的构建过程,是指遍历服务集合,将服务名称和服务映射写入到服务列表,并对引用次数为零的服务进行处理。

进行上述应用设计后,面向服务的体系结构如图3所示。

2.2 故障决策系统结构

基于服务型层次结构设计决策系统。决策系统需要有与外界交互的窗口,在用户输入待分析样本后需要对样本进行数据预处理以及向量化,在线决策系统进行故障分析后将结果返回给用户。决策模块是整个系统的核心,为了支持决策模块需要提供诸多基础服务以及工具。图4为决策系统总体框架,展示了系统所包含的主要模块以及模块之间的层次关系。

人机交互模块负责用户与系统的交互,用户输入待分析样本数据,并将系统的预测结果返回给用户。人机交互模块是人与机器交互的“窗口”,所以要保证交互的友好、方便等特性。

故障决策模型接收用户的输入并对输入数据进行分析,将预测结果返回。该部分相当于整个系统的心脏,是整个决策系统的核心,用于保证该部分的可靠、稳定、及时等特性。

模型训练、评估是诊断推理机(Diagnostic Reasoner)上的一个模块,负责对训练样本集进行模型训练、评估。诊断推理机在IEEE1232标准中被定义为一个利用知识库推断结论的系统[11](IEEE1232),但基于机器学习设计的故障决策系统将诊断推理机部署到专用于机器学习模型训练的服务器上,称之为训练机。与普通的服务器相比,训练机拥有更多更强大的逻辑计算单元(GPU)。GPU具有强大的几何运算能力,在虚拟现实仿真中具有极其重要的应用[12],能大幅减少模型训练时间。

模型评估是对模型训练的一个截止条件,是对模型好坏的一个量化表示,主要用来评估模型的泛化能力以及性能。所谓泛化能力,是指模型对新样本的判别能力。性能主要包括错误率、精度以及查全率等。

基础组件服务支持模块包括数据预处理、数据向量化、数据驱动及其它工具类,为模型训练以及决策提供基础的功能支持以及服务。数据预处理包括将序列化文本离散化、缺省值处理并提供灵活的归一化功能。数据向量化是将样本数据转换成系统训练使用的向量形式以方便计算。数据驱动模块负责与数据库交互。其它工具包括科学计算库以及序列化工具等。

所有模块均按照组件进行开发,以降低组件之间的耦合,方便系统维护[13]。模型训练评估模块包括各种神经网络算法或其它决策算法以及评估方法,以增强系统适用性。当生产工具、材质以及流程发生变化时,更新合适的决策算法并增加基础服务工具即可,不需要大幅度修改系统。基础组件服务均按照工具类型进行开发,再细分具体功能。

2.3 系统数据处理流程

决策机制数据处理流程如图5所示。

用户输入待分析数据,经过数据预处理、数据向量化后,将符合分析决策的标准格式数据输入到决策模块,通过对模型的匹配得到分析结果,并将结果传递给分析师。与此同时,系统会将输入的样本数据写入到数据库中用作训练机的数据集,训练机按照一定比例将数据集切分成训练集和测试集并训练模型,将模型作为服务提供给决策模块。

3 系统实现

3.1 模型训练模块实现

(1)模型选择。对于特定的任务选择最优的模型,通常情况下会尝试多种模型,选择表现最好的模型。

(2)模型评估。将数据集分为训练集和测试集,当模型训练结束后使用测试集对模型进行训练,测试模型的泛化能力,对通过模型评估的模型再进行部署。

(3)模型训练。该模块是诊断推理机的核心,是保证诊断推理机实时性和准确性的关键模块,该模块设计对整个系统影响重大。通过优化系统体系结构优化并分离物理平台以提高系统性能,通过优化算法提高算法本身性能,如优化参数更新机制、优化数据结构等。优化算法不作为本文重点,在此不作赘述。

(4)模型监控与反馈。模型监控与反馈指模型的准确率和预测结果,主要以产品的达标率为体现形式。当新的模型应用之后,达标率下降,就要更换模型,重新进行模型选择和训练。

3.2 实时性解决方案

实时性是实现机器学习系统的重点和难点,解决方案如下:

(1)新数据到达立即更新模型,从而使实时系统成为可能,例如线性模型中的梯度下降算法,数据的传递以及转换难以做到实时,但可以使用实时流处理技术做到近似实时。

(2)混合方法。数据到达不会立即更新模型,而是将数据进行收集,当数据达到一定量时进行小批度更新模型。当小批度更新达到一定次数,或者模型准确率降低时,触发全局批度更新。

(3)周期批度更新。指数据到达不进行模型更新,对数据进行收集,当数据量到达一定量或到达时间周期时再进行全局批度更新。

3.3 连接子实现方案

连接子作为构件之间的连接一阶实体,对系统性能、系统结构起到关键作用。结合分布式服务型层次结构,对于连接子实现方案采用面向服务的Web Service技术。

Web Service是一个平台独立、低耦合、自包含、可编程的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置,用于开发分布式的互操作应用程序[14]。

Web Service技术能使运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用,无论其使用的语言、平台或内部协议是什么,都可相互交换数据。Web Service是自描述、自包含的可用网络模块,可执行具体的业务功能。Web Service也很容易部署,因为它们基于一些常规的产业标准以及已有的一些技术,诸如通用标记语言下的子集XML、HTTP等。Web Service减少了应用接口花费,为整个企业甚至多个组织之间的业务流程集成提供了一个通用机制。

简单对象访问协议SOAP、Web服务描述语言WSDL,统一描述、发现和集成协议UDDI构成了Web服务最基本的技术规范,WSDL是程序员描述Web Service的编程接口。Web Service可通过UDDI注册自己的特性,其它应用程序可通过UDDI找到需要的Web服务。SOAP则提供了应用程序和Web服务之间的通信手段,WSDL、SOAP和UDDI都建立在XML基础之上。

在系统安全访问控制方面,程序依赖于系统平台服务提供安全保证,即服务器中配置必要的安全认证和授权机制,对Web Service的访问受到系统平台安全服务限制;在应用程序安全访问控制方面,应用程序执行相关代码认证用户身份和授权用户,要求将授权用户信息保存在数据库,并由应用程序维护数据库,保证系统安全[15]。

4 结语

在未来工业生产中,数据量会不断增加,数据维度也会不断扩大,通过分布式服务型故障决策系统能够实时发现设备或产品故障,发掘数据中的隐性知识,及时分析设备或产品故障,提高生产效率。本设计能保证系统的及时性、稳定性、可靠性及可扩展性。

参考文献:

[1] 祝世虎,董朝阳,张金鹏,等.基于神经网络与专家系统的智能决策支持系统[J].电光与控制,2006,13(1):8-11.

[2] 李梅.基于本体的故障诊断知识库系统的构建[J].电脑开发与应用,2010,23(8):32-34.

[3] IEEE STANDARDS BOARD.IEEE standard glossary of software engineering terminology 610.12-1990[S].Los Vol.1.Los Alamitos:IEEE Press,1999.

[4] 周志华,杨强.机器学习及其应用[M].北京:清华大学出版社,2011.

[5] PENTREATH N.Spark机器学习[M].南京:东南大学出版社,2016.

[6] 梅宏,申峻嵘.软件体系结构研究进展[J].软件学报,2006,17(6):1257-1275.

[7] SHAW M.Procedure calls are the assembly language of software interconnection:connectors deserve first-class status[J].LNCS,1996(1078):17-32.

[8] 孫小进,郭恩全.基于IEEE1232的故障诊断系统的软件架构设计[J].电子测量与仪器学报,2014,28(1):36-42.

[9] IEEE Std 1232-2010[S]:IEEE standard for artificial intelligence exchange and service tie to all test environments.

[10] 李志军.分布式结构与组件技术的应用研究[D].南京:南京理工大学,2004.

[11] IEEE STD 1232-2002[S]. IEEE standard for artificial intelligence exchange and service tie to all test environments.

[12] 顾钦.基于GPU计算的虚拟现实仿真系统设计模型[J].微处理机,2005,26(2):41-43.

[13] 戴敏,宋燕平.组件开发与软件重用[J].南开大学学报:自然科学版,2001,34(3):24-27.

[14] DEBETTENCOURT J,LARA M,YAMANE S,et al.Web service:US,US6279001[P].2001.

[15] 王楠,刘心雄,陈和平.Web Service技术研究[J].计算机与数字工程,2006,34(7):88-90.

(责任编辑:杜能钢)

猜你喜欢
机器学习
前缀字母为特征在维吾尔语文本情感分类中的研究
下一代广播电视网中“人工智能”的应用
基于支持向量机的金融数据分析研究