我来继续填坑了~~
给大家两周时间自习深度学习(磨蹭了两周)
不知道同学们的基础打得如何了哈
QQ群1070535031

我分两篇写网络训练的相关,本文介绍整个思路流程,下一篇提供实操代码和相关注释讲解

关注顺序建议:

1,先仔细阅读本文思路分析,认真思考,并且根据学习的深度学习的相关知识,边跟我的思路走,边考虑一下,我这么做的目的,以及优缺点。是你自己的话,如何做,以及如何优化。

2,下一篇给出代码,按功能模块,每一块叠加就是整个项目。不过我建议边思考,边自己去写一遍弄懂每句代码的含义,才是你的。不然后面我提供改进思路,大家一起实践的时候,你会盲目的手足无措。

实验需求

跟随本文进行学习和实验,需要前面博文中的环境,以及提取出来的UK数据。(学习分享——基于深度学习的NILM负荷分解(二)电器数据提取)

实验环境:
pycharm,python 3.6+,keras库,numpy库,matplotlib库
以及UKData。

思路分析

进入正题~~

上一节中,我们把一号房子的所有用电器的有用功分别取出来了,电器的数据很多。

为了我们调试和优化网络方便,前期不浪费太多时间去训练。

这里我们从中取出5个比较有区别度的电器数据,来进行流程搭建。

提高准确率,提高区分度,多个同样电器,,等问题,一点点迭代我们的网络。训练的输入数据也可以随之添加。

简单看来,负荷分解 是一个 “多分类,多标签问题”,分析N个电器的有用功变化,根据变化规律,进行多分类。

另外有的同学的思路会是去识别,开启/关闭电器的事件。但由于,这里使用的是低频数据,所以,识别短促的事件并不容易识别到,开启/关闭时候的变化也抓不打详细的变化规律。(需要高频数据,才能体现出不同电器的短时变化规律)

因此本篇的思路是,根据电荷的变化规律,识别电器的开启状态。简单说:根据电荷实时变化,识别哪些电器开着。

由上面这个思路,就可以知道,要看频率变化规律:

1,可以用傅里叶变换,分解出总负荷在哪些频段,来判断电器。

2,直接使用循环神经网络,输入总电荷,用窗口①来抓取总负荷的变化。

那我们从简入深,这里先使用上面第二个思路,这样基本上不用怎么处理数据,建立一个窗口数据的时序网络,直接输入序列数据即可。

窗口:意思如下图,去取一定长度的序列,取完一个,往后移动一段距离,取下一个窗口。
下图每个颜色就是取的一次窗口数据。可以看出其中包括两个参数:窗口长度,窗口每次移动距离(移窗)
这两个参数设置好,第一次取的数据就是1,第二次取2,,之后3,,,之后4,,,,以此列推

之后呢,我们就可以看看数据怎么准备了。

我们取出来的电器数据,组合五个电器,可以合成出来一个总功~~
然后将其分为,训练数据,验证数据,以及测试数据。测试数据不参与训练。

还要为训练生成一下我们训练需要的data对于的label,用于多分类的训练。

有了数据,就是设计网络了。

上面说了序列数据的处理思路,那就是用循环网络,这里我们选用GRU或LSTM来搭建。来学习数据变化的规律。

根据经验,在循环网络前,我们还要添加几层1D来提炼数据。(一维卷积)

循环网络后接全连接收敛到5个结果。

结果就是训练的五个电器的开关状态。我们定义为1为开着,0为关着。

到此,初步的思路就比较全面了,我画一张简单的步骤流程图,

1,生成五个采样电器的合并数据

2,生成 label 用于训练。label是五个电器每一时刻的开关状态。0为关闭状态,1为开启状态。


3,将Data和Label 切分成三份。用于 训练,验证,测试。

4,构建网络结构,使用循环网络,学习总功率变化规律,判断电器开关状态。

5,训练网络,验证结果,进行测试。

下一文,我们来实现上面的整个流程。
QQ群1070535031

