【Recurrent Neural Network(RNN)】循环神经网络——李宏毅机器学习阅读笔记

本文探讨了循环神经网络(RNN)及其改进版长短期记忆网络(LSTM)的基本原理与应用。介绍了RNN如何通过记忆机制处理序列数据,并讨论了LSTM如何解决梯度消失问题以实现更高效的学习。

Recurrent Neural Network(RNN)

Example Application

Slot Filling
智慧订票系统:
在这里插入图片描述
在这里插入图片描述
How to represent each word as a vector?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是光这样,feedforward Network是无法solve这一问题的,因为他无法区别是leave Taipei还是arrive Taipei。
那我们就希望这个neuron network是有记忆的,即看到过arrive/leave这个词。
在这里插入图片描述
这种有记忆的network就叫做 recurrent neural network(rnn)
在这里插入图片描述

举例:

我们假设所有的w=1,没有bias;所有的激活函数都是线性的;
要给memory(每一个时间点都会被洗掉)一个初始值,我们假设给0
在这里插入图片描述
在这里插入图片描述
接下来2被存到memory中
在这里插入图片描述
在这里插入图片描述
rnn会考虑input sequence的order
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

of course it can be deep…

在这里插入图片描述

Elman Network & Jordan Network

在这里插入图片描述

Bidirectional RNN

同时train 一个正向的rnn和逆向的rnn
在这里插入图片描述
在这里插入图片描述

Long Short-term Memory(LSTM)

Input/Output/Forget Gate何时打开/关闭 是需要网络自己学的
LSTM有三个操控信号,一个输入信号
在这里插入图片描述
“-”为什么放在short-term之间,而不是long short之间?
因为他只是比较长的short term。是否遗忘取决于forget gate,关闭时代表遗忘
在这里插入图片描述
假设在四个z输入之前,cell中存了一个“c”
在这里插入图片描述
在这里插入图片描述
如果选择不遗忘c(由f(zf)决定),则需要再加起来即c‘
在这里插入图片描述
在这里插入图片描述

LSTM-Example

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
original network
在这里插入图片描述
LSTM 直接将neurons替换成LSTM的cell即可
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GRU是LSTM的simple版本,他只有两个gate,参数较少,所以比较不容易overfitting。simpleRNN指最原始的RNN,下图是目前标准的RNN。
在这里插入图片描述

Learning Target

在这里插入图片描述
RNN 用 Gradient Descent是可以train的
Backpropagation through time(BPTT) 基于时间的反向传播算法。
在这里插入图片描述
在这里插入图片描述
Why?
在这里插入图片描述
在这里插入图片描述
如何解决?
Clipping.
裁剪,当梯度过大时候进行裁剪。
在这里插入图片描述
为什么rnn会有这种奇特的特性呢?
sigmoid function? no
在这里插入图片描述
在这里插入图片描述
有什么样的技巧可以帮助我们解决这个问题呢?
在这里插入图片描述
可以让你的error surface不要那么崎岖, 在做LSTM时,你可以放心的把learning rate设置的特别小。

为什么我们要把RNN换成LSTM? LSTM可以handle gradient vanishing的问题。

为什么可以handle gradient vanishing的问题?
一旦你的weight,可以对memory的值发生影响时,这个影响会一直存在,除非forget gate关闭。不像rnn,其在每一个时间的会被forget掉。
在这里插入图片描述
在这里插入图片描述

Application

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何解决?
CTC
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
句法解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Attention-based Model

可以想成RNN的进阶版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Deep&Structured

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 李宏毅机器学习课程中关于RNN笔记内容概述 李宏毅机器学习课程中,RNN循环神经网络)的相关内容涵盖了基础理论、实际应用以及解决梯度消失问题的方法。以下是相关内容的详细总结: #### 一、RNN的基本概念与结构 循环神经网络Recurrent Neural Network, RNN)是一种用于处理序列数据的神经网络模型[^1]。其核心特点是能够保存先前计算的状态信息,并将其作为当前输入的一部分参与计算。这种机制使得RNN可以捕捉时间序列中的依赖关系。例如,在自然语言处理任务中,RNN可以通过记住前面的词来预测下一个词。 ```python import torch import torch.nn as nn class SimpleRNN(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(SimpleRNN, self).__init__() self.hidden_size = hidden_size self.rnn = nn.RNN(input_size, hidden_size, batch_first=True) self.fc = nn.Linear(hidden_size, output_size) def forward(self, x): h0 = torch.zeros(1, x.size(0), self.hidden_size).to(x.device) out, _ = self.rnn(x, h0) out = self.fc(out[:, -1, :]) return out ``` #### 二、双向RNN(Bidirectional RNN) 为了同时考虑前文和后文的信息,提出了双向RNN(Bidirectional RNN)。该模型通过两个独立的隐藏层分别从前向后和从后向前处理输入序列,最终将两者的结果合并以获得更丰富的上下文信息[^3]。 #### 三、长短时记忆网络(LSTM) 尽管RNN在理论上可以捕捉长距离依赖关系,但在实践中由于梯度消失或爆炸问题,通常难以有效建模长序列。为此,提出了长短时记忆网络(Long Short-Term Memory, LSTM),它通过引入门控机制(输入门、遗忘门、输出门)解决了这一问题[^2]。 #### 四、梯度消失问题及其解决方案 RNN在训练过程中容易遇到梯度消失问题,这会导致模型无法学习到长距离依赖关系。为了解决这一问题,除了使用LSTM外,还可以通过以下方法进行改进: - 使用残差连接(Residual Connections)。 - 应用正则化技术,如Dropout。 - 初始化权重矩阵以改善梯度传播[^4]。 #### 五、RNN的应用场景 RNN广泛应用于自然语言处理领域,包括但不限于: - 机器翻译:将一种语言的句子转换为另一种语言。 - 情感分析:判断文本的情感倾向。 - 文本生成:根据给定的前缀自动生成后续内容。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是小蔡呀~~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值