深度神经网络训练中梯度不稳定现象研究综述
深度学习(七)梯度弥散(消散)和梯度爆炸

深度学习(七)梯度弥散(消散)和梯度爆炸靠近输⼊的神经元会⽐靠近输出的神经元的梯度成指数级衰减靠近输出层的hidden layer 梯度⼤,参数更新快,所以很快就会收敛;⽽靠近输⼊层的hidden layer 梯度⼩,参数更新慢,⼏乎就和初始状态⼀样,随机分布。
这种现象就是梯度弥散(vanishing gradient problem)。
⽽在另⼀种情况中,前⾯layer的梯度通过训练变⼤,⽽后⾯layer的梯度指数级增⼤,这种现象⼜叫做梯度爆炸(exploding gradient problem)。
总的来说,就是在这个深度⽹络中,梯度相当不稳定(unstable)。
1.梯度消失(vanishing gradient problem):原因:例如三个隐层、单神经元⽹络:假设上⾯是⼀个三层hidden layer的神经⽹络,每⼀层只有⼀个neuron,我们下⾯的分析仅仅针对bias,w也是可以类⽐的。
C是损失函数。
每⼀层的输⼊为z,输出为a,其中有z = w*a + b。
上⾯的等式∂c/∂b1由每⼀层的导数乘上对应的w最后乘上∂c/∂a4组成。
我们给b1⼀个⼩的改变Δb1,它会在神经⽹络中起连锁反应,影响最后的C。
我们使⽤变化率∂c/∂b1~Δc/Δb1来估计梯度。
接下来可以进⾏递推了。
先来计算Δb1对a1的影响。
σ(z)为sigmoid函数。
结果正好是上⾯∂c/∂b1等式的第⼀项,然后影响下⼀层的输出。
将上⾯推导出来的两个式⼦联合起来,就得到b1对于z2的影响:再和∂c/∂b1等式对⽐⼀下,惊喜!!然后的推导就是完全⼀样了,每个neuron的导数,乘上w,最终得到C的变化量:两边除以Δb1:sigmoid导数图像:sigmoid导数在0取得最⼤值1/4。
如果我们使⽤均值为0,⽅差为1的⾼斯分布初始化参数w,有|w| < 1,所以有:可以看出随着⽹络层数的加深的term也会变多,最后的乘积会指数级衰减,这就是梯度弥散的根本原因。
深度神经网络的发展现状

深度神经网络的发展现状深度神经网络(Deep Neural Network,DNN)是一种具有多层神经元的人工神经网络,其结构与人类的神经系统相似。
近年来,随着计算机硬件与算法技术的不断进步,深度神经网络在图像识别、自然语言处理、语音识别等领域取得了广泛应用,成为了人工智能领域的热门技术之一。
本文将就深度神经网络的发展现状进行探讨。
1. 深度神经网络的基本结构深度神经网络通常由输入层、隐藏层和输出层组成。
每个层都由若干个神经元构成,神经元之间的连接带有权重,且每个神经元都有一个激活函数,用于计算该神经元的输出值。
其中,输入层负责接收外部输入的数据,隐藏层则负责处理输入数据,提取数据中的特征,输出层则负责根据输入数据得到相应的输出结果。
2. 深度神经网络的训练方法深度神经网络的训练方法通常采用反向传播算法。
该算法通过计算网络输出值与实际结果之间的误差,然后按照一定的规则进行权重调整,从而不断完善网络的识别能力。
此外,还有很多针对深度神经网络的优化算法,如随机梯度下降法(Stochastic Gradient Descent,SGD)、Adagrad、Adam等。
这些优化算法能够在保证深度神经网络训练效果的同时,加快训练速度。
3. 深度神经网络的应用领域深度神经网络在图像识别、自然语言处理、语音识别等领域取得了广泛应用,为人工智能技术的发展提供了有力的支持。
在图像识别领域,深度神经网络可以对图片进行快速、准确的分类和识别,例如识别车牌、人脸等。
在自然语言处理领域,深度神经网络可以用于自然语言的情感分析、机器翻译、语言模型建立等。
在语音识别领域,深度神经网络能够通过处理语音信号,将语音转化为文本,实现不同语言之间的互识。
4. 深度神经网络的发展趋势随着互联网的不断普及和数据的不断积累,深度神经网络将会在更多的领域得到应用。
而在深度神经网络本身的研究方面,还有一些重要问题需要解决:(1)更高效的训练算法:当前的训练算法还需要不断优化,使深度神经网络能够更加高效地学习和处理数据;(2)更深度的网络结构:随着网络深度的增加,网络模型的复杂度也会不断提高,需要解决网络训练过程中的梯度消失和梯度爆炸问题;(3)更好的可解释性:深度神经网络是一种“黑箱”模型,其内部运作的机制需要更好地解释和理解。
深度学习的轻量化神经网络结构研究综述

