GradNorm理解

news2024/12/23 7:18:31

主要参考这一篇,GradNorm:Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks,梯度归一化_grad norm-CSDN博客

14:20-15:30 

提前需要理解的概念

损失函数,衡量ypred与ytruth的差距。

Grad Loss定义为:各个任务【实际的梯度范数】与【理想的梯度范数】的【差的绝对值和】;

先把范数简单理解成长度,目前把范数想象成了神经网络找最优参数时向某个方向走的距离;

参数理解

其中,alpha 是设定恢复力强度的超参数,即将任务的训练速度调节到平均水准的强度。如果任务的复杂程度很不一样,导致任务之间的学习速率大不相同,就应该使用较高的 alpha 来进行较强的训练速率平衡;反之,对于多个相似的任务,应该使用较小的 alpha。

Training with GradNorm

用自己的想法总结了下,

gradnorm在单个batch step的流程总结如下:
整体任务是指L=w_aL_a+w_bL_b, W是神经网络的参数值, gradnorm主要在动态学w_a, w_b;
1、前向传播计算总损失L=w_a*L_a+w_b*L_b(假设我现在有2个任务);
2、计算第i个任务对整体任务的梯度范数,计算任务i的相对反向训练速度,计算所有任务对整体任务的梯度范数的平均;
3、计算GradLoss;
4、计算GradLoss对wi的导数(wi是指w_a,w_b);
5、利用第1步计算的Loss反向传播更新神经网络参数;
6、利用第4步的导数更新wi(更新后在下一个bacth step生效);
7、对wi进行renormalize(下一个bacth step使用的是renormalize之后的wi,意思就是下一个batch训练的时候wa,wb已经换了);
 

代码(aaa)

Multi-Task Learning:GradNorm - 知乎(参数含义的查漏补缺)

GitHub - QunBB/DeepLearning: All about DeepLearning: 推荐系统、自然语言处理、Tensorflow、Pytorch等

- 附加第二个代码的相关实验数据:多任务学习MTL模型:多目标Loss优化策略 - 知乎 

    - 多目标loss优化在开源数据实验一(uncertainty weight、GradNorm) - 知乎

GitHub - brianlan/pytorch-grad-norm: Pytorch implementation of the GradNorm. GradNorm addresses the problem of balancing multiple losses for multi-task learning by learning adjustable weight coefficients.

为什么loss量级大的task1的权重更大呢?

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

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

相关文章

《Linux C编程实战》笔记:文件的移动和删除

本节只有两个函数。 rename函数 #include <stdio.h> int rename (const char *oldpath, const char *newpath); rename会将参数oldpath所指定的文件名称改为参数newpath所指定的文件名称&#xff0c;若newpath所指定的文件已存在&#xff0c;则原文件会被删除&#xf…

Mac安装软件显示文件已损坏处理方法

今天安装软件&#xff0c;突然遇到了文件已损坏&#xff0c;扔到废纸篓的情况&#xff0c;于是搜索了下解决办法&#xff0c;跟大家分享下&#xff0c;希望对你有所帮助 一、检查安全性设置 打开【设置】-【隐私与安全】&#xff0c;下拉找到安全性&#xff0c;将安全性更改为…

深度学习记录--参数与超参数

什么是超参数 在深度学习的神经网络图中&#xff0c;有一堆参数&#xff0c;这些参数分成了普通参数和特殊参数&#xff0c;其中特殊参数往往被称为超参数 超参数(hyper parameters),在某种程度上决定了普通的参数&#xff0c;并且是需要额外给出的 如下图 参数设定 对于超…

半导体设备之外延炉简述

半导体设备对整个半导体行业起着重要的支撑作用。因半导体制造工艺复杂&#xff0c;各个环节需要的设备也不同&#xff0c;从流程工序分类来看&#xff0c;半导体设备主要可分为晶圆制造设备&#xff08;前道工序&#xff09;、封装测试设备&#xff08;后道工序&#xff09;等…

【TB作品】51单片机读取重量和液位,OLED显示

代码打开下载&#xff1a; http://dt4.8tupian.net/2/28880a64b6666.pg3这段代码是为微控制器编写的&#xff0c;可能是基于8051架构&#xff0c;使用Keil C51编译器。该代码结合了OLED显示器、超声波距离传感器和基于HX711的称重传感器的功能。以下是主要组件及其功能的详细说…

常见Appium相关问题及解决方案

问题1&#xff1a;adb检测不到设备 解决&#xff1a; 1.检查手机驱动是否安装&#xff08;win10系统不需要&#xff09;&#xff0c;去官网下载手机驱动或者电脑下载手机助手来辅助安装手机驱动&#xff0c;安装完成后卸载手机助手&#xff08;防止接入手机时抢adb端口造成干…

【Linux】查看目录和更改目录

