Dropout方法原理和使用方法

news2024/11/16 20:55:19

来源:投稿 作者:梦飞翔
编辑:学姐

为什么提出这种方法?

神经网络在训练过程中,由于正负样本不均衡、样本特征显著性不足、训练参数不合适等原因会导致发生过拟合现象,即模型参数陷入局部最优,仅对训练集中样本有较好预测能力,对于其他数据表现会非常差。因此,需要引入正则化(Normalization)改善网络训练过程。DropOut方法便是由此而生,被用来缓解网络过拟合风险。

这种方法本质是什么?

本质是通过随机删除部分神经元(特征)及其对应连接,实现对网络特征提取的随机修正,这种过程被称作随机正则化,过程如Figure1所示。

作者称,这种思想来源于人工智能领域的遗传算法,通过随机变异的方式,来促进整个种群的整体进化,个人理解可以通过式1进行表示,在n个参数的某种配置下,预测结果可能接近参考结果,然而此时的目标函数可能处于凸优化中的一个鞍点(局部最优),此时,只需随机改变数个参数,所有的参数都将被迫随之改变,进入下一轮的优化过程:

如何实现?

这里以Pytorch为例,Dropout在实现里面被设置成一种方法对象的形式,即先定义方法构成对象,再用来处理数据,这里附上Pytorch的官方教程链接

