其他
【源头活水】多任务权重自动学习论文介绍和代码实现
“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。
地址:https://zhuanlan.zhihu.com/p/367881339
本文介绍论文Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics
论文地址:https://arxiv.org/pdf/1705.07115.pdf
log_var_a = torch.zeros((1,), requires_grad=True)
log_var_b = torch.zeros((1,), requires_grad=True)
然后将这两个参数加入优化器优化:
params = ([p for p in model.parameters()] + [log_var_a] + [log_var_b])
optimizer = optim.Adam(params)
def criterion(y_pred, y_true, log_vars):
loss = 0
for i in range(len(y_pred)):
precision = torch.exp(-log_vars[i])
diff = (y_pred[i]-y_true[i])**2.
loss += torch.sum(precision * diff + log_vars[i], -1)
return torch.mean(loss)
class AutomaticWeightedLoss(nn.Module):
def __init__(self, num=2):
super(AutomaticWeightedLoss, self).__init__()
params = torch.ones(num, requires_grad=True)
self.params = torch.nn.Parameter(params)
def forward(self, *x):
loss_sum = 0
for i, loss in enumerate(x):
loss_sum += 0.5 / (self.params[i] ** 2) * loss + torch.log(1 + self.params[i] ** 2)
return loss_sum
https://arxiv.org/pdf/1705.07115.pdf
https://arxiv.org/abs/1703.04977
https://arxiv.org/pdf/1805.06334.pdf
https://github.com/yaringal/multi-task-learning-example/blob/master/multi-task-learning-example-pytorch.ipynb
https://github.com/Mikoto10032/AutomaticWeightedLoss/blob/master/AutomaticWeightedLoss.py
https://github.com/ranandalon/mtl
https://aaai.org/ojs/index.php/AAAI/article/view/7194/7048
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“源头活水”历史文章
Covariate Shift: 基于机器学习分类器的回顾和分析
NAS中基于MCT的搜索空间采样方法
LSNet: Anchor-free新玩法,只用一个head统一目标检测,实例分割,姿态估计三种任务
CV+Transformer之Swin Transformer
爆火的 Swin Transformer 到底做对了什么
mBART:多语言翻译预训练模型
NiN 论文阅读
强化学习论文阅读笔记:RODE
实例分割(SOLOv2|NIPS2020)——增强版SOLO
ICLR2021 | 显存不够?不妨抛弃端到端训练
EEGdenoiseNet:使用神经网络进行EEG去噪
Zero-Shot Learning in Modern NLP 现代NLP中的零样本学习
XLNet--自回归语言模型的复兴
联邦学习 | FedProx 算法
更多源头活水专栏文章,
请点击文章底部“阅读原文”查看
分享、在看,给个三连击呗!