当前位置: 首页 > 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.xdnf.cn/news/1085365.html

相关文章:

  • 使用Ideal创建一个spring boot的helloWorld项目
  • TMC4361A 使用(未验证)
  • 如何排查服务器中已经存在的后门程序?
  • 【应急响应】Linux 自用应急响应工具(LinuxCheckShoot)
  • 接口漏洞怎么抓?Fiddler 中文版 + Postman + Wireshark 实战指南
  • 提示工程(Prompt Engineering)研究进展
  • Camera相机人脸识别系列专题分析之十六:人脸特征检测FFD算法之libcvface_api.so数据结构详细注释解析
  • AWS VPC Peering
  • Linux中程序的limits中的Max open files的配置由哪些参数决定
  • 明星AI自动化测试工具Midscene.js源码解析
  • Pr插件图文安装教程
  • 实用机器学习
  • C盘瘦身 -- 虚拟内存文件 pagefile.sys
  • 华为OD机试 2025B卷 - 字符串加密 (C++ Python JAVA JS C语言)
  • Python实现文件夹中文件名与Excel中存在的文件名进行对比,并进行删除操作
  • 剑指offer第2版:动态规划+记忆化搜索
  • 多表查询~
  • vue3使用summernote
  • OpenStack云平台管理
  • 回溯题解——子集【LeetCode】输入的视角(选或不选)
  • uniapp运行项目到ios基座
  • 【图像与信号处理】基于可微分二值化网络(DBNet)与循环卷积神经网络(CRNN)的电梯铭牌和限速器检验单识别方法
  • 6,Receiving Messages:@KafkaListener Annotation
  • mac中有多个java版本涉及到brew安装中,怎么切换不同版本
  • Baklib作为赞助商参加RubyConf China 2025 技术大会
  • 宝塔下载pgsql适配spring ai
  • Qt中的坐标系
  • 如果让计算机理解人类语言- Word2Vec(Word to Vector,2013)
  • 1.1_5_2 计算机网络的性能指标(下)
  • 腾讯云录音文件快速识别实战教程