Deep Leaning 学习笔记之组织机器学习项目(2.2)—— 不匹配的培训和开发/测试集

2 不匹配的培训和开发/测试集

2.1 不同分布上的训练和测试

假设:网图20W数据,用户上传1W数据

  • option1:随机打乱,然后分配。Train:205000,Dev:2500,Test:2500
  • 这样不好。因为在dev和test set中,大量的数据还是源于网图,并不是我们想要的对于用户上传的预测结果,这样会扰乱我们对模型优化的方向。
  • option2:将20w网图和5000用户上传图作为train set,然后用用户上传的图,2500作为dev set,2500作为test set。
  • 这样虽然说训练集和开发,测试集不同分布,但是效果要比option1好。
    Deep Leaning 学习笔记之组织机器学习项目(2.2)—— 不匹配的培训和开发/测试集_第1张图片

2.2 数据分布不匹配的偏差和方差

思想:把训练集的一部分取出来,当做train-dev set,这样保证训练集和train-dev set有着相同的分布,然后看各个误差情况,进行误差分析。
假设右侧区域分布:
1 丨2
——–
3 丨4

  1. Train set error和贝叶斯误差相差不多,同时,train-dev set error和train set error差距较大且dev error差距很大——右部分左上侧示例(1,9,10),图1区域。说明训练模型对于未见过的train-dev set(同一分布)的误差也很大,说明模型方差过高。
  2. 如果Train set error和贝叶斯误差相差不多,同时,train-dev set error和train set error差距不大但是dev error差距很大——右部分右上侧示例(1,1.5,10),那么训练的模型对于未见过的train-dev set表现也还挺好,但是对dev set 的表现不行,说明是因为训练集和开发集不同分布所导致的
  3. 同样,右侧左下角图3区域,为高偏差问题,因为训练出来的模型和贝叶斯误差差距很大。但是方差不高,因为不管是同分布的train-dev set还是不同分布的dev set,表现都差距不大。
  4. 右侧右下角图4区域,又高偏差又高方差。
    Deep Leaning 学习笔记之组织机器学习项目(2.2)—— 不匹配的培训和开发/测试集_第2张图片

小结一下:
图1区域:可以看到由上到下依次是:偏差、方差、数据不匹配、测试集性能。

  • 记住,你的开发集和测试集服从相同分布,因为开发集上的表现,要比测试集好太多, 所以这个巨大差异的唯一理由是对开发集的过拟合, 如果是这样的话, 你可能会考虑倒回去, 取得更多的开发集数据。

图2区域:

  • 也许人类水平性能为4%, 训练集误差为7% ,训练-开发集误差为10% ,但是到了开发集时 ,你惊讶的发现开发集的实际误差要小得多 ,也许都是6%
  • 它是这样的效果 ,即训练集数据甚至 要比开发集和测试集更难学习 。 如果有时基于您的应用, 开发/测试集分布更容易学习,那么这些数字实际上是会下降的 。
    Deep Leaning 学习笔记之组织机器学习项目(2.2)—— 不匹配的培训和开发/测试集_第3张图片
    课程:Structuring Machine Learning Projects
    week2,第五个18分钟视频。
    一般来说红框区域内已经足够找出问题了,但是上面填满有时会有意外发现。
    Deep Leaning 学习笔记之组织机器学习项目(2.2)—— 不匹配的培训和开发/测试集_第4张图片

你可能感兴趣的:(机器学习,DeepLearning)