机器学习周报(RNN的梯度消失和LSTM缓解梯度消失公式推导)

文章目录

    • 摘要
    • Abstract
  • 1 RNN的梯度消失问题
  • 2 LSTM缓解梯度消失
    • 总结

摘要

在深度学习领域,循环神经网络(Recurrent Neural Network, RNN)被广泛应用于处理序列数据,特别是在自然语言处理、时间序列预测等任务中。然而,传统的RNN在长序列数据学习过程中容易出现梯度消失和梯度爆炸问题,使得模型难以捕捉长时间依赖性。梯度消失问题源于RNN的反向传播算法中,多次矩阵相乘导致梯度指数级衰减,从而影响模型性能。为解决这一问题,长短期记忆网络(Long Short-Term Memory, LSTM)应运而生。LSTM通过设计特殊的门结构(输入门、遗忘门和输出门)以及引入细胞状态的传播,有效缓解了梯度消失现象。本文推导了RNN梯度消失的数学公式,并详细说明了LSTM如何利用门结构保持梯度稳定性,从而捕捉长时间依赖。

Abstract

Recurrent Neural Networks (RNNs) are widely used in deep learning for handling sequential data, particularly in tasks such as natural language processing and time series forecasting. However, traditional RNNs often encounter the vanishing and exploding gradient problem when learning from long sequences, which hinders their ability to capture long-term dependencies. The vanishing gradient problem arises in RNNs due to multiple matrix multiplications during backpropagation, causing exponential decay of gradients and impacting model performance. To address this issue, Long Short-Term Memory (LSTM) networks were developed. LSTM alleviates gradient vanishing by introducing specially designed gate structures—input gate, forget gate, and output gate—along with a cell state that propagates through time. This paper derives the mathematical basis for the vanishing gradient in RNNs and explains how LSTM leverages gate structures to maintain gradient stability, enabling the model to capture long-term dependencies effectively.

1 RNN的梯度消失问题

在这里插入图片描述

  • RNN的缺点

当序列太长时,容易产生梯度消失,参数更新只能捕捉到局部以来关系,没法再捕捉序列之间长期的关联或依赖关系。

如图为RNN连接,输入x,输出o(简单线性输出),权重w,s为生成状态。

在这里插入图片描述

根据前向传播可得:

在这里插入图片描述
假设使用平方误差作为损失函数,对单个时间点进行求梯度,假设再t=3时刻,损失函数为 L 3 = 1 2 ( Y 3 − O 3 ) 2 L_3=\frac{1}{2}(Y_3-O_3)^2 L3=21(Y3O3)2,然后根据网络参数Wx,Ws,Wo,b1,b2等求梯度。

  • W o W_o Wo求梯度得:

在这里插入图片描述

  • W x W_x Wx求梯度得:

在这里插入图片描述

具体求解过程:首先,所求目标为 L 3 L_3 L3 W x W_x Wx的偏导,通过链式法则进行展开。对比前向传播公式图可知, O 3 O_3 O3中并不能直接对 W x W_x Wx求偏导,而是包含在 S 3 S_3 S3中,所以要展开成如下形式。

在这里插入图片描述

但在 S 3 S_3 S3中又包含 S 2 S_2 S2 S 2 S_2 S2中包含 W x W_x Wx S 1 S_1 S1 S 1 S_1 S1中又包含 W x W_x Wx,嵌套了很多层,为了方便表示,我们用 θ 3 \theta_3 θ3来表示 S 3 S_3 S3括号中的内容。进一步简化可得:

在这里插入图片描述
S 3 S_3 S3演变为 S 2 S_2 S2,同理可递推求出 ∂ S 2 ∂ W x \frac{\partial{S_2}}{\partial{W_x}} WxS2 ∂ S 1 ∂ W x \frac{\partial{S_1}}{\partial{W_x}} WxS1

梯度的更新同时依赖于x3,x2,x1包括其梯度值。

在这里插入图片描述此为t=3时刻的梯度公式,推广至任意时刻的梯度公式为:

在这里插入图片描述
此式括号中的项为求导的连乘,此处求出的导数是介于0-1之间的,有一定的机率导致梯度消失(但非主要原因)。
造成梯度消失和梯度爆炸的主要原因是最后一项:当 W s W_s Ws很小的时候,它的k-1的次方会无限接近于0,而当 W s W_s Ws大于1时,它的k-1次方会很大。

