# RNN

> 循环层的状态值体现了记忆功能，按照时间线展开之后，它包含了从1时刻开始，到t时刻为止的信息
>
> 循环层的每个神经元当前时刻的状态值，与本层其他所有神经元上一时刻的状态值都有关系，而不只和本神经 元上一时刻的状态值有关

![](/files/-LqCiM4F07BxDRvIuYyU)

## 循环层

记住网络在上一个时刻运行时产生的状态值，并将该值用于当前时刻输出值的生成

$$h\_t=f(h\_{t-1},x\_t)=f(W\_{xh}x\_t+W\_{hh}h\_{t-1}+b)$$

使用激活函数的原因和全连接神经网络，卷积神经网络相同，和全连接神经网络相比，唯一的不同是记住了本层神经元在上一时刻的输出值（状态值）

## 输出层

输出层以循环层的输出值作为输入，并产生循环神经网络最终的输出，它不具有记忆功能

$$
y\_t=g(W\_oh\_t+b\_o)
$$

变换函数的类型根据任务而定，对于分类任务一般选用softmax函数，输出各个类的概率

## 正向

> 当输入为$$x\_1$$时，网络的输出为
>
> $$h\_1=f(W\_{xh}x\_1+b\_h)$$
>
> $$y\_1=g(W\_oh\_1+b\_o)$$
>
> 当输入为$$x\_2$$时，（上一轮的h也输入），网络的输出为
>
> $$h\_2=f(W\_{xh}x\_2+W\_{hh}h\_1+b\_h)=f(W\_{xh}x\_2+W\_{hh}f(W\_{xh}x\_1+b\_h)+b\_h)$$
>
> $$y\_2=g(W\_oh\_2+b\_o)$$
>
> 以此类推，每时刻的输出都与前面所有的输入有关
>
> 为了保持一致x1时刻也可以有h0向量，写成$$w\_{hh}h\_0$$，不过看作是0向量，所以不写也一样

## 损失

![](/files/-LqZypV_QZGu1u9IEtYT)

> 循环神经网络的反向传播是基于时间轴进行的，需要计算所有时刻的总损失函数对所有参数的梯度，然后用梯 度下降法进行更新 循环神经网络在各个时刻的权重、偏置都是相同的

考虑前面的简单网络，按照时间轴展开后为

![](/files/-LqZypVbvv-HIubbSx2T)

## 问题

梯度消失

> 由于循环层一般用tanh作为激活函数，层次过多之后会导致梯度消失问题和残差网络类似
>
> 可以采用跨层连接的方案

爆炸

> 循环神经网络中，梯度爆炸会导致网络不稳定，模型损失变成 NaN，
>
> 无法利用训练数据学习，结果是网络无法学习长的输入序列数据；梯度爆炸会引起网络不稳定
>
> 每个节点和层的误差梯度值持续超过 1.0可能导致梯度爆炸

提出了LSTM、GRU，避免之前RNN那样直接乘以矩阵W，导致越来越小/大

<http://baijiahao.baidu.com/s?id=1587462776558160221&wfr=spider&for=pc>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://im-qianuxn.gitbook.io/pytorch/ji-suan-ji/shen-du-xue-xi-li-lun/rnn.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
