深度学习之多目标学习

作者:禅与计算机程序设计艺术

1.简介

随着图像处理、计算机视觉、自然语言处理等领域的发展,深度神经网络在解决各类任务上取得了广泛的成功。然而,在现实世界中,往往存在着多个不同目标的问题。如何将单一的神经网络模型应用到不同的目标上,是一个重要的研究方向。众所周知,深度神经网络的参数规模太大,难以处理复杂的任务,因此,通过提升模型的能力来处理更复杂的任务,成为现代人工智能发展的一个主要方向。那么,如何用深度学习解决多目标问题?在本文中,我将讨论一种多目标学习的新方法——Multi-Task Learning(MTL),并从机器学习、深度学习、优化算法三个方面阐述其理论基础和实践应用。
  MTL的关键是对不同的目标损失进行组合,以最小化整体的损失函数,从而达到全局最优解。它能有效地将复杂的任务划分成多个子任务,并利用子任务之间的依赖关系进行联合训练,实现多个目标之间的数据共享、模型共享,从而使得模型能够针对不同的任务快速准确地输出结果。如下图所示,MTL的两个步骤:第一步,通过对每个任务的预测值计算交叉熵损失;第二步,通过梯度下降法更新参数,使得所有任务的损失同时下降或接近于零。
图1 MLT的两个步骤
在图1中,黄色的框代表输入数据,蓝色的线条代表损失函数(交叉熵),红色的点代表参数估计值。为了同时拟合两个目标,我们需要同时训练两个子网络,这样就可以求出两个损失函数的权重,并根据它们的加权和来计算最终的整体损失。在实际应用时,可以设置一个超参数λ,用来控制两个子网络的相对贡献度,使得模型既关注两个目标的效果也能够适应新的场景。

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/132158312
今日推荐