动态任务优先级Dynamic Task Prioritization学习笔记

本文探讨了多任务学习中简单任务可能过度主导训练过程,导致困难任务性能下降的问题。为了解决这个问题,提出了动态任务优先级(DTP)的概念,通过自适应调整任务损失函数的权重来确保困难任务得到更多关注。DTP使用学习过程信号来计算任务的优先级,同时在样本级别和任务级别上调整优先级。此外,Focal Loss作为一种关注困难样本的技术,也被应用到分类和回归任务中。该框架对于构建更有效的多任务学习模型具有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 Abstract

X01bAs.png

· 问题:多任务学习中,通常简单任务将被不必要地强调,从而使得困难任务的训练进程被减缓(有可能造成简单任务过拟合,困难任务欠拟合,同时降低各种任务的性能);

· 解决:提出动态优先级,自适应地调整不同任务损失函数的权值。

1 Introduction

· 启发:人类进行学习时会动态分配不同的心理资源(不同学习优先级)到不同难度的任务中,而计算模型也可能做到。

· 当前多任务存在的问题:简单任务在表现好时仍占有较多资源,使得困难任务得以训练得到较好的性能。

· 关键问题:为什么课程式学习(Curriculum Learning)不能应用于多任务?将什么资源分配给位于什么优先级的任务?

​ ① 课程式学习将单个任务分解为若干个子任务,并且按照难度递增的顺序进行训练(先训练简单任务再训练困难任务)。然而其有【任务同分布,并且随时间熵增】的假设,在多任务中,通常不同任务之间没有相同的分布;

​ ② 可分配的资源有梯度步幅、参数统计和更新频率等。

· 文章贡献:

​ ① 在example-level和task-level上分析得出更多的学习资源应该分配给困难任务;

​ ② 提出一个统一框架:动态对任务的优先级进行排序,使用learning processing signals来计算权重。

2 Related Work

方法一:使用task-level权重为不同任务分配不同优先级

​ ① 联合损失函数的权重(Loss(total) = w(t1) * loss(t1) + w(t2) * loss(t2) + …):不确定性加权(没有考虑任务难度);

​ ② 自主学习(由模型的能力决定):梯度正则化;

​ ③ learning progress signal:将例如准确率作为任务的奖励信号(reward signal)对任务优先级进行动态调整;

方法二:利用任务间的关系构建网络体系结构

​ ① 硬参数共享:不同的相关任务共享主干网,但使用分开的输出层(例如全连接层),利用相关任务之间的领域知识提高泛化能力,使得不同任务之间可以进行协同学习。这有两个缺点:(1)通常loss函数需要进行合并,选择权重是一个困难的问题;(2)关键层较大的负担;

​ ② 任务层次结构:例如在前馈神经网络中,在不同网络深度中用不同函数学习其隐式结构

3 Method

提出动态任务优先级DTP,不利用损失函数的数值,而是利用一种衡量指标KPI来衡量任务的难易程度,并给困难的任务赋予较大的权重。

​ ① 预设:

X01Lhq.png

② KPI:

​ 1)KPI需要是一个有意义的衡量指标,例如分类任务中的平均准确率,或者回归任务中关于【成功样本】所定义的【门限值】;

​ 2)KPI的更新是基于指数移动平均值方法

X01X90.md.png

​ 3)KPI的范围是0-1,折扣率的范围也是0-1。折扣率越大表示优先考虑最近的examples;

​ 4)KPI不一定是需要可微的。

③ Example-level优先级:同一个任务中不同训练难度的样本

​ 1)对于分类任务来说,有论文提出了Focal loss用于关注更难训练的样本:

X01j3V.png

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cFCazcWi-1654503650431)(D:\Typora\images\X01vcT.png)]

其中,y0是一个超参数可以用于调整。

​ 2)对于回归任务来说,可以将Focal loss拓展到回归任务:

X012tI.png

其中,ei的范围从0-1,可以是一些经过归一化的误差值

④ Task-level优先级:不同任务的训练难度差异,借鉴于example-level:

X01Rht.png

⑤ 梯度:

​ 1)如果KPI可微,梯度是可以被正常计算的;

​ 2)如果KPI不可微,那么梯度KPI可以被视为常数进行计算,从而达到权重的缩放效果:

X01f9P.png

X0167d.png

4 来自网络架构的隐式优先级

X015jS.png

​ 通过实验总结:在有任务层次结构的网络架构中,较难的任务优先于较容易的任务进行处理(如上图的b和c),这意味着较容易任务对应层的输出将作为较难任务对应层的输入(由于反向传播,较难任务对应的层会首先进行梯度更新)。而在a中的硬参数共享架构中,则没有这个概念。

5 讲讲什么是Focal Loss?

提出动机:在物体检测中,希望让one-stage方法的精度接近two-stage的精度。前者精度不如后者的根本原因是样本类别不均匀(负样本的数量远大于正样本的数量)。

① 普通的交叉熵:

X01h1f.png

② 用p_t代替①中的p:

X01TBQ.png

X014c8.png

​ 可以看出,普通交叉熵中对于正负样本都有相同的权重。这时候需要一个权重,使得对于正样本的权重更大,负样本更小

X01ong.png

③ Focal loss的提出:

X0177j.png

​ 核心:减小易分类样本的权重(pt >> 0.5),从而使得模型在训练过程中注重于难样本。

Element Plus 是 Vue 3 的官方 UI 组件库,提供了丰富的、简洁易用的界面组件。如果遇到弹窗样式失效的情况,可能是因为以下几个原因: 1. 版本不兼容:检查使用的 Element Plus 是否是最新的版本,有时旧版的某些样式可能会存在兼容性问题。 2. 配置错误:确保在项目的 CSS 或主题配置中正确引入了 Element Plus样式文件,比如 `element-ui/lib/theme-chalk/index.css`。 3. 兼容性模式:如果你在使用了一些定制或自定义的主题,确认没有覆盖 Element Plus 的默认样式。 4. 自定义CSS冲突:如果有其他 CSS 文件对弹窗样式进行了重写,可能会导致样式失效,请检查并优先级处理这些冲突。 5. 组件状态未更新:确认弹窗的状态是否已正确设置,并确保其在合适的生命周期钩子中被正确调用(如 `v-model` 或者 `ref`)。 解决这个问题的一般步骤包括: - 查看浏览器开发者工具中的元素样式是否有误 - 在控制台检查是否存在报错信息 - 使用 `Vue Devtools` 浏览组件树,确认组件实例和相关属性 如果你是在使用 Element Plus 的弹窗组件(如 `el-dialog`),你可以尝试运行以下代码修复,然后观察是否有帮助: ```html <template> <el-dialog :visible.sync="dialogVisible" :width="dialogWidth" /> </template> <script setup> import { ref, onMounted } from 'vue'; const dialogVisible = ref(false); const dialogWidth = ref('400px'); onMounted(() => { // 如果需要初始化样式,可以在这里尝试设置初始值 }); </script> ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值