19. 丢弃法(Dropout)

news2024/11/13 16:01:01

1. 动机

  • 一个好的模型需要对输入数据的扰动鲁棒(不管一张图片加入多少噪音,也能看清这张图片)
    • 使用有噪音的数据等价于Tikhonov正则
    • 丢弃法:在层之间加入噪音

输入数据加入随机扰动可以防止过拟合,泛化性更好,等价于一种正则方式。现在对噪音的添加方式从输入位置放到了层间位置。

Q: 之前的视频说,有了噪音才会出现过拟合,为什么这里又说加入随机扰动又可以防止过拟合?
A:我的理解是,之前的噪音是固定的,如果模型学习到了一组参数w和b,可以很好得拟合数据,但是w很大,那么噪音也会因为这个w而被放大,那在预测的时候会很不准确,会出现过拟合。

随机加入扰动,在一次更新参数的时候,也许w和b会学得很大,但下一次噪音又不同了,又会再次学习w和b,因为可以理解为在一定程度上限制参数大小,防止过拟合。

2. 无偏差地加入噪音

假设x是一层到下一层之间的输出,希望对x加入噪音得到x’,但是希望即使加了噪音,不要改变期望,就是希望数据求平均之后还是一样的。

ps:E[x] = x

在这里插入图片描述
p的概率变成0,1-p的概率把数据变大,因为p在0~1之间。

3. 使用丢弃法

  • 通常将丢弃法作用在隐藏全连接的输出层上。

在这里插入图片描述

4. 推理中的丢弃法

  • 正则项只在训练中使用:他们影响模型参数的更新
  • dropout也是正则化,只在训练时使用,训练时学习参数w和b
  • 在推理/预测过程中,丢弃法直接返回输入
    • h = dropout(h)
    • 这样也能保证确定性的输出

5. 总结

  • 丢弃法将一些输出项随机置0来控制模型复杂度
  • 常作用在多层感知机的隐藏层输出上
  • 丢弃概率是控制模型复杂度的超参数
  • 常见丢弃概率:0.1 ,0.5,0.9

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

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

相关文章

Python学习基础笔记四十四——模块

1、看一个例子: 创建一个demo.py文件: print(in demo.py)def hello():print(in hello function) 然后我们在另外一个文件中import这个demo文件: import demo# 调用demo.py文件中的hello()函数 demo.hello() 注意,demo后面没有…

Linux系统网络编程——第二十节 多路复用之epoll 模型

目录 epoll相关系统调用 1、epoll_create: 2、epoll_ctl() 3、epoll_wait epoll模型原理 epoll的使用场景 各位好,博主新建了个公众号《自学编程村》,拉到底部即可看到,有情趣可以关注看看哈哈,关注后还可以加博主…

Redis原理篇

目录Redis数据结构动态字符串SDS整数集合Intset键值型Dict压缩链表 ZipList快速链表QuickList跳表SkipList对象RedisObjectRedis网络模型Redis通信协议-RESP协议Redis内存回收过期key处理内存淘汰策略Redis数据结构 动态字符串SDS Redis构建了一种新的字符串结构,…

从C#5.0说起:再次总结C#异步调用方法发展史

本篇继续介绍WaitHandler类及其子类 Mutex,ManualResetEvent,AutoResetEvent的用法。 .NET中线程同步的方式多的让人看了眼花缭乱,究竟该怎么去理解呢? 其实,我们抛开.NET环境看线程同步,无非是执行两种操…

软件测试基础知识总览【纯知识,建议收藏慢慢学】

1. 软件测试定义 首先要明确测试的定义,所谓测试,就是以检验产品是否满足需求为目标。 而软件测试,自然是为了发现软件(产品)的缺陷而运行软件(产品) 比较标准的软件测试的定义是:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。 IEE…

算法总结,不断更新

