利用利用TensorFlow一步一步构建一个多任务学习模型一步一步构建一个多任务学习模型
介绍
为什么是多任务学习?
当你在思考新事物的时候,他们通常会利用他们以前的经验和获得的知识来加速现在的学习过程。当我们学习一门新语言的时
候,尤其是相关的语言时,我们通常会使用我们一级学过的语言知识来加快这一门新语言的学习过程。这个过程也可以用另一
种方式来理解 —— 学习一种新的语言可以帮助你更好的理解和说出自己的想法。
我们的大脑会同时学习多种不同的任务,无论我们是想将英文翻译成中文,还是想将中文翻译成德语,我们都是使用相同的大
脑架构,也就是我们自己的脑袋。同理在我们的机器学习模型中,如果我们采用的是同一个网络来同时完成这两个任务,那么
我们就可以把这个任务称为 “多任务学习”。
“多任务学习” 是最近几年或者说未来几年非常有趣和令人兴奋的一个研究领域,因为这个学习模式从根本上减少了学习新概念
所需的数据量。深度学习其中一个最伟大的地方是,我们可以利用模型之间的参数共享来优化我们的模型,而这种方法在多任
务学习中将显得尤为突出。
在我们开始这个领域的学习之前,我遇到了一些障碍 —— 虽然我们很容易理解实现多任务学习所需要的网络架构,但是我们
很难弄清楚在 TensorFlow 中是如何实现它的。除了 TensorFlow 中的标准网络之外,我们做任何事情都需要对其工作原理有
一个很好的立即,但是网上大多数的教程都是没有一个很好的指导教学功能。我希望以下教程可以简单解释一些关键概念,并
帮助学习困难的你。
我们需要做什么
通过一个例子了解 TensorFlow 的计算图。使用 TensorFlow 进行多任务学习。如果你已经了解了 TensorFlow 的计算图,那
么你可以跳过这部分。
了解我们如何使用计算图进行多任务学习。我们将通过一个例子来说明如何调整一个简单的计算图来完成多任务学习。
用一个简单例子来理解计算图
TensorFlow 的计算图能让 TensorFlow 运行的更加快,它是深度学习中一个很重要的组成部分,虽然这个组成部分时常让人
感到困惑。
计算图可以能容易整理清楚模型的组织架构,这对我们进行多任务学习是非常有意义的。首先,让我们先来理解一些有关多任
务学习的概念吧。
一个简单例子:线性变换
我们将对计算图进行简单的计算 —— 对输入数据进行线性变换,并计算平方根损失。