范数、稀疏与过拟合合集(1)范数的定义与常用范数介绍
范数、稀疏与过拟合合集(2)有监督模型下的过拟合与正则化加入后缓解过拟合的原理
范数、稀疏与过拟合合集(3)范数与稀疏化的原理、L0L1L2范数的比较以及数学分析
范数、稀疏与过拟合合集(4)L2范数对condition number较差情况的缓解
范数、稀疏与过拟合合集(5)Dropout原理,操作实现,为什么可以缓解过拟合,使用中的技巧

1、背景介绍:分布式特征表达

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

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

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

利用神经网络的分布式特征表达**(只要能保留核心特征)**,既可以实现成功完成任务(例如成功识别图片为猫),还可以用来阻止过拟合的发生,分布式特征表达可称为Dropout的来源。

2、Overfitting举例

Overfitting 也被称为过度学习,过度拟合。 它是机器学习中常见的问题。 举个Classification(分类)的例子。

图中黑色曲线是正常模型,绿色曲线就是overfitting模型。尽管绿色曲线很精确的区分了所有的训练数据,但是并没有描述数据的整体特征,对新测试数据的适应性较差。

3、对过拟合的解决方法

方法一

增加数据量, 大部分过拟合产生的原因是因为数据量太少了。如果我们有成千上万的数据, 更高维的、更加符合所有数据的规律会被发现,绿色的也会慢慢被拉直, 变得没那么扭曲 。

方法二

运用正则化,L1, L2 regularization 等等。 前几篇blog中有叙述。

方法三:

专门用在神经网络的正规化的方法, 叫作dropout。在训练的时候,我们随机忽略掉一些神经元和神经联结 , 是这个神经网络变得”不完整”。每次都用一个不完整的神经网络训练。

4、Dropout

4.1 相关论文

Srivastava等大牛在2014年的论文《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》提出了Dropout正则化。

4.2 Dropout的效果:

网络对某个神经元的权重变化更不敏感,以至于达到防止参数过分依赖训练数据的目的,增加参数对数据集的泛化能力。减少过拟合,增加泛化能力。

4.3 Dropout实现操作说明

Dropout的意思是:每次训练时随机忽略一部分神经元,这些神经元dropped-out了。换句话讲,这些神经元在正向传播时对下游的启动影响被忽略,反向传播时也不会更新权重。

神经网络的所谓“学习”是指,让各个神经元的权重符合需要的特性。不同的神经元组合后可以分辨数据的某个特征。每个神经元的邻居会依赖邻居的行为组成的特征,如果过度依赖,就会造成过拟合。

如果一次训练中随机拿走一部分神经元,那么剩下的神经元就需要补上消失神经元的功能。

到第二次再随机忽略另一些, 变成另一个不完整的神经网络。

整个网络变成很多独立网络(对同一问题的不同解决方法)的合集。

有了这些随机 drop 掉的规则,我们可以想象其实每次训练的时候,我们都让每一次预测结果都不会依赖于其中某部分特定的神经元。像L1L_1L1​范数, L2L_2L2​范数正则化一样,过度依赖的WWW,也就是训练参数的数值会很大,L1L_1L1​范数、L2L_2L2​范数会惩罚这些大的 参数。Dropout 的做法是从根本上让神经网络没机会过度依赖。

假设我们要训练这样一个神经网络

