基于深度学习的模糊认知图方法

1 文章信息

文章题目为“Deep Fuzzy Cognitive Maps for Interpretable Multivariate Time Series Prediction”,该文于2019年发表于“IEEE TRANSACTIONS ON FUZZY SYSTEMS”。文章提出了深度模糊认知图(FCM)用于多变量时间序列预测,同时增加了可解释性。

2 摘要

模糊认知图(FCM)是一种用于系统状态预测和可解释知识表示的强大模型。近年来,许多研究通过引入时间因素、不确定性或模糊规则从而提升模型的可解释性,引入模糊神经网络或小波方法从而改进时间序列预测精度。文章提出深度模糊认知图(DFCM)用于多元时间序列预测,该方法结合FCM在可解释性方面的优势和深度神经网络在预测方面的优势。具体而言,为提高预测性能,深度FCM利用一个全连接神经网络来模拟系统中概念(Concept)之间的连接(Relationships),并利用一个循环神经网络模拟影响系统动力学的未知外生因素。此外,为提高模型的可解释性,文章提出了一种基于偏导数的方法来测量深度FCM中概念之间的连接强度,并提出了一种替代函数梯度下降算法进行参数推理。深度FCM为构建现实应用中的可解释预测器提供了重要帮助。   

3 准备知识

         0a7f25a0d69259dec3783b61ee4af6e0.png

模糊认知图-FCM:基本的FCM框架由三个元素描述:概念(Concept)、激活状态(Activation States)和关系(Relationships)。其中,概念表示系统中的组件,激活状态表示组件的状态,关系表示组件之间的影响。如上图所示,FCM利用构建一个由I个点构成的加权有向图刻画一个系统。设42acf3ae396e175c4f2c91661b752bde.png为图的节点,即第i个概念,5cdacc8096010e88d767950d2342e76d.png表示节点i和节点j之前的加权边,f88b4188144b9ee2dc2903ce5e8d5c0d.png表示第i个概念的激活状态,激活状态为1时表示完全激活,激活状态为0时表示完全不激活。对于第i个概念而言,其激活状态为一个动态的时间序列81f9c1a787b9917a9d8c6320b488d8c8.png,t+1时刻的激活状态可以由下式计算:

8793aab53795c896800963383ade222c.png

其中,2775d0659579814863a345d3b9609774.png为隶属度函数,将激活状态模糊化至[0,1]区间内。通常情况下,激活状态即为观测的时间序列,但ebe70bc1f3e1d9c5b78ffa5f52a754bc.png通常难以直接获取。给定随机的初值,DHL算法通过t时刻的观测数据调整b2c9be129354e055e1dfadfdeeb9e2a8.png

44bfc8f86a67d8ebb55dcf7c3e438879.png

39c103b4b7d5ebb1cf262b4e1ff5d72f.png

相关符号定义:文章涉及的符号定义如下所示。   

a0b86c5a8d91c756bf47560e3d59cc03.png

4 深度模糊认知图-DFCM

a2164682b8828cb77a73700f15b9d053.png

模型的框架如图所示,将从4个部分进行介绍:时间序列模糊化、刻画非线性影响、刻画外在因素、衡量概念之间的联系。

时间序列模糊化:给定一个由若干概念构成的系统,文章设第j个概念对应的原始时间序列为00df22508b18be83e33fe6993c317977.png,其值为cb7bead60b95bfc9a8bdb58f5f4b8854.png。DFCM首先通过z-score对时间序列进行归一化处理:

ed1cb4b81cb2d294e19955afabc3d454.png

进一步,FCM利用隶属度函数对归一化后的时间序列进行模糊化,得到模糊状态,其中40e5b332d6b990d62e075be681543fa6.png为Sigmoid函数:

9a5dd10fbea9c49feaf3d9b305b666fc.png

基于上式,给定一个由FDCM预测的模糊状态,为实现预测,文章通过下式对模糊状态进行去模糊化,得到预期的未来值:   

0ce4733fe0307018fe4b2d1902fd51ec.png

刻画非线性影响:基础FCM的一个缺点在于该模型难以刻画非线性关系,为解决这一问题,DFCM通过下式更新激活状态:

c7434acd49f341cf706d34dc857ddf73.png

其中,ca6c85d4686fa711ea73d6f8e72efc17.png用于刻画系统状态524b0e48375c2b7af13fff689b4f39ca.png与aj的联系,称为f-函数80eda30db559df0a47d7d7ef5f76f4b4.png用于刻画外在因素(未知因素)对于aj的影响,称为u-函数。f-函数和u-函数的求和通过Sigmoid函数进行模糊化,从而生成下一个时刻的激活状态。显然,当u-函数为0,f-函数为d90f0fc2c886f396389b80bd28bbd425.png时,DFCM退化为基本的FCM。

