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

深度学习7(梯度下降算法改进)

优化遇到的问题

梯度消失

问题描述
        在反向传播过程中,梯度通过链式法则逐层传递时,如果梯度值过小(尤其是激活函数的导数小于1时),梯度会指数级衰减,导致浅层网络的权重几乎不更新,模型无法有效学习。

常见原因

        使用饱和激活函数(如Sigmoid、Tanh),其导数在两端接近0。

        网络过深,梯度连乘后变得极小。

解决方案

        使用ReLU、Leaky ReLU等非饱和激活函数:避免梯度因激活函数导数过小而消失。

        批量归一化(Batch Normalization):稳定每层的输入分布,缓解梯度消失。

        残差连接(ResNet):通过跳跃连接(Skip Connection)绕过非线性层,直接传递梯度。

        梯度裁剪(Gradient Clipping):限制梯度范围,防止过小或过大。

        权重初始化:如He初始化、Xavier初始化,适配激活函数特性。

梯度爆炸

问题描述
        与梯度消失相反,梯度值在反向传播中指数级增大(尤其是权重矩阵的范数大于1时),导致权重更新剧烈,模型无法收敛。

常见原因

        权重初始化值过大。

        网络过深且梯度连乘后膨胀。

解决方案

        梯度裁剪(Gradient Clipping):设定阈值,强制截断过大的梯度。

        权重正则化(L1/L2):限制权重的大小。

        使用更小的学习率:降低每次更新的步长。

        权重初始化调整:如Xavier/Glorot初始化。

鞍点问题

问题描述

        在高维优化空间中,某些方向的梯度为0(局部最小值),但其他方向梯度不为0(如马鞍形状)。此时优化算法可能停滞。

原因

        高维空间中鞍点比局部最小值更常见(尤其在大规模神经网络中)。

解决方法

        使用动量优化器(如Momentum、Adam),利用历史梯度信息跳出鞍点。

        引入随机性(如SGD的小批量噪声可能帮助逃离鞍点)。

        二阶优化方法(如牛顿法,但计算成本高,较少用于深度学习)。


解决方法

批梯度下降和小批量梯度下降法


        批梯度下降(Batch Gradient Descent)其在更新参数时使用所有的样本来进行更新。对整个训练集进行梯度下降法的时候,我们必须处理数据集,然后才能进行一步梯度下降,即每一步梯度下降法需要对整个训练集进行一次处理如果数据集很大的时候,处理速度就会比较慢。

        小批量梯度下降法(Mini-Batch Gradient Descent):每次同时处理固定大小的数据集。算法速度执行很快。如果每次处理一个样本,则变为随机梯度下降法(stochastic gradient descent)。

        

名称        优点缺点
 批梯度下降对所有 m 个训练样本执行一次梯度下降,每一次迭代时间较长,训练过程慢;相对噪声低一些,成本函数总是向减小的方向下降。
小批量梯度下降法对每一个训练样本执行一次梯度下降,训练速度快,但丢失了向量化带来的计算加速:有很多噪声,需要适当减小学习率,成本函数总体趋势向全局最小值靠近,但永远不会收敛,而
直在最小值附近波动。

http://www.dtcms.com/a/268740.html

相关文章:

  • SLAM文献之Efficient and Consistent Bundle Adjustment on Lidar Point Clouds(BALM)
  • 安卓10.0系统修改定制化____实现自动开启 USB 调试​的步骤解析 列举常用的几种修改方法
  • 【氮化镓】​​GaN帽层对HEMTs栅极漏电机制的影响
  • LeetCode 2099.找到和最大的长度为 K 的子序列:自定义排序
  • 前端篇——HTML知识点体系
  • 解决jenkins的Exec command命令nohup java -jar不启动问题
  • 订单初版—1.分布式订单系统的简要设计文档
  • Vue 2 vs Vue 3:核心区别详解与升级指南
  • 使用ansible的角色实现批量安装nginx服务
  • ReAct (Reason and Act) OR 强化学习(Reinforcement Learning, RL)
  • [特殊字符] Python 实战 | 批量统计中文文档词频并导出 Excel
  • iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
  • Spring的Bean原型模式下的使用
  • OpenWebUI(3)源码学习-后端models数据模型模块
  • 【论文撰写】如何把AI生成的文本公式复制在word中,完整的复制公式,拷贝豆包生成的公式
  • 网络安全之注入攻击:原理、危害与防御之道
  • 文件IO day29
  • 代码幽灵5-终局:静默编译
  • Baklib: 用 “技术轻量化” 解决内容管理 “重需求”
  • Linux命令的命令历史
  • 大数据在UI前端的应用创新:基于情感计算的用户体验优化
  • 冠能高端系列真实口碑如何
  • TCP backlog工作机制
  • AI时代,传统票务系统该往哪里使劲?
  • 华为手机如何扫描到SLE设备
  • 如何备份vivo手机中的联系人?
  • “猫攻击”揭示推理模型脆弱性,凸显上下文工程的重要性
  • 存储器介绍
  • React16,17,18,19新特性更新对比
  • 面向智驾的车规级高精度RTK模块UM680A的引脚功能