深度学习的轻量化神经网络结构研究综述一、概览随着大数据时代的到来和计算能力的提升,深度学习在众多领域中发挥着越来越重要的作用。
深度学习模型通常需要庞大的计算资源和庞大的数据集来进行训练,这限制了它们的应用范围,并且需要高能耗。
设计轻量级神经网络结构的架构及优化算法具有重要意义,可以帮助降低计算和存储需求,同时保持较高的性能。
本文将对近年来轻量化神经网络结构的研究进行全面的综述,重点关注深度可分离卷积、神经架构搜索、模块化思想等一系列重要的轻量化技术。
通过对这些技术的分析和对比,以期为实际应用提供有益的指导。
1. 深度学习的发展趋势和挑战随着信息技术的迅速发展,人类社会对数据和计算能力的依赖与日俱增,这使得深度学习成为解决各种复杂问题的关键工具。
随着网络规模的扩大和计算需求的提高,深度学习模型面临着训练难度和资源消耗的巨大挑战。
学术界和工业界的研究者们纷纷致力于探索深度学习的轻量化方法,以降低模型的计算复杂度、内存占用和功耗,从而提高模型的实时性能和可扩展性。
这些努力包括简化网络结构、使用更高效的光学和硬件加速器、引入条件计算和技术等。
这些轻量化策略在一定程度上缓解了深度学习面临的困境,并为未来的广泛应用铺平了道路。
轻量化仍然面临一系列问题和挑战。
在理论研究方面,如何有效地减少模型的计算和存储需求依然是一个亟待解决的问题。
尽管有一些优化技术被提出,但在实际应用中仍需进一步验证和改进。
在设计轻量级系统时,如何在保持性能的同时降低成本、提高能效比也是一个重要挑战。
针对特定任务和场景的高效轻量化模型仍然不足,这在一定程度上限制了深度学习技术在某些领域的应用效果和普及程度。
深度学习的轻量化发展正处于一个充满机遇和挑战的关键时期。
需要学术界和工业界的共同努力,不断探索创新的方法和手段,以克服现有困难,推动深度学习技术的持续发展和广泛应用。
2. 轻量化神经网络结构的意义与价值随着互联网和人工智能技术的快速发展,深度学习在众多领域的应用越来越广泛。
如何避免神经网络中的梯度爆炸问题(四)

神经网络在机器学习和深度学习领域发挥着重要作用,它可以通过学习大量的数据来自动化地发现数据中的模式和规律。
然而,在神经网络的训练过程中,经常会出现梯度爆炸问题,这会导致模型训练的不稳定性和收敛困难。
为了解决这一问题,我们可以采取一些策略来避免神经网络中的梯度爆炸问题。
首先,我们可以使用梯度裁剪的方法来避免梯度爆炸问题。
梯度裁剪是一种常用的技术,它可以限制梯度的范围,防止梯度的数值过大。
在实际应用中,我们可以设置一个阈值,当梯度的数值超过这个阈值时,就对梯度进行裁剪,将其限制在一个合适的范围内。
通过梯度裁剪,我们可以有效地避免梯度爆炸问题,提高模型的训练稳定性。
其次,我们可以使用合适的激活函数来避免梯度爆炸问题。
激活函数在神经网络中起着非常重要的作用,它可以引入非线性因素,提高模型的表达能力。
然而,一些常用的激活函数如sigmoid和tanh函数在输入较大或较小的情况下会出现梯度消失或梯度爆炸的问题。
为了避免这一问题,我们可以使用ReLU等具有良好性质的激活函数,它可以在一定程度上缓解梯度爆炸问题,提高模型的训练效果。
另外,我们还可以通过合适的参数初始化方法来避免梯度爆炸问题。
参数初始化是神经网络训练过程中一个非常重要的环节,它可以直接影响模型的训练效果。
在实际应用中,我们可以使用Xavier或He等参数初始化方法,这些方法可以有效地控制梯度的大小,避免梯度爆炸问题的发生。
通过合适的参数初始化方法,我们可以提高模型的训练效率,加快模型的收敛速度。
此外,我们还可以采用Batch Normalization等技术来避免梯度爆炸问题。
Batch Normalization是一种常用的技术,它可以在神经网络的每一层中对输入数据进行归一化处理,使得数据分布更加稳定,有利于梯度的传播和模型的训练。
通过Batch Normalization,我们可以有效地避免梯度爆炸问题,提高模型的训练效果。
最后,我们还可以通过合适的优化器来避免梯度爆炸问题。
算法优化在深度神经网络中的应用研究

