深度学习中的Droupout

news2024/11/16 20:35:08

1. 什么是Droupout

Dropout的作用是防止过拟合。

Dropout在训练模型中是如何实现的呢?Dropout的做法是在训练过程中按一定比例(比例参数可设置)随机忽略或屏蔽一些神经元。这些神经元被随机“抛弃”,也就是说它们在正向传播过程中对于下游神经元的贡献效果暂时消失了,反向传播时该神经元也不会有任何权重的更新。所以,通过传播过程,dropout将产生和L2范数相同的收缩权重的效果。

2. 原理

Dropout的做法是在训练过程中按一定比例(比例参数可设置)随机忽略或屏蔽一些神经元。这些神经元被随机“抛弃”,也就是说它们在正向传播过程中对于下游神经元的贡献效果暂时消失了,反向传播时该神经元也不会有任何权重的更新。所以,通过传播过程,dropout将产生和L2范数相同的收缩权重的效果。

输入是x输出是y,正常的流程是:

我们首先把x通过网络前向传播,然后把误差反向传播以决定如何更新参数让网络进行学习。使用Dropout之后,过程变成如下:

 

首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变
然后把输入x通过修改后的网络前向传播,然后把得到的损失结果通过修改的网络反向传播。一小批训练样本执行完这个过程后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数(w,b)。
然后继续重复这一过程:

  • 恢复被删掉的神经元(此时被删除的神经元保持原样,而没有被删除的神经元已经有所更新)
  • 从隐藏层神经元中随机选择一个一半大小的子集临时删除掉(备份被删除神经元的参数)。
  • 对一小批训练样本,先前向传播然后反向传播损失并根据随机梯度下降法更新参数(w,b) (没有被删除的那一部分参数得到更新,删除的神经元参数保持被删除前的结果)。
  • 不断重复这一过程。

3. Droupout的原理

3.1. 取平均的作用

先回到标准的模型即没有dropout,我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用 “5个结果取均值”或者“多数取胜的投票策略”去决定最终结果。例如3个网络判断结果为数字9,那么很有可能真正的结果就是数字9,其它两个网络给出了错误结果。这种“综合起来取平均”的策略通常可以有效防止过拟合问题。因为不同的网络可能产生不同的过拟合,取平均则有可能让一些“相反的”拟合互相抵消。dropout掉不同的隐藏神经元就类似在训练不同的网络,随机删掉一半隐藏神经元导致网络结构已经不同,整个dropout过程就相当于对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。

3.2. 减少神经元之间复杂的共适应关系

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

3.3. Dropout类似于性别在生物进化中的角色

物种为了生存往往会倾向于适应这种环境,环境突变则会导致物种难以做出及时反应,性别的出现可以繁衍出适应新环境的变种,有效的阻止过拟合,即避免环境改变时物种可能面临的灭绝。

参考文献

深度学习记录例子篇————droupout正则化和BN层-CSDN博客

神经网络防止过拟合:Droupout工作原理及SpatialDropout1D-CSDN博客 

droupout和BN层的区别 | 码农家园 

Dropout: A Simple Way to Prevent Neural Networks from Overfitting 

花书《深度学习》

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

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

相关文章

【教3妹学编程-算法题】1696. 跳跃游戏 VI

3妹:好冷啊, 冻得瑟瑟发抖啦 2哥 : 没想到都立春了还这么冷啊~ 3妹:暴雪、冻雨、大雨,这天气还让不让人活啦!!! 2哥 :哎,好多人都滞留的高铁站了,没法回家了 3妹&#xf…

druid配置wall导致无法批量sql

1、现象 2、原配置 spring:autoconfigure:exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfiguredatasource:druid:stat-view-servlet:enabled: trueloginUsername: ***loginPassword: ***allow:web-stat-filter:enabled: truefilter:wall:conf…

UE4学习笔记 FPS游戏制作4 根据移动速度播放移动动画

文章目录 章节目标创建一个BlandSpace在BlandSpace中添加动画动画蓝图里添加BlandSpace 章节目标 制作一个一维BlandSpace,根据移动速度在idle和walk两个动画之间进行切换 创建一个BlandSpace 右键创建一个BlandSpace1D,这是一维BlandSpace&#xff0c…

LeetCode、1137. 第 N 个泰波那契数【简单,动态规划】

文章目录 前言LeetCode、1137. 第 N 个泰波那契数【简单,动态规划】题目与分类思路一维动态规划 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术…

ideaIU-2023.2.1安装教程

ideaIU-2023.2.1安装教程 一、ideaIU-2023.2.1安装1.1 下载IdeaIU-2023.2.1安装包1.2 安装ideaIU-2023.2.1 二、ideaIU-2023.2.1激活 💖The Begin💖点点关注,收藏不迷路💖 一、ideaIU-2023.2.1安装 1.1 下载IdeaIU-2023.2.1安装包…