文章定义f-函数为前馈神经网络,第k层中,第m个神经元在第t时刻的预测值通过下式计算:

f843c76e76667b2f4bcc17b8b5ad75c8.png

其中,在k=0时,248b36b0a01ce7d253ca7eecea4eb634.png,且在最后一层不使用ReLU函数。

刻画外在因素:DFCM中的外在因素指那些对系统状态a有影响,但不能预先定义和直接测量的因素。以道路运输系统的DFCM为例,在该系统中,路段可以建模为概念,路段是否拥挤可以建模为激活状态。相邻路段的交通速度可以相互影响,形成概念之间的关系,可以用f-函数刻画。然而,交通速度也受到一些外生因素的影响,例如居民的通勤方式、交通管制、重大事件等。由于这些外生因素的状态不能直接测量,因此不能使用预定义的FCM概念来描述它们。为解决这个问题,文章提出基于LSTM的u-函数。具体而言,文章定义u-函数如下:   

62bbfa702b0485466c0142656640136f.png

其中,包括三个输入时间步t,以及时间步与预测长度τ的模,以及历史外在因素。文章基于三个考虑将u-函数设计:1. u-函数是与时间步t相关的函数,因为外在因素的影响通常随时间变化;2. 在许多情况下,外在因素具有周期性,如一天、一周、一个月等,因此也采用时间步与预测长度τ的模作为输入;3. 外在因素的动态通常具有“记忆”,即依赖于它们的历史状态。值得注意的是,对于u-函数的计算从t=2时开始。

f6f9ffa0714eb3d3c1fccb280c867d2b.png

衡量概念之间的联系:FCM的最大优势在于它能够揭示复杂系统中的概念关系。这种优势也被称为FCM的可解释性,如上图所示。简单而言,82a70fcbcd67868c29227d644347d7e0.png刻画当概念cj增加时,概念ci增加的程度。类似的,文章提出一种基于偏导数的关系计算方式:

882c7b1dddb44e41228f04968a598d12.png

其中,1e7634ec88e53c35cacba0aa64271282.png表示除了ai以外的所有激活状态。该偏导数反映了在给定所有激活状态的条件下,当ai增加时,fj增加的幅度。值得注意的是,78b5817a1812eb2173b3eb79cdf4664a.png是一个关于非关注状态(除ak以外的状态)对应激活状态的函数,为除去这些非关注状态的影响,文章对所有be1c580ab728ac81fa14c0b614752f24.png的可能值计算了55cfea8caad4a9df02300e21056a07c7.png的期望值:

66d4c79758384ad8ca2fc8399d3a8942.png

进一步,概念ai对于aj的总影响通过下式计算:

d457650b350b791cf6b42d59ffc17a0b.png

在实际应用中,依据大数定律对上述两式进行近似,由于FCM框架要求关系的值在[−1,1]的范围内,因此文章使用Tanh函数对关系值进行调整。    

c46cf229ab342539e29b2dd3cceba858.png

c08bedc05b0590e4cf83c29bef018a45.png

3175d018ee42592374e4bcce5cf448cf.png

此外,由于文章设定的DFCM模型定义f-函数为全连接神经网络,因此可以通过链式法则对部分偏导数进行计算,如下式所示,其中,66ff10fae2d05672a5c8dc21577ea12c.png为ReLU函数的导数。

c79ba82e4b50f393ece1bb2f92275929.png

d550d342a5c7452dfe415aa551dc5750.png

5 目标函数和AFGD算法

目标函数构建:由于文章构建的DFCM模型刻画了未知的外在因素,因此预测值6188576f35df6edc5be3bea8403f71f4.png和真实值504f47436ce469fda29e837a493dbd6c.png之间的误差应该是一个随机误差,文章假设59f67e33d6aa65c227b7bcd50f862597.png服从0均值的高斯噪声,文章利用最大似然估计(MLE)构建目标函数:

0a8ebff2c240653e9fca1be7dab62309.png

AFGD算法:DFCM与基本FCM的最大区别在于DFCM包含了许多深度神经网络成分,如f-函数和u-函数。然而,传统的FCM训练算法不能直接用于训练深度神经网络,因此文章基于反向传播算法提出一种新的训练方法,称为交替函数梯度下降(AFGD)。AFGD算法通过迭代的方式学习f-函数和u-函数中的参数,如下式所示:

3873aadb2625cf549db81cabc5c50d26.png    

进一步,上述计算公式可转化为下述公式:

f68b584ea9a989736cf59e6682e00760.png

上述两式可以直观地理解为u-函数和f-函数交替使用对方的预测残差来训练它们的参数。F-函数的预测残差是无法用内部FCM概念建模的影响,即外在因素的影响,因此应由u-函数吸收。相反,u-函数的预测残差应该通过f-函数进行刻画。算法总结如下:

