神经网络 07(正则化)

news2024/10/5 22:22:00

一、正则化

在设计机器学习算法时不仅要求在训练集上误差小,而且希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小测试误差,这些策略被统称为正则化。因为神经网络的强大的表示能力经常遇到过拟合,所以需要使用不同形式的正则化策略
正则化通过对算法的修改来减少泛化误差,目前在深度学习中使用较多的策略有参数范数惩罚,提前终止,DropOut等,接下来我们对其进行详细的介绍。

 

1.1 L1和L2正则化

L1和L2是最常见的正则化方法。它们在损失函数 (cost function)中增加一个正则项,由于添加了这个正则化项,权重矩阵的值减小,因为它假定具有更小权重矩阵的神经网络导致更简单的模型。因此,它也会在一定程度上减少过拟合。然而,这个正则化项在L1和L2中是不同的。

它是一个需要优化的超参数。L2正则化又称为权重衰减,因为其导致权重这里的入是正则化参数,趋向于0(但不全是0)。

这里,我们惩罚权重矩阵的绝对值。其中,入为正则化参数,是超参数,不同于L2,权重值可能被减少到0.因此,L1对于压缩模型很有用。其它情况下,一般选择优先选择L2正则化。

 1.2 dropout 正则化

dropout是在深度学习领域最常用的正则化技术。Dropout的原理很简单: 假设我们的神经网络结构如下所示,在每个迭代过程中,随机失活某些节点,并且删除前向和后向连接

因此,每个迭代过程都会有不同的节点组合,从而导致不同的输出,这可以看成机器学习中的集成方法 (ensemble technique)。集成模型一般优于单一模型,因为它们可以捕获更多的随机性。相似地,dropout使得神经网络模型优于正常的模型。

tf.keras.layers.Dropout(rate)

rate 每一个神经元被丢弃的概率

1.3 早停

提前停止 (early stopping) 是将一部分训练集作为验证集 (validation set)。当验证集的性能越来越差时或者性能不再提升,则立即停止对该模型的训练。这被称为提前停止。

在上图中,在虚线处停止模型的训练,此时模型开始在训练数据上过拟合

1.4 批标准化

批标准化(BN层,Batch Normalization)是2015年提出的一种方法,在进行深度网络训练时,大多会采取这种算法,与全连接层一样,BN层也是属于网络中的一层
BN层是针对单个神经元进行,利用网络训练时一个 minibatch 的数据来计算该神经元xi 的均值和方差,归一化后并重构,因而称为 Batch Normalization。在每一层输入之前,将数据进行BN,然后再送入后续网络中进行学习:

 然后在使用变换重构,引入了可学习参数Y、B,如果各隐藏层的输入均值在靠近0的区域,即处于激活函数的线性区域不利于训练非线性神经网络,从而得到效果较差的模型。

因此,需要用Y和B对标准化后的结果做进一步处理:

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

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

相关文章

第4章_freeRTOS入门与工程实践之开发板使用

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id724601559592 配套资料获取:https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…

Charles的Map Remote功能

1、charles的Map Remote功能(指定的网络请求重定向到另一个网址),说白了就是你本来要请求A接口拿数据,重定向后,你实际请求的是B接口,拿到的是B接口返回的数据。 入口Tools->Map Remote 本次测试过程中…

【教程】IDEA操作GIT

不小心推送代码之后 进行回退 1 找到需要回退的记录 比如要回退13分钟之前提交的代码 选中 右键还原提交 最后再重新推送被还原的提交 就可以了

78基于matlab的BiLSTM分类算法,输出迭代曲线,测试集和训练集分类结果和混淆矩阵,程序有详细注释,数据可更换自己的,程序已调通,可直接运行。

基于matlab的BiLSTM分类算法,输出迭代曲线,测试集和训练集分类结果和混淆矩阵,程序有详细注释,数据可更换自己的,程序已调通,可直接运行。 78 matlabBiLSTM模式识别混淆矩阵 (xiaohongshu.com)https://www.…

PAT(Advanced Level) Practice(with python)——1118 Birds in Forest

code N int(input())birds [[] for i in range(10001)] vis [0 for i in range(10001)] max_bird 0 tree_id 0# 染色问题,并查集,如果没染色,深度搜索并染色 def dfs(cur):vis[cur] tree_idfor b in birds[cur]:if vis[b]0:dfs(b)for …

