LTSM循环神经网络过程原理梳理

继续进行预估的工作,在尝试了GM(1,1),ARIMA之后,想要尝试LSTM循环神经网络做预估,希望能得到一个令人满意的结果,提取了《基于LSTM循环神经网络的交通流量预测》文章中部分内容,这篇文章把模型原理写的非常清晰,这里记录下来,便于后续理解参考。

神经网络介绍

  • 人工神经网络的操作两类:训练操作、召回操作;
  • 人工神经元的结构可描述如下:

在这里插入图片描述

  • 神经元的输入向量 :
    在这里插入图片描述
  • 连接权值向量

在这里插入图片描述

  • 阈值及连接权值

    假设神经元j的阈值为θj,若阈值节点的偏置固定表示为x0x_0=1,连接权值表示为w0jw_{0j}=-θjθ_j
    ps:对于阈值的理解如下图:
    在这里插入图片描述

  • 神经元j的加权输入和为

在这里插入图片描述

  • 激励函数f()

    f()称为激励函数,神经元j的输出状态为:
    在这里插入图片描述
    常用激励函数的形式有:

    1. 线性函数:
      在这里插入图片描述

    2. 阈值型函数:
      在这里插入图片描述

    3. 非线性函数:
      Sigmoid函数
      在s处的斜率决定了增益的大小:
      在这里插入图片描述
      双曲正切函数
      在这里插入图片描述
      Sigmoid函数和双曲正切函数形状相同s型曲线,输入信号大小[-1,1],选用双曲正切函数。

    4. 概率型函数
      输出0,1的概率:
      在这里插入图片描述

  • 综上神经元j的输出为:

    xjx_jwjw_j包含x0x_0w0jw_{0j}时,
    在这里插入图片描述

BP神经网络

BP神经网络全称是误差反向传播神经网络,BP神经网络的输入层神经元收到输入模式对后,得到激活值通过隐藏层传输至输出层,输出层个神经元得到实际相应输出后,计算实际的相应输出与期望输出的差值得到两者之间的误差后,顺着误差梯度减少的方向由输出层到隐含层再到输入层修正各层神经元的连接权值,反复执行,直到误差降低到预先设定的范围或则和执行步数到达预先设定的上限。
在这里插入图片描述

  • 算法描述如下

在这里插入图片描述
以3层BP神经网络为例分布算法如下

  1. 变量定义:
  • 输入模式向量,m为学习模式对个数,n为输入层单元个数:
    在这里插入图片描述
  • 与输入模式向量对应的期望输出向量,q为输出层单元的个数;
    在这里插入图片描述
  • 中间隐藏层的获取的净输入向量,p为隐藏层单元个数
    在这里插入图片描述
  • 隐藏层的输出向量
    在这里插入图片描述
  • 输出层的净输入向量,q为输出层单元的个数
    在这里插入图片描述
  • 实际输出向量
    在这里插入图片描述
  • 输入层到隐含层的连接权值
    在这里插入图片描述
  • 输入层到隐含层的阈值
    在这里插入图片描述
  • 隐含层到输出层的连接权值
    在这里插入图片描述
  • 隐含层到输出层的阈值
    在这里插入图片描述
  1. 算法流程:
  • 1)初始化,给连接权值W,V,阈值θ,β赋予初始值;
  • 2)提供学习模式对( Xk, Yk )给输入层;
  • 3)计算输入层的输出,输入层对于输入模式不做任何运算,仅将其传递至隐含层;
  • 4)计算中间隐含层各个神经元的净输入和输出
    在这里插入图片描述
  • 5)计算输出层各个神经元的净输入和输出

在这里插入图片描述

  • 6)根据期望输出,计算输出层各个神经元的实际误差dtk
    在这里插入图片描述
  • 7)计算隐含层的校正误差
    在这里插入图片描述
  • 8)调整隐含层与输出层之间的连接权值V以及输出层中各个神经元的阈值β,其中α为学习速率α∈[0,1]
    在这里插入图片描述
  • 9)调整输入层与隐含层之间的连接权值W以及隐含层中各个神经元的阈值θ,γ为学习速率,γ∈[0,1]
    在这里插入图片描述
  • 10)提供新的学习模式对,跳转至步骤3,如此往复循环只到所有的学习模式对完成训练。
  • 11)若网络的全局误差E满足误差精度E≤ε,则终止,跳至步骤13结束训练;
  • 12)更新网络训练步数,如训练步数未达到预先设定步数的上限,则返回步骤2);
  • 13)结束

LSTM循环神经网络

