首页 > 其他分享 >RNN原理介绍

RNN原理介绍

时间:2023-01-11 22:02:04浏览次数:37  
标签:输出 partial RNN 导数 梯度 介绍 原理 输入

RNN原理

RNN在实际使用的频率并不多,大多使用LSTM替代RNN,因此对RNN进行简单的介绍。RNN是研究LSTM的基础,毕竟LSTM是基于RNN的改良,二者循环原理大体一致。

初识RNN,要记住在时间步上,RNN的权值共享即可。

RNN的运行原理就相当于,每一个时间步利用RNN计算一次得到输出结果,每个时间步上的RNN都是同一个东西。

RNN输入到输出

RNN有两个输入,其中一个输入是RNN运行时的状态,我们无法对其进行操作。

  • 输入:

RNN只有两个输入: $ x_t $ 和\(h_{t-1}\)。这两个输入分别为当前时刻的样本输入和上一时刻的隐层状态输入。我们无法操作\(h_{t-1}\),只需要指定\(x_t\)即可。

  • 输出:

RNN有两个输出:\(O_t\)和\(h_t\)。这两个输出分别为当前时间步的输出和当前时间步的隐藏层输出。当前隐藏层转态将作为输入参与下一时间步的计算。

由输入到输出\(O_t\)和\(h_t\)的计算公式分别为:

\(h_t=\sigma(U*x_t+V*h_{t-1}+b) \qquad(1)\)

\(O_t=W*h_t+c\qquad(2)\)

输出整个RNN网络的最终结果时,最后一层RNN输出的结果\(O_t\)需要进行一次非线性变换,如果是分类网络,激活函数一般为softmax。

\(\widetilde y_t =f(O_t) \qquad(3)\)

RNN优缺点

优点:

  • 处理短序列,循环神经网络工作的比较好。

缺点:

  • 不能处理长序列问题,原因是RNN循环相乘相乘导致梯度消失或者梯度爆炸,几乎不可训练
  • RNN的这种利用上一步的输出作为上一时间步的信息输入到当前时间步,在任意时间步处理中,只参考了前面时间步的特征,序列后方没有学到更前面的时间步的特征。因此引出了BRNN。

RNN梯度消失或者梯度爆炸的原因和解决办法

在RNN反向传播中,需要求\(h_t\)相对权重V的偏导数,而这时由于有\(h_{t-1}\),\(h_{t-1}\)又是关于V的函数,根据链式求导法则,需要求\(h_t\)对\(h_{t-1}\)的偏导数,一直回溯1~(t-1)所有时刻的信息,于是会存在连乘项\(\prod {\partial h_t \over \partial h_{t-1}}\)

根据(1)式可知,\({\partial h_t \over \partial h_{t-1}}\)偏导数为:\(\sigma'*V\),连乘之后,会有\(\sigma'\)连乘。由于RNN使用sigmod激活函数,其导数范围在[0,0.25]之间,那么当V>4时会产生梯度爆炸,而当V<4时会产生梯度消失。

所以RNN在处理长序列时,会导致梯度消失和梯度爆炸。梯度爆炸可以采取clip,但是梯度消失比较难以解决。

标签:输出,partial,RNN,导数,梯度,介绍,原理,输入
From: https://www.cnblogs.com/happy-lagrange/p/17045013.html

相关文章

  • spring boot——请求与参数校验——Rresponse响应消息概念&response对象介绍
                               ......
  • Vue.js 响应式原理
    Vue.js是一个渐进式的JavaScript框架,它使用了响应式系统来维护应用程序的状态。响应式系统是Vue.js的核心部分,它使得应用程序能够自动地更新视图,当数据发生变化时。在Vue.......
  • 02-Sed语法介绍
    1Sed语法介绍介绍Sed支持的基本命令及其命令行语法,Sed可以通过以下两种形式进行调用:学习sed命令使用之前,需要掌握正则表达式的用法。sed[-n][-e]'commands'filess......
  • Python学习笔记-常用模块介绍--时间模块
    1.时间模块分为哪三种格式?1.时间戳2.格式化字符串3.结构化时间 2.时间的示例#1.时间戳---常用于运算的print(time.time())#2.格式化字符串---用于显示,方......
  • Python学习笔记-常用模块介绍--猴子补丁
    1.什么是猴子补丁?属性在运行时的动态替换,叫做猴子补丁(MonkeyPatch)【发音ˈmʌŋkipætʃ】是一种思想,应用于团队引用了公共模块,想丰富模块,就在入口打这种“猴子补......
  • 动态范围控制原理
    DRC介绍开门见山,动态范围的定义就是信号的最大幅值和最小幅值比值的对数(单位dB),动态范围会受到系统中各个环节的影响。例如同样是这段音乐,在一个40dB背景噪声......
  • 计算机组成原理第二天( p3~p4)
    视频笔记1.1.2/1.1.3/1.2.1现代计算机硬件框图那部分没看,下次一定。......
  • 上下相机对位贴合怎么标定原理
    上下相机对位贴合标定原理:相机标定主要采用九点标定,通过走九个点位,得到图像坐标系与机械坐标系的关系。标定步骤:1、上相机标定。2、下相机标定。3、上下对位。相机标定方......
  • 华强买电阻-第一张原理图(上)-PCB系列教程1-5
    先放一张成品照这篇先讲讲怎么画这个电路板的原理图。我计划通过三个案例讲解PCB的设计技能,分别是贴片元件焊接练习板、流水灯电路板、STM32单片机开发板,难度都不大,都算是低......
  • AD绘制原理图最基本的操作-第一张原理图(下)-PCB系列教程1-6
    这篇文章玩不出什么花了,这是画原理图的最最基本的操作了。放置MC14060芯片及相关器件从集成库中找找元器件,放置MC1406芯片,电阻、电容、以及LED。按住“ctrl+鼠标滚轮”放大......