循环神经网络中的梯度消失或梯度爆炸问题产生原因分析

循环神经网络中,通过时间反向传播(backpropagation through time,BPTT)实际上是循环神经网络中反向传播技术的一个特定应用。

(1)它要求我们将循环神经网络的计算图以此展开一个时间步,以获得模型变量和参数之间的依赖关系

(2)然后,基于链式法则,应用反向传播来计算和存储梯度。

(3)由于序列可能相当长,因此依赖关系链也可能相当长。

        例如,某个1000个字符的序列,其第一个词元可能会对最后位置的词元产生重大影响。这在计算上是不可行的,它需要的时间和内存都太多了,并且还需要超过1000个矩阵的乘积才能得到非常难以捉摸的梯度。这个过程充满可计算与统计的不确定性。

循环神经网络的梯度分析

       分析一个简化的模型,此模型描述了循环神经网络工作原理,模型中忽略了隐状态及其更新方式的细节。

      在简化模型中,将时间步t的隐状态表示为h_{t},输入表示为x_{t},输出表示为o_{t}w_{h}w_{o}分别表示隐藏层和输出层的权重。fg分别表示隐藏层和输出层的变换。

h_{t} =f\left ( x_{t} ,h_{t-1},w_{h}\right )

o_{t}=g\left ( h_{t} ,w_{o}\right )

前向传播的计算:

L\left ( x_{1} ,...,x_{T}, y_{1} ,...,y_{T},w_{h} ,w_{o}\right )=\frac{1}{T}\sum_{t=1}^{T}l\left ( y_{t} ,o_{t}\right ).

反向传播的计算:

\frac{\partial L}{\partial w_{h}}=\frac{1}{T}\sum_{t=1}^{T}\frac{\partial l\left ( y_{t},o_{t} \right )}{\partial w_{h}}

                                                                  =\frac{1}{T}\sum_{t=1}^{T}\frac{\partial l\left ( y_{t},o_{t} \right )}{\partial o_{t}}\frac{\partial g\left ( h_{t} ,w_{o}\right )}{\partial h_{t}}\frac{\partial h_{t}}{\partial w_{h}}

上式中第一项和第二项很容易计算,第三项\frac{\partial h_{t}}{\partial w_{h}}是比较难计算的,我们需要循环的计算参数w_{h}h_{t}的影响。

经过推导(此处省略推导过程),得到:

\frac{\partial h_{t}}{\partial w_{h}}=\frac{\partial f\left ( x_{t},h_{t-1},w_{h} \right )}{\partial w_{h}}+\sum_{t-1}^{i}\left (\prod_{j=i+1}^{t} \frac{\partial f\left ( x_{j},h_{j-1},w_{h} \right )}{\partial h_{j-1}} \right )\frac{\partial f\left ( x_{i},h_{i-1},w_{h} \right )}{\partial w_{h}}

其中当t很大时,链就很长,其中\prod代表的乘积阶数就会很高。

       这样就会导致最终的梯度\frac{\partial L}{\partial w_{h}}会因为其中的幂指数变得很敏感,容易产生非常大的数(梯度爆炸)和非常小的数(梯度消失)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/261484.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis BitMap(位图)

