时间序列预测任务下探索深度学习参数对模型预测性能的影响

时间序列相关的项目在我之前的很多博文中都有涉及,覆盖的数据领域也是比较广泛的,很多任务或者是项目中往往是搭建出来指定的模型之后就基本完成任务了,比较少去通过实验的维度去探索分析不同参数对模型性能的影响,这两天正好有时间也有这么个机会,就想着从这个角度做点事情来对模型产生的结果进行分析。

数据可以使用任意时序的数据都是可以的,本质都是时间序列的数据即可。简单的实例数据如下所示:

参考前面的博文即可知晓如何将时序数据转化为标准的预测数据集,这里就不再赘述了。

这里主要是想从实验角度来分析结果,基础模型构建如下所示,首先考虑的是模型层数产生的影响,这里层数从1叠加至3层:

python 复制代码
def initModel(steps, features):
    """
    模型初始化
    """
    model = Sequential()
    model.add(
        LSTM(
            64,
            activation="relu",
            input_shape=(steps, features),
            kernel_regularizer=l2(0.001),
            return_sequences=False,
        )
    )
    model.add(Dense(features))
    model.compile(optimizer="adam", loss="mse")
    return model

结果如下所示:

接下来是两层的,如下所示:

python 复制代码
def initModel(steps, features):
    """
    模型初始化
    """
    model = Sequential()
    model.add(
        LSTM(
            64,
            activation="relu",
            input_shape=(steps, features),
            kernel_regularizer=l2(0.001),
            return_sequences=True,
        )
    )
    model.add(LSTM(64, activation="relu", kernel_regularizer=l2(0.001)))
    model.add(Dense(features))
    model.compile(optimizer="adam", loss="mse")
    return model

结果如下所示:

最后是3层的,如下所示:

python 复制代码
def initModel(steps, features):
    """
    模型初始化
    """
    model = Sequential()
    model.add(
        LSTM(
            64,
            activation="relu",
            input_shape=(steps, features),
            kernel_regularizer=l2(0.001),
            return_sequences=True,
        )
    )
    model.add(LSTM(64, activation="relu", kernel_regularizer=l2(0.001),return_sequences=True))
    model.add(LSTM(64, activation="relu", kernel_regularizer=l2(0.001)))
    model.add(Dense(features))
    model.compile(optimizer="adam", loss="mse")
    return model

结果如下所示:

直观体验下来是层数的增加并没有带来提升,反而是带来了崩溃式的结果。

接下来想要看下同样结构下,改变参数值带来的变化。

简单的实例如下所示:

python 复制代码
def initModel(steps, features):
    """
    模型初始化
    """
    model = Sequential()
    model.add(
        LSTM(
            128,
            activation="relu",
            input_shape=(steps, features),
            kernel_regularizer=l2(0.001),
            return_sequences=False,
        )
    )
    model.add(Dense(features))
    model.compile(optimizer="adam", loss="mse")
    return model

结果如下所示:

接下来同样的思路改变参数,结果如下所示:

参数的调整能带来一定的改变但是限定在一定的复读内,接下来考虑借鉴之前目标检测里面的方案来改造设计新的结构,借助于搜索技术可以事半功倍,结果如下所示:

可以看到:结果有了质的提升。后面有时间再继续深度研究下。

相关推荐
网络研究院42 分钟前
如何安全地大规模部署 GenAI 应用程序
网络·人工智能·安全·ai·部署·观点
凭栏落花侧1 小时前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析
xiandong204 小时前
240929-CGAN条件生成对抗网络
图像处理·人工智能·深度学习·神经网络·生成对抗网络·计算机视觉
innutritious5 小时前
车辆重识别(2020NIPS去噪扩散概率模型)论文阅读2024/9/27
人工智能·深度学习·计算机视觉
醒了就刷牙5 小时前
56 门控循环单元(GRU)_by《李沐:动手学深度学习v2》pytorch版
pytorch·深度学习·gru
橙子小哥的代码世界5 小时前
【深度学习】05-RNN循环神经网络-02- RNN循环神经网络的发展历史与演化趋势/LSTM/GRU/Transformer
人工智能·pytorch·rnn·深度学习·神经网络·lstm·transformer
985小水博一枚呀7 小时前
【深度学习基础模型】神经图灵机(Neural Turing Machines, NTM)详细理解并附实现代码。
人工智能·python·rnn·深度学习·lstm·ntm
SEU-WYL8 小时前
基于深度学习的任务序列中的快速适应
人工智能·深度学习
OCR_wintone4218 小时前
中安未来 OCR—— 开启高效驾驶证识别新时代
人工智能·汽车·ocr
matlabgoodboy8 小时前
“图像识别技术:重塑生活与工作的未来”
大数据·人工智能·生活