美文网首页
LSTM网络拆解举例分析

LSTM网络拆解举例分析

作者: CrazyCat_007 | 来源:发表于2019-01-28 21:45 被阅读0次

    RNN神经网络可以对图像生成描述,对文本进行分类,实现机器翻译,视频解说等,而在该过程中,普通RNN的信息不能长久传播,因此引入了选择性机制,我们可以将信息进行选择性遗忘、选择性输入和选择性输出,也就是后来的门——遗忘门、传入门和输出门,因此有了LSTM长短期记忆网络(Long Short Term Memory)。在使用门的过程中,使用了sigmod函数([0,1]区间,0代表完全忘记,1代表完全记住)进行对信息的选择性过滤。下面我会按照我的理解来举例分析LSTM网络,如有不足之处还请大家提出宝贵意见。

    LSTM网络结构

    LSTM网络

    在LSTM网络中可以看到,有三个绿色的细胞,左边的细胞的输出作为中间细胞的输入,中间细胞的输出作为右边细胞的输出。将中间细胞透明化,我们可以看到内部的构造,即LSTM的核心构造。图中各元素图标含义如下:

    元素图标说明

    状态Ct

    状态Ct

    在LSTM网络中有一个状态字段C_{t} ,用来维护一个状态作为下一步的额外输出。当前状态C_{t} 的更新过程为C_{t-1} 与经过遗忘门的输入作点积,然后与经过传入门的输入作加法后得到的新状态值。(简书的公式编辑器很不错,有点类似latex~)

    这里开始我的小例子。令C_{t-1} 中的词语及对应状态值(可以理解为权重)分别为(老师 0.5,教 0.1,我 0.2,python 0.2,人工智能 0.1,学习 0.2)。

    下面就是LSTM网络的“三道难关”。这里提醒下,经过三道门的总输入是相同的,但是经过sigmod函数后的值是不一定相同的。

    遗忘门

    遗忘门

    首先要经过遗忘门,上一次的输出h_{t-1} 和本次的输入x_{t} 作为整个LSTM的输入,其中h_{t-1} 的内容为(老师,教,我,人工智能),x_{t} 的内容为(我,喜欢,学习,人工智能),整个输入经过sigmod遗忘门后得到整合的内容f_{t} 为(老师 0.1,教 0.1,我 0.3,人工智能 0.5,学习 0.1,喜欢 0.2),那么C_{t-1} \times f_{t}的值为(老师 0.05,教 0.01,我 0.06,python 0,人工智能 0.05,学习 0.02,喜欢 0),其中python值为0,代表被完全遗忘了,而后面的喜欢也为0,是因为C_{t} 中还不存在该状态。

    传入门

    传入门

    接下来,h_{t-1} x_{t} 输入要经过传入门的考验了。i_{t} 代表过滤出输入内容中需要更新的值,而\tilde{{C_t}} 代表输入经过tanh过滤后的备选内容。i_{t} 的内容为(老师 0.5教 0.4,我 0.2,人工智能 0.2,学习 0.3,喜欢 0.1),假如这里规定大于等于0.4对应的词语需要更新,则“老师”,“教”需要更新,更新的新值为\tilde{{C_t}} (老师 -0.3,教 -0.3,我 0.5, 人工智能 0.2,学习 0.1,喜欢 0.5)中大于等于0.5的“我”和“喜欢”,可以理解为要更新句子的主语和谓语。i_{t}\times \tilde{{C_t}}  的值则为(老师 -0.15,教 -0.12,我 0.1,人工智能 0.04,学习 0.03,喜欢 0.05)。

    到此,可以得到C_{t} 的更新状态,因为C_{t} =C_{t-1}\times f_{t}+i_{t}\times \tilde{C_{t}} ,因此可得(老师 -0.1,教 -0.11,我 0.16,人工智能 0.09,学习 0.05,喜欢 0.05),规定大于0的值被留下,也就是说,在C_{t-1} C_{t} 的更新过程中,遗忘了“老师”,“教”和“python”,增加了“喜欢”。

    输出门

    输出门

    还没完呐,最后一关输出门。在这里,所有的输入经过输出门与经过tanh函数过滤的状态值作点积操作后得到最终的输出值。其中,o_{t} 的内容为(老师 0.2,教 0.1,我 0.4,人工智能 0.2,学习 0.2,喜欢 0.3),tanh(C_{t})的内容(约等于)为(老师 -0.10,教 -0.11,我 0.16,人工智能 0.09,学习 0.05,喜欢 0.05),那么h_{t} = o_{t}\times tanh(C_{t})为(老师 -0.02教 -0.011,我 0.064,人工智能 0.018,学习 0.01,喜欢 0.015),规定大于0的值输出,则最终的输出为(我,人工智能,学习,喜欢)。

    结束语

    也许我的举例存在些许不足,但应该能够帮助大家对LSTM的过程有所理解。总之,我热爱人工智能,热衷钻研,希望大家能够帮助我弥补不足之处,让我在人工智能之路走得更远,谢谢大家。

    相关文章

      网友评论

          本文标题:LSTM网络拆解举例分析

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