1. 首页 > 快讯

吴恩达深度学习笔记(68)多任务学习

让我们看一个例子。假设您正在开发无人驾驶汽车。那么你的无人驾驶汽车可能需要同时检测不同的物体,比如检测行人、车辆、停车标志、交通信号灯和各种其他物体。例如,在左侧的示例中,图像中有停车标志,然后图像中有汽车,但没有行人,也没有红绿灯。

如果这是输入图像x^((i)),那么不再有一个标签y^((i)),而是4 个标签。在此示例中,没有行人、一辆车、停车标志,也没有交通灯。

然后如果你尝试检测其他物体,也许y^((i)) 的维度会更高。现在,我们使用4,因此y^((i)) 是一个41 向量。如果你像以前一样将训练集标签视为一个整体,我们会水平堆叠训练集标签,就像这样y^((1)) 一直到y^((m)):

但现在y^((i)) 是一个41 向量,所以这些是垂直列向量,所以这个矩阵Y 现在变成了4m 矩阵。以前,当y 是单个实数时,这是一个1m 矩阵。

所以你现在可以做的是训练一个神经网络来预测这些y 值,你会得到一个接受输入x 并现在输出一个四维向量y 的神经网络。请注意,我这里画了四个节点用于输出,所以第一个节点是我们要预测图片中是否有行人的地方,然后第二个输出节点预测是否有汽车。这里我们预测是否有停车标志,这里我们预测是否有。没有红绿灯,所以这里的^y 是四维的。

为了训练这个神经网络,您现在需要定义神经网络的损失函数。对于输出^y(它是一个4 维向量),整个训练集的平均损失:

这些单独预测的损失,所以这是四个组成部分的总和,行人,汽车,停车标志,交通信号灯,这个符号L指的是逻辑损失,我们就这样写:

整个训练集的平均损失与前面对猫进行分类的示例之间的主要区别在于,现在您对j=1 到4 求和。与softmax 回归的主要区别在于,与softmax 回归不同,softmax 为单个样本。

而且这张图片可以有很多不同的标签,所以并不是说每张图片都只是一个行人的图片,一张汽车的图片,一张停车标志的图片,或者一张红绿灯的图片。

您需要知道每张照片中是否有行人、汽车、停车标志或交通信号灯。多个对象可能同时出现在同一张图像中。实际上,在上一张幻灯片中,该图像既有汽车也有停车标志,但没有行人和交通灯,因此您需要迭代不同的类型并查看每个类型,而不是仅仅为图像提供标签,该类型是吗?物体出现在图片中?所以我说这种情况下一张图片可以有多个标签。如果你训练一个神经网络来尝试最小化这个成本函数,那么你所做的就是多任务学习。因为你现在要做的就是构建一个神经网络,观察每张图片,然后解决四个问题。系统试图告诉你每张图片中是否有这四个物体。或者,您可以训练四个不同的神经网络,而不是训练一个网络来做四件事。但神经网络的一些早期特征在识别不同物体时被使用。然后你发现训练一个神经网络做四件事会比训练四个完全独立的神经网络分别做四件事表现得更好。这就是多任务学习的力量。

另一个细节,到目前为止,我已经描述了该算法,就好像每张图片都有所有标签一样。

吴恩达深度学习笔记(68)多任务学习

事实证明,多任务学习还可以处理仅标记图像中的部分对象的情况。

那么第一个训练样本,比如说某人,标记数据的人告诉你里面有一个行人,没有汽车,但是他们没有标记是否有停车标志,或者是否有红绿灯。也许在第二个例子中,有行人和汽车。但是当标记者查看该图像时,他们没有标记它,是否有停车标志,是否有红绿灯等。也许有些样本被标记了,但也许有些样本他们只标记了是否有汽车或者没有,然后还有一些带有问号的。

即使使用这样的数据集,您也可以在其上训练算法以同时执行四个任务,即使某些图像只有一小部分标签,而其他图像是问号或其他什么。然后你训练算法的方式,即使这里有些标签是问号,或者没有标签,也就是从1到4求和j,你只要将标签0和1的j值求和,因此,当存在问号时,您在求和时只需忽略该术语,以便仅对标记值进行求和,这样您就可以利用这样的数据集。

那么多任务学习什么时候有意义呢?当三件事为真时,它就是有意义的。

首先,如果您训练一组任务,则可以共享低级特征。

对于自动驾驶示例,同时识别交通灯、汽车和行人是有意义的。这些物体具有相似的特征,可以帮助您识别停车标志,因为这些都是道路上的特征。

其次,这个标准并不是那么绝对,因此可能不正确。

但我从很多成功的多任务学习案例中看到,如果每个任务的数据量非常接近,你记得迁移学习时,你从任务A学习知识,然后将其迁移到任务B,所以如果任务A有1 有数百万个样本,任务B只有1000个样本。那么你从这100万个样本中学到的知识确实可以帮助你用更小的数据集增强任务B的训练。

那么多任务学习呢?

在多任务学习中,你通常有不止两个任务,所以也许你有,之前我们有4 个任务,但假设你有100 个任务要完成,并且你想做多任务学习,尝试识别100 个不同的任务同时处理不同类型的物体。您可能会发现每个任务大约有1000 个样本。

所以如果你专注于增强单个任务的性能,比如我们专注于增强第100个任务的性能,我们用A100来表示。如果你尝试单独做这最后一个任务,你只有1000 个样本来训练这个任务,也就是100 个任务之一,而通过对其他99 个任务的训练,这些加起来总共可以有99,000 个样本,这可能大大提高了算法的性能,并为增强该任务的性能提供了大量的知识。

吴恩达深度学习笔记(68)多任务学习

