Dropout技术为什么能防止过拟合?

简介:

在学习深度学习时,常常有人会问到这样一个问题:Dropout技术为什么能防止过拟合?

当然,简单的回答是:防止参数过分依赖训练数据,增加参数对数据集的泛化能力。

这样的回答,当然是正确的。但有点抽象。我来说点具体的案例,以帮助大家更形象化地理解。首先,这涉及到深度学习的分布式特征表达。

1.什么是分布式特征表达呢?

分布式表征(Distributed Representation),是人工神经网络研究的一个核心思想。那什么是分布式表征呢?简单来说,就是当我们表达一个概念时,神经元和概念之间不是一对一对应映射(map)存储的,它们之间的关系是多对多。具体而言,就是一个概念可以用多个神经元共同定义表达,同时一个神经元也可以参与多个不同概念的表达,只不过所占的权重不同罢了。

举例来说,对于“小红汽车”这个概念,如果用分布式特征地表达,那么就可能是一个神经元代表大小(形状:小),一个神经元代表颜色(颜色:红),还有一个神经元代表车的类别(类别:汽车)。只有当这三个神经元同时被激活时,就可以比较准确地描述我们要表达的物体。

分布式表征表示有很多优点。其中最重要的一点,莫过于当部分神经元发生故障时,信息的表达不会出现覆灭性的破坏。比如,我们常在影视作品中看到这样的场景,仇人相见分外眼红,一人(A)发狠地说,“你化成灰,我都认识你(B)!”这里并不是说B真的“化成灰”了,而是说,虽然时过境迁,物是人非,当事人B外表也变了很多(对于识别人A来说,B在其大脑中的信息存储是残缺的),但没有关系,只要B的部分核心特征还在,那A还是能够把B认得清清楚楚、真真切切!人类的大脑还是真的厉害啊!

事实上,利用神经网络的分布式特征表达,还可以用来阻止过拟合的发生。

下面我们来谈谈这个问题

2.什么是Dropout技术呢?

2012年,Hinton等人发表了一篇高引用论文[1],其中提到了一种在深度学习中广为使用的技巧:丢弃学习(Dropout Learning)。算法的核心思想和前文讲解的理念有异曲同工之妙。

“丢弃学习(Dropout,也有人称之为“随机失活”)”是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。“丢弃学习”通常分为两个阶段:学习阶段和测试阶段。


图1 Dropout示意图(图片来源:参考文献[2])

在学习阶段,以概率p主动临时性地忽略掉部分隐藏节点。这一操作的好处在于,在较大程度上减小了网络的大小,而在这个“残缺”的网络中,让神经网络学习数据中的局部特征(即部分分布式特征)。在多个“残缺”之网(相当于多个简单网络)中实施特征,总要比仅在单个健全网络上进行特征学习,其泛化能力来得更加健壮。

而在测试阶段,将参与学习的节点和那些被隐藏的节点以一定的概率p加权求和,综合计算得到网络的输出。对于这样的“分分合合”的学习过程,有学者认为,“丢弃学习”可视为一种集成学习(Ensemble Learning)[3]。

这里顺便简单介绍一下集成学习的思路。集成学习的理念,有点类似于中国的那句古话“三个臭皮匠,赛过诸葛亮”。在对新实例进行分类时,集成学习把若干个单个分类器集成起来,通过对多个分类器的分类结果进行某种优化组合,最终通过投票法,决定分类的结果,即采用了“少数服从多数”原则。

通常,集成学习可以取得比单个分类器更好的性能。如果把单个分类器比作一个决策者的话,集成学习的方法,就相当于多个决策者共同进行一项决策。

但需要指出的是,要获得较好的集成效果,每一个单独学习器都要保证做到“好而不同”。也就是说,个体学习器都要有一定的“准确性(Accuracy)”,并保证有多样性(Diversity),也就是说,学习器要有差异性,有了差异性,才能“兼听则明”,表现出更强的鲁棒性。

参考文献:

[1] Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science, 2012, 3(4):pp. 212-223.

[2] Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: a simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15(1):1929-1958.

[3] MLAHara, Kazuyuki, D. Saitoh, and H. Shouno. "Analysis of Dropout Learning Regarded as Ensemble Learning." International Conference on Artificial Neural Networks Springer, Cham, 2016:72-79.


文章作者:张玉宏(著有《品味大数据》、《深度学习之美》(最通俗易懂的深度学习入门)2018年6月即将出版)

相关文章
|
机器学习/深度学习 网络架构
浅谈神经网络中的bias
1、什么是bias? 偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b 的意义是一致的。在 y=wx+b中,b表示函数在y轴上的截距,控制着函数偏离原点的距离,其实在神经网络中的偏置单元也是类似的作用。 因此,神经网络的参数也可以表示为:(W, b),其中W表示参数矩阵,b表示偏置项或截距项。
1294 0
浅谈神经网络中的bias
|
机器学习/深度学习
【深度学习】实验13 使用Dropout抑制过拟合 2
【深度学习】实验13 使用Dropout抑制过拟合
61 0
|
机器学习/深度学习
【深度学习】实验13 使用Dropout抑制过拟合 1
【深度学习】实验13 使用Dropout抑制过拟合
127 0
|
机器学习/深度学习 并行计算 算法
激活函数Relu对精度和损失的影响研究
激活函数Relu对精度和损失的影响研究
160 0
|
机器学习/深度学习 人工智能 计算机视觉
改进Hinton的Dropout:可以用来减轻欠拟合了
改进Hinton的Dropout:可以用来减轻欠拟合了
|
机器学习/深度学习 Python
神经网络中的损失函数正则化和 Dropout 并手写代码实现
神经网络中的损失函数正则化和 Dropout 并手写代码实现
204 0
神经网络中的损失函数正则化和 Dropout 并手写代码实现
|
机器学习/深度学习 数据挖掘 计算机视觉
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(二)
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(二)
163 0
|
机器学习/深度学习 人工智能 计算机视觉
【深度学习】改进Hinton的Dropout:可以用来减轻欠拟合了
【深度学习】改进Hinton的Dropout:可以用来减轻欠拟合了
|
机器学习/深度学习 人工智能 PyTorch
【Pytorch神经网络理论篇】 15 过拟合问题的优化技巧(二):Dropout()方法
异常数据的特点:与主流样本中的规律不同,在一个样本中出现的概率要比主流数据出现的概率低很多。在每次训练中,忽略模型中一些节点,将小概率的异常数据获得学习的机会变得更低。这样,异常数据对模型的影响就会更小。
259 0
|
机器学习/深度学习 人工智能 算法
dropout 算法是如何防止过拟合的
dropout在训练的过程中,可以很好的防止过拟合,是因为它可以随机性的让一些神经元不处于激活状态。

相关实验场景

更多