(https://pytorch.org/docs/master/generated/torch.nn.Dropout.html?highlight=dropout#torch.nn.Dropout)

简要描述一下,即先定义随机丢弃率(p),是否采用再赋值方式调用(inplace),以及最为重要的训练过程指示标志(training),在训练过程结束后,一定要注意将该标志改为false,否则,在验证过程中,它依旧会进行随机的特征丢弃,大大降低网络模型所表现出的性能。

快速调用可以写作:

>>> m = nn.Dropout(p=0.2)
>>> input = torch.randn(20, 16)
>>> output = m(input)

其中,第一句话为生成方法对象,第二句随机生成一个例子tensor,第三句实现dropout,input在真实项目中即为动态网某层输出。

据我在使用过程中的经验,dropout一般在浅层网络尽量少的使用,因为过拟合一般是在深层网络中出现,浅层网络一般属于欠拟合问题。

深浅的界限因人而异,据我观察,在Res16、Res32中,如果在网络特征提取过程中引入dropout,会降低网络性能,在Res32最后的全连接层加入,会有小幅性能提升。

Res50中,在网络中游加入,可以产生一定正向影响,综上所述,我个人认为深层浅层大概是以50层为界限,当然,ResNet独特的残差连接(skip connection)可以提高网络的训练效果,因此可能效果不是特别明显,在VGG这种密集FCN里面的效果可就大展神威了,通过这里也可以看出,网络模型不是越深越强,根据任务选择最合适的层数会有事半功倍的效果!

结果如何?

作者给出了规范的对比表格,其中,MNIST简单手写数字数据集结果:

对于彩色视觉数据集:

其他的不在一一赘述,有兴趣可以直接参考论文原文:

《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》。

总结

Dropout这是一种非常好用,实现也简单的减弱过拟合风险的方法,个人实验发现的已知适用场景:数据量大却特征显著性不足、网络模型深不易训练。如果百尺竿头了,也许能利用它更进一步!

关注学姐👇👇👇每日分享大佬经验+AI干货资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT6操作连接mysql数据库方法_增删改查

QT6操作mysql方法_增删改查 mysql数据库搭建相关方法: MySQL - 随笔分类 - txwtech - 博客园https://www.cnblogs.com/txwtech/category/1973054.htmlMySQL解压版配置方法 MySQL解压版配置方法 - txwtech - 博客园1.下载 https://downloads.mysql.com/archives/co…

【知识学习】C++QT配置opencv遇到的坑

最近要搞图像,老师说尽量用C,就开始研究配置opencv 当然,说在前面,C的比python的要麻烦特别多,所以如果不是必要的话,建议用python pip配opencv吧 C麻烦就在于要自己在本地编译一遍才能跑,直接…

如何将亚马逊Seller Central 用到极致~

不论是新手卖家还是有经验的老手,亚马逊卖家中心都是一个可以帮助卖家发展业务的好工具,对于许多新手小白来说,亚马逊这样巨大的平台仍有许多功能与服务等着挖掘。 什么是亚马逊卖家中心? 亚马逊卖家中心是第三方卖家用来管理和…

微信支付-全面详解(学习总结---从入门到深化)

微信支付_产品介绍 微信支付介绍 微信支付(https://pay.weixin.qq.com)是腾讯集团旗下中国领先 的第三方支付平台,一直致力于为用户和企业提供安全、便捷、专业的在线支付服务。 付款码支付 付款码支付是指用户展示微信钱包内的“付款码”给商…

指纹浏览器是什么?可以用来解决网络爬虫的什么问题?

在大数据时代的今天,各行各业的许多企业多多少少都会因为涉及到海外市场需要收集大量的市场信息,特别是对于跨境电商领域的商家来说,网络爬虫是必不可少的。因此,一定有很多从业者接触过网络爬虫,但对于刚打算进入这个…

ADI Blackfin DSP处理器-BF533的开发详解36:图像处理专题-RGB888 转 RGB565(含源代码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 作为一个最高600M主频,单核或双核的定点DSP,做图像处理还是挺行的,属于是老本行,那么我…

广州蓝景分享—HTML+CSS功能,让页面加载速度提高数倍

Hello,各位小伙伴,今天跟大家分享前端技术干货,页面加载速度问题。 首先我们都讨厌加载缓慢的页面! 要知道加载时间每增加1秒(0-5秒之间),网站转化率就会平均下降4.42%。页面加载时间的前五秒…

linux 虚拟机nat模式网络配置

文章目录1. linux 版本:2. 下载地址 Index of /centos-store/7.6.1810/isos/x86_64/ (liu.se)3. 账号密码:root root4.选择nat 模式,勾选 将主机虚拟适配器连接到此网络,勾选 使用本地DHCP服务将iP地址分配给虚拟机5.点击Nat 设置…

数据仓库分享

前言 数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析性报告和决策支持的目的而创建的。 数据仓库是一个数据集合 数据仓库是一个为业务决策提供数据支持的数据集合 数据仓库是通过监控业务流程的形式为业务决策提…

Css不常用的方法

flex布局换行之后,下面一行的布局会异常 .homeItemBox{ display: flex; flex-wrap: wrap; justify-content: flex-start;} .homeItem{ display: flex; width: calc((100% - 20rpx) / 4); flex-direction: column; align-items: center; flex-shrink: 0; …

盘点系列:一度大热的TWS耳机今年表现如何?

根据Canalys最新市场研究数据显示,全球智能个人耳机市场在2022年Q3已连续第二个季度出现下滑,出货量同比下降4%至1.136亿台。 而TWS是唯一出现增长的子类别! Q3真无线耳机TWS销量达7690万部,同比增长6%。苹果(含beats&…

软件测试基础理论体系学习6-黑盒测试方法白盒测试方法简述

13 白盒测试方法1 黑盒测试1.1 黑盒测试概述1.2 黑盒测试的使用场景1.3 “黑盒”的两种基本方法1.4 黑盒测试的优缺点1.4.1 优点1.4.2 缺点1.5 黑盒测试的测试用例设计方法2 白盒测试2.1 白盒测试概述2.2 逻辑覆盖2.3 语句覆盖2.3.1 基本思想是2.3.2 优点2.3.3 缺点2.4 判定覆盖…

Python及其在数据科学中的应用

前言 Python及其在数据科学中的应用 Python易学,语法也比较简单。它是一种流行的数据科学语言,因为它功能强大且易于使用。Python是一种出色的数据分析语言,因为它包含各种数据结构、模块和工具。 使用Python进行数据科学的原因有很多&…

详细介绍NLP对话系统

任务型对话系统 任务型对话系统主要应用于固定领域。任务型对话的广泛应用的方法有两种,一种是模块法,另一种是端到端的方法。 模块法是将对话响应视为模块,每个模块负责特定的任务,并将处理结果传送给下一个模块。 端到端的任务…

分布式事务 - Seata - TCC模式

目录一、什么是TCC二、AT & TCC区别 及 适用场景三、代码集成示例3.1 升级Seata 1.5.23.2 示例场景说明3.3 TCC核心接口定义3.4 TCC相关阶段规划3.5 TCC核心代码四、TCC三大问题(幂等、空回滚、悬挂)之前介绍过分布式事务之Seata AT模式,…

智慧新零售异业联盟帮你搞定多店跨界整合,让你开启共富时代

大家好,我是林工,在如今的时代,不管你所看到的商业模式是什么样的,以不变应万变,目的只有一个,把买卖发展壮大,想要将买卖发展壮大,那就需要精准的吸粉引流获客方式和能力。 林工常常…

Fluent Mybatis 牛逼!

这玩意比ThreadLocal叼多了,吓得我赶紧分享出来。 推荐一些chrome浏览器必装的插件! 40 个 SpringBoot 常用注解 VSCode 花式玩法(摸鱼)收藏一下 ! 使用fluent mybatis可以不用写具体的xml文件,通过jav…

【面试大全】互联网面试软实力【必看】

软实力 推荐大家使用Markdown语法写简历,然后再将Markdown格式转换为PDF格式后进行简历投递。如果你对Markdown语法不太了解的话,可以花半个小时简单看一下Markdown语法说明: http://www.markdown.cn/ 面试 假如你是网络申请者【拉勾、boss等】&…

Latex 分式格式处理

分式 分式命令:\frac{分子}{分母}。 对于行内短分式,可用斜线/输入,例如:(xy)/2 举例: 行内分式 \(\frac{xy}{yz} \) (显示为:) 行间分式 \[\frac{xy}{yz}\] (显示为&a…

【PCB设计特别篇之阻抗计算】还在用SI9000进行阻抗计算?

有了叠层信息后,才可以进行阻抗计算,走线阻抗与线宽、线距、介质厚度、绿油厚度、介质介电常数、铜箔厚度等一些信息相关,所以要现有叠层,才能进行阻抗计算。 阻抗计算的工具有很多,下面介绍几种: 1、SI900…