当前位置:网站首页>【多任务学习】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts KDD18
【多任务学习】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts KDD18
2022-08-01 19:53:00 【chad_lee】
在模型层面理解,我们在单目标中经常会花费大量的精力“找强特征”和“删冗余特征”输入到模型,提高模型效果。那么切换到MTL时,每个task所需要的“强特”和排斥的“负特”是不同的,MTL的目的就是对每个task 尽可能的找到他们的强特和负特。
在优化层面理解,多个task同时优化模型,某些task会主导了模型的优化过程,淹没了其他task。
从监督信号的角度理解,MTL不仅仅是任务,也是一种数据扩增,相当于每个task多了k-1个监督信号来辅助学习,一些特征可以从其他task学的更好。监督信号的质量和task间的相似性有关,不相似的task反而是噪声。
#SB、MOE、MMOE
《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》Google KDD 2018
share-bottom
多个任务共享相同的底部网络,底部网络输出一个样本的特征向量,每个子任务自己接一个小NN tower。
优点:简单,并且模型过拟合的风险小(因为能同时过拟合多个任务也是不容易的,可以说多个任务互相监督惩罚过拟合);多任务越相关,互相补充效果越好。
缺点:如果任务之间联系不强(矛盾、冲突),那么对底层网络的优化方向可能是相反的。
底层输出:f(x),子任务tower:$h^k_x ,每个子任务输出: ,每个子任务输出: ,每个子任务输出:y_x^k = h^k_x(f(x)) $
One-gate-MoE
将input分别输入给三个独立的expert(3个nn),同时将input输入到gate,gate输出每个expert被选择的概率,然后将三个expert的输出加权求和,输出给tower:
y k = h k ( ∑ i = 1 n g i f i ( x ) ) , y^{k}=h^{k}\left(\sum_{i=1}^{n} g_{i} f_{i}(x)\right) \text { ,} yk=hk(i=1∑ngifi(x)) ,
其中 g ( ) g() g() 是个多分类模块,且 ∑ i = 1 n g ( x ) i = 1 \sum_{i=1}^{n} g(x)_{i}=1 ∑i=1ng(x)i=1 ,$f_{i}(), i=1, \cdots, n 是 n 个 e x p e r t n e t w o r k , k 表示 k 个任务, 是n个expert network,k表示k个任务, 是n个expertnetwork,k表示k个任务,h^k$表示之后的NN tower。
所以这里相当于给用input当作query,给bottom的输出加了一个attention,看公式换汤不换药,$h^k $在括号外面,这就导致不同的tower输入还是一样的,没有解决task冲突问题。
但是MOE可以解决领域适配的问题,用于cross domain:
MMOE
因此很自然,每个 $h_k $ 不要放在括号外面,不同的 h k h_k hk的输入不同就好了。
所以每个task各分配一个gate,这样gate的作用不再是attention了,而是个性化的为每个task选择重要特征,过滤冗余特征了:
f k ( x ) = ∑ i = 1 n g i k ( x ) f i ( x ) g k ( x ) = softmax ( W g k x ) \begin{aligned} f^{k}(x) &=\sum_{i=1}^{n} g_{i}^{k}(x) f_{i}(x) \\ \ \ g^{k}(x) &=\operatorname{softmax}\left(W_{gk}x\right) \end{aligned} fk(x) gk(x)=i=1∑ngik(x)fi(x)=softmax(Wgkx)
其中g就是线性变化+softmax。
这样理论上存在一种情况,gate能给每个task筛选特征,至于模型能不能优化到这个情况,不好说。
实验
边栏推荐
- 18. Distributed configuration center nacos
- 【蓝桥杯选拔赛真题47】Scratch潜艇游戏 少儿编程scratch蓝桥杯选拔赛真题讲解
- Greenplum数据库源码分析——Standby Master操作工具分析
- 多线程之生产者与消费者
- How to install voice pack in Win11?Win11 Voice Pack Installation Tutorial
- 【kali-信息收集】(1.5)系统指纹识别:Nmap、p0f
- Does LabVIEW really close the COM port using VISA Close?
- 【kali-信息收集】(1.2)SNMP枚举:Snmpwalk、Snmpcheck;SMTP枚举:smtp-user-enum
- ThreadLocal讲义
- Heavy cover special | intercept 99% malicious traffic, reveal WAF offensive and defensive drills best practices
猜你喜欢
regular expression
Find the sum of two numbers
Intranet penetration lanproxy deployment
deploy zabbix
17、负载均衡
【周赛复盘】LeetCode第304场单周赛
openresty 动态黑白名单
为什么限制了Oracle的SGA和PGA,OS仍然会用到SWAP?
What should I do if the Win11 campus network cannot be connected?Win11 can't connect to campus network solution
58:第五章:开发admin管理服务:11:开发【管理员人脸登录,接口】;(未实测)(使用了阿里AI人脸识别)(演示了,使用RestTemplate实现接口调用接口;)
随机推荐
MySQL开发技巧——并发控制
终于有人把AB实验讲明白了
How to query database configuration parameters in GBase 8c, such as datestyle.What function or syntax to use?
为你的“架构”安排定期体检吧!
win10,在proe/creo中鼠标中键不能放大缩小
Heavy cover special | intercept 99% malicious traffic, reveal WAF offensive and defensive drills best practices
【kali-信息收集】(1.2)SNMP枚举:Snmpwalk、Snmpcheck;SMTP枚举:smtp-user-enum
BN BatchNorm + BatchNorm的替代新方法KNConvNets
Greenplum Database Source Code Analysis - Analysis of Standby Master Operation Tools
开源视界 | StreamNative 盛宇帆:和浪漫的人一起做最浪漫的事
cf:D. Magical Array【数学直觉 + 前缀和的和】
短视频软件开发,Android开发,使用Kotlin实现WebView
面试突击70:什么是粘包和半包?怎么解决?
An implementation of an ordered doubly linked list.
数值矩阵的图形表示
突破边界,华为存储的破壁之旅
ssh & scp
kingbaseV8R3和postgreSQL哪个版本最接近?
Pytorch模型训练实用教程学习笔记:四、优化器与学习率调整
Greenplum数据库源码分析——Standby Master操作工具分析