RNN学习笔记(一)--初识RNN

xiaoxiao2021-02-28  2

第一次整理内容有些凌乱

1.概述

1.1用途

Recurrent Neural Networks (RNN) 循环神经网络主要用于自然语言处理及序列标注问题

1.2特点

记忆:某一时间节点,获取输入向量x<t>信息,通过隐含层(包含多种多种block)激活函数激活后,将信息传递给后续节点

2.主要解决问题

2.1 many-to-many

输入信息x与输出信息y长度均大于1,例如,命名体识别任务、机器翻译任务等

2.2 one-to-many

输入信息长度为1,输出信息长度大于1

2.3 many-to-one

输入信息长度为大于1,输出信息长度为1

3 前向传播过程 forward propagation

3.1内部公式

RNN cell 内部结构数上图所示,以many-to-many中的输入输出信息一一对应的rnn模型为例;每一个节点包含两个输入信息

输入信息

a<t-1>—上一节点的激活值(主要的记忆功能),通常a<0>设为0向量

x<t>—本节点的输入信息

参数

包含五个待估计参数(均为整个序列的共享参数,每一次向下一节点传播均使用这四个参数)

Waa—激活值之间的参数,将上一节点激活值a<t-1>的信息,传入本节点激活值a<t>

Wax—输入信息与激活值之间的参数,将本节点输入信息x<t>的信息,传入本节点激活值a<t>

ba—激活值偏置

Wya—激活值与输出结果之间的参数

by—输出结果偏置

激活函数

tanh— Rnn常用激活函数公式如下

    

softmax—输出激活函数

公式

3.2数据流向

本图为Rnn某个cell内的数据流向

4 反向传播过程

5问题

梯度爆炸问题 解决方案gradient-clipping

梯度消失问题-y<t>的输出仅受位置较近的信息影响,不擅长捕捉远程依赖关系

传播方向单向问题 解决方案BRN

转载请注明原文地址: https://www.6miu.com/read-1750085.html

最新回复(0)