在前面介绍的模型中,一般我们都会假设训练资料和测试资料符合相同的分布。而如果训练资料和测试资料是来自于不同的分布,这样就会让模型在测试集上的效果很差,这种问题称为Domain shift。(域的转变)
Domain Adaptation领域自适应学习,就是将在A domain上学到的东西应用到B domain上,这个技术 也可以看作是transfer learning的其中一个环节(在A任务上学到的技能可以用到B任务上)。
Domain Shift,其实有很多种不同的类型:
模型输入的资料的分布有变化(源域黑白,目标域彩色)
输出的分布也可能有变化(源域均匀分布,目标域极端分布)
输入跟输出虽然分布可能是一样的,但它们之间的关係变了(源域中叫做“0”,目标域中叫做"1")
今天只专注在,输入资料不同的 Domain Shift 的上面。
Source Domain 是我们的训练资料,Target Domain 是我们的测试资料.
那么对于 Domain Shift的问题,具体的做法随着我们对于目标领域的了解程度不同而不同,主要有以下几种情况:
1、少量有标注的目标领域资料
处理思想:先用原始资料训练一个模型,然后用目标资料对模型进行微调,类似于BERT,只稍微跑個兩 三個(Edpa)就足夠了。
处理遇到的困难:因为target domain的资料非常少,不要跑太多iteration,否则可能會 Overfit 到 Target 的這些少量的資料上。为了避免Overfit的情况,有很多solution,比如說 把 Learning Rate 調小一點,要让微调前后模型参数不要差很多,或者让微调前后模型输入和输出