kubernetes进阶 (三) 基础练习

前两天朋友给了我几道题,看着挺简单的,但实际做的时候发现坑不少,这里做下笔记 一、镜像构建部署lnmp 1、构建镜像 nginx、php、mysql 要求使用centos7作为基础镜像 2、使用deployment部署上面的容器,要求3个服务要放到一个pod中(虽然这样是…

基于STM32CUBEMX驱动TOF模块VL53l0x(2)----修改设备地址

基于STM32CUBEMX驱动TOF模块VL53l0x----2.修改设备地址 概述视频教学样品申请修改设备地址主程序测试结果 概述 本章主要介绍如何修改VL53L0X传感器的I2C地址,并成功驱动设备以使用新的地址。VL53L0X是一种多功能、高性能的接近和环境光传感器,常用于测…

UMA 2 - 创建自己的UMA模型⭐二.给模型绑定骨骼 , 并建立符合UMA的骨骼结构

文章目录 🟥 寻找或者制作合适果模🟧 使用ActorCore AccuRig🟩 替换骨骼名称🟦 增加Global骨骼🟪 增加Position骨骼🟫 设置骨骼结构⬛ 删除无用骨骼⬜最终骨骼效果🟥 寻找或者制作合适果模 找到一个果模,需要导出fbx格式. 🟧 使用ActorCore AccuRig 将fbx导…

JVM 虚拟机 ----> Java 内存模型(JMM)

文章目录 Java 内存模型(JMM)一、运行时数据区域划分二、程序计数器(Program Counter Register)计数器的作用 三、Java 虚拟机栈(VM Stack)四、本地方法栈(Native Method Stack)五、…

fcpx视频编辑处理 Final Cut Pro for Mac

Final Cut Pro是一款专业的视频剪辑软件,适用于Mac操作系统。Final Cut Pro X版本在视频剪辑方面进行了大规模的更新和改进,下面将介绍Final Cut Pro X中的一些主要功能和特性: Magnetic Timeline。这个新功能使得多条剪辑片段如同磁铁般吸合…

Databend 开源周报第 110 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 使用 BendSQL 管…

班主任须知,查询发布技巧

Hey,亲爱的班主任们!今天小红书博主要跟你们分享一个超级实用的技巧,让你们的查询发布变得轻松又高效!它能帮你们把查询结果变成在线查询,让家长们随时随地都能轻松查询各种信息,简直就是教师“神器”。 通…

Fiddler抓包工具(详细讲解)

序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了&…

SQL11 高级操作符练习(1)

描述 题目:现在运营想要找到男性且GPA在3.5以上(不包括3.5)的用户进行调研,请你取出相关数据。 示例:user_profile iddevice_idgenderageuniversitygpa12138male21北京大学3.423214male复旦大学4.036543female20北京大学3.242315female23浙…

《TCP/IP网络编程》阅读笔记--标准I/O和I/O流分离

目录 1--标准I/O 1-1--标准I/O的优缺点 1-2--FILE 指针和文件描述符的转换 1-3--基于Socket的标准I/O函数使用 2--I/O流分离 2-1--文件描述符的复制和半关闭 2-2--复制文件描述符实现 I/O 流的分离 1--标准I/O 1-1--标准I/O的优缺点 标准 I/O 函数的优点: ①…

基于SSM的农产品仓库管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Windows 安装 Nacos

1. 安装包下载: 2. 目录文件说明: 将下载好后的安装包进行解压: 3. 修改端口: 在Nacos的安装目录下,找到conf目录,然后打开nacos-server.properties文件,在配置文件中找到以下两个属性&#xff…

临沂大学图书馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

临沂大学图书馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

发现服务器被入侵了该怎么办?

如果服务器被入侵了,最好的做法应该是立即断开网络连接,以防止攻击者进一步损害系统。然后检查下服务器,看看是否有任何指示受到入侵的迹象。如果有发现了任何可疑的活动,应该立即联系网络管理员,或者联系专业的防护厂…

软件系统测试有什么注意事项?对软件产品起到什么作用?

在软件开发领域,软件系统测试是确保软件质量的重要环节。它旨在发现和解决软件中的缺陷和错误,确保软件能够按照预期功能正常运行。 一、软件系统测试的过程 1、进行测试计划的制定,确定测试的目标、范围和方法。 2、根据测试计划设计测试…