LSTM是指一个在时间序列上重复发生的结构,从结构上来看,常规循环神经网络可以解决现实中碰到的长期依赖问题。网络结构图如下,其中xt表示t时刻输入层的输入,ht是t时刻输出层的输出,A为模型的隐层,前一时刻经过隐层处理的信息不仅可以传递至输出层,还可传递到后一时刻作为隐层的输入之一:
在这里插入图片描述

  • 算法描述
    LSTM循环神经网络具有记忆功能的关键在于隐层中的各个隐层单元可以相互连接,如下图:
    在这里插入图片描述
    结合上图, LSTM算法学习过程分为三步
  • 1)决定从单元旧状态中丢弃哪些信息,通过“遗忘门限”记为S层处理,S层输出[0,1]区间的数字,其中输出1表示完全保留,输出0表示完全遗忘,ftf_t为旧状态信息保留量,当前输入为xtx_t,前一刻的输入为ht1h_{t-1},σ为S层函数,WfW_f为“遗忘门限”记为S层的权值向量,bfb_f为S层阈值
    保留信息量为:
    在这里插入图片描述
  • 2)决定在单元状态中存储哪些新信息,更新单元状态;
    a. 通过S层进行异常运算率决定更新哪些值;
    当前单元状态中储存的新信息iti_t为:
    在这里插入图片描述
    b. 通过tanh层进行一次运算创建新的处于可添加状态的候选值向量;
    候选变量CtC^-_t为:
    在这里插入图片描述
    c. 更新当前旧单元状态,进入新的单元状态
    则,当前新单元状态为:
    在这里插入图片描述
  • 3)决定要输出哪些单元状态于输出部分。通过“输出门限”的S层决定要输出的单元状态;
    W0W_0为要输出单元状态的权值向量,b0b_0为要输出单元状态的阈值,则输出的单元状态为OtO_t:
    在这里插入图片描述
    hth_t为输出部分,则:
    在这里插入图片描述
  • BP神经网络与LSTM循环神经网络的区别
    (1).BP神经网络是一种无反馈、层内无互连结构的前向型网络;
    (2).BP神经网络相邻两层之间的神经元彼此全部相连,但是各个神经元之间互不连接,即前一时刻的学习和后一时刻的学习不存在关系,随着学习步数增大,网络会有学习新样本遗忘旧样本的趋势;
    对比LSTM孙环神经网络:
    (1).LSTM循环神经网络中隐含层各个节点点是相互连接的,前一时刻学习到的特征与规律传递至后一时刻的学习中,使得网络具备记忆功能;
    (2).同时,LSTM循环神经网络带有遗忘机制,更好的模拟了人脑的遗忘工作机制。

预估模型优缺点

模型 优点 缺点
卡尔曼滤波 能够消除随机干扰,状态变量的估计可以分解 不适合非线性系统的求解
时间序列 考虑观测序列在时间序列上的关联依赖性的同时也加入了对跳点的判断分析来排除随机因素干扰 1.对于长时间的预测需要考虑更多的随机因素,由于模型只能利用单因素变量,模型更适用于短时交通流量预测;2.模型参数一旦确定难以更改和调整;3.在原始数据较多的情况下平稳性不足,确定模型参数过程复杂
线性回归 可进行一元、多元分析,可以进行线性于非线性分析;可对回归方程的拟合程度进行显著性检验,对于确定好的函数关系,一个自变量至鞥你对应一个因变量,保证了结果的唯一性;能够提供改预测结果的置信度和置信区间,是的预测结果的完整性和可靠性有很好的保障 在自变量和因变量的选取上只是一种猜测,增加了人为因素的干扰;多次加入新数据的情况下模型的参数粗腰重新计算与预估
支持向量机 能够解决非线性、高维识别、过度拟合等问题 1.对大规模寻来你样本求解时会设计到高阶矩阵的计算,此时矩阵存储和求解会占用计算机的大量内存,对硬件要求比较高;2.传统的支持向量机只能做二分类法,无法处理实际应用中遇到的多分类问题
BP神经网络 拥有一般模型没有的并行处理模式,使得网络在多输入变量和多神经元个数的情况下也能在较短的时间内进行各层权值的调整;且具有很好的容错性和鲁棒性,以及非线性映射能力,集成性 容易陷入局部最优解且网络的隐含层数目上缺少有效的指导理论;若网络训练步数过少则预测能力不够,若过多容易出现过拟合
灰色系统 不要求样本具有规律分布,可用于样本量较少的情况,能够对大量的样本特征进行提取分析 数据预处理过程中,灰色系统通过累加合成来处理随机性数据,而这种随机性原本就反应了事物发展规律,累计合成会失去这些有用的规律,数据可信度降低;建模过程中用指数拟合的形式建立模型,没有结合数据背后真正反应的特征与规律

写在最后

最近似乎越来越懈怠了,工作上预估的进展并不是太好,预估的结果常被否掉,因为业务主观还是占主导,他们还是采用excel在做预估,自己的模型预估结果经常性是偏高的,很多细节性业务影响无法考虑到,模型调整不够灵活,需要在预估基础上根据业务主观预期的基础上比例缩减或调整,唉,真的没有成就感呢,不知有没有那种灵活可调,因素影响权重可控的预估模型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章