首先从机器学习谈起。机器学习的作用就是学会一个函数,函数就是有输入和输出。例如识别一个猫,输入就是猫的一张图片,输出就是猫的编码,例如可以是0001。如果这个函数是一个深度神经网络,那么就是深度学习。
机器学习学出来的函数(深度神经网络),一般只能干一件事情,例如识别猫。如果想让这个网络去识别狗,就办不到了,这个时候就需要再训练一个网络去识别狗。但是这个识别狗的网络可以不用从头开始训练,可以在识别猫的这个神经网络上继续训练,这个过程就叫fine tune,翻译过来就是往好了调整的意思。
Fine tune的好处就是训练数据少,为什么可以少呢?主要是因为神经网络已经具备一定的能力了,什么叫具备一定的能力,就是神经网络的参数已经调整的不错了。把一个识别毛的网络参数稍加调整(用少量狗的数据调整),它就可以识别狗了。经过fine tune的网络可以识别狗,但是就不能识别猫了,这是因为参数变了。
于是就有了两个网络,我们可以叫它们猫网络和狗网络,但是每个网络还是只能干一件事情。那么能不能训练一个神经网络可以让它干多个事情呢?例如识别猫、狗、猴子、大象…等等。这个是可以的,这个技术就叫做多任务学习。
多任务学习的神经网络也是一个,但是为什么可以做很多事情呢?简单的说就是它采取了折中的方式,就是神经网络的参数调整是受到限制的,不是任何参数在训练的过程中都可以调整