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文章

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C#操作 word代码

    推荐:http://www.cnblogs.com/roucheng/p/3521864.html

    2021年12月26日
    47
  • C++函数指针、指针函数、返回值为函数指针的函数浅谈

    C++函数指针、指针函数、返回值为函数指针的函数浅谈C++函数指针、指针函数、返回值为函数指针的函数浅谈引言函数指针、指针函数是C中重要而容易混淆的概念,博主将通过两个实例来说明这两个截然不同的概念。而返回值为函数指针的指针函数就更难理解了,放在文章的最后来介绍。函数指针函数指针是一种特殊的指针,它指向函数的入口。例如int(*add)(int,int);定义了一个函数指针add,用于指向返回值为int,并且有两个int参数的函数…

    2022年6月22日
    25
  • TCP协议和UDP协议

    TCP协议和UDP协议1.传输控制协议TCP1.1TCP的主要特点:1.1.1面向连接的运输层协议socket部分讲述tcp连接的建立tcp连接的释放tcp的有限状态机1.1.2每一条TCP连接只能有两个端点,每一条TCP链接只能是点对点的(一对一)1.1.3TCP提供可靠交付的服务可靠传输的工作原理可靠传输的实现流量控制拥塞控制1.1.4TCP提供全双工通信1.1.5面向字节流流式服务的特点1.2与TCP有关的面试问题2.用户数据报协议UDP2.1UDP协

    2022年6月7日
    39
  • django的render函数_reverse函数用法

    django的render函数_reverse函数用法reverse函数reverse函数的作用是用来进行URL反转的,接下来我们介绍reverse函数的几种用法之前我们都是通过url来访问视图函数。有时候我们知道这个视图函数,但是想反转回他的url

    2022年7月29日
    4
  • 剑指Offer面试题:2.二维数组中的查找

    一题目:二维数组中的查找二代码实现>>>23>>>1

    2021年12月19日
    40
  • Floyed算法[通俗易懂]

    Floyed算法[通俗易懂]这一讲简单介绍一下Floyed算法。话不多说,先放一道题帮助理解(其实是懒得描述具体应用场景)。FroggerFreddyFrogissittingonastoneinthemiddleofalake.SuddenlyhenoticesFionaFrogwhoissittingonanotherstone.Heplanstovisit

    2022年6月29日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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