通俗易懂--循环神经网络(RNN)的网络结构!(TensorFlow实现)

本文介绍了循环神经网络RNN的基本概念、应用、网络结构、双向RNN以及BPTT算法。RNN适用于处理序列数据,如文本生成、机器翻译等。双向RNN能从前向和后向传递信息。BPTT用于反向传播计算。在训练时,RNN的Loss可能因梯度震荡而波动,可通过梯度截断解决。
摘要由CSDN通过智能技术生成

1. 什么是RNN

循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)

1.1 RNN的应用

  • 文本生成(生成序列)
  • 机器翻译
  • 看图说话
  • 文本(情感)分析
  • 智能客服
  • 聊天机器人
  • 语音识别
  • 搜索引擎
  • 个性化推荐

1.2 为什么有了CNN,还要RNN?

  • 传统神经网络(包括CNN),输入和输出都是互相独立的。图像上的猫和狗是分隔开的,但有些任务,后续的输出和之前的内容是相关的。例如:我是中国人,我的母语是____。这是一道填空题,需要依赖于之前的输入。
  • 所以,RNN引入“记忆”的概念,也就是输出需要依赖于之前的输入序列,并把关键输入记住。循环2字来源于其每个元素都执行相同的任务。
  • 它并⾮刚性地记忆所有固定⻓度的序列,而是通过隐藏状态来存储之前时间步的信息。

1.3 RNN的网络结构

首先先上图,然后再解释:

现在我们考虑输⼊数据存在时间相关性的情况。假设 X t ∈ R n ∗ d X_t\in_{}\mathbb{R}^{n*d} XtRnd 是序列中时间步t的小批量输⼊, H t ∈ R n ∗ h H_t\in_{}\mathbb{R}^{n*h} HtRnh 是该时间步的隐藏变量。那么根据以上结构图当前的隐藏变量的公式如下:

H t = ϕ ( X t W x h + H t − 1 W h h + b h ) H_t=\phi(X_tW_{xh}+H_{t-1}W_{hh}+b_h) Ht=ϕ(XtWxh+Ht1Whh+bh)

从以上公式我们可以看出,这⾥我们保存上⼀时间步的隐藏变量 H t − 1 H_{t-1} Ht1,并引⼊⼀个新的权重参数,该参数⽤来描述在当前时间步如何使⽤上⼀时间步的隐藏变量。具体来说,时间步 t 的隐藏变量的计算由当前时间步的输⼊和上⼀时间步的隐藏变量共同决定。 ϕ \phi ϕ 函数其实就是激活函数。

我们在这⾥添加了 H t − 1 W h h H_{t-1}W_{hh} Ht1Whh ⼀项。由上式中相邻时间步的隐藏变量 H t 和 H t − 1 H_t 和H_{t-1} H

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值