概览 常见一些目录命令如下&#xff1a; pwd&#xff1a;print working directory的缩写&#xff0c;打印出当前工作目录名 。ls&#xff1a;list的缩写&#xff0c;列出目录内容。file&#xff1a;确定文件类型。less&#xff1a;浏览文件内容。cd&#xff1a;change direct…

低代码发展现状调研和思考

低代码开发是近年来迅速崛起的软件开发方法&#xff0c;让编写应用程序变得更快、更简单。有人说它是美味的膳食&#xff0c;让开发过程高效而满足&#xff0c;但也有人质疑它是垃圾食品&#xff0c;缺乏定制性与深度。你认为低代码到底是美味的膳食还是垃圾食品呢&#xff0c;…

PMP项目管理 - 风险管理

系列文章目录 PMP项目管理 - 质量管理 PMP项目管理 - 采购管理 PMP项目管理 - 资源管理 PMP项目管理 - 风险管理 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in…

easy贪吃蛇

之前承诺给出一个贪吃蛇项目。 1.EasyX库认知 有关EasyX库的相关信息&#xff0c;您可以看一下官方的文档&#xff1a;EasyX官方文档。 这里我做几点总结&#xff1a; EasyX库就和名字一样&#xff0c;可以让用户调用一些简单的函数来绘制图像和几何图形利用EasyX库可以制作…

云渲染技术下的虚拟现实:技术探索与革新思考

虚拟现实&#xff08;含增强现实、混合现实&#xff09;是新一代信息技术的重要前沿方向&#xff0c;是数字经济的重大前瞻领域&#xff0c;将深刻改变人类的生产生活方式&#xff0c;产业发展战略窗口期已然形成。但是虚拟现实想要深入改变影响我们的生活&#xff0c;以下技术…

Linux_Docker图形化工具Portainer如何安装并结合内网穿透实现远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 本文主要介绍如何本地安装Portainer并结合内网穿透工具实现任意浏览器远程访问管理界面。Portainer 是一个轻量级…

日志审计、数据库审计以及代码审计三者的区别与重要性

在当今的数字化时代&#xff0c;企业的信息安全和数据保护至关重要。为了确保这些安全&#xff0c;企业需要采取一系列的安全措施&#xff0c;其中包括日志审计、数据库审计和代码审计。尽管这三者都是为了增强企业的安全性&#xff0c;但它们各自的目标和重点却有所不同。 一、…

电子电器架构( E/E) 演化 —— 高速 大算力

电子电器架构( E/E) 演化 —— 高速 & 大算力 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要…

用23种设计模式打造一个cocos creator的游戏框架----(十九)备忘录模式

1、模式标准 模式名称&#xff1a;备忘录模式 模式分类&#xff1a;行为型 模式意图&#xff1a;在不破坏封装性的前提下捕获一个对象的内部状态&#xff0c;并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态 结构图&#xff1a; 适用于&#xff1a; …

LCR 148. 验证图书取出顺序

解题思路&#xff1a; class Solution {public boolean validateBookSequences(int[] putIn, int[] takeOut) {Stack<Integer> stack new Stack<>();int i 0;for(int num : putIn) {stack.push(num); // num 入栈while(!stack.isEmpty() && stack.peek()…

Tekton 基于 cronjob 触发流水线

Tekton 基于 cronjob 触发流水线 Tekton EventListener 在8080端口监听事件&#xff0c;kubernetes 原生 cronjob 定时通过curl 命令向 EventListener 发送事件请求&#xff0c;触发tekton流水线执行&#xff0c;实现定时运行tekton pipeline任务。 前置要求&#xff1a; kub…

Linux系统编程(五):系统信息与资源

参考引用 UNIX 环境高级编程 (第3版)嵌入式Linux C应用编程-正点原子 1. 系统信息 1.1 系统标识 uname 系统调用 uname() 用于获取有关当前操作系统内核的名称和信息 #include <sys/utsname.h>// buf&#xff1a;struct utsname 结构体类型指针&#xff0c;指向一个 str…

【2023海光杯】“智能储物柜系统”电控部分

简单说明 在代码实现部分会给出设计理念和分析&#xff0c;整体资源可以直接下载压缩包&#xff08;手机端依然看不到&#xff0c;还是不知道为什么&#xff09;。 使用设备 按照题目要求需要制作16个储物格&#xff0c;对应16扇门。16扇门的开关可以用矩阵键盘来控制。 在不考…

【精选】计算机网络教程(第3章数据链路层)

目录 前言 第3章数据链路层 1、差错检测&#xff08;CRC&#xff09; 2、点对点协议&#xff08;了解应用场景&#xff09; 3、什么是碰撞域&#xff0c;什么是广播域 碰撞域&#xff08;Collision Domain&#xff09;&#xff1a; 广播域&#xff08;Broadcast Domain&a…