笔者最近在做一些电力工业里的数据驱动建模的研究,并且做了一个基于LSTM神经网络时序预测的模型,等我把这个模型完善了,会将数据和模型开源出来。
不过在我和老师交流的时候,老师让我思考下什么是数据驱动建模,做这个的意义是什么,它能对我们的学科发展或者是工业带来什么有益的作用,于是我阅读了一些文献,目的就是搞清楚我们在复杂系统里做数据驱动建模的意义是什么。
首先引用一篇综述里的一段话:蒲天骄,陈盛,赵琦,王新迎,张东霞.能源互联网数字孪生系统框架设计及应用展望[J].中国电机工程学报,2021,41
蒲老师是看论文的时候遇见的老熟人了,中国电科院的人工智能所所长,专家教授,IEEE 会士,大家想做人工智能和电力系统结合区间的可以看看他写的综述,高瞻远瞩,很有参考价值。
关于数据驱动建模,这里是这么描述的: 数字孪生体可从多维度、多空间尺度、及多时 间尺度对物理实体进行刻画和描述。孪生体构建是 数字孪生系统应用服务目标的第一步。 当建模对象内部物理机理明确,过程充分可观 测,可采用机理建模。若对象行为复杂、参数难以 观测、行为结果随机性强,可采用数据驱动方式建 模。如果模型训练样本有限,且可靠性要求高,则 可采用数据与知识融合,在减小样本数量的情况下 综合数据建模与机理建模优点,同时提高计算精度、 效率以及可靠性。
可见数据驱动建模是在复杂系统中对电气量关系的描述,可能这种建模没有像机理模型那种明确的表达式,但是其通过数据训练出来的人工智能算法模型,却可以很好的映射出电气量之间复杂的相关性。
为了更清楚的搞清楚这个概念,这里引用一篇学位论文:刘宇佳. 基于数据驱动的建模方法仿真研究[D].东北大学,2009
里面谈到神经网络建模的时候这样说:
与传统的建模和控制技术相比,它具有以下的优势:(1)非线性映射能力。神经网络能够充分逼近任意复杂的非线性关系。(2)具有自适应功能。神经网络有很强的白适应能力,它能不断地自适应修正网络权值,学习与适应严重不确定性系统的动态特性。(3)具有泛化功能。它能够处理那些未经训练过的数据,从而获得相应于这些数据的合适解答。同样,它能够处理那些有噪声或不完全的数据,从而显示了很好的容错能力。(4)适用于多变量系统。神经网络可多输入多输出的自然结构为其处理多变量问题提供了方便条件。
我的思考
另外,再阅读文献的过程中,我逐渐发现了数据驱动建模的意义所在:
对于电力工业中一些难以用数学表达式描述的过程,比如涉及到电力电子设备一个极小的开关周期,一些无法计入计算的漏感,一些无法解耦的耦合,一些杂散参数的动态过程,一些非线性元件难以计及的性质,一些发热温度变化带来的参数改变,甚至是多系统混连导致的时间尺度差异下的复杂模型,都可以通过神经网络的方法,完成这些数学公式难以描述的复杂过程的建模,我们不用关心中间过程,只需要关心其输入和输出的映射关系,就足够构建一个比较精准的模型了,在这里如果引入“预测”两个字,会让这个概念更加晦涩难懂,所以我打算说,映射,输入输出之间复杂的无法用数学表达式描述的关系,那么你可否可以这样理解?由当前时刻(可能是微秒级)的输入,得到下一时刻(同样是微秒级)的输出,这是不是就是我们所需要的x(t+1)=f(x(t))的关系呢?
我们要构建这样的模型,说实在的真是容易得多了,相比与复杂的小信号分析和根轨迹计算,我们只需要获得数据集,这个数据集包含一些输入量,也就是检测到的数据,和一个输出量,这个是下一时刻的某输入量,构建时序预测模型,不就可以了吗?
当然,这里面的问题在于:泛化性能和过拟合问题,就拿我目前做的这个项目为例,模型在部分预测结果上表现得非常良好,但是在部分特征的预测上存在“形状对但数值错”的情况,这种情况该怎么解决呢?我觉得可能是归一化的问题,经过数次修改评价函数、归一化方法、正则项、激活函数和神经网络结构后,却总是无法根本性的解决这个问题,那么后面我们该怎么做?我觉得可能还需要更多的尝试和实验,不过我相信,这些问题不是根本问题,是可以解决的问题。
欢迎做数据驱动建模的朋友来探讨!