https://cloud.tencent.com/developer/article/1118159

http://ruder.io/multi-task/

https://arxiv.org/abs/1706.05098

两种深度学习 MTL 方法

1、Hard 参数共享

在实际应用中,通常通过在所有任务之间共享隐藏层,同时保留几个特定任务的输出层来实现。

共享 Hard 参数大大降低了过拟合的风险。这很直观:我们同时学习的工作越多,我们的模型找到一个含有所有任务的表征就越困难,而过拟合我们原始任务的可能性就越小。

2、Soft 参数共享

在软参数共享中,每个任务都有单独的模型,每个模型包含各自的参数。模型参数之间的距离会作为正则项来保证参数尽可能相似。

Why does MTL work?

我们假设我们有两个相关的任务A和B,依赖一个共享的隐藏层表示F。

1、Implicit data augmentation

MTL可以有效增加用于模型训练的样本量。由于所有任务难免会有一些噪声,当我们在任务A上训练模型, 我们的目标是学习针对任务A的一个好的表示,可以完全避免依赖数据的噪音,而且泛化效果好。由于不同的任务有不同的噪声模式,一个自动学习两个任务的模型能够学习一个更加泛化的表示。只学习A任务有风险对任务A有过拟合风险,但是把A和B联合起来学习能够通过平均噪声模式使得模型获得一个更好的表示F。

2、Attention focusing

如果一个任务数据中噪声非常多或者数据较少而且高维,模型很难辨别相关特征和不相关特征。由于MTL中其他任务也可以提供辨别特征是否相关的依据,所以可以帮助模型将注意力集中在那些真正起作用的特征上。

3、Eavesdropping

某些特征G对于任务B来说容易学习,但是对于任务A来说较难学习。这可能是因为任务A中特征以更复杂的方式作用或者其他特征阻碍了模型学习G。通过MTL,我们允许模型偷听,也就是说通过任务B来学习G。最简单的方式就是通过hints,也就是直接训练模型来学习最重要的特征。

4、Representation bias

MTL中会使模型偏向于使用其他任务也倾向的表示。这也使得模型在未来的新任务上有更好的泛化能力,因为在足够数量任务上表现较好的假设空间也会在新任务上表现较好,毕竟这些任务都是在相同的环境中。

哪些辅助任务是有帮助的?

在本节中,我们讨论了可用于 MTL 的不同辅助任务,即使我们只关心一个任务。然而,我们仍然不知道什么辅助任务在实际中是有用的。寻找辅助任务主要是基于一种假设,即认为辅助任务与主任务有某种相关性,并且有助于预测主任务。

然而,我们仍然不知道什么时候两个任务应该被认为是相似或相关的。Caruana(1997)定义如果两个任务使用相同的特征作判断,那么这两个任务是相似的。Baxter(2000)认为理论上相关的任务共享一个共同的最优假设类,即具有相同的归纳偏置。[50] 提出,如果两个任务的数据可以使用一个从一组分布变换 F 得到的固定概率分布生成,那么两个任务是 F-相关的。虽然这允许对不同传感器收集的相同分类问题的数据的任务进行推理,例如用不同角度和照明条件的相机得到的数据进行对象识别,这不适用于处理不同问题的任务。Xue 等人(2007)讨论,如果两个任务的分类边界即参数向量接近,则两个任务是相似的。

在理解任务相关性方面,尽管有这些早期的理论进展,但实践中还没有太多进展。任务相似度不是二进制的,而是在一个频谱范围内。MTL 中,更多的相似任务有更大的作用,而较少的相似任务相反。允许我们的模型学习如何分享每个任务,可能使我们能够暂时避开理论的缺失,并更好利用即使是松散相关的任务。然而,我们还需要制定一个有关任务相似性的原则概念,以便了解我们应该选择哪些任务。

最近的工作 [52] 发现了标签满足紧凑且均匀分布的辅助任务,这适用于 NLP 中的序列标签问题,并且已经在实验中(Ruder 等人,2017)得到证实。此外已经发现,主任务更有可能快速达到高峰平稳(plateau),而辅助任务不容易达到高峰平稳 [53]。

