《Learning to Reweight Examples for Robust Deep Learning》笔记

这篇具有很好参考价值的文章主要介绍了《Learning to Reweight Examples for Robust Deep Learning》笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[1] 用 meta-learning 学样本权重,可用于 class imbalance、noisy label 场景。之前对其 (7) 式中 ϵ i , t = 0 \epsilon_{i,t}=0 ϵi,t=0对应 Algorithm 1 第 5 句、代码 ex_wts_a = tf.zeros([bsize_a], dtype=tf.float32))不理解:如果 ϵ \epsilon ϵ 已知是 0,那 (4) 式的加权 loss 不是恒为零吗?(5) 式不是优化了个吉而 θ ^ t + 1 ( ϵ ) ≡ θ t \hat\theta_{t+1}(\epsilon) \equiv \theta_t θ^t+1(ϵ)θt ?有人在 issue 提了这个问题[2],但其人想通了没解释就关了 issue。

看到 [3] 代码中对 ϵ \epsilon ϵ 设了 requires_grad=True 才反应过来:用编程的话说, ϵ \epsilon ϵ 不应理解成常量,而是变量; 用数学的话说,(5) 的求梯度( ∇ \nabla )是算子,而不是函数,即 (5) 只是在借梯度下降建立 θ ^ t + 1 \hat\theta_{t+1} θ^t+1 ϵ \epsilon ϵ 之间的函数(或用 TensorFlow 的话说,只是在建图),即 θ ^ t + 1 ( ϵ ) \hat\theta_{t+1}(\epsilon) θ^t+1(ϵ),而不是基于常量 θ t \theta_t θt ϵ = 0 \epsilon=0 ϵ=0 算了一步 SGD 得到一个常量 θ ^ t + 1 \hat\theta_{t+1} θ^t+1

一个符号细节:无 hat 的 θ t + 1 \theta_{t+1} θt+1 指由 (3) 用无 perturbation 的 loss 经 SGD 从 θ t \theta_t θt 优化一步所得; θ ^ t + 1 \hat\theta_{t+1} θ^t+1 则是用 (4) perturbed loss。文中 (6)、(7) 有错用作 θ t + 1 \theta_{t+1} θt+1 的嫌疑。

所以大思路是用 clean validation set 构造一条关于 ϵ \epsilon ϵ 的 loss J ( ϵ ) J(\epsilon) J(ϵ),然后用优化器求它,即 ϵ t ∗ = arg ⁡ min ⁡ ϵ J ( ϵ ) \epsilon_t^*=\arg\min_\epsilon J(\epsilon) ϵt=argminϵJ(ϵ)。由 (4) - (6) 有: J ( ϵ ) = 1 M ∑ j = 1 M f j v ( θ ^ t + 1 ( ϵ ) ) ( 6 ) = 1 M ∑ j = 1 M f j v ( θ t − α [ ∇ θ ∑ i = 1 n f i , ϵ ( θ ) ] ∣ θ = θ t ⏟ g 1 ( ϵ ; θ t ) ) ( 5 ) = 1 M ∑ j = 1 M f j v ( θ t − α [ ∇ θ ∑ i = 1 n ϵ i f i ( θ ) ] ∣ θ = θ t ) ( 4 ) = g 2 ( ϵ ; θ t ) \begin{aligned} J(\epsilon) &= \frac{1}{M}\sum_{j=1}^M f_j^v \left(\hat\theta_{t+1}(\epsilon) \right) & (6) \\ &= \frac{1}{M}\sum_{j=1}^M f_j^v \left(\theta_t - \alpha \underbrace{\left[ \nabla_{\theta} \sum_{i=1}^n f_{i,\epsilon}(\theta) \right] \bigg|_{\theta=\theta_t}}_{g_1(\epsilon; \theta_t)} \right) & (5) \\ &= \frac{1}{M}\sum_{j=1}^M f_j^v \left(\theta_t - \alpha \left[ \nabla_{\theta} \sum_{i=1}^n \epsilon_i f_i(\theta) \right] \bigg|_{\theta=\theta_t} \right) & (4) \\ &= g_2(\epsilon; \theta_t) \end{aligned} J(ϵ)=M1j=1Mfjv(θ^t+1(ϵ))=M1j=1Mfjv θtαg1(ϵ;θt) [θi=1nfi,ϵ(θ)] θ=θt =M1j=1Mfjv(θtα[θi=1nϵifi(θ)] θ=θt)=g2(ϵ;θt)(6)(5)(4) 要注意的就是 (5) 那求导式,本质是个函数,而不是常量,其中 ϵ \epsilon ϵ 是自由的, θ \theta θ 由于被 ∣ θ = θ t |_{\theta=\theta_t} θ=θt 指定了,所以看成常量,所以记为 g 1 ( ϵ ; θ t ) g_1(\epsilon;\theta_t) g1(ϵ;θt),于是整个 J ( ϵ ) J(\epsilon) J(ϵ) 也可以看成一个 g 2 ( ϵ ; θ t ) g_2(\epsilon; \theta_t) g2(ϵ;θt)

