6.4 Dropout正则化

news2024/9/27 12:10:24

1、Dropout

Dropout是一种正则化技术,通过防止特征的协同适应,可用于减少神经网络中的过拟合

Dropout的效果非常好,实现简单且不会降低网络速度,被广泛使用。

特征的协同适应指的是在训练模型时,共同训练的神经元为了相互弥补错误,而相互关联的现象,在神经网络中这种现象会变得尤其复杂。

协同适应会转而导致模型的过度拟合,因为协同适应的现象并不会泛化未曾见过的数据

Dropout从解决特征间的协同适应入手,有效地控制了神经网络的过拟合。

Dropout在每次训练中,按照一定概率 p ,随机地抑制一些神经元的更新,相应地,按照概率 1-p 保留一些神经元的更新。

当神经元被抑制时,它的前向传播结果被置为0,而不管相应的权重和输入数据的数值大小

被抑制的神经元在反向传播中,也不会更新相应权重,也就是说被抑制的神经元在前向传播和反向传播中都不起任何作用。

通过随机的抑制一部分神经元,可以有效防止特征的相互适应。

2、Dropout的实现方法

Dropout的实现方法非常简单,参考下面代码:

生成一个随机数矩阵activations,表示神经网络中隐藏层的激活值。

构建了一个参数 p=0.5 的伯努利分布,并从中采样一个由伯努利变量组成的掩码矩阵mask。

【伯努利变量是只有0和1两种取值可能性的离散变量

将mask和activations逐元素相乘mask中数值为0的变量会将相应的激活值置为0,无论这一激活值本来的数值多大都不会参与到当前网络中更深层的计算,而mask中数值为1的变量则会保留相应的激活值。

输出为:

3、Dropout在训练模式和测试模式下的区别

因为Dropout对神经元的抑制是按照 p 的概率随机发生的,所以使用了Dropout的神经网络在每次训练中,学习的几乎都是一个新的网络。

另外的一种解释是Dropout在训练一个共享部分参数的集成模型

为了模拟集成模型的方法,使用了Dropout的网络需要使用到所有的神经元

所以在测试时,Dropout将激活值乘上一个尺度缩放系数 1-p 恢复在训练时按概率p随机地丢弃神经元所造成的尺度变换,其中的 p 就是在训练时抑制神经元的概率

在实践中(同时也是PyTorch的实现方式),通常采用Inverted Dropout 的方式。

在训练时对激活值乘上尺度缩放系数 1 / 1-p ,而在测试时则什么都不需要做。

Dropout会在训练和测试时做出不同的行为,PyTorch的torch.nn.Module 提供了 train 方法和 eval 方法,通过调用这两个方法可以将网络设置为训练模式或测试模式。

这两个方法只对Dropout这种训练和测试不一致的网络层起作用,而不影响其他的网络层,(后面介绍的 BatchNormalization也是训练和测试步骤不同的网络层。)

下面通过两个实验说明Dropout在训练模式和测试模式下的区别。

执行了统计dropout影响到的神经元数量,注意因为PyTorch的Dropout采用了Inverted Dropout。所以在count += torch.sum(output == activations * (1/(1-p)))对activations乘上了 1 /(1-p),以应对Dropout的尺度变化。

结果发现它大约影响了50%的神经元,这一数值和我们设置的 p = 0.5基本一致。换句话说,p的数值越高,训练中的模型就越精简。

统计了Dropout在测试时影响到的神经元数量,结果发现它并没有影响任何神经元,也就是说Dropout在测试时并不改变网络的结构

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

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

相关文章

Unity构建详解(3)——SBP的依赖计算

