Neural Network and DeepLearning (5.1)深度神经网络为何很难训练

在深度网络中,不同层的学习速度差异很大。例如:在网络中后面的层学习情况很好的时候,前面的层常常会在训练时停滞不前,基本上不学习了。另一种情况恰恰相反,前面的层学习的很好,后面的层却停止学习了。

这是因为基于梯度下降的学习算法的本身存在着内在的不稳定性,这种不稳定性使得前面或者后面的层的学习停止。

消失梯度问题(The vanishing gradient problem)

在某些深度神经网络中,在隐藏层反向传播时梯度倾向于变小,也就是前面隐藏层的学习速度要慢于后面的隐藏层。这就是消失的梯度问题。

另一种情况是,前面隐藏层的梯度会变得非常的大,也就是前面隐藏层的学习速度要快于后面的隐藏层。这叫做爆炸的梯度问题。

也就是说,在深度神经网络中的梯度是不稳定的,在前面的层中或会消失,或会爆炸。

不稳定的梯度问题出现的原因

在前面层上的梯度是来自后面的层上项的乘积,当存在过多的层时,就出现了内在本质上的不稳定场景。

一般会发现在sigmoid网络中前面层的梯度会指数级的消失。

时间: 2024-10-08 17:34:43

Neural Network and DeepLearning (5.1)深度神经网络为何很难训练的相关文章

Neural Network and DeepLearning (3.2)改进神经网络的学习方法

Overfitting and regularization(过度拟合和规范化) 我们的网络在280迭代期后就不再能够推广到测试数据上.所以这不是有用的学习.我们说网络在280迭代期后就过度拟合(overfitting)或过度训练(overtraining)了. 我们的网络实际上在学习训练数据集的特例,而不是能够一般的进行识别.我们的网络几乎是在单纯记忆训练集合,而没有对数字本质进行理解并泛化到测试数据集上. 一种检测过度拟合的明显方法: 跟踪测试数据集合上的准确率随训练变化情况.如果看到测试数

Neural Network and DeepLearning (2.1)反向传播算法

How the backpropagation algorithm works 反向传播的目标是计算代价函数C分别关于w和b的偏导数?C/?w和?C/?b. 反向传播的核心是一个对代价函数C关于任何权重w(或者偏置b)的偏导数?C/?w的表达式.这个表达式告诉我们在改变权重和偏置时,代价函数变化的快慢. 神经网络中使用矩阵快速计算输出 概念:每一层L的权重矩阵wl,偏置向量bl,激活向量al.那么Lth的激活向量和(L-1)th的激活向量就能够通过方程关联起来: 在这个方程中有一个中间量zl:

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1

3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 Spark MLlib Deep Learning工具箱,是根据现有深度学习教程<UFLDL教程>中的算法,在SparkMLlib中的实现.具体Spark MLlib Deep Learning(深度学习)目录结构: 第一章Neural Net(NN) 1.源码 2.源码解析 3.实例 第二章D

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2

3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 第三章Convolution Neural Network (卷积神经网络) 2基础及源码解析 2.1 Convolution Neural Network卷积神经网络基础知识 1)基础知识: 自行google,百度,基础方面的非常多,随便看看就可以,只是很多没有把细节说得清楚和明白: 能把细节说清

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.3

3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.3 http://blog.csdn.net/sunbow0 第三章Convolution Neural Network (卷积神经网络) 3实例 3.1 测试数据 按照上例数据,或者新建图片识别数据. 3.2 CNN实例 //2 测试数据 Logger.getRootLogger.setLevel(Level.WARN) valdata_path="/use

神经网络详解 Detailed neural network

神经网络之BP算法,梯度检验,参数随机初始化 neural network(BackPropagation algorithm,gradient checking,random initialization) 一.代价函数(cost function) 对于训练集,代价函数(cost function)定义为: 其中红色方框圈起的部分为正则项,k:输出单元个数即classes个数,L:神经网络总层数,:第层的单元数(不包括偏置单元),:表示第层边上的权重. 二.误差逆传播(BackPropaga

深度学习论文笔记--Recover Canonical-View Faces in the Wild with Deep Neural Network

文章来源:CVPR2014 作者:Zhenyao Zhu,Ping Luo,Xiaogang Wang,Xiaoou Tang (香港中文大学果然牛啊,CVPR一刷一大堆) 主要内容: 提出了利用深度学习(还是CNN)来进行人脸图像重构正面人脸,然后利用重构的正面人脸图像来进行人脸的verification,当然能够取得更高的准确率(比没有用正脸去verification),文章提出利用DL来学习从任意脸到canonical 脸的转换,可以认为是一个回归问题(也不一定非得用DL方法来做). 现有

[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我们训练单一模型或多个模型集合来完成指定得任务.然后,我们通过精细调参,来改进模型直至性能不再提升.尽管这样做可以针对一个任务得到一个可接受得性能,但是我们可能忽略了一些信息,这些信息有助于在我们关心的指标上做得更好.具体来说,这些信息就是相关任务的监督数据.通过在相关任务间共享表示信息,我们的模型在

Recurrent Neural Network(循环神经网络)

Reference:   Alex Graves的[Supervised Sequence Labelling with RecurrentNeural Networks] Alex是RNN最著名变种,LSTM发明者Jürgen Schmidhuber的高徒,现加入University of Toronto,拜师Hinton. 统计语言模型与序列学习 1.1 基于频数统计的语言模型 NLP领域最著名的语言模型莫过于N-Gram. 它基于马尔可夫假设,当然,这是一个2-Gram(Bi-Gram)模