正则化手段:Dropout【转载】

原文链接
Dropout是一种常见的正则化方法。它借用了集成学习的思想,近似实现了同时训练大量网络结构,并通过集成得出预测结果的功能。由于含有集成环节,Dropout可以有效地避免过拟合。

一、Dropout的基本思想

Dropout要解决的问题是:在同一个神经网络模型中,有没有可能通过一定的手段模拟出多个网络模型的效果,从而提升模型精度?针对这个问题,Dropout巧妙利用了一个事实:一个神经网络模型中,通过屏蔽部分神经元,就可以构建出不同的神经网络模型。如下图,原始神经网络的输入层有2个神经元,隐藏层有2个神经元。通过把部分神经元删去,我们可以得到24 =16 种不同的网络。当然,其中一部分网络是无效网络,例如第4行的所有网络,但这并不会造成太大影响,因为当特征数、网络层数增加的时候,这种无效网络的比例会急剧下降。

和一般的Bagging模型不同,上述的所有网络只是网络结构不同,但所有的参数都是共享的。因此,这种方法的效果比直接训练同样数量的独立网络要差一些。但是,我们应该注意到,当有n个特征时,不同结构的数量可以达到2n个!对于如此巨大的网络数量,训练独立网络本身就是一件不可能的事情。所以,结构不同、参数共享的网络已经是一种非常好的实现方法了。另外,指数级别的网络数量也保证了共享参数的网络能达到好的预测效果。

接下来,Dropout还需要解决如下问题:

  1. 如何同时训练不同结构的(参数共享)的网络?
  2. 如何对不同结构的网络进行集成,从而得到预测结果?

我们在下一节讨论这两个问题。

二、Dropout的训练和预测方法

2.1 训练

一般来说,神经网络的训练会采用随机梯度下降法。该方法每次训练会选取一个batch的数据,通过BP算法计算梯度,并更新参数。为了训练不同结构的神经网络,我们需要屏蔽其中的一些神经元。实际上,神经网络的特殊结构使得我们屏蔽相关的神经元非常简单——只需要在该神经元的输出上乘以0即可。如下图,我们在输入层和隐含层的每个神经元上面乘以一个系数μ,μ只能为0或1。那么,μ=1时,该神经元可以正常输出,而μ=0时,该神经元就会被屏蔽。


值得注意的是,屏蔽神经元并不意味着我们会把该神经元的内容清空。神经元内部的参数仍然是保留的,只是在本次训练中,它的输出被外部变量μ=0屏蔽了。这样,我们就能够实现一个子网络的训练。
那么,屏蔽层μ的数值是如何确定的呢?这就是在深度学习框架中的常见超参数:keep probability,即保留概率,在各种框架中一般记作keep_prob。在每次训练中,各个屏蔽系数μ独立设置,设置为1的概率为keep_prob,设置为0的概率则为1-keep_prob。由此可见,保留概率为1时,神经网络不采用Dropout,而保留概率为0时,神经网络就不再工作(因为所有神经元都被屏蔽)。一般来说,保留概率可以选取0.5~0.8。

由于参数共享,每次训练过程尽管只针对某一个网络,但所有网络的参数(除了本次被屏蔽的神经元参数)都会同步更新。Dropout的训练方法与不含Dropout的训练方法的区别在于,训练时会考虑到不同网络结构下最优参数的设置,因此最终训练出来的参数在每种网络结构下都会有一定的效果。可以看出,这种方法能够有效地避免过拟合,因为过拟合的本质在于网络参数对误差过于敏感,而一组参数如果在不同的网络结构下都能取得不错的效果,那么这组参数发生过拟合的概率也会降低。

2.2 预测

集成预测方法一般需要计算每种网络结构下的预测值,并做加权平均。可惜的是,由于网络结构有2n种,我们无法逐个计算。与训练不同的地方在于,训练时我们可以通过训练一种网络结构,实现其他网络结构的参数同步更新,而预测的时候,我们无法通过某一个网络结构下的预测结果,获取其他网络结构下的预测结果。实际上,到目前为止还没有什么方法能在数学意义上保证有效的预测,所以只能采用一些启发式的方法。

一种最简单的思路是随机选取有限数量(如10~20组)网络,分别进行预测,再对预测结果按照概率进行加权平均。这种方法看上去只利用了很少的网络结构,但在实践中可以运行得很好。另一种方法是采用几何平均值代替算术加权平均值,作为Bagging后的结果。当然,几何平均值并不比算术平均值更容易求解,但是我们可以用一种有效的方法近似处理:只需考虑所有元素均未屏蔽的网络,在每个神经元的输出时乘以保留概率,最终得到的输出即可近似表示Bagging后的预测值。在一定条件下,可以证明这样处理得到的结果即为几何平均值,但在更多情况下,这只是一种简单的近似。

2.3 Dropout的实用变形

根据前两个小节的结果,我们可以看出Dropout的应用方法:

在训练时,每个神经元以keep_prob的概率正常输出,以1-keep_prob的概率输出0,然后运行BP算法进行梯度计算。
在预测时,每个神经元的输出乘以keep_prob后,进入下一层。
为了更加方便地使用Dropout,我们通常做如下变形:

在训练时,每个神经元以keep_prob的概率放大1/keep_prob倍输出。以1-keep_prob的概率输出0。这样,每个神经元的输出期望值和没有Dropout时的正常输出值相等。
在预测时,直接按照全网络进行预测即可。
这个变形实际上把预测时乘以keep_prob的过程转移到了训练中。这样,Dropout就完全成为训练参数。由于在深度学习中,训练和预测通常是分开的,这么处理使得预测时完全不用考虑Dropout的问题,为程序编写和运行带来了方便。

作为小结,Dropout是深度学习中的常用技巧,通过同时训练结构不同、参数共享的网络,模拟Bagging的效果。同时,由于训练时每个神经元的输出不确定可能为正常值,也可能为零,因此训练出来的网络对于误差有更强的适应性,从而有效避免过拟合。Dropout原理的简易性使其可以适应于各种结构的网络。但应该注意到,Dropout本质上是一种正则化手段,因此引入Dropout有可能会降低模型的训练速度和精度。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 该文章为转载文章,作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,从事过搜索和推荐相关工作。 T...
    名字真的不重要阅读 5,048评论 0 3
  • 一 上周回老家,听闻一起杀妻案。 一男子当街捅死了前妻与丈母娘。 看着照片,全身发毛。 这对母女倒在血泊里,身体蜷...
    苏秦的生活观阅读 538评论 0 4
  • 一群人不知道在干什么 每天嘻嘻哈哈过日子,跟吸毒一样 干不出活,就要求加班 还有人为此乐之不疲,觉得是造福后世 脑...
    BertFu阅读 592评论 0 0
  • 等我有准备结婚了,我要嫁给一个成熟稳重的男人,他没有大大的啤酒肚,没有地中海似的大光头,没有鸡毛蒜皮都计较的小心眼...
    星乂栀阅读 204评论 0 0
  • 鸡汤干货是一种励志的所谓的方法论文,而这本书所表达的也是一种励志交往的题材,可是效果截然不同。前者淋漓尽...
    膂朲阅读 380评论 0 3