如下为t=20时梯度更新计算的结果:

在这里插入图片描述
从式中可以看出,t=3的节点由于连乘过多导致梯度消失(t=3时的信息, x 3 x_3 x3所乘的 W s 17 W_s^{17} Ws17由于 W s W_s Ws介于0,1之间,已经非常接近于0),无法将信息传给t=20,因此t=20的更新无法引入t=3时的信息,认为t=20节点跟t=3的节点无关联。

对于梯度爆炸和梯度消失,可以通过梯度修剪来解决。相对于梯度爆炸,梯度消失更难解决。而LSTM很好的解决了这些问题。

2 LSTM缓解梯度消失

此过程为公式推导(以求 W x f W_{xf} Wxf为例)

在这里插入图片描述

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

故得 ∂ L 1 ∂ W x f \frac{\partial{L_1}}{\partial{W_{xf}}} WxfL1

在这里插入图片描述
其中 ∂ C t ∂ C t − 1 \frac{\partial{C_t}}{\partial{C_{t-1}}} Ct1Ct

通过调节 W h f W_{hf} Whf W h i W_{hi} Whi W h g W_{hg} Whg的值,可以灵活控制 C t C_t Ct C t − 1 C_{t-1} Ct1的偏导值,当要从n时刻长期记忆某个东西到m时刻时,该路径上的 ∏ t = n m ∂ C t ∂ C t − 1 \quad \prod_{t=n}^m\frac{\partial{C_t}}{\partial{C_{t-1}}} t=nmCt1Ct ≈ \approx 1×1×1…×1=1从而大大缓解了梯度消失。
在这里插入图片描述

总结

传统RNN在处理长序列数据时,由于重复矩阵相乘使梯度呈指数级衰减,导致梯度消失问题。为此,RNN模型难以学习序列中远距离位置的依赖信息。通过对RNN的梯度推导可以看出,当模型深度较大时,梯度逐渐趋向于零,最终导致模型无法学习有效特征。LSTM网络通过引入细胞状态和多个门控机制来缓解这一问题。细胞状态在序列传递中起到信息通路的作用,门控机制则控制信息的增删过程,使得梯度的传递得以有效保留。通过这样的设计,LSTM能够在长序列任务中稳定地传递梯度,从而有效捕捉长时间依赖关系。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mastercam2025软件安装教程+MC2025中文安装包下载

一、软件下载 【软件名称】:MasterCAM 2025 【支持系统】:win10/win11 【百度网盘】:https://pan.baidu.com/s/12fY66cwRLGcKdeVoJ40ZRw?pwd70zi 二、Mastercam软件 Mastercam是美国 CNC Software 公司开发的一款 CAD/CAM 软件。它集二维…

[vulnhub] DC: 8

https://www.vulnhub.com/entry/dc-8,367/ 描述:在 Linux 上安装和配置双因素身份验证是否可以防止 Linux 服务器被利用 端口扫描主机发现 探测存活主机,179是靶机 nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.or…

自扶正救生艇,保障水上救援的安全卫士_鼎跃安全

在应急事件中,自扶正救生艇能够发挥关键的救援和保障作用,确保救援人员和被困人员的生命安全,尤其在极端天气或突发水上事故中展现出明显优势。 在救援过程中如果遭遇翻船,救生艇能够迅速恢复正常姿态,确保救援人员不会…

提升网站安全性 HTTPS的重要性与应用指南

内容概要 在如今数字化快速发展的时代,网站安全显得尤为重要。许多用户在访问网站时,尤其是涉及个人信息或金融交易时,对数据传输的安全性有着高度的关注。HTTPS(超文本传输安全协议)正是为了满足这种需求而诞生的。通…

QT——自定义控件绘图

一.QPaintEvent绘图事件 QPaintEvent是QT中一个重要的类,专门用于绘图事件。当QT视图组件需要重绘制自己的一部分时,就会产生该事件,通常发生在以下几种情况。 窗口第一次显示时:当窗口或控件第一次出现在屏幕中,系统…

【Python · Pytorch】人工神经网络 ANN(上)

【Python Pytorch】人工神经网络 ANN(上) 0. 生物神经网络1. 人工神经网络定义2. 人工神经网络结构2.1 感知机2.2 多层感知机2.3 全连接神经网络2.4 深度神经网络 2. 训练流程※ 数据预处理 (Data Preprocessing) 3. 常见激活函数3.1 Sigmoid / Logisti…

