查看原文
其他

深度学习里数学之--方差--美妙而富有韵味

2017-01-27 徐鹏 全球人工智能


本文是对Bengio的论文《》解读的第二部分。


主要的内容:

1、 深度神经网络梯度的学习(梯度消失)输入方差、权重方差、梯度方差的关系

在继上一篇《如何优雅地对深度神经网络进行训练》之后,相信大家对隐含层中激活函数以及不同激活函数带来的影响有了一定的认识。本文将结合激活函数、梯度学习、损失函数、前向传播进一步研究如何优雅地进行深度网络训练,让我们更加明白在训练过程中,梯度消失的问题、如何解决梯度消失的问题,以及到底哪些东西在发生变化,如何变化,这些变化对最终的模型有着怎样的影响。


接《如何优雅地对深度神经网络进行训练》


4.梯度学习及其传播

4.1损失函数的影响


我们发现逻辑回归或者条件对数似然函数损失函数(-logP(y|x)结合softmax输出)相比于平方误差函数会工作(对于分类问题)的更好,平方误差函数过去常常在神经网络的前向传播中使用。这是之前就发现的一个结论,但是我们发现有必要在这里强调一下。我们发现,在以对数似然函数为损失函数的深度神经网络中比较少的出现学习停滞的现象。我们可以从图5中看出,将训练准则描绘成一个两层网络(一个隐含层),也就是说这是一个具有两层权重的函数,网络的激活函数是双曲正弦函数,以及随机的输入信号和目标信号。平方误差函数有着更为严重的平稳期(也就是学习停滞的时间持续很长)。

 

图5:交叉熵(黑色曲面,图上面部分),平方差损失(红色曲面,图下面部分)。神经网络有两层,每一层一个权重。W1、W2分别是第一层、输出层的权重。

 

(下面的论文内容堪称经典-细细品读,就会有收获)

对于复杂多层人工神经网络,使用在0处导数为1的对称激活函数(例如f’(0)=1)。用

表示第i层的激活向量值,表示激活函数的参数向量,

从这些定义中,我们可以得到:



方差将由输入、输出、权重随机初始化表示。考虑这样一个假设:权重初始化是线性机制的,也就是说权重是独立随机初始化的,输入特征的方差是相同的。通过这些假设,我们可以说,对于输入是x且含有个神经元i层:



我们用表示层所有权重的方差,那么对于一个d层网络,有


从前向传播的角度来看,想要信息(梯度信息)能够流动,我们需要如下要求:



从反向传播的角度来看,我们需要如下要求:



综上两个条件转化为如下:



作为这两个条件的折中选择,我们可以得到如下:



注意到当所有层含有相同的宽度时(每一层的神经元数量相同)这两个条件是如何满足的。同时,如果我们对于权重使用相同的初始化方法,我们将会得到如下有趣的性质:



我们从上面的公式可以看出所有层的权重梯度的方差是相同的,但对于深度神经网络,反向传播的梯度,可能会出现梯度消失或者激增。

按照初始化的方法得到的方差有如下性质:



这里n是层大小(假设所有层都有相同的大小)。这将会引起每层反向传播的梯度方差不是独立的(逐渐下降)。

因此,鉴于层层之间的乘积形式,当深度神经网络初始化时,规范化因素显得十分重要,我们建议按照如下的初始化方式能够满足在梯度传播时保持激活函数值方差不变的要求。我们称之为规范化初始化:



让我们一起来细细评味大神世界的梯度流动,相信看完后,你会觉得----“这世界好美妙”。

公示(1、2、3)很好理解,重点说一下公示(4):

首先,我们知道,这里x是输入,w、b是权重与偏置。如果x,w独立同分布,那么根据统计学我们知道

我们可以得到:


s的均值是

s的方差是:



这里n是某一层神经元的数量(某层的size)。

对于,有:



根据数学归纳法,进一步推导出:



我们得到论文的公式:



同理得到公式(6、7)。

此时,为了保证梯度能够正常的流动,且根据级数定理知识我们假设公式(9)(10)成立,因为无论还是如果其值大于1时,就会发散,造成梯度激增问题;而如果小于1,就会造成梯度消失问题。这里需要解释一下(9)(10)里的、(这里是第i层的维度,是第i+1层的维度)。在前向传播时,对于某层的一个神经元,它的输入维度是(前层网络的神经元的个数),而在反向传播时,该层的这个神经元的输入是下一层神经元的个数,(这里考虑全连接层)所以便有:

对于前向:


对于反向:


为了不引起误解这里将用代替,作为一个折中的选择,大神Yoshua bengio找到一个折中的选择:



对于公式(14、15),对于均匀分布来说,其方差是,结合公式(21),便有:



到这里,便得出了初始化权重的分布,“环环相扣,步步惊心”。赞一下大神的思想巧夺天工,很美妙。可能还没有看出这样的权重初始化方法有什么益处,相信在看到“后面的内容”,你会赞叹“这世界好美丽!”

在看完上面的推导之后,我们会发现以前学的数学知识是多么的精妙,在这里向我们展示了数学的魅力,同时也展现了神经网络(深度学习),它不是一个黑盒子,而是一辈又一辈“潜心钻研”的伟大的人精心设计的美好事物。同时也告诫我们,想要得到好的模型,需要的是扎实的数学基础、缜密的逻辑推理能力、持之以恒的激情,真正的投入才会有所收获。。。作为解读文章,我在这里写这些可能有些不合时宜,只是对作者的敬仰之情让我有些情不自禁的想要赞美bengio等大神一番。以后的文章里,我会继续解读“后面的内容”。


全球人工智能近期经典文章推荐


备受争议的 D-Wave新型量子计算机 竟然找到了第一个买家

干获|详解深度学习框架——TensorFlow

首届“人工智能奥运会“ 阿里巴巴拿下奥运会TOP赞助商

如何优雅地 对深度神经网络 进行训练

Google|“自动机器学习”取得重大突破:机器设计的机器学习软件已达AI专家设计水平!

【南大教授】提出“超深度学习”欲颠覆“深度学习”,你怎么看?

炮灰模型:女生如何选择追求者的数学模型?

碉堡了!程序员用深度学习写了个老板探测器

【爆笑】当小师妹遇上人工智能师兄...约么?

玩转Python必须熟练掌握的 38 个实战项目



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存