迁移学习:如何以及为什么只重新训练网络的最后一层?
机器算法验证
机器学习
神经网络
反向传播
迁移学习
2022-03-19 06:19:13
1个回答
如果微调数据集很小,为什么要避免保留迁移学习网络的所有层?即,(如果我理解正确的话),为什么不想将正常的反向传播应用到输入层?
如果新数据集很小,将训练限制在新层的原因是为了避免过度拟合。整个网络包含更多参数,并且在小数据情况下,找到适合训练集但不能很好泛化的解决方案的可能性更高。
迁移学习背后的想法是,原始网络已经学习了一种内部表示,该表示也适用于新任务。这种表示由我们从原始网络保留的最后一层的输出给出。通过仅训练新层,我们只需保留该表示并学习如何为新任务处理它。因为新层包含的参数比整个网络少,所以过拟合的风险更小。
在迁移学习中,只训练最后几层时,反向传播的应用方式有什么不同吗?
如何计算梯度或如何使用梯度更新参数没有区别。唯一的区别是早期层的参数是固定的,因此不需要计算梯度的这些分量。
其它你可能感兴趣的问题