热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

机器学习_神经网络训练时梯度爆炸和梯度消失产生的原因及解决方法

梯度爆炸和梯度消失问题一般在深层神经网络中,我们需要预防梯度爆炸和梯度消失的情况。梯度消失(gradientvanishingproblem
梯度爆炸和梯度消失问题

一般在深层神经网络中,我们需要预防梯度爆炸和梯度消失的情况。

梯度消失(gradient vanishing problem)和梯度爆炸(gradient exploding problem)一般随着网络层数的增加会变得越来越明显。

例如下面所示的含有三个隐藏层的神经网络,梯度消失问题发生时,接近输出层的hiden layer3的权重更新比较正常,但是前面的hidden layer1的权重更新会变得很慢,导致前面的权重几乎不变,仍然接近初始化的权重,这相当于hidden layer1没有学到任何东西,此时深层网络只有后面的几层网络在学习,而且网络在实际上也等价变成了浅层网络。

在这里插入图片描述

那么产生这种现象的原因是什么呢?

我们来看看看反向传播的过程:

(假设网络每一层只有一个神经元,并且对于每一层yi=σ(zi)=σ(wixi+bi)y_{i} = \sigma(z_{i}) = \sigma(w_{i}x_{i} + b_{i})yi=σ(zi)=σ(wixi+bi))

在这里插入图片描述

可以推导出:

在这里插入图片描述

而sigmoid的导数σ′(x)\sigma^{'}(x)σ(x)如下图所示:

在这里插入图片描述

可以知道&#xff0c;σ′(x)\sigma^{&#39;}(x)σ(x)的最大值是14\frac{1}{4}41&#xff0c;而我们初始化的权重∣w∣|w|w通常都小于1&#xff0c;因此σ′(x)∣w∣<&#61;14\sigma^{&#39;}(x)|w| <&#61; \frac{1}{4}σ(x)w<&#61;41&#xff0c;而且链式求导层数非常多&#xff0c;不断相乘的话&#xff0c;最后的结果越来越小&#xff0c;趋向于0&#xff0c;就会出现梯度消失的情况。

梯度爆炸则相反&#xff0c;σ′(x)∣w∣>1\sigma^{&#39;}(x)|w| > 1σ(x)w>1时&#xff0c;不断相乘结果变得很大。

梯度爆炸和梯度消失问题都是因为网络太深&#xff0c;网络权重更新不稳定造成的&#xff0c;本质上是因为梯度方向传播的连乘效应。

梯度爆炸和梯度消失的解决方法
  1. 预训练加微调。
  2. 梯度截断。
  3. 使用ReLU、LeakyReLU等激活函数。
  4. 加BN层。
  5. 使用残差结构。

推荐阅读
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 机器学习中的主要距离度量方法
    本文介绍了机器学习领域常用的几种距离计算方法,包括欧几里得距离、切比雪夫距离和马氏距离等,详细解释了每种距离的数学定义及其应用场景。 ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 李宏毅机器学习笔记:无监督学习之线性方法
    无监督学习主要涵盖两大类别:一是聚类与降维,旨在简化数据结构;二是生成模型,用于从编码生成新的数据样本。本文深入探讨了这些技术的具体应用和理论基础。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
author-avatar
平凡屋之换
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有