【中短文--深度学习笔记】Batchsize的选择、批量归一化、loss是否已经收敛(更新中-ing)

news2024/11/23 9:32:19

一、如何选择合适的Batchsize?

如果你没有任何参考,那么选择2的n次方(即64、128、256、512、1024等)可以会更加直接和易于管理。而对于上限来说,batchsize大小最好<=数据集样本数*0.1

why?

梯度下降算法

        在更新模型参数时,我们一般会用到梯度下降算法。这个时候,我们就会有一个问题,每次拿多少训练样本进行更新参数呢?

        这个时候有两个极端情况:
        (1)资源够,把所有数据都丢进去,我们称之为批量梯度下降法(Batch Gradient Descent,BGD)。
        (2)另外一个极端,每次都拿一个数据去训练,此时我们称之为随机梯度下降法(Stochastic Gradient Descent,SGD)。
        批量梯度下降法(BGD)的好处是稳定下降,loss下降得也快,但容易到极小值;而随机梯度下降法(SGD)的梯度上引入了随机噪声,因此在非凸优化问题中,其相比批量梯度下降更容易逃离局部最小值

        如果拿不同的批量来训练模型来做图像识别问题,实验结果如图所示,横轴是批量大小,纵轴是正确率。结果是可能出乎一部分人的意料:批量大小越大,验证集准确率越差。 这个是优化的问题,大的批量大小优化可能会有问题,小的批量大小优化的结果反而是比较好的。

我很赞同一种说法——有噪声可能是一种好事

        有可能存在的解释是,批量梯度下降法因为沿着一个损失函数,所以比较容易出现局部极小值或者鞍点。而小批量梯度下降法每次都是挑一次批量计算损失,所以每一次更新参数的时候所使用的损失函数是有差异的

        选到第一个批量的时候,用L1计算梯度;选到第二个批量的时候,用L2计算梯度。
        假设用L1算梯度的时候,梯度是零,就会卡住。但L2的函数跟L1又不一样,L2不一定会卡住,可以换下个批量的损失L2计算梯度,模型还是可以训练,还是有办法让损失变小,所以这种有噪声的更新方式反而对训练其实是有帮助的。

On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima 中,作者在不同数据集上训练了六个网络(包括全连接网络、不同的卷积神经网络),在很多不同的 情况都观察到一样的结果。
        在小的批量中,一个批量里面有256笔样本。在大的批量中,批量大小等于数据集样本数乘0.1,大的批量跟小的批量的训练准确率(accuracy)差不多。 但就算是在训练的时候结果差不多,测试的时候,大的批量比小的批量差,代表过拟合。


二、批量归一化的好处


三、我们是怎样判断模型的loss已经收敛的? 


最后,附上学习参考(更新中-ing):


理清一些可能被忽视但重要的知识点 ,更有助于我们进步。
希望和你一起打好基础,稳步进步。
你的点赞、评论和关注是对我最大的支持 ~ 谢谢!

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

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

相关文章

盈利路上的关键一步:掌握五大交易离场技巧

近期&#xff0c;股市节后短暂的牛市成为了众人瞩目的焦点。有人收获颇丰&#xff0c;也有人因此亏了不少&#xff0c;时机没抓对&#xff0c;倒是被割了一波韭菜。市场起伏已是常态&#xff0c;但依旧会有很多人中招。围观近况&#xff0c;忽然深刻体会到&#xff0c;适时离场…

二值形态学基本运算的几何解释

Rafael Gonzalez和Richard Woods所著的《数字图像处理》&#xff0c;从集合角度定义膨胀和腐蚀&#xff0c;不易理解。本书从空域滤波角度对二值图像形态学中膨胀和腐蚀的定义和过程进行描述&#xff0c;并给出了动画演示过程。使用结构元素对图像的形态学处理与滤波模板的空域…

HIVE beeline连接报错Operation category READ is not supported in state standby

问题&#xff1a;hive连接报错Operation category READ is not supported in state standby 这个可能是因为hive配置的hdfs连接地址指定的是具体的namenode地址&#xff0c;但是hadoop集群配置的是HA,所以会发生主备切换&#xff0c;那么我们hive元数据配置就需要使用NameNode…

JavaEE-进程与线程

1.进程 1.1什么是进程 每个应⽤程序运⾏于现代操作系统之上时&#xff0c;操作系统会提供⼀种抽象&#xff0c;好像系统上只有这个程序在运 ⾏&#xff0c;所有的硬件资源都被这个程序在使⽤。这种假象是通过抽象了⼀个进程的概念来完成的&#xff0c;进程可 以说是计算机科学…

Arduino IDE 导入库(DallasTemperature.h和OneWire.h)

1打开IDE 2点击项目 3点击导入库 4在点击管理库 5搜索库 在下图的位置输入库名即可 6安装即可

