技巧:训练时Loss剧烈震荡原因汇总

输入数据有误

  1. 数据集太少

  2. 输入数据为经过标准化:没有经过正则化处理的数据可能存在异常点,或者数据的量纲不一致。可以采用min_max归一化或者z-score标准化

  3. 没有选择合理的数据增强没有经过合理的数据增强可能导致训练的时候网络学习的数据不是想要的最佳形式; 此时会出现loss曲线震荡;需要对数据进行特征分析,找到最佳数据增强方法。图像方向的数据增强方式一般有:

  • 旋转 | 反射变换(Rotation/reflection): 随机旋转图像一定角度; 改变图像内容的朝向;

  • 翻转变换(flip): 沿着水平或者垂直方向翻转图像;

  • 缩放变换(zoom): 按照一定的比例放大或者缩小图像;

  • 平移变换(shift): 在图像平面上对图像以一定方式进行平移;可以采用随机或人为定义的方式指定平移范围和平移步长, 沿水平或竖直方向进行平移. 改变图像内容的位置;

  • 尺度变换(scale): 对图像按照指定的尺度因子, 进行放大或缩小; 或者参照SIFT特征提取思想, 利用指定的尺度因子对图像滤波构造尺度空间. 改变图像内容的大小或模糊程度;

  • 对比度变换(contrast): 在图像的HSV颜色空间,改变饱和度S和V亮度分量,保持色调H不变. 对每个像素的S和V分量进行指数运算(指数因子在0.25到4之间), 增加光照变化;

  • 噪声扰动(noise): 对图像的每个像素RGB进行随机扰动, 常用的噪声模式是椒盐噪声和高斯噪声;

  • 颜色变换(color): 在训练集像素值的RGB颜色空间进行PCA, 得到RGB空间的3个主方向向量,3个特征值,

batch_size较小

batch数太小,并且label较多或者label的目标较少时,会导致loss函数震荡而不收敛,尤其是网络比较复杂时。

调大batch_size对网络训练的影响

  • 优点:

    • 内存的利用率提高了,大矩阵乘法的并行化效率提高;

    • 跑完一次epoch(全数据集)所需迭代次数减少,对于相同的数据量的处理速度进一步加快;

    • 一定范围内,batchsize越大,其确定的下降方向就越准,引起训练震荡越小;

    • batchsize增大,处理相同的数据量的速度越快;

  • 缺点

    • 内存消耗严重,面临显卡内存不足问题;

    • 训练速度慢,loss不容易收敛;

    • batch_size过大导致网络收敛到局部最优点,loss下降不再明显;

    • batchsize增大,达到相同精度所需要的epoch数量越来越多;

Loss函数设计不合理

在深度学习里面,不同的loss针对的任务是有不同的,有些loss函数比较通用例如L1/L2等,而如perceptual loss则比较适合在图像恢复/生成领域的任务上。当loss出现问题的适合,想一想,是不是loss设置的有问题,别人在此领域的任务的方法是否也使用和你一样的loss。

激活函数选用不合理

一般来说,都几乎使用RELU作为全局激活函数,尽可能少的使用sigmoid激活函数(激活范围太小),容易造成梯度弥散、消失

学习率太大

一step前进的路程太长,会出现来回震荡的情况,但是学习率太小,收敛速度会比较慢;

优化算法不合理

一般来说使用Adam作为优化器的默认参数。但有些情况下经过仔细调整的SGD算法性能可能更好

正则化(Regularization)

通过正则化进行约束,一般的方法可以通过优化器的权重衰减方法,即训练到后期,通过衰减因子使权重的梯度下降越来越缓慢。或者BN、Dropout以及L1/L2

网络结构有问题

检查网络结构代码,是否有细节上的错误

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

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

相关文章

pyqt---子线程进行gui操作导致界面崩溃

在 PyQt(或 Qt 通常)中,您不能直接在子线程中执行与 GUI 相关的操作。这可能会导致应用程序崩溃或不可预测的行为。所有与 GUI 相关的操作都应该在主线程中执行。 如果您需要在子线程完成某些操作后显示一个消息框,可以使用 PyQt…

软件工程与计算总结(六)需求分析方法

本贴介绍需求分析方法,涉及到诸多实践性的东西,掌握各种图表的绘制是重中之重~ 一.需求分析基础 1.原因 需求获取中得到的信息仅仅解释了用户对软件系统的理解与期待,使用的是实际业务的表达方式,还不是开发者能够立即加以实现…

【算法|动态规划No.16】leetcode931. 下降路径最小和

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

VSCODE+PHP8.2配置踩坑记录

VSCODEPHP8.2配置踩坑记录 – WhiteNights Site 我配置过的最恶心的环境之一:windows上的php。另一个是我centos服务器上的php。 进不了断点 端口配置和xdebug的安装 这个应该是最常见的问题了。从网上下载完php并解压到本地,打开vscode,安装…

基于SpringBoot的网上摄影工作室

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 作品分类管理 轮播图管理 摄影作品管理 摄影作品收藏 摄影圈 摄影作品发布 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统…

