2.5 不匹配数据划分的偏差和方差(Bias and Variance with mismatched data distributions)
Last updated
Last updated
当训练集和开发集、测试集不同分布时,分析偏差和方差的方式:
分析的问题在于,当看训练误差,再看开发误差,有两件事变了,很难确认这增加的9%误差率有多少是因为:
算法只见过训练集数据,没见过开发集数据(方差)
开发集数据来自不同的分布
为了弄清楚哪个因素影响更大,定义一组新的数据,称之为训练-开发集,是一个新的数据子集。从训练集的分布里分出来,但不会用来训练网络
随机打散训练集,分出一部分训练集作为训练-开发集(training-dev),训练集、训练-开发集来自同一分布
只在训练集训练神经网络,不让神经网络在训练-开发集上跑后向传播。为了进行误差分析,应该看分类器在训练集上的误差、训练-开发集上的误差、开发集上的误差
假设训练误差是1%,训练-开发集上的误差是9%,开发集误差是10%,存在方差,因为训练-开发集的错误率是在和训练集来自同一分布的数据中测得的,尽管神经网络在训练集中表现良好,但无法泛化到来自相同分布的训练-开发集
假设训练误差为1%,训练-开发误差为1.5%,开发集错误率10%。方差很小,当转到开发集时错误率大大上升,是数据不匹配的问题
如果训练集误差是10%,训练-开发误差是11%,开发误差为12%,人类水平对贝叶斯错误率的估计大概是0%,存在可避免偏差问题
如果训练集误差是10%,训练-开发误差是11%,开发误差是20%,有两个问题
可避免偏差问题
数据不匹配问题
如果加入测试集错误率,而开发集表现和测试集表现有很大差距,可能对开发集过拟合,需要一个更大的开发集
如果人类的表现是4%,训练错误率是7%,训练-开发错误率是10%。开发集是6%。可能开发测试集分布比实际处理的数据容易得多,错误率可能会下降
Human level 4%和Training error 7%衡量了可避免偏差大小,Training error 7%和Training-dev error 10%衡量了方差大小,Training-dev error 10%和Dev/Test dev 6%衡量了数据不匹配问题的大小
rearview mirror speech data 6%和Error on examples trained on 6%:获得这个数字的方式是让一些人标记他们的后视镜语音识别数据,看看人类在这个任务里能做多好,然后收集一些后视镜语音识别数据,放在训练集中,让神经网络去学习,测量那个数据子集上的错误率,如果得到rearview mirror speech data 6%和Error on examples trained on 6%,说明在后视镜语音数据上达到人类水平
General speech recognition Human level 4%和rearview mirror speech data 6%:说明后视镜的语音数据比一般语音识别更难,因为人类都有6%的错误,而不是4%的错误
总结:
开发集、测试集不同分布:
可以提供更多训练数据,有助于提高学习算法的性能
潜在问题不只是偏差和方差问题,还有数据不匹配