按 (6) 求 ϵ t ∗ \epsilon_t^* ϵt 的思路就是:

  1. 随机初始化 ϵ t ( 0 ) \epsilon_t^{(0)} ϵt(0)
  2. ϵ t ( s + 1 ) ← ϵ t ( s ) − η ∇ ϵ J ( ϵ ) ∣ ϵ = ϵ t ( s ) \epsilon^{(s+1)}_t \leftarrow \epsilon^{(s)}_t - \eta \nabla_{\epsilon} J(\epsilon) \big|_{\epsilon=\epsilon^{(s)}_t} ϵt(s+1)ϵt(s)ηϵJ(ϵ) ϵ=ϵt(s),即 (7) 右边。可能由于 J ( ϵ ) J(\epsilon) J(ϵ) 形式上是带梯度的表达式, § \S § 3.3 就称此为「unroll the gradient graph」,而求 ϵ t ( s + 1 ) \epsilon^{(s+1)}_t ϵt(s+1) 的这一步就称为「backward-on-backward」吧。

而文章的 online approximation 就是:

  • ϵ t ( 0 ) = 0 \epsilon^{(0)}_t=0 ϵt(0)=0
  • ϵ t ∗ ≈ ϵ t ( 1 ) \epsilon^*_t \approx \epsilon^{(1)}_t ϵtϵt(1)

初始化为 0 可能不是最好的初始化方法,但不影响后续迭代优化,可参考 LoRA[7],它也用到全零初始化。文章来源地址https://www.toymoban.com/news/detail-817937.html

References

  1. (ICML’18) Learning to Reweight Examples for Robust Deep Learning - paper, code
  2. gradients of noisy loss w.r.t parameter \theta #2
  3. (PyTorch 复现 1)TinfoilHat0/Learning-to-Reweight-Examples-for-Robust-Deep-Learning-with-PyTorch-Higher
  4. (PyTorch 复现 2)danieltan07/learning-to-reweight-examples
  5. facebookresearch/higher
  6. Stateful vs stateless
  7. (ICLR’22) LoRA: Low-Rank Adaptation of Large Language Models - paper, code

