LSTM 模型不会预测高于某个值的值(始终不是相同的值)
Posted
技术标签:
【中文标题】LSTM 模型不会预测高于某个值的值(始终不是相同的值)【英文标题】:LSTM model doesn't predict values higher than certain value (not same value all the time) 【发布时间】:2019-05-10 19:28:52 【问题描述】:首先感谢您的帮助!
我想创建一个简单的 LSTM 模型来预测下一分钟家庭用电量的值。使用这个数据集:
https://archive.ics.uci.edu/ml/datasets/individual+household+electric+power+consumption
到目前为止我所做的是:
1) 规范化数据并创建一个“窗口”,使我的 LSTM 网络看起来像这样:
从 t0-t29 的 30 分钟系列,每分钟 8 个特征,网络应输出 t30 房屋用电量。 因此,我的每个样本输入的形状为 [30x8],输出应为 [1x1]。到目前为止,一切顺利。
2) 我构建了一个简单的 LSTM 模型,如下所示:
model4 = Sequential()
model4.add(LSTM(1,input_shape=(30, 8)))
model4.add(Dense(1))
model4.compile(loss='mean_squared_error', optimizer='adam')
如您所见,一个非常简单的多对一模型。我已经对模型进行了 25 个 epoch 的训练,出于某种原因,该模型似乎无法预测高于 5-5.5 的值,如下图所示:
3) 我尝试过:
以不同方式对数据进行归一化(最小最大或平均标准) 标准化所有数据,但我保留原始值的功耗列。 以上都没有帮助。有什么建议吗?
【问题讨论】:
【参考方案1】:解决方案:
我将 LSTM 层的属性“激活”更改为无。 这样,默认的“tanh”函数不会“粉碎”这些值。
【讨论】:
以上是关于LSTM 模型不会预测高于某个值的值(始终不是相同的值)的主要内容,如果未能解决你的问题,请参考以下文章
多输出回归模型始终为 Tensorflow 中的批次返回相同的值