基于Springboot+Vue的医疗废物管理系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 在系统…

基于yolov8、yolov5的交通标志检测识别系统(含UI界面、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 &#xff0c; 直接提供最少两个训练好的模型。模型十分重要&#xff0c;因为有些同学的电脑没有 GPU&#xff0…

避免 Python 类型转换错误:实用指南

在 Python 中&#xff0c;变量的类型是明确的&#xff0c;不能在没有显式转换的情况下直接将一种类型的值赋给另一种不同类型的变量。例如&#xff0c;以下将字符串与整数直接相加会报错&#xff0c;这跟其它语言有所差异&#xff0c;其它语言会进行隐式转 a "5" b…

c++类与对象三

C类与对象三 上期我们介绍了类的实例化&#xff0c;大小计算&#xff0c;还有this指针。这期我们继续深入更高层次的用法 类的六个默认函数 如个一个类里面没有成员&#xff0c;就是空类&#xff0c;但是空类里面真的什么都没有吗&#xff0c;并不是&#xff0c;在编译器中&…

大数据新视界 --大数据大厂之大数据环境下的零信任安全架构:构建可靠防护体系

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Javascript 仅允许在异步函数和模块顶级使用 “await“

这个错误的原因&#xff0c;是我们在一个普通函数里调用了async函数&#xff0c;因为async 函数是异步函数&#xff0c;它返回一个 Promis&#xff0c;await必须与async一同出现。所以这里普通函数无法调用它。 async和await只是使函数调用看起来像同步而已&#xff0c;比如下…

【MMMLP】核心方法解读

此方法用于顺序推荐&#xff0c;和我的研究方向不一样&#xff0c;所以这里只探讨值得借鉴的部分 abstract&#xff1a; 现有的顺序推荐方法要么不能直接处理多模态&#xff0c;要么计算量大。为了解决这个问题&#xff0c;我们提出了一种新的多模态多层感知器&#xff08;MM…

MYSQL-windows安装配置两个或多个版本MYSQL

安装第一个mysql很简单&#xff0c;这里不再赘述。主要说说第二个怎么安装&#xff0c;服务怎么配置。 1. 从官网下载第二个MySQL并安装 一般都是免安装版了&#xff0c;下载解压到某个文件目录下(路径中尽量不要带空格或中文)&#xff0c;再新建一个my.ini文件&#xff08;或…

QGroundControl最新版本MacOS平台编译(使用CMakeLists.txt)

1.下载源码: git clone https://github.com/mavlink/qgroundcontrol.git --recursive 2.安装依赖: brew install GStreamer 设置环境变量:GST_PLUGIN_PATH 安装SDL2: brew install SDL2

C#自定义特性

特性的用处 一般用来影响某一个类的个别字段或者方法 定义特性 需要将类继承Attribute 可以通过构造函数的方式影响使用特性的方法 可以通过给自定义的特性通过加AttributeUsage特性的方法进行进一步管理 AttributeUsage特性默认传三个参数 第一个参数一般用来约束此自定义…

怎么把m4a转换成mp3?8种关于m4a转成MP3格式的转换方法

怎么把m4a转换成mp3&#xff1f;尽管m4a格式在音质上表现突出&#xff0c;但并不是所有设备和软件都能支持&#xff0c;给一些用户带来了不便。为了保证音乐文件能够在更多设备和平台上播放&#xff0c;许多人选择将m4a转换为MP3格式。MP3几乎可以在所有播放器和设备上使用&…

LeetCode讲解篇之2320. 统计放置房子的方式数

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们首先发现一个规律街道两侧是否放置房子是独立的&#xff0c;即放置房子的方式数 一侧放置房子的方式数 * 另一侧放置房子的方案数 一侧放置房子的方式数的二次方 对于一侧[0, i]范围内地块放置房子的方式…

starrocks-删除表字段

1、背景 之前做了个大宽表&#xff0c;将近100个字段&#xff0c;但是后来发现很多字段在实际生产上都没有用到&#xff0c;并且随着数据量的增加&#xff0c;给集群的存储以及消费任务的解析带来了比较大的压力。所以决定对字段做删除处理。 当前的表是使用routine load任务从…

渗透测试 之 AD域渗透 【AS-REP Roasting】 攻击技术详解

说明: AS-REP Roasting是一种对用户账户进行离线爆破的攻击方式。但是该攻击方式使用比较受限&#xff0c;因为其需要用户账户设置“不要求Kerberos预身份验证”选项&#xff0c;而该选项默是没有勾选的。Kerberos 预身份验证发生在Kerberos身份验证的第一阶段&#xff08;AS_…

14. 最长公共前缀【字符串】

文章目录 14. 最长公共前缀解题思路Go代码 14. 最长公共前缀 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a;strs ["flower","flow&…