【前置知识】 先要搞清楚Asset和Object的关系,可以简单理解为一个Asset对应多个Object。 unity自定义的Asset也要有一个存储的标准,其采用的是YAML,我们看到的所有Unity自定义的Asset格式,例如.prefab(预制体&#x…

基于Google云原生工程师的kubernetes最佳实践(三)

目录 三、集群管理 利用node affinity、taint等机制管理node 通过pod affinity/anti-affinity机制将pod分配到合适的node Node分级管理 从Qos角度将Pod分级 用namespace隔离不同的环境和用户 配置RBAC权限控制 1. 遵循最小权限原则 2. 使用 Role 和 ClusterRole 分离权…

计算机服务器中了faust勒索病毒怎么办,faust勒索病毒解密工具流程

网络是一把利剑,可以方便企业开展各项工作业务,为企业提供极大的便利,但随着网络技术的不断发展与应用,网络数据安全威胁也在不断增加,给企业的正常生产运营带来了极大困扰,近日,云天数据恢复中…

PointerLockControls 是 Three.js 中用于处理鼠标锁定状态下的相机控制的类。它允许用户通过鼠标移动来控制相机的旋转方向。

demo案例 PointerLockControls 是 Three.js 中用于处理鼠标锁定状态下的相机控制的类。它允许用户通过鼠标移动来控制相机的旋转方向。下面是它的详细讲解: 构造函数: PointerLockControls(object: Camera, domElement?: HTMLElement)object:THREE.Ca…

Linux 系统 快速卸载docker

(卸载前一定要做好相关数据的备份) 卸载: 第一种卸载方法 1、查询docker安装过的包: yum list installed | grep docker 2、删除安装包: yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y 3、删除镜像/容器等 rm -rf /var/lib/dock…

力扣面试150 x 的平方根 二分 换底法 牛顿迭代法 一题多解

Problem: 69. x 的平方根 思路 👨‍🏫 参考题解 💖 袖珍计算器算法 class Solution {public int mySqrt(int x){if (x 0)return 0; // Math.exp(3):e的三次方int ans (int) Math.exp(0.5 * Math.log(x));return (long) (an…

react native 键盘事件

在做修改密码功能是发现他的键盘第一次调起之后然后收起键盘焦点不会消失而且键盘也不会再调起来了 我门线引入需要的组件 import { StyleSheet, View, TextInput, Keyboard, TouchableWithoutFeedback, } from react-native; import React, {useEffect, useState, useRef} fr…

蓝桥杯真题:幸运数字

这道题可以用 integer.string()求每个进制的数,但这里要每一位数相加,所以用这个方法会比较麻烦,如下 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scan new Sc…

LeetCode 面试经典150题 14.最长公共前缀

题目: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 思路: 代码: class Solution {public String longestCommonPrefix(String[] strs) {if (strs.length 0) {return &…

吴恩达2022机器学习专项课程(一) 3.5 可视化成本函数

问题预览 为什么要可视化成本函数?可视化之后的成本函数是什么样子?如何在三维空间里通过w和b找到一个成本函数的值?如何在三维空间里找到成本函数的最小值? 解读 可视化成本函数:为了更加方便的看到不同的w和b&…

【短接笔记本或者台式机的CMOS针脚解决电脑开机无法启动BIOS无法进入问题】

为什么要执行短接笔记本或者台式机的CMOS针脚操作? 问题:可以解决如下图所示,技嘉小雕主板开机时按delete键无法进入BIOS主板界面,长时间等待之后依然无法进入BIOS主板界面,则判定为主板问题。此时短接CMOS针脚可清空…

【数据结构】考研真题攻克与重点知识点剖析 - 第 2 篇:线性表

前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术…

ShardingSphere水平分表——开发经验(2)

1. 什么场景下分表? 数据量过大或者数据库表对应的磁盘文件过大。 Q:多少数据分表? A:网上有人说1kw,2kw?不准确。 1、一般看字段的数量,有没有包含text类型的字段。我们的主表里面是不允许有t…

Github 2024-03-24php开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-24统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10JavaScript项目1Nextcloud服务器:安全的数据之家 创建周期:2796 天开发语言:PHP, JavaScript协议类型:GNU Affero General Public…

计算机网络⑧ —— IP地址

IP位于TCP/IP参考模型的第三层,也就是⽹络层 ⽹络层的主要作⽤:实现主机与主机之间的通信,也叫点对点通信 问题1:⽹络层(IP)与数据链路层(MAC)有什么关系呢? MAC的作⽤:实现直连的两个设备之间通信。IP的…

包子凑数 蓝桥杯

关于这题的数学定理,如果 a,b 均是正整数且互质,那么由 axby,x≥0,y≥0 不能凑出的最大数是 :a*b-a-b 想不起来的时候,把能列出来的数据列出来找规律,不互质得数不符合题目所说 类似于力扣零钱…

【boost_search搜索引擎】1.获取数据源

boost搜索引擎 1、项目介绍2、获取数据源 1、项目介绍 boost_search项目和百度那种不一样,百度是全站搜索,而boost_search是一个站内搜索。而项目的宏观上实现思路就如同图上的思路。 2、获取数据源 我们要实现一个站内搜索,我们就要有这…

包含多个段的程序

文章目录 包含多个段的程序在代码段中使用数据在代码段中使用栈将数据、代码、栈放入不同的段 包含多个段的程序 在代码段中使用数据 考虑这样一个问题,编程计算以下8个数据的和,结果存在ax 寄存器中:0123H,0456H,07…

中性点接地问题的matlab仿真与分析

1、内容简介 略 81-可以交流、咨询、答疑 2、内容说明 略电力系统的中性点接地方式通常是按电压等级 的高低来进行选取的, 我国中压电网普遍采用的有 3 种方式 :不接地 、经消弧线圈接地和经电阻接地。 电力系统在正常运行时, 对不同的中性点接地方式及其差异, 基本上没有…

海外媒体宣发:十大国外中文网站-大舍传媒

十大国外中文网站 1、欧洲时报 覆盖欧洲且较具影响力的华文媒体 国外中文新闻网站,欧洲时报文化传媒集团旗舰日报《欧洲时报》旗下官方网站,总部设在法国巴黎,创刊于1983年,现已成为唯一发行覆盖全欧、发行量最大、最具影响力的华…