否则,对于任务A100,只有1000个样本的训练集,效果可能会很差。如果存在对称性,那么其他99 个任务也许能够提供一些数据或者提供一些知识来帮助这100 个任务中的每一个。所以第二点并不是一个绝对正确的指导方针,但我通常看的是,如果你专注于单个任务,如果你想从多任务学习中获得很大的性能提升,那么其他任务组合起来必须有更大的性能提升。比单一任务有收获。很多数据。满足这个条件的一种方法是,就像右边的例子,或者每个任务的数据量非常相似,但关键是,如果单个任务已经有1000 个样本,那么对于所有其他任务,你最好有超过1000个样本,这样来自其他任务的知识可以帮助你提高这个任务的性能。

最后,当您可以训练足够大的神经网络来同时完成所有工作时,多任务学习通常更有意义,因此多任务学习的替代方法是为每个任务训练一个单独的神经网络。

因此,不要训练单个神经网络来同时处理行人、汽车、停车标志和交通灯检测。您可以训练用于行人检测的神经网络、用于汽车检测的神经网络、用于停车标志检测的神经网络以及用于交通灯检测的神经网络。那么研究人员Rich Carona 几年前发现了什么?与训练单个神经网络相比,多任务学习唯一会降低性能的情况是神经网络不够大。但如果你能训练一个足够大的神经网络,那么多任务学习肯定不会或很少会降低性能。我们都希望它能够提高性能,这比单独训练神经网络单独完成每个任务更好。

所以这就是多任务学习,在实践中,多任务学习的使用频率低于迁移学习。

我看到了迁移学习的许多应用。你需要解决一个问题,但你的训练数据很少,所以你需要找到一个有大量数据的相关问题来提前学习,并将知识转移到这个新问题上。

但多任务学习比较少见,即需要同时处理很多任务并做好它们。您可以同时训练所有这些任务。也许计算机视觉就是一个例子。在对象检测中,我们看到更多使用多任务学习的应用,其中一个神经网络试图比单独训练不同的神经网络来检测对象更好地检测一大堆对象。但我想说的是,平均而言,迁移学习目前比多任务学习使用得更频繁,但两者都可以成为您的强大工具。

总而言之,多任务学习允许您训练神经网络来执行许多任务,这可以为您提供比单独执行每个任务更高的性能。但请注意,迁移学习实际上比多任务学习使用得更频繁。

我看到很多任务,如果你想解决机器学习问题但你的数据集相对较小,那么如果你发现数据量大得多的相关问题,迁移学习确实可以帮助你。如果你有更多,你可以基于它训练你的神经网络,然后用少量数据迁移到这个任务。

今天我们学习了很多与迁移学习相关的问题,以及迁移学习和多任务学习的一些应用。

但我认为多任务学习的使用频率比迁移学习要少得多,也许例外之一是计算机视觉、目标检测。在这些任务中,人们经常训练神经网络来同时检测许多不同的对象,这比训练单独的神经网络来检测视觉对象更好。

但平均而言,我认为迁移学习和多任务学习的工作原理也类似。事实上,我认为迁移学习的使用比多任务学习更多。我认为这是因为很难找到这么多具有相同数据量的类似任务可以用单个神经网络进行训练。同样,在计算机视觉领域,对象检测的例子是最显着的例外。

用户评论

(り。薆情海

多任务学习真的太强大了!感觉可以将不同任务的信息相互补充,提升模型效果,吴恩达老师讲的真细致!

    有13位网友表示赞同!

终究会走-

这节课介绍的多任务学习,感觉很有潜力,可以试试用在自己的项目中。

    有16位网友表示赞同!

陌上花

吴恩达老师这节课讲的多任务学习,我感觉有点抽象,还需要多琢磨一下。

    有14位网友表示赞同!

断桥残雪

多任务学习听起来很复杂,但其实理解起来并不难,吴恩达老师讲得很清楚。

    有7位网友表示赞同!

孤街浪途

这节课主要讲了多任务学习的应用场景,感觉很有启发,可以扩展一下思路。

    有13位网友表示赞同!

逾期不候

多任务学习,感觉可以提高模型的泛化能力,值得深入研究。

    有5位网友表示赞同!

北染陌人

多任务学习,可以用来提升模型的效率,节省训练时间。

    有12位网友表示赞同!

风中摇曳着长发

吴恩达老师这节课讲的多任务学习,让我对深度学习有了更深的理解。

    有13位网友表示赞同!

残留の笑颜

多任务学习,感觉是一个很有前景的方向,期待未来更多应用。

    有17位网友表示赞同!

我绝版了i

这节课讲的多任务学习,可以应用在哪些实际场景中?

    有19位网友表示赞同!

迷路的男人

吴恩达老师这节课讲的多任务学习,感觉有点难,需要多练习才能掌握。

    有16位网友表示赞同!

微信名字

多任务学习,感觉很实用,可以用来解决多个任务。

    有19位网友表示赞同!

别在我面前犯贱

这节课讲的多任务学习,可以用来解决哪些问题?

    有19位网友表示赞同!

烟花巷陌

多任务学习,感觉可以提高模型的鲁棒性。

    有8位网友表示赞同!

▼遗忘那段似水年华

吴恩达老师这节课讲的多任务学习,让我对深度学习有了新的认识。

    有16位网友表示赞同!

夏至离别

多任务学习,感觉可以提升模型的准确率。

    有11位网友表示赞同!

旧事酒浓

这节课讲的多任务学习,可以应用在哪些领域?

    有13位网友表示赞同!

花容月貌

多任务学习,感觉是一个很有潜力的研究方向。

    有13位网友表示赞同!

单身i

吴恩达老师这节课讲的多任务学习,感觉很实用。

    有20位网友表示赞同!

服从

多任务学习,感觉可以提高模型的性能。

    有14位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/3990.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666