美文网首页嵌牛IT观察
浅谈LSTM循环神经网络

浅谈LSTM循环神经网络

作者: 随遇而安_5241 | 来源:发表于2020-06-02 16:36 被阅读0次

    姓名:程祖晗

    学号:19021210938

    【嵌牛导读】人工神经网络(ANN)由大量相互连接的神经元或称节点组成,这些节点经过网络中的大量加权连接,将数据进行相互通信,实现了神经网络的记忆特性。在常规的神经网络中,各个层之间的所有神经元彼此连接,但层间神经元不连接,即不能对前后位置具有一定关系的系列化数据进行更有效的分析,无法学习序列数据中前后样本的内在关联。为了优化此问题,多方研究提出了循环神经网络,且为了解决长距离依赖的问题,出现了长短期记忆网络(LSTM)。本篇就LSTM循环神经网络进行简单的讲解。

    【嵌牛鼻子】LSTM循环神经网络

    【嵌牛正文】LSTM循环神经网络应用了门控算法,即增加了一个状态c来保存长期的状态,此算法在学习时既能掌握长距离依赖又能选择性地遗忘信息防止过载。因此在当前时刻下,LSTM 的单个神经元中共有三个输入,分别是当前时刻网络的输入值x_{t} 、LSTM 隐含层上一时刻的输出值h_{t-1} 以及上一时刻的单元状态c_{t-1} 。现研究其模型的建立过程。

    a.初始化各项参数

    LSTM是改进的循环神经网络,如图1所示,X=[x_{1},x_{2},……,x_{m}]为输入样本,Y=[y_{1},y_{2},……,y_{n}]为输出样本,H=[h_{1},h_{2},……,h_{s-1}]为LSTM单元输出。m,n,s分别为样本个数,输出样本个数及神经元个数。即:

    模型中需要初始化的参数有W_{f} =[W_{fh}   W_{fx} ]^TW_{i} =[W_{ih}   W_{ix} ]^TW_{c} =[W_{ch}   W_{cx} ]^TW_{o} =[W_{oh}   W_{ox} ]^TW_{h}

    b.前向计算

    遗忘门限f_{t} 决定了当前时刻的神经元状态c_{t} 中保存了多少上一时刻的神经元状态c_{t-1}

    输入门限i_{t} 决定了当前时刻网络的输入x_{t} 有多少保留到当前时刻的神经元状态c_{t} ,同时计算当前输出的神经元状态\tilde{c_{t}}

    输出门限o_{t} 限制了神经元状态c_{t} h_{t} 的作用:

    最后输出的预测结果为:y_{t}= h_{t}\ast W_{h}+b,其中b为偏移量。

    c.反向误差值

    与 WNN 不同,RNN 的反向误差值包括两个方面:一个是沿时间的反向传播,即当前时刻开始后的每个时刻的误差;一个是将层间的误差值传递。设 LSTM 单元的输出值为h_{t} ,定义t时刻的误差项为:

    (1)误差项沿时间的反向传递

    根据上式得到t-1时刻的\delta _{t-1} ,即

    因此\delta _{t-1}= \delta _{o,t}^TW_{oh}+ \delta _{f,t}^TW_{fh}+ \delta _{i,t}^TW_{ih}+ \delta _{\tilde{c} ,t}^TW_{\tilde{c}h}。且由前向计算可知:

    (2)层间传递

    假设当前为第l层,定义l-1层的误差项为:

    因此\delta _{t}^{l-1}=(\delta _{f,t}^TW_{fx} +\delta _{i,t}^TW_{ix} +\delta _{o,t}^TW_{ox} +\delta _{\tilde{c} ,t}^TW_{\tilde{c}x} )\odot f(net_{t}^{l-1} )

    d.计算梯度权值

    由前可计算出各权值对应的梯度值,如下所示:

    e.权值修正

    设置学习率\eta =0.01,则示例如下所示:

    模型建立完成,可利用此模型完成对数据的预测,其结果比常规的神经网络更精确。

    参考:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

    https://zybuluo.com/hanbingtao/note/541458

    相关文章

      网友评论

        本文标题:浅谈LSTM循环神经网络

        本文链接:https://www.haomeiwen.com/subject/xwtqzhtx.html