我们来考虑一下卷积神经网络是如何处理图像的。假设有一张图像,对其应用卷积,并得到像素的组合作为输出。假设这些输出是边缘,再次应用卷积,那么现在的输出将是边缘或线的组合。然后再次应用卷积,此时的输出将是线的组合,以此类推。可以把它想象成是在每一层寻找一个特定的模式。神经网络的较后一层通常会变得非常特别。
如果基于ImageNet进行训练,那么神经网络的较后一层或许就是在寻找儿童、狗或者飞机之类的完整图像。再往后倒退几层,可能会看到神经网络在寻找眼睛、耳朵、嘴巴或者轮子等组成部分。
深度卷积神经网络中的每一层逐步建立起越来越高层次的特征表征,较后几层通常是专门针对输入数据。另一方面,前面的层则更为通用,主要用来在一大类图片中有找到许多简单的模式。
迁移学习就是在一个数据集上训练卷积神经网络时,去掉较后一层,在不同的数据集上重新训练模型的较后一层。直观来讲,就是重新训练模型以识别不同的特征。因此,训练时间会减少很多,所以在没有足够的数据或者需要太多的资源时,迁移学习是一个很有用的工具。