在不同的划分上进行训练并测试
深度学习,对于数据的要求量很大。但有时候我们难以收集到足够的数据,可能一些其他数据要从其他办法来获得,这样就会容易出现不同数据的分布不同的情况。那么我们应该怎么办呢?
假设你在开发一个手机应用,用户会上传他们用手机拍摄的照片,你想识别用户从应用中上传的图片是不是猫。我们真正想要识别的是用户上传的图片。但是关于这些图片我们手头的数据量是不够的。我们也可以从网上下载大量的图片。但是这两种图片的分布是不一样的,比如说从网上下载的图片分辨率更高,用户上传的图片分辨率比较低。比如说我们手头只有1万张用户的图,有20万张网上下载的图片。
这里有一种选择,你可以做的一件事是将两组数据合并在一起,这样你就有21万张照片,你可以把这21万张照片随机分配到训练、开发和测试集中。为了说明观点,我们假设你已经确定开发集和测试集各包含2500个样本,所以你的训练集有205000个样本。现在这么设立你的数据集有一些好处,也有坏处。好处在于,你的训练集、开发集和测试集都来自同一分布,这样更好管理。但坏处在于,这坏处还不小,就是如果你观察开发集,看看这2500个样本其中很多图片都来自网页下载的图片,那并不是你真正关心的数据分布,你真正要处理的是来自手机的图片。
我建议你走另外一条