C2-3.3.3 迁移学习
1、为什么要使用-迁移学习
和 "数据增强" [C2-3.3.2 数据增强.md](C2-3.3.2 数据增强.md) 相比, 有一些应用程序没有那么多数据 ,而且 很难获取到更多的数据 ------"迁移学习 " 诞生
迁移学习 在实际的应用中使用的很频繁,非常受欢迎
2、迁移学习举例

我们这里已经有一个成熟的模型,进行1000个类别分类。分成:猫、狗、车、人... 。 但是我们想要一个能实现手写体识别的模型,但是我们手里的数据很少,比如有50个吧(也不能实现数据增强)。有两种方法能实现:
- 方法一 - 迁移学习:把人家预训练好的模型拿过来: 除了最后一层输出层以外留下所有层的参数 w , b 。 把输出层换成一个 比较小的有10个神经元的输出层(因为有10种结果的判别,簇类)。通过我们手里有的50个 手写体数据,对模型进行训练,只训练输出层的参数。
- 方法二-传统的方法:需要很大的数据集,从头到尾进行训练
3、为什么迁移学习能胜任这份工作呢

因为在前几层 隐藏层中 做的功能都是差不多的,只不过是后面的输出层 有一些不同(有可能有时倒数几层开始不同)
4、迁移学习 总结 / 步骤

【※注释】:必须是同一个输入类型