MySql基础:utf8_unicode_ci、utf8_general_ci

区别 utf8_general_ci 校对速度快,但准确度稍差。 utf8_unicode_ci 准确度高,但校对速度稍慢。 德语、法语或者俄语,请一定使用utf8_unicode_ci。一般用utf8_general_ci就够了。 utf8_unicode_ci和utf8_general_ci对中、英文来说没有差别。 …

华为云云耀云服务器L实例评测|华为云上的CentOS性能监测与调优指南

目录 引言 ​编辑1 性能调优的基本要素 2 性能监控功能 2.1 监控数据指标 2.2 数据历史记录 2.3 多种统计指标 3 性能优化策略 3.1 资源分配 3.2 磁盘性能优化 3.3 网络性能优化 3.4 操作系统参数和内核优化 结论 引言 在云计算时代,性能优化和调优对于…

Nginx 网站服务

Nginx 稳定性高 (但是没有apache稳定) 版本号:1.12 1.20 1.22 系统资源消耗低 (处理http请求的并发能力很高,单台物理服务器可以处理30000-50000个并发请求) 稳定:一般在企业中,为了保持服务器稳定,并发量…

记录 K8S 挂了的解决经过

背景:早上到公司,有同事反馈部署K8S在集群上的 Redis 和 禅道 都不可用 排查循序: 登录 kubesphere 的 web 界面 (界面打开失败)ssh 登录主服务器 (正常)在主服务器上运行 kubectl get node 命…

Qt QPair

QPair 文章目录 QPair 摘要QPairQPair 特点代码示例QPair 与 QMap 区别 关键字: Qt、 QPair、 QMap、 键值、 容器 摘要 今天在观摩小伙伴撸代码的时候,突然听到了QPair自己使用Qt开发这么就,竟然都不知道,所以趁没有被人发…

3、在 CentOS 8 系统上安装 PostgreSQL 15.4

PostgreSQL,作为一款备受欢迎的开源关系数据库管理系统(RDBMS),已经存在了三十多年的历史。它提供了SQL语言支持,用于管理数据库和执行CRUD操作(创建、读取、更新、删除)。 由于其卓越的健壮性…

k8s 集群部署 kubesphere

一、最小化部署 kubesphere 1、在已有的 Kubernetes 集群上部署 KubeSphere,下载 YAML 文件: wget https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml wget https://github.com/kubesphere/ks-installer/releases/…

iPhone手机记笔记工具选择用哪个

iPhone手机大家应该都比较熟悉,其使用性能是比较流畅的,在iPhone手机上记录笔记可以帮助大家快速地进行总结工作、记录工作内容等,在iPhone手机上记笔记工具选择用哪个呢? 可以在iPhone手机上使用的笔记工具是比较多的&#xff0…

Andriod学习笔记(一)

写在前面的话 App开发的编程语言Java和KotlinXML App连接的数据库App工程目录结构模块级别的编译配置文件清单文件 界面显示与逻辑处理 安卓是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备。 Mininum SDK表示安卓该版本以上的设备都可以运行该…

零基础学python之流程控制

文章目录 流程控制if 判断语句if 判断if 多条件判断if 的嵌套总结 while 循环基本语法案例:重复执行五次死循环 循环计算打印小星星循环打印小星星九九乘法表 for 遍历for 语句rangefor遍历可迭代对象 break 和 continuebreakcontinueelse 语句(了解&…

在Openresty中使用lua语言向请求浏览器返回请求头User-Agent里边的值

可以参考《Linux学习之Ubuntu 20.04在https://openresty.org下载源码安装Openresty 1.19.3.1,使用systemd管理OpenResty服务》安装Openresty。 然后把下边的内容写入到openresty配置文件/usr/local/openresty/nginx/conf/nginx.conf(根据实际情况进行选…

基于SSM的网络安全宣传网站设计与实现

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

医疗机构又进化了,一招搞定UPS设备太爽了!

在现代社会中,能源供应的可靠性至关重要,不间断电源(UPS)系统是维持关键设备运行的关键组成部分。UPS监控是一种重要的技术,用于实时监测UPS的性能、电池状态和电力质量。 客户案例 四川某医院是一家大型医疗机构&…

应对广告虚假流量,app广告变现该如何风控?

移动广告市场中的虚假流量一直是困扰各移动应用厂商的难题,广告作为app商业化变现最为直接快捷的途径,也引申出了流量作弊与反作弊的纷争。 根据《2021中国异常流量报告》,2021年中国品牌广告市场因异常流量造成的损失约为326亿人民币&#…

适合学生写作业的台灯有哪些?高品质学生读写台灯推荐

不得不说如今我国青少年儿童的近视率还是非常高的,据国家卫健委疾控局数据,我国儿童青少年总体近视率为52.7%,其中6岁儿童为14.3%,小学生为35.6%,初中生为71.1%,高中生为80.5%,造成近视的原因不…