IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 浅谈RNN与LSTM -> 正文阅读

[人工智能]浅谈RNN与LSTM

参考链接:[译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络

文章目录

RNN

在这里插入图片描述

  1. 输入为序列 X = { x 0 , x 1 , . . . , x t , . . . } X=\{x_0,x_1,...,x_t,...\} X={x0?,x1?,...,xt?,...} ,输出为 H = { h 0 , h 1 , . . . , h t , . . . } H=\{h_0,h_1,...,h_t,...\} H={h0?,h1?,...,ht?,...},将内部的隐藏层认为是 A。
  2. 当前输出不仅依赖于当前的输入,还依赖于上一次的输出: h t = t a n h ( W [ h t ? 1 , x t ] + b ) h_t=tanh(W[h_{t-1},x_t]+b) ht?=tanh(W[ht?1?,xt?]+b)
  3. 存在的问题的是,对于长序列,如果相距过远,信息很难挖掘。

LSTM

在这里插入图片描述

相比于 RNN 直接将上一输出 h t ? 1 h_{t-1} ht?1? 交给A,还设计了一个称为 cell state 的东西,用来保存长期记忆,这里用 C = { c 0 , c 1 , . . . , c t , . . . } C=\{c_0,c_1,...,c_t,...\} C={c0?,c1?,...,ct?,...} 表示。很自然地,确定当前状态 c t c_t ct? 的值成了一个问题。

具体来说,有以下两个方面:

  1. 根据当前状态 h t ( x t , h t ? 1 , c t ? 1 ) h_t(x_t,h_{t-1},c_{t-1}) ht?(xt?,ht?1?,ct?1?),过去 cell state 即 c t ? 1 c_{t-1} ct?1? 的信息如何调整;

  2. 在当前的输入 ( x t , h t ? 1 ) (x_t,h_{t-1}) (xt?,ht?1?)下,哪些特征是需要保留在 cell state 里的。

这就要提到 LSTM 里的一个重要的设计,称为“门”,类似信号处理里的“窗”,其作用是选择信息。LSTM 的门由 sigmoid 和乘操作实现。在一些解释里,可能会有遗忘门,记忆门这样的说法,这里稍作参考。

sigmoid 函数如下:
σ ( x ) = 1 1 + e ? x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e?x1?
其取值范围在 (0,1),x 趋近于负无穷,值趋近于0,x趋近于正无穷,值趋近于1。这里就当作是按 0 和 1 来取值。这是一种毫不犹豫地取舍,1完全保留,0完全抛弃。经过sigmoid 的取舍后,可以得到一组 特征数据,表示着对各个维度的关注程度。

乘:在线性代数中,向量/矩阵的乘法其实是一种在不同的基下的映射/变换。所以,乘是 目标数据特征数据 下,做了一次映射/变换。 目标数据特征数据 所在的空间,进行投影。

c t ? 1 c_{t-1} ct?1? 为例,门的功能如下: T ? c t ? 1 = c t  ̄ T\cdot c_{t-1}=\overline{c_t} T?ct?1?=ct??,其中,T 表示经过 sigmoid 选择后的特征数据, T = σ ( W [ x t , h t ? 1 ] + b ) T=\sigma(W[x_t,h_{t-1}]+b) T=σ(W[xt?,ht?1?]+b),其中的变量是 [ x t , h t ? 1 ] [x_t,h_{t-1}] [xt?,ht?1?],W,b 是参数。

接下来,对 A 里面的一些动作进行分解。

  1. c t c_{t} ct? 的更新:
    a) c t  ̄ = T 1 ? c t ? 1 \overline{c_t}=T_1\cdot c_{t-1} ct??=T1??ct?1?。这里的 T 1 ? T_1\cdot T1?? 是常说的遗忘门,根据新的输入对当前的 cell state 进行调整;
    b) c ~ = T 2 ? t a n h ( W [ x t , h t ? 1 ] + b ) \widetilde{c}=T_2\cdot tanh(W[x_t,h_{t-1}]+b) c =T2??tanh(W[xt?,ht?1?]+b)。这 T 2 ? T_2\cdot T2?? 是常说的记忆门,对当前打算保存到 Cell state 的候选数据 t a n h ( W [ x t , h t ? 1 ] + b ) tanh(W[x_t,h_{t-1}]+b) tanh(W[xt?,ht?1?]+b) 进行选择;
    c) c t = c t  ̄ + c ~ c_t=\overline{c_t}+\widetilde{c} ct?=ct??+c 。至此,更新完成。
  2. 输出 h t h_t ht? h t = T 3 ? t a n h ( c t ) h_t=T_3\cdot tanh(c_t) ht?=T3??tanh(ct?)。这里的 T 3 ? T_3\cdot T3?? 就是常说的输出门。
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:31:54  更:2022-03-15 22:32:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 15:58:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码