机器学习中最重要的突破之一:重用一种模型知识的转移学习 (svpono)


重用一种模型的知识并使其适应不同问题的能力是机器学习中最重要的突破之一:
深度学习模型就像一个乐高模块集,将许多模块连接在一起,形成一个长结构。这些模块是机器学习中的层,每一层都有责任。
尽管我们不清楚每一层的作用,但我们知道它们与输出越接近,它们就越具体。
 
第一个模型
一个示例:一个处理汽车图像的模型,顶层(更靠近输入)可能专注于图像的高级细节。例如,它可以专注于从输入图像中提取边缘。下一层可以集中于使用这些边缘来形成线。之后的层可以使用线来形成形状。然后,一个新层可能专注于特定的汽车部件,并且您越接近输出,则每个层将越具体。输出层将仅决定输入图像中是否有汽车。
这是一个简化,但是希望可以说明这个想法。想象一下,我们在几天内用100k图像训练了我们的汽车模型。辛苦了!现在该继续构建新模型了。但是这一次,我们需要特定于卡车的模型。
 
第二个模型
第二个模型有两个问题:1.我们可能没有那么多卡车图像,因此结果可能不好。2.浪费我们在汽车模型上所做的所有工作真可耻,因为汽车和卡车真的很相似。
这就是魔术发生的地方!让我们摆脱正式的定义:我们将您要学习的东西称为“转移学习”。转移学习是一种方法,在此方法中,我们可以重用针对一项任务开发的模型作为另一项任务的起点。
基本上,我们将重用我们汽车模型学到的大部分内容,并将其转移到我们的卡车模型中。考虑一下:边缘,线条,颜色,纹理...很多知识都是相同的。我们只需要训练新模型就可以识别卡车特有的东西!
我们可以从汽车模型(最接近输出的模型)断开底层,因为我们知道他们学到了汽车的特定知识。在他们的位置,我们将连接新的新图层,并使用卡车图像对其进行训练。
这样,我们可以重用大量知识,并专注于针对新问题的具体内容训练模型的一小部分。因为已经学习了最困难的部分,所以我们不需要那么多的数据,也不需要像汽车模型那样多的训练时间!
 
转移学习是您和我可以建立最先进的计算机视觉模型的原因,而不必收集数千张图片或不必花大笔的基础设施成本。我们站在巨人的肩膀上!