算法优化在深度神经网络中的应用研究深度学习已经成为先进技术领域中最热门、最具突破性的领域之一。
尤其是深度神经网络,随着硬件设备的不断升级和GPU等专门处理器的普及,深度学习已成为其中一个比较优秀的算法,其中深度神经网络是其中的佼佼者。
然而,深度神经网络虽然在实践中表现优异,但是其模型本质上仍有缺陷。
很难保证在每次训练中均可以得到高效的结果。
因此,研究如何优化深度神经网络的算法以提高训练准确率和速度变得异常重要。
本文将从算法优化的角度,探讨算法优化在深度神经网络中的实际应用和研究。
一、算法优化是什么算法优化是一种重要的技术,可以帮助我们改善深度神经网络在训练过程中所面临的一些问题。
在深度学习中,算法优化主要是针对误差反向传播算法进行的优化,目的是减少训练时间并提高准确性。
在算法优化的过程中,开发者需要考虑以下几个方面:1. 激活函数激活函数是神经元的数学函数,它将输入信号转化为输出信号。
常见的激活函数包括sigmoid、ReLU等。
算法优化中需要考虑如何选择合适的激活函数,以提高深度神经网络的性能。
2. 权重初始化权重初始化是指初始化训练网络中的权重值。
正确的权重初始化可以使神经网络正常训练,而不会使结果发生偏移。
在算法优化中,正确地初始化权重是非常关键的。
3. 学习率在深度学习中,学习率是指在误差反向传播过程中权重的变化速度。
学习率的变化影响着神经网络的训练速度和精度。
在算法优化中,需要选择适当的学习率,使深度神经网络在训练过程中得到更好的结果。
二、深度神经网络的训练问题深度神经网络优化算法的主要目的是解决深度神经网络训练过程中的一些问题。
这些问题通常涉及到“梯度消失”、“过拟合”、“优化”等问题。
1. 梯度消失梯度消失,指神经网络在反向传播中,由于链式法则的存在,梯度逐层变化,当误差逆传时,梯度值越来越小,直到接近于0,导致网络无法继续学习更新。
这种情况在深度神经网络中更加常见。
在深度神经网络优化算法中,需要解决梯度消失的问题,以确保神经网络的正常训练。
《2024年深度强化学习综述》范文