8b7b454b068f7960485cb3d946952d0f.png

6 实验

059b0ca4b4d9dcfaaee6b6d4febc255b.png

文章选用的数据集如上表所示,包括空气质量数据集、交通速度数据集、电力消耗数据集和温度数据集。具体而言,空气质量指数(AQI):该数据集包含2017年2月至2018年2月在中国北京收集的气象和空气质量指数的时间序列。文章使用4个气象指标和5个时间点的空气质量指标作为输入来预测时间点t+1的空气质量指数;交通数据集(Traffic):该数据集包含2016年4月1日至30日北京6个路段的交通速度。文章使用t时刻所有路段的交通速度作为输入来预测t+1时刻每个路段的速度。电力消耗数据集(EPC):该数据集包含一个家庭的电力消耗测量数据3。不同的电量和一些分计量值是可用的。文章实验所用数据集对应的时间跨度为2016年12月16日至31日。文章使用四个电量和三个分计量值作为输入来预测下一个周期的三个分计量值。温度数据集(Temp):该数据集包含24个特征,这些特征是从安装在家庭房屋中的监控系统收集的。文章使用的数据集对应时间跨度为2012年3月3日至4月11日。文章使用时间t的所有特征来预测时间t+1时餐厅和房间的室内温度。实验结果如下表所示,可以看到DFCM取得了较好的预测性能。   

86e8372d0b31ddb6226424e4be7b4873.png    cb6fbc5be2a2c11e38d12fb8251f038c.png

此外,文章利用交通速度数据集对模型的组成成分进行消融实验,DFCM-1L:该模型包含一个f-函数隐藏层和一个u-函数隐藏层;DFCM-3L: 该模型包含三个f-函数隐藏层和一个u-函数隐藏层;fi-1L:该模型仅包含一层f-函数隐藏层;fi-3L: 该模型仅包含三个f-函数隐藏层;FCM:基础的FCM模型。实验结果如下。

fe7588a2e4603f3fbbd23f9d296807f9.png    

7 总结

文章提出了一种基于深度神经网络的模糊认知图模型,称为DFCM,以实现可解释的多元时间序列预测。DFCM模型将深度神经网络模型引入到FCM的知识表示框架中,从而将FCM在解释方面的优势和深度神经网络在预测方面的优势集成到同一个模型中。文章通过真实数据集验证了深度FCM在可解释性和预测能力方面的优异性能。深度FCM为构建现实应用中的可解释预测器提供了重要帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

19.Redis之集群

1.集群的基本介绍 集群 这个词.广义的集群,只要你是多个机器,构成了分布式系统, 都可以称为是一个"集群"前面主从结构,哨兵模式,也可以称为是"广义的集群”狭义的集群,redis 提供的集群模式, 这个集群模式之下,主要是要解决,存储空间不足的问题(拓展存储空间) …

科普健康短视频:成都鼎茂宏升文化传媒公司

科普健康短视频:引领健康知识新潮流 在数字化时代的浪潮中,短视频以其短小精悍、直观易懂的特点,迅速成为大众获取信息的重要渠道。其中,科普健康短视频更是凭借其科学、权威、实用的内容,吸引了大量关注健康的观众。…

Linux —— MySQL操作(1)

一、用户与权限管理 1.1 创建与赋予权限 create user peter% identified by 123465 # 创建用户 peter,# %:允许所有用户登录这个用户访问数据库 刚创建的新用户是什么权限都没有,需要赋予权限 grant select on mysql.* to peter%; # 赋予…

什么是数据资产管理?数据资产管理包括了哪些内容?

数据资产管理包括数据模型管理、数据标准管理、数据质量管理等 10 个活动职能,覆盖数据资源化、数据资产化两个阶段。本章参考 PDCA 方法,从计划、执行、检查、改进四个环节着手,阐述数据资产管理活动职能的核心理念与实践要点。 一、数据模型…

使用Python操作Git

大家好,当谈及版本控制系统时,Git是最为广泛使用的一种,而Python作为一门多用途的编程语言,在处理Git仓库时也展现了其强大的能力。通过Python,我们可以轻松地与Git仓库进行交互,执行各种操作,从…

2024全新交友盲盒+付费进群二合一源码 包含全套源码+视频教程

2024全新交友盲盒付费进群二合一源码 包含全套源码视频教程39同校 三九同校 最高版本,纸条,交友,源码,搭建包上线运营,防封红,独家唯一版本盲盒交友脱单系统源码,带教程,免授权这套源…

Golang | Leetcode Golang题解之第119题杨辉三角II

