当前位置: 首页 > article >正文

梯度的看法

危害

  • 梯度消失会导致我们的神经网络中前面层的网络权重无法得到更新,也就停止了学习。
  • 梯度爆炸会使得学习不稳定, 参数变化太大导致无法获取最优参数

根本原因

求解损失函数对参数的偏导数时,在反向传播,梯度的连续乘法(x中间值可能特别大或特别小,激活函数导数可能特别大、已经更新过的参数w也可能特别大或特别小(初始参数太大了))中总是遇上很大的绝对值(很小的绝对值),部分参数的梯度因为乘了很多较大(较小)的数而变得非常大(小)

具体表现

loss表现:梯度消失时loss几乎不变。梯度爆炸时loss非常大,甚至为nan

解决办法

1 减少网络层数

2 调节学习率(消失增大,爆炸减少)

3 激活函数调整为relu leakyrelu

4 归一化,bn或ln

5 resnet

6 l1和l2正则化

7 梯度裁剪

loss变nan的原因

1 没有归一化

2 学习率太大

transformer用到的防治梯度消失和梯度爆炸的方法

1 resnet

2 leakyrelu

3 ln(虽然用了leakyrelu,缓解了梯度消失的问题,但是求注意力系数的时候,softmax的输入过大时,偏导数也会很小,导致梯度消失的问题)

4 梯度裁剪

5 self-attention时q k相乘后处以了根号d


http://www.kler.cn/a/10226.html

相关文章:

  • html+js+css实现拖拽式便签留言
  • 【架构论文-1】面向服务架构(SOA)
  • LabVIEW编程基础教学(一)--介绍
  • java---认识异常(详解)
  • 【Vue】Vue3.0(二十)Vue 3.0 中mitt的使用示例
  • 计算机新手练级攻略——善用搜索引擎
  • MyBatis配置文件 —— 相关标签详解
  • 干翻Hadoop系列之:Hadoop前瞻之分布式知识
  • Leetcode.1992 找到所有的农场组
  • NumPy 秘籍中文第二版:十、Scikits 的乐趣
  • vue3+TS+Pinia+Vite项目实战之一
  • 程序员的日常瞎想,个人规划,和企业把控之间的微妙关系。职场人你懂!!
  • WPF MVVM模式构建项目
  • “三步走”推动云原生转型之路
  • Unity资源-音效初识
  • 【MySQL】表的约束
  • Wijmo JavaScript UI 5.20222.877 Crack
  • ESLint的配置
  • 使用向量机(SVM)算法的推荐系统
  • Flutter系列(七)ListView 图文列表详解
  • sourcemap文件泄露漏洞
  • C++开发必知的内存问题及常用的解决方法-经典文章
  • 算法自学__ 莫队
  • 比较系统的学习 pandas (2)
  • 18从零开始学Java之switch分支语句中该怎么用?
  • 【工作感悟】老程序员总结的四条工作经验教训