《Machine Learning Yearning》( 二 )


4、学习曲线可以辅助分析:
我们可以用不同size的train set来画出 dev/ error curve , 如上图所示 , 这样我们可以很确定的知道 ,  无法达到 , 因为 error (bias) 是随着set size增加而增加的 , 而一般 error会永远在dev error下方 。
train set和test set不同分布
1、将test set一部分重新划分为dev set和test set , 剩下的加入给train set
2、有些情况 , 需要把不一致的数据替换 , 例如网站的猫和手机app获取的猫图片输入不同分布 , 但是都是猫 , 识别任务也是猫 , 就不要剔除;而预测纽约房价 , 就应该把别的城市的数据替换掉 。
3、当数据类别分布不均衡时 , 可以通过 data来缓解 , 即在loss上面对不同类的数据的loss加不同 。
4、data :当train set和test set分布不同时 , 对于问题的分析可能更为复杂 , 这个时候可能有三种情况:bias ,  , data  , 我们需要确定是哪方面的问题 。这个时候需要引入一个 dev set , 这个与 set的分布是一致的 。下面给出三个例子:
high
high bias
high bias + data
5、当没有办法得到足够多的match的train data时 , 可以采用noise进行一些数据合成 , 得到一些和dev/test set尽可能相似的合成数据(例如口罩人脸识别)
test
以强化学习为例 , 我们在做时候 , 通常包含两步:第一步对不同状态打分出一个score , 然后再通过算法找到最优状态并转到这个状态 。那我们就可以借鉴这个进行debug 。首先对于两个状态 , 人可以给出谁好谁坏的评价 , 然后通过算法出的score是否也是这样 , 如果是 , 则问题出在  , 如果不是 , score 有问题 。
End to end DL
【《Machine Learning Yearning》】要想分析哪个出了问题 , 需要这个的和人标注的结果同时输送给下游 , 如果结果都很差 , 是下游中出现了问题 , 如果这个的结果差 , 人标注的结果符合预期 , 则是这个出了问题 。