基于动态自编码网络的电池故障检测

# Realistic fault detection of li-ion battery via dynamical deep learning

Article link: Realistic fault detection of li-ion battery via dynamical deep learning (nature.com)

local link: Realistic fault detection of li-ion battery via dynamical deep learning

Date: 2023-10-09

# 1. 论文主旨

​ 文章针对当前电池动力电池数据的隐私以及成本问题,提出了一种现实可应用的深度学习框架模型(动态自编码异常检测,Dynamical autoencoder for Anomaly Detection, DyAD ),并且公布了 347 个电动汽车的 690000 个锂电池充电片段数据

​ 此前研究面临的问题主要有:(1)传统的数据使用方法(温度、电压的方差等)难以辨认异常与正常汽车,数据关联性表现较弱,ROC 在 0.5 左右;(2)数据直接上传容易泄露,用户隐私难以保护;为此,文章提出了一种可大规模使用的定制深度学习框架。

# 1.1. 模型建模

​ 不直接上传用户的各项直接数据,而是将用户数据分为系统输入(电流,SOC)和系统响应(电压,温度)两部分,而后在充电站部署编码器,编码器学习系统输入到系统响应的映射关系,编码后的数据上传到云端经过解码后对电动汽车的异常是否做出检测。通过编码 - 解码架构避免了用户的隐私和厂商的模型细节泄露。

# 1.2. 建模细节

​ 问题 1:传统的深度学习方法通过研究数据分布来检测异常,对不常见的数据表现出较差的检测效果(如恒流充电数据,可能会被误判为正常电池)。

​ 解决方法:在自编码 - 解码器中,编码器保持不变,编码器学习系统输入和系统响应的映射关系后得到潜在变量;而解码器不再仅仅利用潜在变量进行解码,而是通过潜在变量以及系统输入进行解码。具体理解如下:编码器学习到系统输入与系统响应的映射关系,那么可以用y=f(x)y=f(x) 来表示这一过程,其中yy 是系统响应,xx 是系统输入,而编码器正是通过xxyy 学习到映射函数ff。传统方法便是将ff 得到的潜在变量直接做出检测。然而本文构造了一个解码器f1f_1 来模型物理系统,通过系统输入xx 重构了系统响应y1=f1(x)y_1=f_1(x), 对比真实响应yy 和重构响应y1y_1 得到重构误差损失。其次通过里程进行弱监督从而引入辅助损失,引入 KL 正则化防止过拟合。三个损失函数共同影响模型的训练过程以及样本的异常情况。

​ 模型包含了三组参数,分别是编码器参数θ\theta,解码器参数ζ\zeta 和多感知机头部参数ξ\xi,前两组参数均通过图卷积神经网络参数化得到。三个损失函数分别定义为:lrecon.l_{recon.}lreg.l_{reg.}lmileagel_{mileage}

# 2. 复现

数据集以及代码的连接如下:Code with datasets

# 2.1. 数据集

数据可视化处理过程代码下载链接

# 2.2 模型

# 2.3 代码细节

从代码角度来看,这个代码写的太牛辣。那我们就来好好欣赏一下这优雅的代码吧。

更新于 阅读次数