跟我学算法-吴恩达老师(误差分析, 正确标注, 开发集和测试集的划分, 数据不匹配,迁移学习, 多任务学习, 端到端学习)

1. 误差分析

通过分析错误的标记,来判断主要是哪个原因引起了错误,这是猫的分类,观察被分错图片的原因,总结需要优化的条件

image    Dog    Great cat   blurry    comment  

1

2

3

4

5

6

 
2. 进行正确标注

当前错误率为10%, 进行误差分析后,由于0.6%的错误标记引起的,这种就不需要重新标记,因为错误标记引起的错误较小
当前错误率为2%, 进行误差分析后,由于0.6的错误是标记错误引起的,这种就需要进行重新标记, 因为错误标记引起的错误占比较大
 
3.开发集和测试集的划分
 
从网上下载的数据有200000,实际需要预测的数据是10000
将实际预测的数据分出5000加入到网上下载的数据中,此时的训练集为205000
开发集的数据为2500, 测试集的数据为2500
 
4.数据不匹配
 
当我们在进行数据分离时,可以采用4种分法
train, training-dev, dev, test
 
因为train-dev与train来源于同一个数据分布,只是train-dev数据没有经过训练,
 
train error  :1%
train-dev error : 9% 
dev -error 10% 
上述情况说明,数据的方差过大,出现了过拟合的情况
 
train error :1%
train-dev error : 1.5%
dev-error 10% 
说明开发集的数据与训练集的数据存在不匹配的情况
 
human error 1%
training error 10%
training -dev error 11% 
dev error 20 % 
说明出现了较大的可避免偏差, 以及数据不匹配的情况
 
当数据出现不匹配的情况时,需要观察开发集和训练集的差异,观察两个数据分布有什么不同
 
 
5 迁移学习
 
下载的算法改变其最后一层的分布,使得输出的维度发生改变, 也可以去掉最后一层,再多添加几层
 
6 多任务学习
 
比如一张图有多个标签
y(i) = [0 1 1 0]
loss = np.reduce_mean(np.reduce_sum(-y*logy_pred - (1-y)*log(1-y_pred)))
 
7. 端到端学习
指的是输入的数据(x, y) 直接输出结果
一般在数据量比较大,和网络结果较为复杂的情况下使用
 
 
 
 
原文地址:https://www.cnblogs.com/my-love-is-python/p/9737210.html