对于数据量不大的应用迁移学习是一种很棒的技术
允许使用不同任务的数据来帮助你的应用
迁移学习的工作原理
当想要做一个0-9的数字识别但是没有标签数据
我们手头没有大量的数据进行模型训练,我们可以使用迁移学习,首先下载一个类似的模型
然后我们有两种训练方式,如下图所示
方式只训练冻结预训练模型所有原有层参数,只更新新输出层参数W5B5,这种方式只适用于拥有的数据集比较小的时候
方式2是跟新所有的参数,这种方式适用于有较多的数据集得到情况
为什么我们可以用别人训练好的模型,最终的任务不一样,为什么复用其他人的模型依然有效
神经网络的前几层学到的是通用底层特征:边缘、角点、纹理、简单形状。这些特征对几乎所有同类型输入(如图像)的任务都有用。
因为前几层是通用的,他们提取图像的边缘,角点,纹理,以及弧度,形状等等,这些在同一个分类模型中都是通用的,
所以我们要找到同一类的机器学习模型,前几层是可以通用的
这就是迁移学习。
注意:如果输入类型不同(如用文本预训练模型去做图像任务),迁移学习通常无效。