如果没有那么多数据的应用程序,迁移学习是很棒的技术。它可以使用来自不同任务的数据来帮助你的应用程序。
工作原理:在神经网络中,隐藏层的w和b都可以一样,只要将输出层的改了就行。因为两个网络的本质都是图像分类,所以在隐藏层的大部分工作都是相似甚至一样的,所以直接把第一个网络的隐藏层拿过来,对输出层重新训练就能实现新的功能。将重新设计的网络先在大型数据集上进行训练,然后在较小的数据集上进一步调整数据,这被称为监督预训练。
迁移学习的好处是也许你不需要成为进行监督预训练的人。迁移学习能成功是因为在隐藏层中,会检测一些通用特征。所以说如果你的目标是构建一个语音识别系统来处理音频,那再图像上预训练的神经网络可能不会对音频有太大的帮助。
应用迁移学习的两个步骤:第一步下载神经网络,其参数已在与你的应用程序具有相同输出类型的大型数据集上进行预训练。第二步根据你自己的数据进一步训练或微调网络。