梯度消失和梯度爆炸的原因

news2024/11/8 9:30:21

梯度消失和梯度爆炸

梯度爆炸和梯度消失本质上是因为梯度反向传播中的连乘效应。

梯度下降算法

举一个简单的例子,函数表达式为loss = 2w^2 + 4w,如下图

                                ​​​​​​​        ​​​​​​​        

为了求得w的最优值,使得loss最小,从上图很容易看出来当w = -1时,loss最小,也就是当loss函数的导数为0时。

对w1随机取一个值,比如w1 = 0.5,此时

        loss = 2 * 0.5^2 + 4 * 0.5 = 2.5,          loss' = 4 * w1 + 4 = 4 * 0.5 + 4 = 6

如果我们把w1减少0.1,即w2 = 0.4,那么loss就会缩小0.1的5倍多不到6倍,此时

        loss = 2 * 0.4^2 + 4 * 0.4 = 1.92,        loss' = 4 * w2 + 4 = 4 * 0.4 + 4 = 5.6

于是经过多次迭代,当wn = -1,loss降到最小值,loss函数的导数此时也为0了

        loss = -2,                                             loss' = 4 * wn + 4 = 4 * -1 + 4 = 0

由此可见当我们缩小w的值,loss也会缩小,最终取得最优值,这就是梯度下降的目的。

复合函数

在深度学习训练中,实际问题往往不是一个简单的函数能够表达的,而是需要复合函数来作为映射方法。即已知函数y = f(u),当u表示为u = g(x)时,y作为x的函数就可以表示为y = f(g(x))这样的嵌套结构,这种嵌套结构的函数,就称为f(u),g(x)的复合函数。

例子:函数y = (2 - x)^2 是函数u = 2 - x 和函数y = u^2的复合函数

链式法则

已知函数y = f(u),函数u = g(x),复合函数y = f(g(x))的导函数可以表示为y' = dy/dx = (dy/du)*(du/dx)

在多层神经网络中,输入x,最后一层输出y4,损失函数为C,激活函数为S,可以列出

                y1 = S(z1) = S(w1x + b1)

                y2 = S(z2) = S(w2x + b2) = S(w2y1 + b2)        (上一层的输出是这一层的输入)

                y3 = S(z3) = S(w3x + b3) = S(w3y2 + b2)        (同上)

                y4 = S(z4) = S(w4x + b4) = S(w4y3 + b2)        (同上)

根据链式法则,对b1求导得

dC/db1 = (dC/dy4)*(dy4/dz4)*(dz4/dy3)*(dy3/dz3)*(dz3/dy2)*(dy2/dz2)*(dz2/dy1)*(dy1/dz1)*(dz1/db1) = (dC/dy4)*S(z4)'*w4*S(z3)'*w3*S(z2)'*w2*S(z1)'*1

如果激活函数S为Sigmoid,则S'的函数曲线如下

可以看到S'值域区间为[0,0.25],以最大值0.25代入上述例子,

即dC/db1 = (dC/dy4)*0.25*0.25*0.25*0.25*1

再代入梯度下降算法更新公式θ = θ0 - η*▽f(θ0),

即b1 = b1 - η*(dC/dy4)*0.25*w4*0.25*w3*0.25*w2*0.25*1

当神经网络层数足够多时,η*▽f(θ0)将会变得非常小,θ会更新得非常慢,即梯度消失。

又有如果初始权值w大于1甚至更大,导致θ更新过大,即梯度爆炸。

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

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

相关文章

ER图设计神器,帮你省时省力,高效完成工作!

ER图(Entity-Relationship Diagram)工具用于设计数据库模型,通常用于表示数据实体、关系和属性之间的关系。以下是10个好用的ER图工具。 一、Lucidchart Lucidchart 是一款基于云的协作式图表设计工具,它允许用户创建、编辑和共享…

SAP发票及复制控制

一、概述 众所周知,SAP为业财一体化的ERP管理系统,因此财务发票必不可少,很多外贸企业还会用到形式发票。 发票相关的配置主要包含:发票类型、复制控制、发票定价以及自动过账的配置。 二、系统配置 1. 发票类型 1.1 概述 发…

Latex安装使用教程

在论文投稿时有些期刊要求使用Latex格式,比如博主现在就遇到了这个问题,木有办法,老老实实的学呗。大家可以去官网下载,但官网的界面设计属实有些一言难尽,因此我们可以使用国内的镜像。 LaTeX 基于 TeX,主…

2023年双十一第2波红包活动淘宝天猫京东双11红包领取优惠券跨店满多少减多少规则?

本文为大家提供众多福利: 2023年淘宝/天猫双十一红包第2波活动时间与领取入口,最高23888超级红包 2023年京东双十一红包第2波活动时间与领取入口,最高11111京享红包 草柴APP领淘宝/天猫、京东大额内部隐藏优惠券,拿购物返利 美…

Content-Type 值有哪些?

1、application/x-www-form-urlencoded 最常见 POST 提交数据的方式。 浏览器的原生 form 表单&#xff0c;如果不设置 enctype 属性&#xff0c;那么最终就会以 application/x-www-form-urlencoded 方式提交数据。 <form action"http://www.haha/ads/sds?name小草莓…

根据Aurora发送时序,造Aurora 发送数据包

