爱吧机器人网 » 技术 > 神经网络 > 正文

为什么很难训练深度神经网络?

译者 | 黄小凡
来源 | 云溪社区
 
自1994年开始,大家都认为深度神经网络难以训练的原因是由于梯度消失,然而本文作者通过深度线性网络的例子证明网络性能变差的原因并不是梯度消失,而是由于权重矩阵的退化导致模型的有效自由度减少,从而使得深度神经网络难以训练。
 
在这篇文章中,我将解释在深度神经网络训练中一个常见的误解。似乎大家都认为,训练深度神经网络很难的原因主要是因为梯度消失(或爆炸)的问题。“梯度消失”是指通过隐藏层从后向前看,梯度会变的越来越小。这也意味着,前面层的学习会显著慢于后面层的学习,所以学习会卡住,除非梯度变大。这个想法至少可以追溯到Bengio等人(1994年),如今这仍然被用于解释为什么很难训练深度神经网络。
 
我们首先考虑一个简单的情景:训练一个深度线性网络学习一个线性映射。从计算的角度来看,深度线性网络并不令人感兴趣,但是Saxe等人?(2013)认为,在线性网络学习仍然可以提供有关非线性网络学习的信息。因此,我们从这个简单的场景开始。下图是30层网络的学习曲线和初始梯度范数。

\
 
这些结果在图中标记为“Fold 0”。这里的梯度是关于层激活值的,网络权重通过进行初始化。训练损失开始时迅速下降,但不会消失(或爆炸),随后达到一个稳定的次优值。随着训练的进展,他们变得越来越小,但是这是可以预料的,而且从某种意义上说,这里的梯度“太小”并不清楚:

\
 
为了说明收敛到局部最优解的现象和梯度范数的大小本身没有任何关系,现在我将介绍一个会增加梯度范数的方法,但会恶化性能。如下图(蓝色):

\
 
那么,我做了什么?我只是简单地改变了初始化。原始网络中的每个初始权重矩阵是一个64X64的矩阵(使用标准初始化进行初始化)。在以蓝色显示的网络中,我将每个初始权重矩阵的前半部分复制到后半部分(初始权重矩阵被“Fold”一次,所以我将它们表示为“Fold 1”网络)。这降低了初始权重矩阵的秩,并使其更加退化。请注意,这种运算仅应用于初始权重矩阵,并没有加上其它对学习过程的约束,训练过程将保持不变。以下是梯度范数经过训练之后的效果:

\
 
这个方法总体上增大了梯度范数,但是性能明显变差了。接下来我将介绍另一种缩小梯度范数,但会大大提高性能的方法。这里是(绿色):

\
 
这种新的方法将权重矩阵初始化为正交。正交矩阵是固定(Frobenius)范数的矩阵中退化程度最低的,其中退化度可以用不同的方式来衡量,例如奇异值小于给定常数的比例。以下是梯度范数经过训练之后的效果:

\
 
如果梯度范数的大小不是训练困难的原因,那原因是什么呢?答案是模型的退化总体上决定了训练性能。为什么退化会损害训练性能?因为参数空间中学习的退化速度大大减慢,导致减少了模型的有效维数,就像上面的例子一样。所以,上面的“Fold 0”网络和“Fold 1”网络虽然梯度范数值很好,但网络的可用自由度对这些梯度范数的贡献极其不均衡:绝大多数(退化的)自由度根本没有任何贡献。正如 Saxe 等人的论文表明,随着相乘矩阵的数量(即网络深度)的增加,这种矩阵的乘积变得越来越退化。这里分别是1层,10层和100层网络的一个例子:

\
 
随着深度的增加,积矩阵的奇异值变得越来越集中0。这个结果不仅与线性网络有关,类似的事情也发生在非线性网络中:随着深度的增加,给定层中隐藏单元的维度变得越来越低维化,即越来越退化。事实上,在有硬饱和边界的非线性网络中(例如 ReLU 网络),随着深度增加,退化过程会变得越来越快。Duvenaud 等人 2014 年的论文里展示了关于该退化过程的可视化:

\
 
随着深度的增加,输入空间(左上角所示)会在输入空间中的每个点处被扭曲成越来越细的单丝,只有一个与细丝正交的方向影响网络的响应。沿着这个方向,网络实际上对变化变得非常敏感。
 
