本文本着由浅入深原则介绍LSTM模块结构,使用流程图 梳理公式,保证看完过目不忘,神清气爽。
模块结构
核心变量
从宏观上来看,LSTM模块有输入 x t x_t xt,输出 y t y_t yt,内部维护一个记忆变量 c t c_t ct。
一般用这三个核心变量来描述一个LSTM,记为 L S T M ( x , y , c ) \mathrm{LSTM}(x,y,c) LSTM(x,y,c)。有时,输出 y y y也被称为隐状态 h h h。
入口与门
除了主入口之外,输入 x t x_t xt(红色)还从另外三个“门”进入LSTM模块:input,forget,output。
一起进入模块的,还有输出 y y y(蓝色)和记忆 c c c(绿色)。
前一时刻变量用虚线表示。
输入端口和门的结果记为 z , i , f , o z,i,f,o z,i,f,o。
具体表达式如下
意义 | 表达式 |
---|---|
数据输入 | z = g ( [ x t , y t − 1 ] ) z=g([x_t,y_{t-1}]) z=g([xt,yt−1]) |
输入门 | i = σ ( [ x t , y t − 1 , c t − 1 ] ) i=\sigma([x_t,y_{t-1},c_{t-1}]) i=σ([xt,yt−1,ct−1]) |
遗忘门 | g = σ ( [ x t , y t − 1 , c t − 1 ] ) g=\sigma([x_t,y_{t-1},c_{t-1}]) g=σ([xt,yt−1,ct−1]) |
输出门 | o = σ ( [ x t |