首先Aurora采用AXIS接口 由于后续需要进行AXIS接口 不同时钟域的数据位宽转换&#xff08;64bit和256bit之间的转换&#xff09;&#xff0c;因此分两次走。 第一种方法&#xff1a;采用AXIS数据位宽转换IP AXIS跨时钟域IP 第二种方法&#xff1a;逻辑完成 下面记录逻辑…

ERP集成WMS仓储管理系统提升仓储效率

随着企业业务规模的不断扩张&#xff0c;仓储管理逐渐凸显其重要性。传统的仓储管理方式&#xff0c;随着业务量的增长&#xff0c;可能带来种种问题&#xff0c;如数据不准确、效率低下、成本增高等。在这样的背景下&#xff0c;ERP集成WMS仓储管理系统的出现成为企业的及时雨…

麒麟KYLINIOS软件仓库搭建01-新创建软件仓库服务器

原文链接&#xff1a;麒麟KYLINIOS软件仓库搭建01-新创建软件仓库服务器 hello&#xff0c;大家好啊&#xff0c;今天给大家带来麒麟桌面操作系统软件仓库搭建的文章01-新创建软件仓库服务器&#xff0c;本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版本上搭建内网…

Redis高可用解决方案之Redis集群,和Spring Cloud集成实战

专栏集锦&#xff0c;大佬们可以收藏以备不时之需 Spring Cloud实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏&#xff1a;https:/…

Java网站如何集成支付宝当面付,企业个人都能使用的支付(比较简单)

创建应用 这个得先去登录 - 支付宝创建应用 相关配置设置 maven配置 <dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.38.10.ALL</version></dependency> 支付服务代码 …

Linux:Docker-yum安装(2)

yum在线安装 我这里使用的是centos7默认仓库 如果没有了&#xff0c;可以去下面这个链接下载回来 KALItarro/default-yum: centos7-默认yum仓库 (github.com)https://github.com/KALItarro/default-yum wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.…

【Git企业开发】第三节.Git的合并冲突

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;Git企业级开发 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&#xff0…

海外问卷调查现在还可以做吗?

可以做&#xff0c;海外问卷调查是一个稳定长期的互联网创业项目。 大家好&#xff0c;我是橙河&#xff0c;这篇文章讲一讲海外问卷调查现在还可以做吗&#xff1f; 海外问卷调查&#xff0c;简单来说&#xff0c;就是外国的商业公司对外发放的付费调查问卷&#xff0c;按照…

1,2,3,4,5 专家正上路

早在20世纪70年代&#xff0c;德雷福斯兄弟(Hubert Dreyfus和Stuart Dreyfus)就开始研究人类如何获取和掌握技能&#xff0c;他们考察了日常生活中常见的各项技能活动&#xff0c;如开车、下棋、体育运动等&#xff0c;提出了德雷福斯模型。它是种构建理论&#xff0c;概括了从…

第十六章 隐马尔科夫模型

文章目录 简介概念随机变量与随机过程马尔可夫链隐含马尔可夫模型两个基本假设三个基本问题 算法观测序列生成算法概率计算算法前向概率与后向概率前向算法后向算法小结 概率与期望 学习问题监督学习方法Baum-Welch算法 预测算法近似算法(MAP)维特比算法(Viterbi) 简介 动态贝叶…

java--this关键字

1.this是什么 this就是一个变量&#xff0c;可以用在方法中&#xff0c;来拿到当前对象(这个this就相当于你的车钥匙&#xff0c;当你在把车停到了车库&#xff0c;然后你发现找不到你的车的时候&#xff0c;就会按一下车钥匙&#xff0c;让你的车叫一下&#xff0c;你就会晓得…

《现代C++语言核心特性解析》笔记(一)

一、新基础类型&#xff08;C11&#xff5e;C20&#xff09; C基础类型回顾一览表 1. 整数类型 long long 我们知道long通常表示一个32位整型&#xff0c;而long long则是用来表示一个64位的整型。不得不说&#xff0c;这种命名方式简单粗暴。不仅写法冗余&#xff0c;而且表…

若依笔记(四):代码生成器

已知使用MyBatisPlus代码生成器可以自动生成Entity、Mapper、Service、Controller代码&#xff0c;前提是数据库中有数据表&#xff0c;生成pojo类以及对于该数据表的增删改查命令的代码&#xff0c;若依更进一步能选择表后生成代码、预览、下载&#xff0c;同时可以生产前端代…

构建强大的Web应用之Django详解

引言&#xff1a; Django是一个功能强大且灵活的Python Web框架&#xff0c;它提供了一套完整的工具和功能&#xff0c;帮助开发者快速构建高效的Web应用。本篇文章将带您逐步了解Django的基本概念和使用方法&#xff0c;并通过实际的代码案例&#xff0c;帮助您从零开始构建自…

【docker】安装xxl-job-admin调配中心

1.安装数据库&#xff08;注意版本号&#xff0c;这里选择版本2.3.1&#xff09; 1.1下载代码&#xff0c;并切换到2.3.1分支 1.2 打开并运行xxl-job/doc/db/tables_xxl_job.sql 2.编写docker-compose.yaml&#xff0c;并运行 1. docker-compose.yaml 2.将yaml放入Linux系…