到了这里,关于《Learning to Reweight Examples for Robust Deep Learning》笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Cache-Aided MEC for IoT: Resource Allocation Using Deep Graph Reinforcement Learning》阅读笔记

    MEC使能的IoT能够解决物联网中时延敏感/计算敏感服务的需要 提出cache-aided MEC卸载框架,允许用户将计算任务卸载到边缘服务器上。 该框架的目标是最小化计算卸载和资源分类配的系统时延,将系统建模为部分可观测马尔可夫过程的多智能体决策问题。 提出基于深度图卷积强

    2024年02月02日
    浏览(36)
  • 【论文阅读】SISR综述:From Beginner to Master: A Survey for Deep Learning-based Single-Image Super-Resolution

    论文地址:https://doi.org/10.48550/arXiv.2109.14335 单幅图像超分辨率(SISR)是图像处理中的一项重要任务,旨在提高成像系统的分辨率。近年来,在深度学习(DL)的帮助下,SISR取得了巨大的飞跃,并取得了可喜的成果。在本综述中,我们对基于dl的SISR方法进行了概述,并根据重建效率

    2024年02月08日
    浏览(38)
  • Benchmarking Augmentation Methods for Learning Robust Navigation Agents 论文阅读

    题目 :Benchmarking Augmentation Methods for Learning Robust Navigation Agents: the Winning Entry of the 2021 iGibson Challenge 作者 :Naoki Yokoyama, Qian Luo 来源 :arXiv 时间 :2022 深度强化学习和可扩展的真实感模拟的最新进展使得用于各种视觉任务(包括导航)的具体人工智能日益成熟。然而,虽然在

    2024年02月14日
    浏览(28)
  • Tips for Deep Learning

    目录 Recipe of Deep Learning  Good Results on Training Data? New activation function Adaptive learning rate Good Results on Testing Data? Early Stopping Regularization Dropout 我们要做的第一件事是,提高model在training set上的正确率,然后要做的事是,提高model在testing set上的正确率。 这一部分主要讲述如何在

    2024年02月05日
    浏览(33)
  • The Deep Learning AI for Environmental Monitoring——Deep

    作者:禅与计算机程序设计艺术 环境监测是整个经济社会发展的一个重要环节,环境数据是影响经济、金融、社会和政策走向的不可或缺的组成部分。目前,环境监测主要依靠地面站(例如气象台)或者卫星遥感影像获取的数据进行实时监测,其精确度受到数据源和采集技术

    2024年02月08日
    浏览(34)
  • Lecture 8 Deep Learning for NLP: Recurrent Networks

    Problem of N-gram Language Model N-gram 语言模型的问题 Cen be implemented using counts with smoothing 可以用平滑计数实现 Can be implemented using feed-forward neural networks 可以用前馈神经网络实现 Problem: limited context 问题:上下文限制 E.g. Generate sentences using trigram model: 例如:使用 trigram 模型生成句子

    2024年02月09日
    浏览(28)
  • Deep Learning for 3D Point Clouds: A Survey

    Guo Y, Wang H, Hu Q, et al. Deep learning for 3d point clouds: A survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020. 之前组会要分享的一篇综述,太长了没读完,不知道啥时候能写完。。 最近,点云学习因其在计算机视觉、自动驾驶和机器人等许多领域的广泛应用而引起越来越多

    2024年02月05日
    浏览(28)
  • 论文翻译——Test Selection for Deep Learning Systems

    Abstract 因为深度学习涉及到复杂并且大量的计算,所以对于深度学习的检测十分困难。而且测试数据一般都只能人工选择,并且只能一个一个标注。这就是提出了一个问题,如果我们能够自动选择候选数据去测试深度学习模型。最近的研究都是集中在定义衡量测试集彻底度的

    2024年02月08日
    浏览(37)
  • Deep Learning for Natural Language Processing in Python

    作者:禅与计算机程序设计艺术 在这篇文章中,我将会介绍一下基于深度学习的自然语言处理(NLP)模型的相关知识、术语及其核心算法原理和具体操作步骤。首先,我将会简要介绍一下什么是NLP、为什么需要NLP、NLP所涉及到的领域等相关背景知识。随后,我会对一些基本概

    2024年02月07日
    浏览(38)
  • Deep Learning for Natural Language Processing An Intro

    作者:禅与计算机程序设计艺术 深度学习的理论基础、技术框架及最新进展,以及自然语言处理领域的应用前景,对于广大从事自然语言处理研究和开发的同行来说都是一个重要的话题。近几年,随着深度学习技术的不断推陈出新的热潮,自然语言处理(NLP)也备受关注。

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包