【Redis_Day2】在Linux中安装Redis5

本篇涉及Linux中的三条指令:su;apt;vim,可以了解后再来浏览本篇。或在评论留言。 【Redis_Day2】在Linux中安装Redis5 安装修改配置文件使用redis-cli连接服务器 安装 Linux版本选择Ubuntu22.04 Redis版本选择Redis5 登录Ubunt…

第1篇 引言

一、AIGC概念 1、AIGC定义 AIGC,即生成式人工智能(Artificial Intelligence Generated Content),是指利用人工智能技术自动生成或辅助创作内容的过程和结果。 简单来说:过去,写文章、画张图、唱首歌、弄个…

深度学习---------------------------------Transformer

目录 Transformer架构多头注意力有掩码的多头注意力基于位置的前馈网络层归一化信息传递预测总结代码多头注意力使用多个头并行计算选择缩放点积注意力作为每一个注意力头测试该部分总代码Transformer基于位置的前馈网络改变张量的最里层维度的尺寸对比不同维度的层归一化和批量…

世界时区划分

1. AoE (Anywhere on Earth)代表地球上最后一个时区的时间,是全球范围内最晚的时间,通常用于截止日期。 2. UTC/GMT (协调世界时/格林威治时间)是全球的标准时间,所有时区都是基于UTC计算的。…

qt QImage详解

1、概述 QImage是Qt框架中用于处理图像数据的一个核心类。与QPixmap不同,QImage是在内存中直接存储图像像素数据的,这使得它适用于需要直接访问和修改像素的应用场景,比如图像处理算法、图像绘制以及图像分析等。QImage支持多种图像格式&…

DAY75WEB 攻防-验证码安全篇接口滥用识别插件复用绕过宏命令填入滑块类

知识点: 1、验证码简单机制-验证码过于简单可爆破 2、验证码重复使用-验证码验证机制可绕过 3、验证码智能识别-验证码图形码被可识别 4、验证码接口调用-验证码触发接口可枚举 图片验证码-识别插件-登录爆破&接口枚举 验证码识别绕过等技术适用于&#x…

字符串左旋 (干货无废话)

题目内容:实现一个函数,可以左旋字符串中的k个字符 例如:ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 画图解释: 上图分别是向左挪1次,2次,3次,4次,5次后的结果…

QML基础语法2

函数 函数格式: function关键字 函数名(参数名1:参数类型,参数名2:参数类型,...):返回值类型{} 其中: 函数名必须以小写字符开头,后面驼峰可以有多个参数或者没有参数参数类型可以不写返回值类型也可以不写 如何调用:通过id点…

Mac 配置SourceTree集成云效

1、背景 工作使用的是自己的笔记本,一个是比较卡,在一个是敏感信息比较多还是使用公司的电脑,但是系统是Mac就很麻烦,在网上找了帖子记录一下 2、配置 打开终端 ssh-keygen -t rsa #一直回车就行 cd .ssh cat id_rsa.pub #查…

Kubernetes中常见的volumes数据卷

华子目录 volumesk8s支持的卷的类型emptyDir卷功能emptyDir的使用场景示例 hostPath卷功能用法安全隐患示例 nfs卷功能应用示例:部署一台nfs服务器并在所有k8s节点中安装nfs-utils volumes 容器中文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序…

PaddleNLP的FAQ问答机器人

项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【DDRNet模型创新实现人像分割】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实…

Windows的MySQL开机自动启动问题

标题 问题描述 问题描述 在Windows系统中,我设置好了MySQL服务为自动启动,但在开机后发现MySQL服务任没有自动运行。我有点苦恼,每次连接MySQL,都要进入计算机管理,手动打开。 解决方法: 1.前提安装好MySQ…

基于Spring Boot的私房菜定制上门服务系统的设计与实现

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统私房菜定制上门服务系统信息管理难度大,容错率…

计算机毕业设计 | 基于SpringBoot的健身房管理系统(附源码)

1,项目背景 随着人们生活水平的提高和健康意识的增强,健身行业逐渐兴起并迅速发展。而现代化的健身房管理系统已经成为健身房发展的必备工具之一。传统的健身房管理方式已经无法满足现代化健身房的需求,需要一种更加高效、智能、安全的管理系…