在深度学习领域,迁移学习(transfer learning)是应用比较广的方法之一。该方法允许我们构建模型时候不光能够借鉴一些其它科研人员的设计的模型,还可以借用类似结构的模型参数,有些类似于站在巨人的肩膀上进行深入开发。本文将讲述如何在NLP领域中更高效地应用迁移学习。
今年春天,我 在ODSC East会议上发表了题为 “NLP中的有效迁移学习”的演讲。该演讲展示了预训练的单词和文档嵌入层在训练数据集较小时取得的优异结果,并为将这些技术应用于工程任务中提出了一系列实用建议。此外,感谢[Alec Radford和OpenAI团队的一些出色研究](),使得之前提出的一些建议发生了一些变化。
为了解释发生变化的原因,首先回顾一下之前在Indico会议中使用的评估方法,以评估一种新颖的机器学习方法是否适用于工业用途中。
评估新的机器学习方法
对于广泛的实际应用,机器学习模型必须对照以下大多数要求检验自身:
- 快速训练
- 快速预测
- 需要极少或不需要超参数调整
- 在训练数据可用性较低时运行良好(100个示例)
- 适用于广泛的任务及对应的领域
- 在标记的训练数据上能够很好地扩展
让我们看看预先训练好的单词+文档嵌入层如何满足这些要求:
- 快速训练
在预训练嵌入层之上训练轻量级模型所花费的时间在几秒钟内是可能的,尽管计算预训练嵌入层依赖于基础模型复杂度。 - 快速预测
预测同样快速,预测与基础模型花费一样的代价。 - 需要极少或不需要超参数调整
正则化参数和嵌入类型的交叉验证对其是有所帮助的,并且这种操作足够便宜而且不会引入问题。 - 在训练数据可用性较低时起作用(100个示例)
在预训练的单词嵌入层之上应用逻辑回归块仅需要学习100s~1000s的参数而不是数百万的参数,并且模型的简单性意味着它需要非常少的数据就