文章目录摩尔投票法DFS算法BFS算法题源来自于力扣网 摩尔投票法 适用场景 如何在选票无序的情况下,选出获胜者。 例题: 找出数组中,出现次数超过总数一半的数字(出现次数 > n/2)。 输入:[1,1,3,2,4,6,…

10000字吐血总结+24张图带你彻底弄懂线程池

大家好。今天跟大家聊一聊无论是在工作中常用还是在面试中常问的线程池,通过画图的方式来彻底弄懂线程池的工作原理,以及在实际项目中该如何自定义适合业务的线程池。 一、什么是线程池 线程池其实是一种池化的技术的实现,池化技术的核心思…

MVC|JAVA|SSM框架计算机硬件评测交流平台的开发和实现

收藏点赞不迷路 关注作者有好处 文末获取源码 项目编号:BS-PT-070 一,项目简介 计算机硬件在社会上有很多广泛的发烧友,他们急需一个发布专业硬件测评数据的平台并进行交流互动的社区。本次开发实现的计算机硬件交流平台就是作为一个专业的…

Android序列化之Parcel源码分析(2)

文章目录1.Parcel.java2.Parcelable和Parcel的关系3.Parcel写入数据源码分析3.1.java层Parcel创建3.2.native层Parcel创建3.3写入IBinder接口标识符3.4写入String数据4.Parcel读取数据源码分析4.1获取IBinder接口标识符4.2读取String数据1.Parcel.java Android可以通过Parcel进…

【OpenCV学习】第15课:处理卷积边缘问题

仅自学做笔记用,后续有错误会更改 (卷积的概念可以看看第14课) 理论 卷积边缘问题:从下图最右方的结果可以看出,卷积操作之后, 剩余的绿色像素部分, 我们是没有处理到的 那么如何处理这个问题呢&#xf…

论文3:查找文献在指定期刊的引用格式

文章目录说明:1.谷歌学术搜索(可以用一些国内的镜像),并点击被引用次数2.勾选在引用文章中搜索,并在搜索框搜索指定期刊的关键词3.这里指定期刊是RAL即IEEE Robotics and Automation Letters4.任意点开上图中的一篇文章…

支付宝当面付网站对接支付教程

有很多人会开支付宝当面付但是不会配置它老会出现一下情况 第二种情况如下: 如果遇到以上情况可以按照我的步骤就可以解决 详细步骤: 一、应用APPID获取方法 1.打开网站:https://openhome.alipay.com/platform/developerIndex.htm&#x…

Canal配置多个实例以及将Mysql指定表的binlog导入指定的Kafka的Topic

Canal配置多个实例以及将Mysql指定表的binlog导入指定的Kafka的Topic 进入Canal的conf目录 复制模板配置文件 cp -r example/ Ordercp -r example/ Orderdetail修改canal.propertieswenjain vim canal.properties修改内容如下,指定输出模式为kafka canal.serverM…

【元胞自动机】心房颤动/扑动模型研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

(附源码)ssm学校疫情服务平台 毕业设计 291202

ssm学校疫情服务平台 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对学校疫情服务平台等问…

【数电实验】触发器及其应用

实验三 触发器及其应用 一 实验目的 1 了解触发器的触发方式(上升沿触发、下降沿出发)及其触发特点; 2 测试常用触发器的逻辑功能; 3 掌握用触发器设计同步时序逻辑电路的方法。 二 实验内容 1 测试双D触发器74HC74的逻辑功能…

手工编译konsole备忘

背景 系统自带的终端弱爆了,本来想编译深度终端的,但DTK风格的程序在非DDE桌面(应该是dde_kwin这个窗管的问题)巨难看,无意中添加了Konsole,发现已经有我需要使用的右键打开当前目录文件管理器的功能。 …

Go context.Context的学习

一、前言 Golang context是Golang应用开发常用的并发控制技术,它与WaitGroup最大的不同点是context对于派生goroutine有更强的控制力,它可以控制多级的goroutine。 context翻译成中文是”上下文”,即它可以控制一组呈树状结构的goroutine&a…

java计算机毕业设计ssm疫情期间校园车辆入校预约管理服务系统1171a(附源码、数据库)

java计算机毕业设计ssm疫情期间校园车辆入校预约管理服务系统1171a(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe…

没有二十年功力,写不出 Thread.sleep(0) 这一行“看似无用”的代码

这篇文章要从一个奇怪的注释说起,就是下面这张图: 我们可以不用管具体的代码逻辑,只是单单看这个 for 循环。 在循环里面,专门有个变量 j,来记录当前循环次数。 第一次循环以及往后每 1000 次循环之后,进…