然而,这些实验迄今在范围上受到限制,最近的发现仅提供了加深对神经网络中多任务学习理解的启发式线索。

深度神经网络多任务学习(Multi-Task Learning in Deep Neural Networks)的更多相关文章

  1. [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

    译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...

  2. (转)Understanding, generalisation, and transfer learning in deep neural networks

    Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017   Thi ...

  3. This instability is a fundamental problem for gradient-based learning in deep neural networks. vanishing exploding gradient problem

    The unstable gradient problem: The fundamental problem here isn't so much the vanishing gradient pro ...

  4. Coursera, Deep Learning 1, Neural Networks and Deep Learning - week4, Deep Neural Networks

    Deep Neural Network Getting your matrix dimention right 选hyper-pamameter 完全是凭经验 补充阅读: cost 函数的计算公式: ...

  5. 【论文笔记】多任务学习(Multi-Task Learning)

    1. 前言 多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法.在机器学习领域,标准的算法理论是一次学习一个任务,也就 ...

  6. 为什么深度神经网络难以训练Why are deep neural networks hard to train?

    Imagine you're an engineer who has been asked to design a computer from scratch. One day you're work ...

  7. 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第四周:深层神经网络(Deep Neural Networks)-课程笔记

    第四周:深层神经网络(Deep Neural Networks) 4.1 深层神经网络(Deep L-layer neural network) 有一些函数,只有非常深的神经网络能学会,而更浅的模型则 ...

  8. 吴恩达《深度学习》-课后测验-第一门课 (Neural Networks and Deep Learning)-Week 4 - Key concepts on Deep Neural Networks(第四周 测验 – 深层神经网络)

    Week 4 Quiz - Key concepts on Deep Neural Networks(第四周 测验 – 深层神经网络) \1. What is the "cache" ...

  9. 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks)—— 0.学习目标

    Understand the key computations underlying deep learning, use them to build and train deep neural ne ...

随机推荐

  1. (13)zabbix External checks 外部命令检测

    1.  概述 zabbix server运行脚本或者二进制文件来执行外部检测,外部检测不需要在被监控端运行任何agentd item key语法如下: ARGUMENT DEFINITION scri ...

  2. 基于ubuntu 14.04 kvm虚拟化部署

    1. 宿主机环境(dell备份服务器) Ubuntu 14.04 LTS 64位 内存:16G 硬盘:2T 2. 确认CPU是否支持硬件虚拟化 root@shwilling:~# egrep -o ' ...

  3. docker系列之基础命令-1

    1.docker基础命令 docker images 显示镜像列表 docker ps 显示容器列表 docker run IMAGE_ID 指定镜像, 运行一个容器 docker start/sto ...

  4. mysql8忘记root密码修改密码(mac)

    0.在/etc/my.cnf修改验证方式 [mysqld] default_authentication_plugin=mysql_native_password 1.切换root权限: sudo s ...

  5. Poj 1041--欧拉回路

    Description Little Johnny has got a new car. He decided to drive around the town to visit his friend ...

  6. PAT Basic 1030

    1030 完美数列 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列. 现在给定参数p和一些正整数,请你从中选择尽可能多的数 ...

  7. 安装mongodb卡顿

    "3.6下载安装会卡死."的原因在于,默认安装是包含mongodb compass,这个包的,这个包大约有180MB,下载很慢,导致所谓的的”卡死“. 如果你选用自定义安装的并且不 ...

  8. spring cache redis

    一.使用开源包(spring-data-redis) 1.引入jar包 <dependency>      <groupId>org.springframework.data& ...

  9. Appium自动化-基于java的环境搭建

    引言 自动化测试框架搭建主要分为以下几个方面的下载安装及环境配置: 1.jdk 2. adt 3. appium 4. testng插件 工具链接: https://pan.baidu.com/s/1 ...

  10. nginx,lvs,haproxy负载均衡对比

    Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术,具体的应用需求还得具体分析. 如果是中小型的Web应用,比 ...