【深度学习基础】从零开始的炼丹生活09——循环神经网络

循环神经网络(RNN)是一种处理序列数据的神经网络,特别适合处理可变长度的序列。本文介绍了RNN的类型,如导师驱动过程和输出循环网络,以及双向RNN。讨论了长期依赖的挑战,如时间维度的跳跃连接、渗漏单元和门控RNN,特别是LSTM和GRU。最后提到了外显记忆在解决神经网络记忆问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

往期回顾:
06——深度学习中的正则化
07——深度模型中的优化
08——卷积网络

为了处理一维序列数据,我们转向神经网络框架中另一强大的特化,循环神经网络。(主要参考《深度学习》和cousera上吴恩达的课程)


循环神经网络(recurrent neural network)或 RNN ,是一类用于处理序列数据的神经网络。大多数循环网络都能处理可变长度的序列。循环网络强调参数共享,这使得模型能够扩展到不同形式的样本并进行泛化。例如 “我八点吃的早饭” 和 “我早饭在八点吃” ,要提取时间信息。如果我们训练一个前馈网络,需要分别学习句子每个位置的所有语言规则,而循环网络在几个时间步内共享相同的权重,不需要在每个位置都分别学习。

在这里插入图片描述
循环网络的计算图有两种表现方式,如图。左边循环图展开后就是右边展开图。

一、循环神经网络

RNN 的设计模式主要有以下几种:

  • 每个时间步都有输出,并且隐藏单元之间有循环连接的循环网络。如图:在这里插入图片描述
  • 每个时间步产生一个输出,只有当前时刻的输出到下个时刻的隐藏单元之间有循环连接的循环网络。如图:在这里插入图片描述
  • 隐藏单元之间存在循环连接,读取整个序列后产生单个输出的循环网络,如图:
    在这里插入图片描述

现在我们研究第一种情形的 RNN 前向传播公式。这种循环网络可以计算任何图灵可计算的函数。我们使用 tanh 作为激活函数,RNN 从特定的初始状态 h ( 0 ) \boldsymbol h^{(0)} h(0)出发,开始前向传播。从 t = 1 t=1 t=1 t = τ t=\tau t=τ 的每个时间步,我们应用以下更新方程: a ( t ) = b + W h ( t − 1 ) + U x ( t ) h ( t ) = tanh ⁡ ( a ( t ) ) o ( t ) = c + V h ( t ) y ^ ( t ) = softmax ( o ( t ) ) \begin{aligned}\boldsymbol a^{(t)} &= \boldsymbol{b+Wh^{(t-1)}+Ux^{(t)}}\\ \boldsymbol h^{(t)}&=\boldsymbol{\tanh(a^{(t)})}\\ \boldsymbol o^{(t)}&=\boldsymbol {c +Vh^{(t)}}\\ \boldsymbol {\hat y^{(t)}}&=\text{softmax}(\boldsymbol o^{(t)}) \end{aligned} a(t)h(t)o(t)y^(t)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值