题目&#xff1a; 题解&#xff1a; func getRow(rowIndex int) []int {row : make([]int, rowIndex1)row[0] 1for i : 1; i < rowIndex; i {row[i] row[i-1] * (rowIndex - i 1) / i}return row }

分布式任务队列系统 celery 原理及入门

基本 Celery 是一个简单、灵活且可靠的分布式任务队列系统&#xff0c;用于在后台执行异步任务处理大量消息。支持任务调度、任务分发和结果存储&#xff0c;并且可以与消息代理&#xff08;如 RabbitMQ、Redis 等&#xff09;一起工作&#xff0c;以实现任务的队列管理和执行…

[Linux系统编程]文件IO

一.系统调用 什么是系统调用? 只有系统调用(系统函数)才能进入内核空间&#xff0c;库函数也是调用系统函数&#xff0c;才得以访问底层。 系统调用由操作系统实现并提供给外部应用程序的编程接口。是应用程序同系统之间数据交互的桥梁。 换句话说&#xff0c;系统调用就是操…

【计算Nei遗传距离】

报错 Warning message: In adegenet::df2genind(t(x), sep sep, ...) : Markers with no scored alleles have been removed 原因&#xff1a; 直接用plink转换为VCF&#xff0c;丢失了等位基因分型&#xff08;REF ALT&#xff09; &#xff08;plink编码的规则&…

优选算法一:双指针算法与练习(移动0)

目录 双指针算法讲解 移动零 双指针算法讲解 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff0c;一种是快慢指针。 对撞指针&#xff1a;一般用于顺序结构中&#xff0c;也称左右指针。 对撞指针从两端向中间移动。一个指针从最左端开始&#xff0c;另一个从最…

【Linux】进程(2):进程状态

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解Linux进程&#xff08;1&#xff09;&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 &#xff08;A&#xff09;R/S/D/T/t状态1. R&#xff1a;程序运…

Day-04python模块

一、模块 1-1 Python 自带模块 Json模块 处理json数据 {"key":"value"} json不是字典 本质是一个有引号的字符串数据 json注意点 {} 中的数据是字符串引号必须是双引号 使用json模块可以实现将json转为字典&#xff0c;使用字典的方法操作数据 。 或者将…

社交媒体数据恢复:最右

第一步&#xff1a;确认数据丢失原因 请确定您是因为误删、设备损坏还是其他原因导致“最右”中的数据丢失。这将有助于您更好地了解需要采取的恢复措施。 第二步&#xff1a;尝试从备份中恢复数据 如果您有定期备份的习惯&#xff0c;请尝试从备份中恢复丢失的数据。备份文…

Springboot JVM监控 通过Promethus

Springboot内置了对Prometheus得支持&#xff0c;可以监测得点有&#xff1a; JVM各指标参数&#xff08;GC&#xff0c;堆&#xff0c;非堆等&#xff09;接口调用次数&#xff0c;延时系统内存&#xff0c;IO&#xff0c;CPU使用率 部署Prometheus和Grafana 准备一台2核4G…

STM32自己从零开始实操03:输出部分原理图

一、继电器电路 1.1指路 延续使用 JZC-33F-012-ZS3 继电器&#xff0c;设计出以小电流撬动大电流的继电器电路。 &#xff08;提示&#xff09;电路需要包含&#xff1a;三极管开关电路、续流二极管、滤波电容、指示灯、输出部分。 1.2数据手册重要信息提炼 联系排列&…

手写HTML字符串解析成对应的 AST语法树

先看效果 展示如下&#xff1a; HTML模版 转成ast语法树后 在学习之前&#xff0c;我们需要了解这么一个问题&#xff0c;为什么要将HTML字符串解析成对应的 AST语法树。 为什么&#xff1f; 语法分析&#xff1a;HTML字符串是一种标记语言&#xff0c;其中包含了大量的标签…

使用PNP管控制MCU是否需要复位

这两台用到一款芯片带电池&#xff0c;希望电池还有电芯片在工作的时候插入电源不要给芯片复位&#xff0c;当电池没电&#xff0c;芯片不在工作的时候&#xff0c;插入电源给芯片复位所以使用一个PNP三极管&#xff0c;通过芯片IO控制是否打开复位&#xff0c;当芯片正常工作的…

python移动文件

测试1(直接把B文件夹移动到了A里&#xff0c;成为了A的子文件夹) import os import shutil# 移动文件夹,B文件夹在当前目录没有了&#xff0c;跑到了A的子文件里 ## shutil.move(./example1/B/, ./example1/A/)测试2(B文件不动&#xff0c;将B文件里的所有的子文件夹移动到A内…

响应式UI组件DevExtreme中文教程 - 工具栏的自适应模式

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET Core&#xff0c;jQuery&#xff0c;Knockout等&#xff09;构建交互式的Web应用程序。从Angular和Reac&#xff0c…