Multi-Task Learning Multiclass classification

news/2025/2/27 1:45:39

最开始接触的机器学习问题就是 “ Is this a cat or not ” ,这是极具有代表性的一个二分类问题(Binary or binomial classification),二分类体现在数据的标签上就是0/1,一张图片作为输入X,对于监督学习而言,他的标签Y就是一个数字0/1,后面讲到的例子若不特殊说明都是监督学习。

多分类问题(Multiclass classification)就是不仅仅只有一个类别,比如识别手写数字的例子,这里的标签Y就是一个ONE-HOT形式的向量,长度为10,每个位置分别对应(0-9),只有一个位置上的值为1,其他都是0,并且这张图片代表的数字就是为1位置对应的数字(0-9中的一个)。

再举一个例子,自动驾驶系统中需要使用对象检测,假如现在只需要检测以下四种类别(行人,汽车,障碍物,停车标识),可以认为这个例子中其实有四项二分类任务,有没有行人?有没有汽车?有没有障碍物?有没有停车标识?
如果要实现这项检测,可以训练四个模型来分别识别这些东西,可能四个模型听起来还可以接受,但是真正自动驾驶要检测的对象是很多的,对每个对象构建一个检测模型是不可取的,这时候就用到多任务学习(Multi-Task Learning ),他可以使用一个模型去学习四件事情。构建每张图片对应的标签为一个四维列向量,每个位置对应一种类别,1表示有0表示没有。

这里的标签和上面识别手写数字的标签都是n维列向量,区别在于 后者是one-hot,前者不是。我的理解是,这里就是区别多分类问题和多任务问题的关键点!多任务是可以割裂开来的,而多分类问题不行。其实如果理解到位,多分类和多任务压根不是一回事,多分类是分类问题的一种形式,多任务是一种机器学习的手段和方法。

再看一个例子,翻译工具,假设现在要训练一个模型,可以实现将英语翻译为意大利语和西班牙语,可以发现这里对应的其实是两个数据集,(英语-意大利语),(英语-西班牙语)。并且模型的输入的一样的,输出是法语。那同样的大可以训练两个翻译模型分别翻译两种语言,但是面对世界上那么多种语言,设计很多种模型效率实在低。注意这个例子和上面提到的对象检测例子又有区别,因为对象检测只有一个输出,而这个例子有对应两种输出。

可以理解为是多任务学习在应用到具体的事例中的不同变种,我看到一门tensorfow教程中一位老师将这两种方式分别称为联合训练和交替训练,搜索这两种训练模式很多博客上用的图片也和这位老师的图片一致,但我在谷歌搜索的时候并没有明确文献解释这两种模式,姑且就这样理解吧,以后发现有问题在改正。

强烈欢迎指正!


http://www.niftyadmin.cn/n/705456.html

相关文章

TensorFlow(八)TFRecords使用方法与实例

这篇文章介绍如何将大量数据存储为TFRecords格式的文件,然后将TFRecords格式的文件按批次处理的方式引入代码中,用来训练你的模型。 本文借鉴了 link中的大部分内容,加上自己的理解和对代码中用到的库的补充说明。 TFRecords 是 Tensorflow s…

Word2Vec入门

本文是对原文地址的翻译 word2vec是一个用来处理文本的二层神经网络,它的输入是一个文本集,输出是一系列集合,这个集合是与文本集是对应的。明显word2vec不是一个深度学习网络,它只是将文本转化为深度网络可以理解的数值化格式。…

ubuntu16.04搭建cuda9.0+cudnn7.0.5环境

在安装cuda之前,最重要的就是检查你的显卡是不是支持cuda安装版本。官网给出说明是只要在cuda支持显卡列表里的显卡就可以,但是我的显卡NVS 310虽然在,安装cuda以后会报错,因为显卡不支持。所以我猜测这个显卡或许可以支持低版本的…

Linux学习命令汇总四——Bash中变量.文件通配符.管道与重定向.算术运算及循环或判断语句...

本章Blog相关Linux知识点编程语言,是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。强类型语言(静态类型语言)是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行。例如C/C/Java/C#弱类型语言(…

康托编码与解码

原文地址:https://blog.csdn.net/neutre/article/details/78065633 对于一个集合 {1,2,3,…,n},很明显它有 n! 种全排列, 把它们全都按照字典序排好序(从小到大),对应顺序{1,2,3&a…

Go(3[数组])

数组:var 变量名[len]type使用场景:固定需求的时候,使用数组,不可超出指定长度长度也是数组类型的一部分底层内存空间是连续的用来存储常量数组是一种特殊的字典.....数组写入,赋值的方式, 数组[索引]值数组是值类型,如果copy成另外一个数组,那修改这个数…

【译】Parsing C++ in Python with Clang

本文不是全部翻译,仅仅针对重要内容,添加了一些的实战经验,方便日后查阅 原文地址:https://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang/ Clang开发团队意识到,Clang不仅仅可以被用来作为编译器…

物联网技术在数字化医院的应用

物联网在医疗信息管理等方面具有广阔的应用前景。目前医院对医疗信息管理的需求主要集中在以下几个方面:身份识别、样品识别、病案识别。其中,身份识别主要包括病人的身份识别、医生的身份识别,样品识别包括药品识别、医疗器械识别、化验品识…