【问题标题】:How to label for this prediction example Matlab如何标记此预测示例 Matlab
【发布时间】:2019-01-28 08:51:12
【问题描述】:

灵感来自博文http://blog.avenuecode.com/using-deep-convolutional-neural-networks-dcnns-for-time-series-forecasting-using-tensorflow-part-1 在将电力消耗的时间序列转换为图像表示进行预测的情况下,我想知道一个简单的例子,它使用预测时间序列的下一个值的相同概念来构建一个益智游戏。但是,时间序列表示为图像。我不明白的一点是标签/预测器输出应该是什么?例如,在下面的代码中,图像A 后面跟着B,因为B 是从A 之后的下一个时刻生成的。目标是模型应该能够按顺序排列图像以构建拼图。

问题1) 在训练期间,标签应该是什么?我会有几个这样的图像。然后,在测试期间,我会打乱序列,模型应该给我正确的顺序,也就是对下一张图像的预测。这可能吗?

问题2)我已将图像表示为灰度。有没有更好的可视化彩色方式,在视觉区分上更有意义,而不仅仅是盐和胡椒的可视化?

非常感谢您的建议

clear all

data=100*rand(3000,1);
x1= data(1:1024);
img1=reshape(x1,32,32);
img11=double(repmat(img1,[1 1 3]));
imwrite(uint8(img11), 'A.jpg');

x2=  data(1025:2048);
img2=reshape(x2,32,32);
img22=double(repmat(img2,[1 1 3]));
imwrite(uint8(img22), 'B.jpg');

【问题讨论】:

    标签: matlab machine-learning deep-learning time-series conv-neural-network


    【解决方案1】:

    所以您想使用时间序列执行预测?

    嗯,使用图像来表示时间序列数据并没有多大意义。你真正想要的只是数据点本身,而不是数据点的一些可视化。有一些神经网络旨在执行时间序列分析的预测,据我所知,它们都没有将图像作为输入。你真正想要的是一种叫做循环神经网络 (RNN) 的东西。您可能会发现Long Short-Term Memory (LSTM) networks 在您的用例中具有特殊价值。

    如果您诚实且真正地坚持图像,那么我没有足够的经验来告诉您什么可能是最好的方法。但是有research out there that appears to have done thisHere 是一个额外的例子。

    1. 在训练期间,标签应该是什么?

    好吧,您需要某种编码,您提出的字母数字序列就足够了;但使用整数可能更容易。

    然后,在测试期间,我会打乱序列,模型应该给我正确的顺序,也就是对下一张图像的预测。这可能吗?

    当然,为什么这不可能呢?但是这种方式的测试存在一个问题,叫做信息泄露。你真的想为分类器提供一个它在原始时间序列中没有看到的新图像,然后看看它是否可以预测它在它看到的图像序列中的位置(经过训练)。

    我已将图像表示为灰度。有没有更好的 可视化的彩色方式,在区分方面更有意义 视觉上而不仅仅是盐和胡椒的可视化?

    查看您提供的教程,最终结果是一个二进制值矩阵(0 或 1)。黑白图像是表示 0 和 1 矩阵的自然选择。您通过进入灰度更进一步,您现在使用uint8 数据类型可实现的所有0 - 255 可能的像素强度值。您还能明智地进行可视化吗?很多,但不仅仅代表数据矩阵。如果您希望获得 RGB 图像,这与灰度图像的过程相同,只是重复 3 个通道(红色、绿色和蓝色)。但是,在您的问题域中,我真的不知道如何轻松做到这一点。例如,什么构成红色通道?绿色的还是蓝色的呢?这告诉我,您当前的可视化技术可能是一个不错的选择。

    【讨论】:

    • 感谢您的回答,但有几件事不清楚。你能澄清一下吗?您在回答的第一点中建议使用图像进行时间序列预测不是正确的方法,而我应该直接使用时间序列。但是,在第二点中,您提到模型可以在测试期间识别图像。但是,如果我不将时间序列编码为图像并使用这些编码图像训练模型,那么我不清楚如何使用图像进行测试。如果我基本上使用图像,我会比较每个像素(这是时域中的下一个值)。
    • 如果我使用 LSTM,那么这是使用实值时间序列预测的正常方法。所以,如果我一开始不使用图像,第 2 点的建议/答案可能不适用。使用图像的主要原因是使用强大的图像分类器或博客中所做的其他一些理由。但我仍然不知道如何使用时间序列的图像编码版本进行预测。
    • @SrishtiM 我很乐意澄清。我不想说使用图像进行时间序列预测不是正确的方法,它只是不是一种非常常见的方法。如果您决定使用时间序列数据本身(作为向量的序列序列),您会发现使用已经建立的现有方法更容易,例如循环神经网络 (LSTM)。我回答的第二点旨在解决您最初的问题。我不建议使用图片,但如果您只有图片,我链接到的研究论文可能会有所帮助。
    • @SrishtiM 如果您不将时间序列数据编码为图像,那么您是正确的。您不再想用图像测试分类器。测试方法仍然非常相似。您将整个时间序列切成小块,并在训练期间保留一部分时间序列。然后在测试期间,你给它一个它还没有看到的向量,并要求模型预测这个向量在时间序列中的位置(基于模型在训练阶段已经看到的)。
    • @SrishtiM 至于为什么使用 RNN 执行时间序列分析,这是因为 RNN 旨在从以前和当前的信息中学习。 CNN 的设计,仅在反向传播期间“学习”(即它最近在时间序列 n-1 中暴露的数据)。另一方面,RNN 通常具有可以“记住”几个时间周期前的输入的 LSTM 单元。这就是为什么它们在时间序列分析方面传统上比 CNN 更受青睐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多