《深度强化学习综述》篇一一、引言深度强化学习(Deep Reinforcement Learning, DRL)是人工智能领域中的一项重要技术,它结合了深度学习和强化学习的优势,使得机器能够通过学习来自主地做出决策,并从经验中不断优化自身行为。
近年来,深度强化学习在众多领域取得了显著的成果,如游戏、机器人控制、自动驾驶等。
本文旨在综述深度强化学习的基本原理、研究现状、应用领域以及未来发展趋势。
二、深度强化学习基本原理深度强化学习是一种通过深度神经网络和强化学习算法结合的方式,让机器能够自主学习和决策的技术。
其基本原理包括两个部分:深度学习和强化学习。
1. 深度学习:深度学习是一种通过神经网络模型对大量数据进行学习和预测的技术。
在深度强化学习中,深度学习模型通常用于提取和表示环境中的信息,以便于后续的决策过程。
2. 强化学习:强化学习是一种通过试错的方式来学习最优策略的技术。
在深度强化学习中,强化学习算法根据当前状态和动作的反馈来调整策略,以最大化累积奖励。
三、研究现状自深度强化学习技术问世以来,其在各个领域的应用和研究成果不断涌现。
目前,深度强化学习的研究主要集中在以下几个方面:1. 算法优化:针对不同的任务和应用场景,研究者们不断提出新的算法和模型来提高深度强化学习的性能和效率。
如基于策略梯度的算法、基于值函数的算法等。
2. 模型改进:为了更好地提取和表示环境中的信息,研究者们不断改进深度神经网络的模型结构,如卷积神经网络、循环神经网络等。
3. 硬件加速:随着硬件技术的不断发展,研究者们开始利用GPU、TPU等硬件设备来加速深度强化学习的训练过程,以提高训练速度和性能。
四、应用领域深度强化学习在各个领域都取得了显著的成果,如游戏、机器人控制、自动驾驶等。
1. 游戏领域:深度强化学习在游戏领域的应用非常广泛,如围棋、象棋等棋类游戏以及电子游戏等。
在这些游戏中,深度强化学习算法可以自主地学习和优化策略,以达到最佳的游戏表现。
神经网络训练的方法和技巧总结
神经网络训练的方法和技巧总结神经网络是一种模拟人脑工作方式的人工智能模型,它通过模拟神经元之间的连接关系来实现数据的处理和学习。
在神经网络的训练过程中,选择合适的方法和技巧是提高性能和效果的关键。
本文将总结几种常用的神经网络训练方法和技巧,并对其优劣进行评价。
1. 梯度下降法梯度下降法是神经网络训练中最基础且最常用的方法之一。
它通过计算代价函数对于每个参数的偏导数,并根据导数值的大小进行参数的更新。
具体而言,梯度下降法以参数调整的方向和速率为基础,不断迭代优化模型直至收敛。
虽然梯度下降法简单易懂且易于实现,但存在收敛速度慢以及容易陷入局部最优的问题。
2. 学习率调整策略学习率是指在梯度下降法中每次参数更新的步幅大小。
合适的学习率可以加快模型的收敛速度,但过大或过小的学习率都会导致训练效果不佳。
为了解决这一问题,需要采用合适的学习率调整策略。
一种常见的策略是学习率衰减,即让学习率随着训练的进行逐渐减小。
另外,也可以使用动态学习率方法,如Adagrad、Adam等,根据参数的历史梯度信息自适应地调整学习率。
3. 批量归一化批量归一化是一种优化技巧,用于在神经网络的每一层输入数据进行归一化处理,有助于加快网络训练的速度并提高模型的性能。
通过将每一层的输入数据进行标准化,可以避免激活函数输入数据过大或过小,从而减少梯度爆炸或梯度弥散的问题。
同时,批量归一化还可以增加模型的鲁棒性和泛化能力。
4. 正则化技术正则化技术是一种用于减小模型过拟合的方法。
过拟合是指模型在训练集上表现良好,但在测试集上表现较差的现象。
为了避免过拟合,可以采用L1正则化、L2正则化等技术。
正则化通过在代价函数中引入正则化项,限制参数的大小,减小模型的复杂度,从而提高模型的泛化能力。
5. 数据增强数据增强是一种通过对原始数据进行一系列随机变换来扩充训练集的方法。
通过数据增强,可以有效提高模型的泛化能力和鲁棒性。
常用的数据增强技术包括图像翻转、旋转、平移、缩放、裁剪等。
动态学习深度神经网络综述
网络天地175动态学习深度神经网络综述田晓艳摘要:深度神经网络是一种非常有效的机器学习方法,然而传统的算法均无法处理动态问题。
因此,介绍了一种最近提出的能够动态学习的深度神经网络永续学习机算法。
该算法能够实现对新增数据的动态学习,并且算法执行速度较快。
通过对文献的分析表明,该算法是一种拥有非常广泛应用价值的深度学习算法。
关键词:动态学习;深度;神经网络1、永续学习机模型的实现永续记忆的原理与实现方法永续记忆的最终目的是能够实现永续学习,也就是对于新的数据信息能够动态的学习出新的分类。
以MNIST 手写数字数据集为例,让模型学习识别出一组图像,在MNIST 手写数字数据集中取出前75个数字图像,并将它们分配给任意类别。
这样就存了75个唯一类,每一个类与一个唯一的特定数字相关联。
该模型的任务就是要识别图像并为其分配正确的类。
将75个数字中的前50传统的通过训练学习的样例,剩余的25个作为动态学习的样例。
前50个训练样本采用典型的SGD 训练并在训练后丢弃,也就是说这50个样例在后面的学习中不能被用来同化新类别样例。
后25个样例采用PSGD 训练并被阻止插入。
存储与召回DNN 模型为了实现存储与召回,设计两个相应的DNN 模型。
存储DNN 是大小为784×100×75的典型的分类器,Softmax 输出层对应于75个分类。
除了50个训练类别之外,75个可能的分类还提供25个冗余(未使用)分类,以供后续学习训练。
存储DNN 将图像作为输入,将生成的类作为输出。
召回DNN 的大小为75x100x784,以分类作为输入,并在输出处合成训练图像。
两个DNN 均使用带偏置项的Sigmoids 激活函数 ,在输出层使用零偏置(zero-bias)。
存储和召回DNN 均是独立训练的,仅使用前50个图像,采用非批处理随机梯度下降进行100次full-sweep 迭代[ , ]。
使用平行(100x )抖动w/ dropout 正则化策略进行训练。
BP神经网络及深度学习研究 - 综述
BP网络的基本结构如图21所示,其模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)三层结构。
输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求。中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。隐层节点一般采用Sigmoid型函数,输入和输出节点可以采用Sigmoid型函数或者线性函数。
(3)网络的结构设计,即隐节点数的选择,尚无理论指导,具有很大的盲目性。
(4)新加入的样本对已经学好的样本影响较大,且每个输入样本的特征数目要求相同,泛化能力较差。
针对BP算法存在的缺陷,目前国内外已有不少人对BP网络进行了大量的研究,提出了各种不同的改进方案,如优化训练输入参数,加入动量参数,以及学习步长的适应调整,采用带动量的自学习率BP算法,动态全参数自调整学习算法,记忆式初值权值和阀值方法,快速自适应学习算法等,这些方案均提高BP神经网络收敛速度。
作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数:
它反映了神经元的饱和特性。上式中,Q为表示神经元非线性的参数,称增益值(Gain),也称调节参数。Q值越大,S形曲线越陡峭;反之,Q值越小,S形曲线越平坦;一般取Q=1。
(3)误差计算模型
关键词:BP神经网络、算法分析、应用
1
人工神经网络(Artificial Neural Network,即ANN),作为对人脑最简单的一种抽象和模拟,是人们模仿人的大脑神经系统信息处理功能的一个智能化系统,是20世纪80年代以来人工智能领域兴起的研究热点。人工神经网络以数学和物理方法以及信息处理的角度对人脑神经网络进行抽象,并建立某种简化模型,旨在模仿人脑结构及其功能的信息处理系统。
生成对抗网络的生成模型训练中的问题解决方法分享(Ⅲ)
生成对抗网络的生成模型训练中的问题解决方法分享生成对抗网络(GAN)是一种深度学习模型,由两个神经网络组成,分别是生成器和判别器。
生成器负责生成假样本,判别器负责区分真假样本。
通过两者相互对抗的过程,生成器的生成能力不断提升,从而生成更逼真的样本。
然而,在实际应用中,GAN模型的训练会面临许多问题。
本文将探讨生成对抗网络的生成模型训练中的问题和解决方法。
1. 训练不稳定GAN的训练过程容易不稳定,生成器和判别器之间的博弈往往导致模型陷入不稳定的状态。
生成器和判别器的参数更新不断影响对方,容易陷入不稳定的循环中。
解决这一问题的方法之一是采用Wasserstein GAN(WGAN)算法。
WGAN通过引入Wasserstein距离替代传统GAN中使用的JS散度或KL散度,从而使得生成器和判别器的训练更加稳定。
2. 模式崩溃在训练过程中,生成器可能会陷入模式崩溃的状态,即只生成同一种或者少数种样本。
为了解决模式崩溃问题,可以考虑使用条件生成对抗网络(cGAN)。
cGAN通过在生成器和判别器中引入条件信息,如标签信息,能够更好地控制生成样本的多样性。
3. 梯度消失在训练过程中,梯度消失是一个常见的问题。
由于生成器和判别器的架构复杂,梯度无法有效地传播,导致训练过程出现困难。
为了解决这一问题,可以考虑使用深度卷积生成对抗网络(DCGAN)。
DCGAN是一种特殊的生成对抗网络结构,通过使用卷积层和去卷积层,能够更好地传播梯度,提高训练的效率。
4. 模式噪声生成器可能会产生不真实的样本,即噪声样本。
为了解决模式噪声问题,可以考虑使用生成对抗网络的改进版本,如辅助分类生成对抗网络(AC-GAN)。
AC-GAN通过在判别器中引入辅助分类任务,能够更好地提高生成样本的质量。
5. 评估指标在生成对抗网络的训练过程中,评估生成样本的质量是一个重要的问题。
传统的GAN模型通常使用JS散度或KL散度来评估生成样本和真实样本的相似度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学报ISSN lO00.9825.CODEN RUXUEW Journal ofSoftware,2018,29(7):2071—2091[doi:10.13328 ̄.cnki.jos.005561] ◎中国科学院软件研究所版权所有.
深度神经网络训练中梯度不稳定现象研究综述 陈建廷,向 阳 (同济大学电子信息与工程学院,上海201804) 通讯作者:向阳,E—mail:shxiangyang@tongji.edu.ca
E—mail:jos@iscas.ac.ca http://www.jos.org.cn Tel:+86.10.62562563
摘要: 深度神经网络作为机器学习领域的热门研究方向,在训练中容易出现梯度不稳定现象,是制约其发展的 重要因素,控制和避免深度神经网络的梯度不稳定现象是深度神经网络的重要研究内容.分析了梯度不稳定现象的 成因和影响,并综述了目前解决梯度不稳定现象的关键技术和主要方法.最后展望了梯度不稳定现象的未来研究 方向. 关键词: 深度神经网络;梯度不稳定现象;梯度衰减;梯度爆炸 中图法分类号:TP183
中文引用格式:陈建廷,向阳.深度神经网络训练中梯度不稳定现象研究综述.软件学报,2018,29(7):2071—2091.http://www. jos.org.cn/lO00-9825/5561.htm 英文引用格式:Chen JT,Xiang Y.Survey ofunstable gradients in deep neural network training.Ruan Jian Xue Bao/Joumal of Software,2018,29(7):2O71—2091(in Chinese).http://www.jos.org.cn/lO00—9825/5561,htm
Survey of Unstable Gradients in Deep Neural Network Training CHEN Jian-Ting,XIANG Yang (College of Electronics and Information Engineering,Ton ̄i University,Shanghai 201804,China) Abstract:As a popular research direction in the field of machine learning,deep neural networks are prone to the phenomenon of unstable gradients in training,which has become an impo ̄ant element that restricts their development.How to avoid and control unstable gradients is an important research topic of deep neural networks.This paper analyzes the cause and effect of the unstable gradients,and reviews the main models and methods of solving the unstable gradients.Furthermore,the future research trends in the unstable gradients iS discussed. Key words:deep neural network;unstable gradient;vanishing gradient;exploding gradient
深度神经网络作为深度学习领域的重要模型之一,在计算机视觉、语音识别等领域取得巨大突破.由于训 练多层神经网络得到最优参数是非确定性多项式困难问题(non.deterministic polynomial hard,简称NP.hard)t“, 所以神经网络的训练过程成为影响最终效果的核心因素.梯度下降(gradient descent)算法作为神经网络的主要 训练方法,但在将其应用在深度神经网络时易出现梯度不稳定现象.该现象严重影响了模型的实际效果,导致准 确率降低,收敛速度缓慢等,使得深度神经网络模型更加难以训练,后续研究与实践应用也受到阻碍,因此,梯度 不稳定现象已成为制约深度神经网络模型发展的关键问题,受到学术界与工业界的高度关注. 学者们通过在神经网络中引入深度特性来提高提取特征的能力,但是梯度不稳定现象随着前馈神经网络
·基金项目:国家重点基础研究发展计划(973)(2Ol4cB34O4O4);国家自然科学基金(71571136);上海市科委基础研究项目 (16JC4O3000) Foundation item:National Basic Research Program ofChina(973)(2Ol4CB34O404);National Natural Science Foundation of China r71571136);Project ofScience and Technology Commission ofShanghai Municipality(16JC403000) 收稿时间:2017.09.27;修改时间:2017—11-10;采用时间:2018-01—10;jos在线出版时间:2018-02.08 CNKI网络优先出版:2018-02.08 11:56:10.http://kns.cnki.net/kcms/detail/11.2560.TP.20180208.1155.013.html 2072 Journal of Software软件学报Vo1.29,No.7,July 2018 的层数和循环神经网络时间序列长度的增加也愈发严重,严重影响深度优势的发挥和训练收敛速度.自从1994 年首次提出梯度衰减【2I3】的不稳定现象以来,学者们提出了一系列改进方法来缓解该问题,大致可分成3类:一是 改进训练方法,如结合无监督学习的思想设计训练策略;二是优化节点运算,如采用ReLU、Batch-Normalization 等技巧优化影响梯度传播的关键运算;三是调整网络结构,如以LSTM模型代替传统RNN模型以及采用捷径连 接技巧改变传统迭代形式,这些改进在一定程度上缓解了梯度不稳定现象,使得深度神经网络能够充分训练,发 挥其在机器学习领域的优势. 本文详细分析出现梯度不稳定现象的原因,并综述目前缓解梯度不稳定现象的主要模型和方法.本文第1 节阐述梯度不稳定现象的成因及影响.第2节论述缓解梯度不稳定现象的主要方法.第3节展望梯度不稳定现 象的未来研究方向.第4节总结全文.
1梯度不稳定现象成因及影响 梯度不稳定现象是指采用梯度下降法训练的深度神经网络,在利用反向传播算法(back—propagation algorithm,简称BP)/ -6 计算各参数梯度的迭代过程中,根据链式求导法则,迭代量需要乘以各中间变量或参数来 不断更新,若“乘数”均远远大于…1’,则更新结果随迭代过程迅速增加,发生梯度爆炸的不稳定现象;若“乘数”均 远远小于“l”,则该结果将随迭代迅速减小,发生梯度衰减的不稳定现象.若深度神经网络中发生此类梯度不稳 定现象,将难以充分发挥深度结构优势,使其深度特性失效,还可能导致前馈神经网络收敛速度缓慢,影响训练 效率.本节将通过分析典型前馈神经网络和循环神经网络反向传播的梯度计算过程,总结梯度不稳定现象的成 因,并结合具体实验,说明该现象对深度神经网络的影响. 1.1前馈神经网络梯度计算 (1)全连接神经网络梯度计算 全连接神经网络(fully connected neural network,简称FNN)[516】是最典型的前馈神经网络,深度全连接神经 网络中包含多个全连接隐层,隐层中每个节点与前一层所有节点全连接.m层的全连接网络结构如图1所示,其 前馈传播过程可形式化表示为 : Xl1+ (1) =盯( ) (2) xl,Yl表示第,层的输出向量和中间向量,其中的元素表示该层各节点相应的变量. 和b,为模型参数, 表示第 f_1层与第,层之间的连接权重矩阵,其中,元素所在行数和列数分别对应连接节点在隐层中的序号.6 表示第, 层的偏置向量.函数 示非线性激活函数. 训练样本的输入数据经过前向传播到输出层与标签比较计算损失值,梯度下降法根据各参数对损失值的 梯度进行参数调整.计算各隐层输出值梯度的反向传播迭代过程为
= ( )× l (3) OXl~1 L 其中,“×”表示hadamard乘积,即同维矩阵(或向量)对应元素相乘;e表示损失函数值.隐层每个节点导数值的具体 计算公式,即公式(3)从元素角度可表示为 l毒Ji ,
其中,nl表示第,层的节点总数,ft,分别表示第 1层和第,层节点序号.由隐层梯度计算各隐层权重和偏置梯度 的公式为
= cr'(y1)× l(5)札-I l ’ 陈建廷等:深度神经网络训练中梯度不稳定现象研究综述 蓬 鋈 隐藏层 l 隐藏瑶 x刖一
2073 Fig.1 Architecture of fully connected neural network 图1全连接神经网络结构 f2)卷积神经网络梯度计算 卷积神经网络(convolution neural network,简称CNN)E7,81作为另一种重要的前馈神经网络,数据仍然是以当 前层输出作为下一层输入的形式在多隐层结构中传播,区别在于隐层节点的输入输出不是数而是矩阵,连接前 后隐层节点之间的不是权重而是卷积核.其前馈传播过程如图2所示.
X
Fig.2 Process of convolution layer feed forward propagation 图2卷积层前馈传播过程 可形式化表示为 =/c,圆 l+ (7) Xl= ( ) (8)
,rl表示第,层的输出变量和中间变量,若第,层有 ,个节点,则 , 由 ,个矩阵组成,每个矩阵对应一个节点, 即 ={ ”, 孙,..., l, ={ ‘”, ‘ ,...,y/(nt)}. 表示卷积核,第1-I层的第m个节点与第,层的第 个节点 之间由大小为kxk的矩阵 ( )进行特殊的卷积运算.西,仍表示由nf个元素组成的偏置向量.假定卷积核移动步 长为1,则公式(7)的卷积运算从元素的角度可表示为 [ cn = 圭[ re,n)] _[础 ] 一 + 】 (9)