最后,在这一点上,我忍不住要提起我的论文。在本文中,通过一系列的实验,我认为退化问题严重地影响了非线性网络的训练,采用跳过连接(ResNet 中采用的重要方法)的方式训练深度网络可以打破这种退化。我怀疑像Batch Normalization或 layer normalization等方法除了其他潜在的独立机制外(如减少最初提出的内部变量转换),在一定程度上是通过类似的打破退化机制训练深层网络的。众所周知,分裂归一化是一种有效处理隐藏单元响应的方法,而这也可以被看作是一种打破退化的机制。


上一篇:助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出
下一篇:神经网络结构在命名实体识别(NER)中的应用
精选推荐
苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展
苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展

[2017-12-11]  苹果隐秘的自动驾驶汽车项目多年来一直在转移焦点,但今年似乎正在加速。 4月份,公司获得了在加利福尼亚州进行自动驾驶汽车测试的许可证,而在6月份,苹果公司首席执行官库......

什么是机器人学?机器人学简介
什么是机器人学?机器人学简介

[2017-12-14]  机器人学是工程学与科学的交叉学科,包括机械工程,电气工程,计算机科学等。机器人技术涉及机器人的设计、制造、操作和应用,以及用于控制、感官反馈和信息处理的计算机系统。...

深度神经网络揭示了大脑喜欢看什么
深度神经网络揭示了大脑喜欢看什么

[2019-11-06]  爱吧机器人网编者按:近日,《自然-神经科学》发表了一篇论文,研究人员创建了一种深度人工神经网络,能够准确预测生物大脑对视觉刺激所产 ...

2018年企业数字化转型的五大趋势
2018年企业数字化转型的五大趋势

[2017-12-16]  据2016年哈佛商学院研究表明,选择进行数字化转型的企业在3年内表现出了55%的平均毛利润提升,相比之下其他企业毛利润同期降低了37%。数字化转型企业的领头羊,也曾是收入处于......

搭载人工智能的太空机器人CIMON 2乘SpaceX抵达国际空间站
搭载人工智能的太空机器人CIMON 2乘SpaceX抵达国际空间站

[2019-12-09]  12月5日,搭载人工智能的太空机器人西蒙2号(CIMON 2)乘坐SpaceX火箭Dragon货运舱,从佛罗里达州卡纳维拉尔角空军基地升空,前往国际空间 ...

Waymo:人性和行为心理学才是无人驾驶最大的挑战
Waymo:人性和行为心理学才是无人驾驶最大的挑战

[2019-11-03]  自动驾驶汽车作为AI领域内最大的挑战之一,谷歌致力于其研发已有十余载,现在他们逐渐意识到,最困难的是如何让人们享受驾驶的乐趣。这是一 ...

一个让深度学习惨败的通用人工智能领域——语境处理
一个让深度学习惨败的通用人工智能领域——语境处理

[2019-11-04]  Context是指用来解释一段给定文本或语句的来源框架,我们可以翻译为上下文或语境。维基百科将context定义为:*在符号学、语言学、社会学和 ...

MIT用深度学习处理3D点云数据 应用于无人汽车等领域
MIT用深度学习处理3D点云数据 应用于无人汽车等领域

[2019-10-23]  如果你见过自动驾驶汽车,也许会对车顶上那个一直在旋转的圆柱体感到好奇。这是一个雷达传感器,无人驾驶汽车依靠它在现实世界中进行导航。 ...

本周栏目热点

飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

[2020-03-26]  11 年前的「阿凡达」让少年的我们第一次戴上 3D 眼镜,声势浩大的瀑布奔流而下,星罗棋布飘浮在空中的群山,无一不体现着对生命的敬意, ...

神经网络结构在命名实体识别(NER)中的应用

[2018-01-17]  近年来,基于神经网络的深度学习方法在自然语言处理领域已经取得了不少进展。作为NLP领域的基础任务—命名实体识别(Named Entity Recognition,NER)也不例外,神经网络结......

从基础概念到数学公式,这是一份520页的机器学习笔记(图文并茂)

[2018-06-19]  近日,来自SAP(全球第一大商业软件公司)的梁劲(Jim Liang)公开了自己所写的一份 520 页的学习教程(英文版),详细、明了地介绍了机器学习中的相关概念、数学知识和各......

50行代码玩转生成对抗网络GAN模型!(附源码)

[2018-07-30]  本文为大家介绍了生成对抗网络(Generate Adversarial Network,GAN),以最直白的语言来讲解它,最后实现一个简单的 GAN 程序来帮助大家加深理解。...

深度神经网络揭示了大脑喜欢看什么

[2019-11-06]  爱吧机器人网编者按:近日,《自然-神经科学》发表了一篇论文,研究人员创建了一种深度人工神经网络,能够准确预测生物大脑对视觉刺激所产 ...