输入是xxx输出是yyy,正常的流程是:我们首先把xxx通过网络前向传播,然后与yyy进行计算出误差,后把误差反向传播以决定 如何更新参数让网络进行学习。使用dropout之后过程变成:

  • 首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变(下图中虚线为部分临时被删除的神经元)

  • 然后把输入xxx通过修改后的网络前向传播,然后把得到的损失结果通过修改的网络反向传播。一小批训练样本执行完这个过程后就按照随机梯度下降法更新,只更新没有被删除的神经元中对应的参数(w,b)(w,b)(w,b)。

  • 然后继续重复这一过程:

  • 恢复被删掉的神经元(此时 被删除的神经元 保持原样(即为更新前的数值),而没有被删除的神经元已经有所更新)

    从隐藏神经元的参数集合中随机圈定的一个一定大小的子集(这个子集的大小是根据参数自己设置的)临时删除掉(备份被删除神经元的参数,他们只是不参加本次训练)。

    对一小批训练样本,先前向传播然后反向传播损失并根据随机梯度下降法更新参数(w,b)(w,b)(w,b) (没有被删除的那一部分参数得到更新,删除的神经元参数保持被删除前的结果

5、Dropout为什么可以解决过拟合呢?

角度1:数据扩充层面

对于每一个dropout后的网络,进行训练时,相当于做了Data Augmentation。

对于某一层,dropout一些单元后,形成的结果是(1.5,0,2.5,0,1,2,0),其中0是被drop的单元,也就相当于说对于后面的层来说,多训练了这种情况下的数据。这样每一次dropout其实都相当于增加了样本。

角度2:模型层面

在较大程度上减小了网络的大小:在这个“残缺”的网络中,让神经网络学习数据中的局部特征(即部分分布式特征),但这些特征也足以进行输出正确的结果。相当于说减少了参数试图获得一样的性能。减少了过拟合的可能。

角度3:取平均的思路

先回到正常的模型(没有dropout),我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用 “5个结果取均值”或者“多数取胜的投票策略”去决定最终结果。例如 3个网络判断结果为数字9,那么很有可能真正的结果就是数字9,其它两个网络给出了错误结果。

Dropout思想类似于集成学习中的Bagging思想:由学习阶段可知,每一次训练都会按一定的比例来随机保留部分神经元,这意味着每次迭代过程中,会随机删除一些神经元,也就相当于说训练多个"残缺"的神经网络中,并且每次都是进行随机的参数选择(这里随机参数选择也就意味着随机选择表达的特征)。整个dropout过程就相当于对很多个不同的神经网络取平均。

这种“综合起来取平均”的策略通常可以有效防止过拟合问题。因为不同的网络可能产生不同的过拟合,取平均则有可能让一些互为“反向”的拟合相互抵消,这样在整体上就会减少过拟合。

角度4:减少共适应关系

减少神经元之间复杂的共适应关系: 因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况。 迫使网络去学习更加鲁棒的特征 (这些特征在其它的神经元的随机子集中也存在)。换句话说假如我们的神经网络是在做出某种预测,它不应该对一些特定的线索片段太过敏感,即使丢失特定的线索,它也应该可以从众多其它线索中学习一些共同的模式(鲁棒性)。(这个角度看 dropout就有点像L1,L2正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高)

角度5:优胜劣汰,进化适应

Dropout类似于性别在生物进化中的角色:物种为了生存往往会倾向于适应这种环境,环境突变则会导致物种难以做出及时反应,性别的出现可以繁衍出适应新环境的变种,有效的阻止过拟合,即避免环境改变时物种可能面临的灭绝。 当地球都是海洋时,人类是不是也进化出了再海里生活的能力呢?

6、使用Dropout正则化的技巧

原论文对很多标准机器学习问题做出了比较,并提出了下列建议:

  • Dropout概率不要太高,从20%开始,试到50%。太低的概率效果不好,太高有可能欠拟合。
  • 网络要大。更大的网络学习到不同方法的几率更大。
  • 每层都做Dropout,包括输入层。效果更好。
  • 学习率(带衰减的)和动量要大。直接对学习率乘10或100,动量设到0。9或0。99。
  • 限制每层的权重。学习率增大会造成权重增大,把每层的模限制到4或5的效果更好。

LAST、参考文献

drop解决过拟合的情况 - 。Tang - 博客园
Neural networks and deep learning
Deep learning:四十一(Dropout简单理解)
深度学习:Dropout解决过拟合问题_Vermont_的博客-CSDN博客
drop解决过拟合的情况_weixin_30839881的博客-CSDN博客
drop out为什么能够防止过拟合 - simple_wxl - 博客园
Dropout如何防止过拟合 - 知乎
过拟合(Overfitting) 与 Dropout

深度学习机器学习理论知识:范数、稀疏与过拟合合集(5)Dropout原理,操作实现,为什么可以缓解过拟合,使用中的技巧相关推荐

  1. 深度学习机器学习理论知识:范数、稀疏与过拟合合集(2)有监督模型下的过拟合与正则化加入后缓解过拟合的原理

    范数.稀疏与过拟合合集(1)范数的定义与常用范数介绍 范数.稀疏与过拟合合集(2)有监督模型下的过拟合与正则化加入后缓解过拟合的原理 范数.稀疏与过拟合合集(3)范数与稀疏化的原理.L0L1L2范数的 ...

  2. [深度学习论文笔记]医学图像分割U型网络大合集

    [深度学习论文笔记]医学图像分割U型网络大合集 2015 U-Net: Convolutional Networks for Biomedical Image Segmentation (MICCAI ...

  3. 深度学习中的知识蒸馏技术(下)

    本文概览: 写在前面: 这是一篇介绍知识蒸馏在推荐系统中应用的文章,关于知识蒸馏理论基础的详细介绍,请看我的这篇文章: 深度学习中的知识蒸馏技术(上) 1. 背景介绍 1.1 简述推荐系统架构 如果从 ...

  4. 深度学习(十二)稀疏自编码

    稀疏自编码 原文地址:http://blog.csdn.net/hjimce/article/details/49106869 作者:hjimce 一.相关理论 以前刚开始学CNN的时候,就是通过阅读 ...

  5. 学习深度学习需要哪些知识_您想了解的有关深度学习的所有知识

    学习深度学习需要哪些知识 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) Corona was a huge challenge for many ...

  6. 微软CTO韦青:深度学习不仅是知识,而是思维范式的转变

    https://www.toutiao.com/a6651052971834475011/ 1956年,达特茅斯人工智能夏季研究计划首次提出"人工智能"一词,标志着这一学科的正式诞 ...

  7. 动手组装深度学习机器+RTX2070Super

    动手组装深度学习机器 前言 机器配置说明 总结配置清单 硬件安装及注意事项 CPU安装 内存安装 主板安装 固态安装 硬盘安装 GPU安装 散热安装 插线 后记 前言 从硬件层面来讲,正是得益于GPU ...

  8. 深度 | 从硬件配置到软件安装,一台深度学习机器的配备指南

    本文作者 Roelof Pieters 是瑞典皇家理工学院 Institute of Technology & Consultant for Graph-Technologies 研究深度学习 ...

  9. 深度学习常用数学知识

    深度学习常用数学知识 为什么图片能被计算机读取?为什么我们可以用CNN对成千上万中图片进行分类,这背后的原理是什么?在了解原理之前,先给大家补点数学知识.因为无论是深度学习还是机器学习,背后都是有一些 ...

最新文章

  1. composer爆错:zlib_decode():data error
  2. 【经典】javascript ES5原生实现考试题答案全排列组合数组结果获取
  3. 【LeetCode从零单排】No112 Path Sum
  4. 用nrm一键切换npm源
  5. pixhawk的姿态控制算法解读
  6. 算法 --- 罗马数字转整数
  7. 如何动态改变audio的播放的src
  8. RT-Thread设备框架学习感悟
  9. 判断输入几位数的正则_判断是几位数,并逆向输出此数的程序算法和说明
  10. mfc 固定编辑框输入上限和下限_S7200smart的模拟量输入输出
  11. 论文笔记_S2D.57_2018-IROS_LIMO:激光雷达单目视觉里程计
  12. Android TV开发总结【RecycleView】
  13. 好用!不用第三方工具就可以检测微信好友是否删除!
  14. SQLSERVER读懂语句运行的统计信息
  15. 文献阅读——梅州佛教香花的结构、文本与变体
  16. matplotlib添加行列标题、axes.axis以及axes.xaxis.set_ticklabels相关使用方法
  17. excel怎么固定住一行和一列
  18. linux下的计划任务
  19. Java获取基金接口天天基金_天天基金网数据接口
  20. 生动理解关联规则——Apriori算法

热门文章

  1. G20峰会将会给数字货币带来哪些影响?
  2. 求解非齐次线性方程组算法
  3. 教你轻松一键安装win10系统
  4. 5G新基建政策下智慧灯杆的机遇与挑战
  5. 【图文并茂】教你在线一键重装正版Win10系统
  6. java集合转js数值,基于jsTree的无限级树JSON数据的转换
  7. 苏格拉底《临死前的演说》
  8. DeFi 借贷 VS 传统借贷
  9. 民间借贷的法定利息又降低了
  10. 同花顺2020春招一面二面在线编程题(java开发)