我正在使用Jason Brownlee's tutorial(mirror)在某些syslog /网络日志数据上应用LSTM网络 . 他是大师!
我有过去1年每天的系统日志数据(特定事件),所以我使用LSTM网络进行时间序列分析 . 我正在使用Keras深度学习库中的LSTM .
我认为 -
关于Batch_size
一批数据是来自训练数据集的固定大小的行数,用于定义在更新网络权重之前要处理的模式数 . 基于 batch_size ,模型从数据中随机抽取样本进行分析 . 对于时间序列,这是不可取的,因此batch_size应始终为1 .
关于设置随机值的值
默认情况下,一个纪元内的样本在暴露给网络之前进行混洗 . 这对于LSTM来说是不合需要的,因为我们希望网络在整个观察序列中学习时 Build 状态 . 我们可以通过将“shuffle”设置为“False”来禁用样本的混洗 .
Scenario1 - 使用以上两条规则/指南 - 我使用不同数量的神经元,纪元大小和不同层进行了多次试验,并从基线模型(持久性模型)获得了更好的结果 .
Scenario2- 没有使用上述指南/规则 - 我运行了几个不同数量的神经元,时期大小和不同层次的试验,并获得了比方案1更好的结果 .
Query - 将shuffle设置为True,将Batch_size值设置为1以表示时间序列 . 这是规则还是准则?
在阅读教程时似乎逻辑上不应该改变时间序列的数据,因为我们不想改变数据序列,但对于我的数据,如果我让数据被洗牌,结果会更好 . 最后我想,重要的是我如何通过我的跑步得到更好的预测 . 我认为我应该尝试将“理论”放在具体证据上,例如指标,肘部,RMSE等 .
请开心 .