好啦,我来填坑啦哈哈

经过了几个月的对深度学习的学习、了解和实践,

对于用深度学习来做NILM的经验也是积累了不少。

在此,做以小结。

在此,感谢~柳柳,小张,小田,小刘的支持和鼓励。

话不多说,下面开始!~

一,心里上的准备

本文开始的一系列文字,是基于深度学习的方法,来做负荷有用功分解预测以及电器识别的。

如果是要用传统的概率模型,可以参照我之前的几篇,传送门:https://blog.csdn.net/wwb1990/category_9655726.html

说到深度学习,行业内俗称 “炼丹”,用什么炼(各种架构),炼多久(各种参数),怎么炼(网络结构),炼出来的好不好(标准),,,以上基本没有个统一的说法,充满着不确定性(刺激)

而且很多时候,是不能用人的理解方式,去评判训炼出的模型结果的对错的。只能说是网络学到了我们想让他学到的逻辑,或者是学的不是我们期待他学的。

我认为这是个心态问题,即结果的正确率很低,那这时候要思考的,首先应该是,

1,我给网络学习的材料(输入),是不是包含我希望他学的知识。

举个栗子,输入的数据包含了太多的繁杂的信息,那么少量数据的学习,不一定就学到关键信息。

再来个贴切的例子,给网络训练时候,训练红衣服,蓝裤子,让它分类。它可以分出来了,但是有可能你再给他一个蓝衣服的时候,它认成了裤子。

这里面又涉及了两个问题,
一个是训练的数据集少,如果训的数据集包括蓝衣服,那就能将蓝衣服分到衣服里面。这个是数据集的涵盖范围,即,如果你也不清楚用什么特征可以区分分类的话,那就尽可能多的给出各种数据参数来学习,以及尽可能多数量和多样的数据。
第二个是关键属性的提取,也就是数据的预处理。以上面的例子来说,我们人已经知道了,通过颜色是肯定不能区分衣服还是裤子,那为了避免网络学到这个(出现上面蓝衣服问题),在输入数据的时候,可以预处理数据,归纳到只输入衣服和裤子的形状等。

2,它学习的方式(网络结构和类型),能不能总结或提炼出我希望他学的知识。

这个就很好说多了,
循环网络就是提炼一个序列中变化的规律,
卷积网络就是提取图中的细节中找规律
全连接网络就是从一堆数据中找到规律,
卷积+循环就是从序列的图中的细节中找到变化规律
卷积+全连接就是从图中的细节提取的数据中找规律
。。。。
我上面说的都是帮助理解的举例哈,
实际上与输入,网络层间关系,以及输出都有关。也就是说用,举例:全连接也可以学习图的规律,也可以找序列变化规律,但是网络结构,输入输出要做出相应调整。

意思就是,你的网络设计要能学会你需要学到的规律。

3,我如何去改进它

这方面,也是初入丹道的我一直在追寻的,目前认为比较玄学。

因为看书也好,看大神们的博客论文也好,会发现,每个使用场景,甚至每个数据集,每次训练,都是不一样的。

因为深度学习的核心就是随机,所以没有绝对正确的方法。

但这个正是大家在同一起跑线的优势,

而大神们也仅仅是比你的经验多一些(有用的和失败的)

只有不断的开拓创新,实验调参,改善结构,,,各种方案无所不用其极。才能龟速的提升你的模型~~hhhh

所以不用着急,就算一开始正确率比较低,那也不是网络的错(网络他爹的?)
去思考前两点,然后调整各种参数的实验,才能有感觉~~
(这里我用的是感觉,而不是理性思维推导,,因为可能你在尝试了几次某一个参数改大,正确率就降低,然后要放弃的时候,又多改大了一点点,就突然神奇的正确率提升了(匪夷所思就对了~))

二,技能和环境上的准备

前面说了一堆对于深度学习的理解哈,下面开始本项目的切实准备工作。

Python不多说了,我这里用的3.6

pytorch,keras 建议二选一,深度学习新人建议keras。高手直接用TF或者其他网络随意随意。(举个例子:同一个网络,TF要写50行代码,pytorch写20行,keras写10行。当然论灵活性TF原架构最高,pytorch其次,keras低点。易用性keras最高,初学者(我目前= =)能想到的网络都能轻松构建)

