LSTM模型理解_rfm模型应用实例

LSTM模型理解_rfm模型应用实例LSTM模型之前一直想要了解一下LSTM模型的想法,看到一些介绍,说里面的各种门,遗忘门,输入门,输出门,是模拟电路的,然后自己就一直很莫名其妙,怎么还有电路什么的,然后就各种一直看不懂。。。现在回过头来仔细的看了看,发现原来也不是很难。不是电路,跟电路一点关系都没有,把它想象成一个神经元就好了,一切问题迎刃而解。嗯,是的,就是这么简单。。。最后在知乎上找了一篇文章,讲的挺不错的:https:…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

LSTM模型

之前一直想要了解一下LSTM模型的想法,看到一些介绍,说里面的各种门,遗忘门,输入门,输出门,是模拟电路的,然后自己就一直很莫名其妙,怎么还有电路什么的,然后就各种一直看不懂。。。现在回过头来仔细的看了看,发现原来也不是很难。不是电路,跟电路一点关系都没有,把它想象成一个神经元就好了,一切问题迎刃而解。嗯,是的,就是这么简单。。。

最后在知乎上找了一篇文章,讲的挺不错的:https://zhuanlan.zhihu.com/p/29927638

讲解

RNN网络结构

RNN结构
公式: h t = σ ( W h ∗ x t + U h ∗ h t − 1 + b h ) h_t = \sigma(W_h * x_t + U_h * h_{t-1} + b_h) ht=σ(Whxt+Uhht1+bh)
其中, W h W_h Wh

LSTM网络结构

LSTM网络结构
图中 σ , t a n h \sigma, tanh σ,tanh都可以看做是一个神经元,看似复杂,但是相较于RNN只是多了几个神经元而已。下面分析

1. 细胞状态

相较于RNN的隐含状态 h ( t ) h^{(t)} h(t),这里又多了一个细胞状态(cell state) C ( t ) C^{(t)} C(t)
细胞状态

2. 遗忘门

遗忘门
控制是否遗忘,以一定的概率控制是否遗忘上一层的细胞状态:
f ( t ) = σ ( W f ∗ h t − 1 + U f ∗ x ( t ) + b f ) f^{(t)} = \sigma(W_f*h_{t-1} + U_f * x^{(t)} + b_f) f(t)=σ(Wfht1+Ufx(t)+bf)
其中, f ( t ) f^{(t)} f(t)是遗忘门的输出,本身是 s i g m o i d sigmoid sigmoid函数,输出是(0, 1)的值,表示一定概率的遗忘细胞状态。

3. 输入门

输入门
用来处理输入,最终目的是为了更新细胞状态
i ( t ) = σ ( W i ∗ h t − 1 + U i ∗ x i + b i ) i^{(t)} = \sigma(W_i * h_{t-1} + U_i * x_i + b_i) i(t)=σ(Wiht1+Uixi+bi)
a ( t ) = t a n h ( W a ∗ h t − 1 + U a ∗ x i + b a ) a^{(t)} = tanh(W_a * h_{t-1} + U_a * x_i + b_a) a(t)=tanh(Waht1+Uaxi+ba)

4. 细胞状态更新

细胞状态更新
C ( t ) = f ( t ) ⨀ C ( t − 1 ) + i ( t ) ⨀ a ( t ) C^{(t)} = f^{(t)} \bigodot C^{(t-1)} + i^{(t)} \bigodot a^{(t)} C(t)=f(t)C(t1)+i(t)a(t)
其中, ⨀ \bigodot 表示 H a r a m a r d Haramard Haramard积。

5. 输出门

输出门
o ( t ) = σ ( W o ∗ h ( t − 1 ) + U o ∗ x ( t ) + b o ) o^{(t)} = \sigma(W_o*h^{(t-1)} + U_o * x^{(t)} + b_o) o(t)=σ(Woh(t1)+Uox(t)+bo)
h ( t ) = o ( t ) ⨂ t a n h ( C ( t ) ) h^{(t)} = o^{(t)} \bigotimes tanh(C^{(t)}) h(t)=o(t)tanh(C(t))

整个结构就这样介绍完了。就是几个神经单元。挺简单的吧。
其实可以换一个角度来看,三个 σ \sigma σ函数实际上就是三个忘记,忘记上一个细胞的状态,忘记当前的输入,忘记隐藏层的输出。中间的 t a n h tanh tanh就是一个RNN结构

为什么使用LSTM

由于RNN也有梯度消失的问题,因此很难处理长序列的数据,对RNN做了改进,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常规RNN的梯度消失,因此在工业界得到了广泛的应用

比较好的LSTM文章

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/195271.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号