DAE模型(NILM的应用)

文章介绍了去噪自编码器(DenoisingAutoencoders,DAE)在能源分解任务中的应用,该任务旨在从其他电器的背景噪声中恢复目标电器的清洁电力需求信号。DAE模型包括1D卷积层和全连接层,通过训练优化参数以减小重建损失。针对窗口重叠导致的低估问题,文章提出了使用中值滤波来改进处理方法,以更准确地保留和重建信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、DAE(Denoising Autoencoders)

去噪自编码器
将能量分解任务看作一个去噪任务,即试图从其他电器产生的背景“噪声”中恢复目标电器的“清洁”电力需求信号
自编码器首先将带有噪声的输入x^~映射到一个隐藏的代理层y:

其中x为目标电器的电力信号,x^~为总信号(带有噪声的信号),其余电器的电力信号被看作需要消除的噪声
在解码过程中,将之前获得的隐藏代理y映射回,在输入空间中重构一个d维向量z
\large z=g_{\theta^{'} }(y)=s(W^{'}y+b^{'})
LH(x,z)为重建损失,用于测量重建误差。通过训练优化θ和θ’以减小损失
使用一个比输入维度更小的代码层来实现

 一种DAE:

1. Input (length determined by appliance duration)
2. 1D conv (filter size=4, stride=1, number of filters=8, activation function=linear, border mode=valid)
3. Fully connected (N=(sequence length) ×8, activation function=ReLU)
4. Fully connected (N=128; activation function=ReLU)
5. Fully connected (N= (sequence length) ×8, activation function=ReLU)
6. 1D conv (filter size=4, stride=1, number of filters=1, activation function=linear, border mode=valid)
第一层使用卷积是希望网络学习低级的特征检测器,能够均衡的应用于整个输入窗口
最后一层是做一个“反褶积( deconvolution)”重建数据
参考:
python代码实现:
        # Creates the DAE model
        model = Sequential()        #搭建神经网络
        # 1D Conv
        model.add(Conv1D(8, 4, activation="linear", input_shape=(time_stamp, 1), padding="same", strides=1))        #第一层要写input_shape
        model.add(Flatten())
        # Fully Connected Layers
        model.add(Dropout(0.2))         #选择一定数量神经元停止工作,增强泛化,减少过拟合
        regu_l1 = l1(1e-4)
        model.add(Dense((time_stamp-0)*16, activation='relu', activity_regularizer=regu_l1))
        model.add(Dropout(0.2))
        model.add(Dense(512, activation='relu'))
        model.add(Dropout(0.2))
        model.add(Dense((time_stamp-0)*16, activation='relu'))
        model.add(Dropout(0.2))
        model.add(Dense((time_stamp-0)*8, activation='relu'))
        # 1D Conv
        model.add(Reshape(((time_stamp-0), 8)))
        model.add(Conv1D(1, 4, activation="linear", padding="same", strides=1))
上述代码的可视化

问题

窗口重叠时早期采用计算重叠部分的均值进行处理。这个解决方案的问题是,当一个激活仅部分地包含在滑动窗口中时,那么网络往往会低估输出信号的值。随着窗口的滑动,估计值会逐渐增加,但重叠部分会产生一个总体低估的信号,且随着窗口的滑动,误差会增加。

改进DAE(带中值滤波)

文章中提出可以使用中值滤波代替平均值进行处理。具体来说,由于重叠窗口的功率变化相对较小,所以重叠窗口的输出值可以用一定大小的邻域内所有值的统计中值来代替。使用中值能够保留更大的值

DAE每个窗口的输出

 

处理重叠窗口的两种方法性能的比较

 

step 1:编码
1、使用一个或多个一维卷积层对输入的数据进行处理,生成一组特征映射
2、每个卷积层都会依次经过一个线性激活函数、一个最大池化层、一个额外的卷积层、一个池化层。形成一个 全连接的多层感知机
3、全连接层使用ReLU函数作为激活函数

step 2:解码

4、通过解卷积(deconvolution)对全连接的多层感知机进行上采样

5、对4结果进行向上池化(Up-pooling 最大池化的逆过程)

6、通过解卷积继续对5的结果进行上采样,获得已解码和重建的降噪信号

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值