• 多任务学习中的网络架构和梯度归一化


    在计算机视觉中的单任务学习已经取得了很大的成功。但是许多现实世界的问题本质上是多模态的。例如为了提供个性化的内容,智能广告系统应该能够识别使用的用户并确定他们的性别和年龄,跟踪他们在看什么,等等。多任务学习(Multi-Task Learning, MTL)可以实现这样的系统,其中一个模型在多个任务之间分配权重,并在一次正向传递中产生多个推理。

    多任务学习中的优化

    因为有多个任务同时运行所以MTL 的优化过程与一般的单任务模型有所不同,为了避免一项或多项任务对网络权重产生主导影响,应该仔细平衡所有任务的联合学习。这里介绍了一种考虑任务平衡问题的方法。

    MTL 问题中的优化目标可以表述为

    这里‘wi’是特定任务的权重,‘Li’是特定的损失函数,使用随机梯度下降来最小化上述目标,共享层“Wsh”中的网络权重更新为:

    当任务梯度发生冲突时,或者说当一个任务的梯度幅度远高于其他任务时,网络权重更新可能不是最优的。这就需要在损失中设置针对于不同任务的权重,这样才能保证梯度幅度在各个任务间的相对平衡。

    梯度归一化

    有一种称为梯度归一化 (GradNorm)[1] 的优化方法,通过使不同任务的梯度具有相似大小来控制多任务网络训练的方法。这样可以鼓励网络以相同的速度学习所有任务。在展示这种方法之前,我们将介绍相关的符号。

    这里也为每个任务 i 定义了不同的训练率:

    GradNorm 旨在在多任务网络的训练过程中平衡两个属性:

    1、平衡梯度幅度:平均梯度被用作基线,可以根据该基线计算作业之间的相对梯度大小。

    2、在学习不同任务的速度之间找到一个很好的平衡点:使用了loss变化率(inversetrainingrate), 任务 i 的梯度幅度应该随着相对变化率的增加而增加,从而刺激任务更快地训练。GradNorm 通过减少以下损失来实现这些目标。

    其中 α 是已添加到方程中的附加超参数。α 设置“恢复力”的强度,可以使任务恢复到一个普通的训练速率。在任务复杂性大导致任务之间的学习动态差异大时,应使用更大的 α 值来确保更好的训练率平衡。当问题更加对称时,需要较低的 α 值。

    完整文章:

    https://www.overfit.cn/post/5a90e7982e254a0580ab3eeeec728714

  • 相关阅读:
    ActionBarSherlock的使用--------(一)配置
    宣布发布 Windows Azure ExpressRoute,宣告与 Level 3 建立全新的合作伙伴关系并推出关于其他 Azure 服务令人振奋的更新
    最佳实践:Windows Azure 网站 (WAWS)
    Strata 2014 上的 AzureCAT 粉笔会谈
    Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集
    Windows Azure 网站上的 WordPress 3.8
    进一步探索:Windows Azure 网站中解锁的配置选项
    如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
    Windows Azure 网站自愈
    宣布与 NBC 合作直播索契冬季奥运
  • 原文地址:https://www.cnblogs.com/deephub/p/16105494.html
Copyright © 2020-2023  润新知