16-Verilog实现二线制I2C CMOS串行EEPROM的读写操作

Verilog实现二线制I2C CMOS串行EEPROM的读写操作 1,二线制I2C CMOS串行EEPROM的简单介绍2,I2C总线特征介绍3,二线制I2C、CMOS串行EEPROM的读写操作4,EEPROM的Verilog HDL程序4.1,EEPROM的行为模型思路如下:…

通过无线打通两个路由器

通过无线打通两个路由器 上网向导无线连接 配置比较简单,有些路由器支持有些不支持,支持的大致就是下面的方法,不过不同型号面板不一样,这里主要学习方法,所以不做路由器型号介绍。 重要的事情说三遍:学习要…

C语言与函数栈帧

目录 函数栈帧 栈 函数栈帧的前置知识 相关寄存器 相关汇编指令 知识基础 函数栈帧基础剖析 main函数由其他函数调用 函数栈帧分析 反汇编 函数栈帧的创建 函数体 变量a的创建 变量b的创建 变量ret的创建 传参 函数调用 变量z的创建 执行加法 返回计算结果…

HarmonyOS Next开发----k线图滑动问题

前言 最近做股票软件鸿蒙版本的适配,K线趋势图的手势交互上遇到了问题,这里记录下~ 功能需求: 实现k线趋势图滑动及fling的效果 思路: 1. 借鉴Flutter版本的思路,在K线趋势图上面叠加一个Scroll布局,使…

MySQL学习记录——사 表结构的操作

文章目录 1、创建表2、查看表结构3、改变表结构4、删除表5、总结 1、创建表 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 例子 create table users ( id int, name varchar(20) c…

python-产品篇-游戏-玛丽冒险

文章目录 开发环境要求运行方法代码效果 开发环境要求 本系统的软件开发及运行环境具体如下。 (1)操作系统:Windows 7、Windows 8、Windows 10。 (2)Python版本:Python 3.7.0。 (3)…

109 C++ STL 分配器概述,使用,工作原理说明 非重点。

一。分配器allocator概述 分配器 (allocator) 是C STL库的基石之一,它是一种策略模式,允许用户将内存管理从容器中解耦出来,进行更具体化的操作。通过使用 allocator,我们可以自定义内存的分配和释放方式,从而可以更好…

Springboot 整合 Elasticsearch(二):使用HTTP请求来操作ES

📁前情提要:Springboot整合Elasticsearch(一):Linux下安装 Elasticsearch 8.x 上回说到,Elasticsearch 已经安装完成,不过我们使用7.17.5 版本继续后文: 一、使用 elasticsearch-hea…

【网站项目】037物流管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

Matlab:利用1D-CNN(一维卷积神经网络),分析高光谱曲线数据或时序数据

1DCNN 简介: 1D-CNN(一维卷积神经网络)是一种特殊类型的卷积神经网络,设计用于处理一维序列数据。这种网络结构通常由多个卷积层和池化层交替组成,最后使用全连接层将提取的特征映射到输出。 以下是1D-CNN的主要组成…

Mac最实用的日常快捷键,最方便快捷的Mac使用技巧合集

今天小编给大家分享一下这几年来使用Mac过程中的各种小技巧。,大家不用担心,下面的各种小技巧在apple其他各型号电脑中几乎也是都是通用的,话不多说,下面开始! 屏幕相关 (1)截屏 ctrlshift3 截…

jsp商场会员卡管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 商场会员卡管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.…

计组学习笔记2024/2/5

1. 2. 3. 1.这么多步,才完成第一条指令,通过0索引来找到2 2.PC的值是对应着MAR来的,为了更好地找到地址 3.操作码, 地址码这些东西都是放在存储体里面的 MAR和MDR只是一个中转站 MAR对应着拿到各个部件给出的主存地址 MDR对应着拿到各个部件给出的指令 4.取指令完成后就自…

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(五)NodeJS入门——http模块

044_http模块_创建HTTP服务端 hello,大家好,那这个小节我们来使用 nodejs 创建一个 http 的服务,有了这个 http 服务之后,我们就可以处理浏览器所发送过来的请求,并且还可以给这个浏览器返回响应。 顺便说一下&#x…

数据分析基础之《pandas(5)—文件读取与存储》

一、概述 1、我们的数据大部分存在于文件当中,所以pandas会支持复杂的IO操作,pandas的API支持众多文件格式,如CSV、SQL、XLS、JSON、HDF5 二、CSV 1、读取csv文件 read_csv(filepath_or_buffer, sep,, delimiterNone) 说明: fi…