梯度爆炸与深度学习中的梯度剪枝

作者:禅与计算机程序设计艺术

1.简介

深度学习(Deep Learning)的热潮带动了人们对AI技术的研发,其中涉及到梯度消失或爆炸的问题是很突出的一个难题。随着神经网络的越来越深、参数量的增加,训练过程中的梯度也逐渐变得越来越小或者越来越接近于零,甚至可能出现负值等异常情况。为了解决梯度爆炸现象,提升模型的泛化能力,研究者们提出了许多不同的方法,如批标准化(Batch Normalization)、层归约(Layer Reduction)、跳级连接(Skip Connections)、梯度裁剪(Gradient Clipping)、惩罚项(Perturbation Methods)、修剪梯度(Steepest Gradient Descent)等。但这些方法有些理论上比较复杂,实际操作起来也比较困难。本文主要通过实践的方式,以浅显易懂的方式,阐述梯度爆炸与深度学习中梯度剪枝的方法原理和操作步骤,并通过一个基于Tensorflow的实例来说明。

在正式介绍之前,先看看什么是梯度爆炸?为什么会产生梯度爆炸现象呢?

2.梯度爆炸

2.1 概念定义

2.1.1 梯度

在机器学习领域,梯度是一个矢量函数在某个点处切线上的单位方向所指向的方向和大小,用于衡量函数在该点的斜率变化率,一般用公式:

$$ abla f = \frac{\partial f}{\partial x}i + \frac{\partial f}{\partial y}j+\frac{\partial

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/131875290