这里是小咸鱼的技术窝(CSDN板块),我又开卷了 之前经手的项目运行了10多年,基于重构,里面有要实现一些诸如签到的需求,以及日历图的展示,可以用将签到信息存到传统的关系型数据库(MyS…

BBS项目--登录

BBS阶段性测试总要求 django登录报错 Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。 原因分析:出现这种情况在Windows中很常见,就是端口被占用 解决措施:这时我们只需改一下端口便可以了 登录前端页面(HTML…

网络技术基础与计算思维实验教程_3.2_无线局域网与以太网互连实验

实验内容 实验目的 实验原理 实验步骤 打开上一个实验的文件 切换到物理工作区 导航到城市家园 放置一台交换机 和两台台式机 直通线连接 把AP0链接到交换机的端口3上 切换回逻辑工作区 选择DHCP自动获取网络信息 PC1同样 然后 验证通信过程 laptop0和PC0 laptop1和PC1 验…

AcWing算法进阶课-1.1.2Dinic/ISAP求最大流

算法进阶课整理 CSDN个人主页:更好的阅读体验 原题链接 题目描述 给定一个包含 n n n 个点 m m m 条边的有向图,并给定每条边的容量,边的容量非负。 图中可能存在重边和自环。求从点 S S S 到点 T T T 的最大流。 输入格式 第一行包…

CentOS6.10 卸载MySQL8.0.34升级至8.0.35

准备要更新的MySQL安装包,下载地址:MySQL :: Download MySQL Community Server 查看当前MySQL版本 备份数据库 mysqldump -uroot -p -B > /opt/backup/20231220_mysql.sql 检查备份文件 查看所有服务项: service --status-all 可以看到我们注册的MySQL服务是mysqld 停止…

2023年中国数据智能管理峰会(DAMS上海站2023)-核心PPT资料下载

一、峰会简介 数据已经成为企业的核心竞争力!谁掌控数据、更好的利用数据、实现资产化,谁就会真正率先进入大数据时代。 1、数据智能管理趋势和挑战 在峰会上,与会者讨论了数据智能管理的最新趋势和挑战。随着数据量的不断增加&#xff0c…

FMCW雷达仿真:基于L形阵列4D点云获取

摘要:本期内容为3D点云目标获取的延续工作,在距离、速度、方位角估计的基础上,通过设计L型阵列结构,进一步实现目标俯仰角的估计,最终实现目标4-D点云的获取。首先,通过中频信号建立仿真信号模型&#xff0…

【Chrome】ERR_SSL_PROTOCOL_ERROR问题

文章目录 前言一、下载二、使用步骤总结 前言 Edge升级最新版后,有的https访问不了,报如下错误 发现新版Chrome以及Chromium内核访问nginx ssl时报错,顺着这个思路接着查看到大佬的结论:服务器nginx使用的openssl版本过低&#…

MyBatis关联查询(一、一对一查询)

MyBatis关联查询(一、一对一查询) 需求:查询账户信息,关联查询用户信息。 分析:因为一个账户信息只能供某个用户使用,所以从查询账户信息出发关联查询用户信息为一对一查询。 在第一个mybatis项目并读取数…

【网络编程】poll和epoll服务器的设计

文章目录 前言一、poll二、epoll 1.epoll初识2.epoll服务器的设计3.epoll的工作原理4.epoll的优点5.epoll的工作模式总结 前言 poll和select一样,也是一种linux中的多路转接的方案。而poll解决了select的两个问题: 1.select的文件描述符有上限的问题。…

[计网02] 数据链路层 笔记 总结 详解

目录 数据链路层概述 主要功能 封装成帧 透明传输 差错检测 冗余码 差错控制 检错编码 纠错编码 奇偶效验法 CRC循环冗余码 静态分配信道 频分多路复用FDM 时分多路复用TDM 波分多路复用WDM 码分多路复用CDM 随机访问介质的访问控制 ALOHA CSMA CSMA/CD CSMA/…

Weblogic Server工具WLST的使用

1.Weblogic脚本工具WLST介绍 可以用命令行来操作 Weblogic scripting tools 2.Weblogic WLST三种工作模式 2.1 wlst.sh tips:weblogic的T3 协议与HTTP/HTTPS 协议 操作如下:wlst在 common目录下 weblogic14c/wlserver/common/bin/ [weblogicfysedu32 weblogic]$…

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!😎 前言🙌【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!查看自己的配置文件:最终成功访问如图所示: 总结撒花…

C# SQLite基础工具类

目录 1、安装System.Data.SQLite工具包 2、创建数据库 3、数据库的连接与断开 4、执行一条SQL语句 5、批量执行sql语句 6、返回首行首列值 7、执行sql语句返回datatable 1、安装System.Data.SQLite工具包 2、创建数据库 /// <summary> /// 数据库路径 …

深度学习模型压缩方法:知识蒸馏方法总结

本文将介绍深度学习模型压缩方法中的知识蒸馏,内容从知识蒸馏简介、知识的种类、蒸馏机制、师生网络结构、蒸馏算法以及蒸馏方法等六部部分展开。 一、知识蒸馏简介 知识蒸馏是指用教师模型来指导学生模型训练,通过蒸馏的方式让学生模型学习到教师模型的知识。在模型压缩中,…

在RT-Thread中使用SystemView进行调试分析

一、SystemView SystemView is a toolkit for visual analysis of any embedded system. SystemView gives complete insight into an application, to gain a deep understanding of the runtime behavior, going far beyond what a debugger is offering. This is particula…

VUE实现购物商城网站前端源码

文章目录 1.设计来源1.1 登录注册页面1.2 主界面1.3 列表界面1.4 详细界面1.5 购物车界面 2.源码2.1源码目录结构2.2源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/135054910 VUE实现购物商城网站前端源码&…

thinkphp的生命周期

1.入口文件 index.php 用户通过入口文件&#xff0c;发起服务请求&#xff0c;是整个应用的入口与七点 定义常量&#xff0c;加载引导文件&#xff0c;不要放任何业务处理代码 2.引导文件 start.php; 加载常量->加载环境变量->注册自动加载->注册错误与异常->加…

在modelsim中查看断言

方法一&#xff1a;单纯的modelsim环境 &#xff08;1&#xff09;编译verilog代码时按照system verilog进行编译 vlog -sv abc.v 或者使用通配符编译所有的.v或者.sv文件 &#xff08; vlog -sv *.sv *.v&#xff09; &#xff08;2&#xff09;仿真命令加一个-assert…

手把手教你制作微信图书小程序商城

随着微信小程序的普及和发展&#xff0c;越来越多的商家开始意识到微信小程序的商机。微信小程序商城成为了各行各业商家们开展线上业务的首选。那么&#xff0c;如何制作一款自己的微信图书小程序商城呢&#xff1f;下面就手把手教你一步步完成。 第一步&#xff0c;登录乔拓云…