何为非侵入式负荷识别-负荷辨识(深度学习)

1 前言

         正如之前所说的,在研究深度学习做负荷辨识时,我们更应该关注的是网络的输入和输出分别是什么。如果大家想发文章的话,或许这个远比你的网络结构来的重要。毕竟网络你只需要换一换就不一样了。神经网络做分类时,输出一般是固定的,也就是01向量。而输入则“五花八门”,常见的有各种各样的特征值组成的向量,有图像特征(一般是VI轨迹),还有采样序列,但这并不能限制研究者们的创造力,研究者们开始研究以下几种组合:1)将特征值和图像特征直接融合,即输入是向量和图像数据;2)将特征值用热码表示,并和图像矩阵拼接起来,输入仍然是图像;3)输出不局限于类别,可以同时输出分类和分解的结果等。本篇仅取其中两种情况作为示范。

2 特征值作为输入

        当特征值作为输入时,这类算法就和机器学习类似。首先也是获得特征样本数据,然后将标签和特征拼接在一起。不同的地方在于,深度学习还需要对模型的输出做处理,将标签的1,2,3...处理成[1,0,0,...]、[0,1,0,...]、[0,0,1,0,...]。深度学习的理论我就不赘述了。

2.1 标签的处理

        这里取4种电器为例。代码不一定要这么写,我这里是简单处理,若有很多种类别,不应该这么写,而是先创建一个空的list或者数组,然后在指定位置写1,其他位置为0。

def label_convert(labels):
    Labels = []
    # 将标签转化为一个0-1向量,标签作为1出现的位置。(表示神经网络输出层第i个神经元)
    for label in labels:
        if label == 1:
            Labels.append([1, 0, 0, 0])
        elif label == 2:
            Labels.append([0, 1, 0, 0])
        elif label == 3:
            Labels.append([0, 0, 1, 0])
        else:
            Labels.append([0, 0, 0, 1])
    return np.array(Labels)

        结果如下:

何为非侵入式负荷识别-负荷辨识(深度学习)_第1张图片

何为非侵入式负荷识别-负荷辨识(深度学习)_第2张图片2.2 构建网络

        因为数据比较简单,所以我直接用多层感知机(BP神经网络)就足够了。

def BP_NN(num_input, num_output):
    model = Sequential()
    model.add(Dense(32, activation='relu',input_shape=(num_input,)))
    model.add(Dropout(0.5))
    # Fully Connected Layers
    model.add(Dense(32, activation='relu'))
    model.add(Dense(num_output, activation='softmax'))
    return model

2.3 训练网络

 何为非侵入式负荷识别-负荷辨识(深度学习)_第3张图片

保存每一步的训练参数,又或者使用早停机制。

何为非侵入式负荷识别-负荷辨识(深度学习)_第4张图片

2.4 测试网络

        取训练时最好的网络。先初始化网络,然后将对应的参数文件输入网络。然后直接预测测试数据即可。        

何为非侵入式负荷识别-负荷辨识(深度学习)_第5张图片

 

3 采样序列作为输入

        数据处理部分与2中的代码一样。下面展示所用电器的采样波形。

何为非侵入式负荷识别-负荷辨识(深度学习)_第6张图片

冰箱

何为非侵入式负荷识别-负荷辨识(深度学习)_第7张图片

吹风机

何为非侵入式负荷识别-负荷辨识(深度学习)_第8张图片

微波炉低档位

何为非侵入式负荷识别-负荷辨识(深度学习)_第9张图片

微波炉高档位

何为非侵入式负荷识别-负荷辨识(深度学习)_第10张图片

电灯

        网络借鉴负荷分解的典型网络seq2point,将其修改为分类网络。

3.1 网络训练

相比于2中的训练,这个网络训练收敛的更快,结果更好。

3.2 网络测试

何为非侵入式负荷识别-负荷辨识(深度学习)_第11张图片

 

4 难点

        对深度学习做负荷辨识的研究不多,我认为难点可能是确定输入的形式,以及找到合适的网络实现它。之后若有更深的理解,我会回来补充。

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(nilm,分类,非侵入式负荷监测,大数据,深度学习,python,算法)