初学深度学习的同学,我推荐一本keras的书,我自己就是1个月左右的业余时间,通读+所有代码都是通透了一遍。
(不做广告,只发个豆瓣的,各种网上有书卖的都有,自己去查吧长下面这样https://book.douban.com/subject/30293801/)

安装pytorch和TF2的网上页多得是,我也有篇文字可以参考(RNN & LSTM 学习笔记 —— Anaconda安装,Python安装,PyTorch,Tensorflow配置)

Keras的安装和TF2 GPU版本的安装在这篇文章(深度学习 从零开始 —— 神经网络(三),安装配置keras,GPU版本TensorFlow,安装CUDA各种坑~~~)

最好是有GPU的电脑,TF2-GPU版本能让你时半功成~~

当然,没有GPU或者装CUDA懵圈的同学,那就简单安装普通CUP的TF2吧。就是跑的慢点,结果都一样。去上一天课回来就训完了 hhhhh

这里列一下我使用的一些关键库的版本:
除了nilmtk用的panda库需要0.25.0的以外。其他应该是新的就好吧(大概是)




剩下需要的sci,numpy等等的库就装新的就好。

二,数据集的准备

之前用的是REDD的数据集,用过的同学,打印一下全部就知道,中间时间缺失了一大部分的数据、、、

所以这次我们使用UK-DALE的数据集 https://ukerc.rl.ac.uk/DC/cgi-bin/edc_search.pl?GoButton=Detail&WantComp=41

而且其中已经有转好格式的h5文件,只下载这个就包含前面的原始数据内容了。

以上准备好了

可以开始我们《深度学习大冒险》了

To be continued.

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

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

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

  2. 学习分享——基于深度学习的NILM负荷分解(三)深度学习处理,基础思路

    我来继续填坑了~~ 给大家两周时间自习深度学习(磨蹭了两周) 不知道同学们的基础打得如何了哈 QQ群1070535031 我分两篇写网络训练的相关,本文介绍整个思路流程,下一篇提供实操代码和相关注释讲 ...

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

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

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

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

  5. PyTorch深度学习实战 | 基于深度学习的电影票房预测研究

    基于深度学习的映前票房预测模型(Cross&Dense网络结构模型),该模型通过影片基本信息如:电影类型.影片制式.档期和电影的主创阵容和IP特征等信息对上映影片的票房进行预测. 本篇采用45 ...

  6. 【深度学习】基于深度学习的目标检测研究进展

    原文出处:http://chuansong.me/n/353443351445 开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个 ...

  7. 【深度学习】基于深度学习的数据增广技术一览

    ◎作者系极市原创作者计划特约作者Happy 周末在家无聊,偶然兴心想对CV领域常用的数据增广方法做个简单的调研与总结,重点是AI时代新兴的几种反响还不错的方法.各种第三方与官方实现代码等.那么今天由H ...

  8. 三维重建 几何方法 深度学习_基于深度学习的视觉三维重建研究总结

    三维重建意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶.虚拟现实.运动目标监测.行为分析.安防监控和重点人群监护等.现在每个人都在研究识别,但识别只是计算机视觉的一部分.真正意义上的计算机视 ...

  9. DataWhale NLP组队学习 Task5 基于深度学习的文本分类2

    文章目录 文本表示方法 Part3 词向量 TextCNN TextRNN 基于TextCNN.TextRNN的文本表示 TextCNN TextRNN 使用HAN用于文本分类 本章小结 本章作业 后 ...

最新文章

  1. 一些非常酷的GAN的应用
  2. 无法加载Dll”ArcGISVersion.dll”:0x8007007E
  3. 19 Handler 子线程向主线程发送信息
  4. HDU4539+状态压缩DP
  5. 我常用的eclipse快捷键
  6. 洛谷P7515:矩阵游戏(差分约束)
  7. Activity生命周期(二)
  8. python编程(多线程c回调python)
  9. c++ 对象起始地址 指针靠齐_Go的内存对齐和指针运算详解和实践
  10. 风险预测模型_【期刊导读】长期NA治疗的慢乙肝患者也有专属肝癌风险预测模型...
  11. 解决启动WebLogic输入用户名密码问题以及密码重置
  12. u盘数据恢复的原理_电脑磁盘文件数据误删恢复原理、方法总结
  13. kivy python 读取oracle数据库_python app (kivy)-与小型数据库连接,实现注册登录操作...
  14. PDF怎么编辑修改,如何编辑PDF文字内容
  15. 椭圆曲线数字签名算法
  16. oracle发生20001,Oracle IMP数据时报20001错误
  17. 马哥教育N63期-第三周作业
  18. 云从科技 OCR任务 pixel-anchor 方法
  19. 阻塞(blockage)设置优化——Hard,Soft,Partial
  20. 【地平线开发板 模型转换】将pytorch生成的onnx模型转换成.bin模型

热门文章

  1. What Is New About NewSQL(NewSQL的独到之处)?
  2. python pika 消费mq basic_get方法
  3. python中line的意思_关于python代码,line[:-1]的意思
  4. 数据结构与算法——中缀表达式转后缀表达式
  5. excel时间戳转换为时间格式
  6. matlab 时间戳转换
  7. Dynamics 365 on-premises9.0版本开放下载,附上8.2升级9.0过程
  8. 当阳光照在海面上,当朦胧月色洒在泉水上---我在想你
  9. [转帖]Tensor是神马?为什么还会Flow?
  10. ios ipod library 读,写,等常见管理方法