drop out为什么能够防止过拟合

来源知乎:

dropout 的过程好像很奇怪,为什么说它可以解决过拟合呢?(正则化)

  • 取平均的作用: 先回到正常的模型(没有dropout),我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用 “5个结果取均值”或者“多数取胜的投票策略”去决定最终结果。(例如 3个网络判断结果为数字9,那么很有可能真正的结果就是数字9,其它两个网络给出了错误结果)。这种“综合起来取平均”的策略通常可以有效防止过拟合问题。因为不同的网络可能产生不同的过拟合,取平均则有可能让一些“相反的”拟合互相抵消。dropout掉不同的隐藏神经元就类似在训练不同的网络(随机删掉一半隐藏神经元导致网络结构已经不同),整个dropout过程就相当于 对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。
  • 减少神经元之间复杂的共适应关系: 因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。(这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况)。 迫使网络去学习更加鲁棒的特征 (这些特征在其它的神经元的随机子集中也存在)。换句话说假如我们的神经网络是在做出某种预测,它不应该对一些特定的线索片段太过敏感,即使丢失特定的线索,它也应该可以从众多其它线索中学习一些共同的模式(鲁棒性)。(这个角度看 dropout就有点像L1,L2正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高)
时间: 2024-12-21 19:20:33

drop out为什么能够防止过拟合的相关文章

overfitting(过度拟合)的概念

来自:http://blog.csdn.net/fengzhe0411/article/details/7165549 最近几天在看模式识别方面的资料,多次遇到“overfitting”这个概念,最终觉得以下解释比较容易接受,就拿出来分享下. overfittingt是这样一种现象:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据.此时我们就叫这个假设出现了overfitting的现象.出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少.而

动手学pytorch-过拟合、欠拟合

过拟合.欠拟合及其解决方案 过拟合.欠拟合的概念 权重衰减(通过l2正则化惩罚权重比较大的项) 丢弃法(drop out) 实验 1.过拟合.欠拟合的概念 1.1训练误差和泛化误差 前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似. 1.2验证数据集与K-fold验证 预留一部分在训练数据集和测试数据集以外的数据来进行模型选择,这部分数据被称为验证数据集,简称验证集(validation set).在K折交叉验证中,把

深度学习综述(LeCun、Bengio和Hinton)

原文摘要:深度学习可以让那些拥有多个处理层的计算模型来学习具有多层次抽象的数据的表示.这些方法在很多方面都带来了显著的改善,包含最先进的语音识别.视觉对象识别.对象检測和很多其他领域,比如药物发现和基因组学等.深度学习可以发现大数据中的复杂结构.它是利用BP算法来完毕这个发现过程的.BP算法可以指导机器怎样从前一层获取误差而改变本层的内部參数,这些内部參数可以用于计算表示.深度卷积网络在处理图像.视频.语音和音频方面带来了突破,而递归网络在处理序列数据.比方文本和语音方面表现出了闪亮的一面. 机

python环境下xgboost的安装与使用

xgboost是大规模并行boosted tree的工具,它是目前最快最好的开源boosted tree工具包,比常见的工具包快10倍以上.在数据科学方面,有大量kaggle选手选用它进行数据挖掘比赛,其中包括两个以上kaggle比赛的夺冠方案.在工业界规模方面,xgboost的分布式版本有广泛的可移植性,支持在YARN, MPI, Sungrid Engine等各个平台上面运行,并且保留了单机并行版本的各种优化,使得它可以很好地解决于工业界规模的问题. 本文就主要介绍一下xgboost在pyt

史上最详细的XGBoost实战

接下来安装,并最终选择将Python加入环境变量中.安装依赖包 去网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/中去下载你所需要的如下Python安装包: numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl scipy-0.19.1-cp36-cp36m-win_amd64.whl xgboost-0.6-cp36-cp36m-win_amd64.whl假设上述三个包所在的目录为D:\Application,则运行Win

对于正则化的理解

一.什么是正则化 正则化即为对学习算法的修改,旨在减少泛化误差而不是训练误差.正则化的策略包括: (1)约束和惩罚被设计为编码特定类型的先验知识 (2)偏好简单模型 (3)其他形式的正则化,如:集成的方法,即结合多个假说解释训练数据 在实践中,过于复杂的模型不一定包含数据的真实的生成过程,甚至也不包括近似过程,这意味着控制模型的复杂程度不是一个很好的方法,或者说不能很好的找到合适的模型的方法.实践中发现的最好的拟合模型通常是一个适当正则化的大型模型. 二.参数范数模型 对于线性模型,譬如线性回归

四大网络之Alexnet

? ?本文主要介绍AlextNet的一些知识,这些知识经常被忽略 一.AlextNet的创新点 (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题.虽然ReLU激活函数在很久之前就被提出了,但是直到AlexNet的出现才将其发扬光大. 使用Relu的优点如下: ????1>因为正半轴为向上升的函数,所以好求导,提升了计算速度 ????2>同样的因为正半轴为向上升的函数,所以相比sigmoid函数不会梯度消

机器学习-正则化(岭回归、lasso)和前向逐步回归

机器学习-正则化(岭回归.lasso)和前向逐步回归 本文代码均来自于<机器学习实战> 这三种要处理的是同样的问题,也就是数据的特征数量大于样本数量的情况.这个时候会出现矩阵不可逆的情况,为什么呢? 矩阵可逆的条件是:1. 方阵 2. 满秩 X.t*X必然是方阵(nxmxmxn=nxn,最终行列数是原来的X矩阵的列数,也就是特征数),但是要满秩的话,由于线性代数的一个结论,X.t*X的秩不会比X大,而X的秩是样本数和特征数中较小的那一个,所以,如果样本数小于特征数的话,X.t*X就不会是可逆的

机器学习:集成算法 - xgboost

xgboost(eXtreme Gradient Boosting) 大规模并行 boosting tree 的工具,据说是现在最好用的 boosting 算法,针对传统 GBDT 算法做了很多改进 xgboost 和传统 GBDT 的区别 GBDT 基学习器只用 CART 树,而 xgboost 除了用 CART 树,还可以用其他分类器 优化目标函数里,用到了二阶导数信息,能够更快地收敛,而普通的 GBDT 只用到一阶 优化目标函数里,对衡量模型复杂度的正则项进行了改进,GBDT 只对叶子个数