学习分享——基于深度学习的NILM负荷分解(三)深度学习处理,基础思路相关推荐

  1. 学习分享——基于深度学习的NILM负荷分解(四)深度学习实现,代码讲解

    QQ群1070535031 跟随上一篇的思路,本篇我们来实现整个流程. 实验需求 跟随本文进行学习和实验,需要前面博文中的环境,以及提取出来的UK数据.(学习分享--基于深度学习的NILM负荷分解(二 ...

  2. 学习分享——基于深度学习的NILM负荷分解(二)电器数据提取

    前一阵参加比赛,NILM就放了放,开始填坑... GOGOGO~ 数据准备 根据上一篇中提到的,我这里使用的是UK-DALE 没有下载的同学可以回到上一篇看一下(学习分享--基于深度学习的NILM负荷 ...

  3. 学习分享——基于深度学习的NILM负荷分解(一)对DL的看法准备工作

    好啦,我来填坑啦哈哈 经过了几个月的对深度学习的学习.了解和实践, 对于用深度学习来做NILM的经验也是积累了不少. 在此,做以小结. 在此,感谢~柳柳,小张,小田,小刘的支持和鼓励. 话不多说,下面 ...

  4. 【深度学习】基于web端和C++的两种深度学习模型部署方式

    深度学习 Author:louwill Machine Learning Lab 本文对深度学习两种模型部署方式进行总结和梳理.一种是基于web服务端的模型部署,一种是基于C++软件集成的方式进行部署 ...

  5. [光速QA][linux学习篇]基于韦东山I.MX6ULL pro开发板的学习笔记

    #前言: CSDN上已经有了太多的教程,我决定使用一种很新的方式记录自己的学习过程,如果对你有帮助就点个赞吧!一篇博文但是会长期更新(争取). 光速QA,希望面试官和面试者都可以给我这里找到灵感,如果 ...

  6. 基于web端和C++的两种深度学习模型部署方式

    深度学习Author:louwillMachine Learning Lab 本文对深度学习两种模型部署方式进行总结和梳理.一种是基于web服务端的模型部署,一种是基... 深度学习 Author:l ...

  7. datatable的数据进行组内排序_排序算法学习分享(四)希尔排序

    排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正! 排序算法学习分享(一)选择 ...

  8. 何为非侵入式负荷分解

    0 解答 有同学提出了一些问题,我在这里再说明一次. 1)深度学习算法应用于非侵入式负荷分解是不需要事件检测的吗? 回答:是的,不需要事件检测.深度学习算法应用于负荷辨识的话,必须要有事件检测. 2) ...

  9. 三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...

    欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...

最新文章

  1. 11 12 13c语言编程,C语言编程
  2. Win7中aero peek的关闭与开启
  3. 创建数据库是列名无效咋办_怎样解决列名无效 - 技术问答 - .Net源码论坛 .net源码,ASP.net|论坛 - Powered by Discuz!NT...
  4. Jest DoneCallback 数据类型的理解
  5. POLYCOM RMX2000 激活与初始化 信令板卡初始化
  6. Machine Learning Mastery 博客文章翻译:深度学习与 Keras
  7. 强化学习DQN算法实战之CartPole
  8. javaWEB知识总结——Ajax和Json
  9. python的if和else、for、while语法_Python中的if、while、for 语法及实例
  10. FFmpeg 视频处理工具讲解
  11. 队列,计算机中的排队模型
  12. 对抗神经网络(python-一维数据)
  13. python读取oracle数据库性能_python 连接oracle数据库,报错解决,pandas读取。
  14. 背包问题-三种动态规划解法-逐步减少空间复杂度
  15. api es7 删除所有数据_【译】ECMAScript 2016 (ES7) 新特性一览
  16. [生存志] 第67节 夫差信谗杀伍员
  17. 【Aegisub相关】_G 简化代码写法的有效范围
  18. 运动目标检测面临的问题
  19. 如何快速校准时间继电器?
  20. java毕设项目共享单车管理系统(附源码)

热门文章

  1. 大功率继电器的工作原理是什么?解读大功率继电器特性参数
  2. 3M公司就Amphenol公司侵犯其电缆设计专利提起诉讼
  3. python列表变为字典_python如何把列表变字典
  4. 游戏逆向_某游戏典型的检测例子分析
  5. Android 蓝牙4.0(BLE)Demo
  6. Eclipse安装阿里巴巴代码规范插件p3c
  7. Python搭建聊天机器人
  8. NLP:自然语言处理技术之词语级别相关术语解释(如上位词/WordNet)、基于词汇层面的词法分析六大任务(分词/词性标注/词干提取-词形还原/新词发现/形态分析/拼写校正)的简介及其应用
  9. Pulsar_01_基本介绍
  10. 使用Rufus工具制作Windows To Go——超详细,小白也能学会