第一周
1.2 正交化
正交化:每一个维度只控制一个功能。
对于监督学习:1,在训练集上,达到评估的可接受效果;2,在验证集上有好的效果;3.在测试集有好的效果;4,系统在实际使用上表现得好。
在这四个部分,会有不同的独立按钮来控制实现更好的功能:1,训练集效果不好:增大神经网络,优化算法;2.在验证集上效果不好,正则化,增大训练集;3,.在测试集上效果不好:增大验证集;4.实际表现不好:改变验证集(验证集分布不正确),改变成本函数
提前终止(early stopping即会影响训练集还影响验证集,不够正交化)
1.3 --1.4单一数字评估指标
(如何判断系统是不是变得更好了,选出效果更好的分类器):把要考虑的指标合成一个单实数
查准率与查全率之间的折中:查准率,判断是猫的图片有多少真的是猫;查全率:在所有正在是猫的图片中被判断正确的比率(两者的分子都是系统判断是猫的图片,分母不一样);用F1指数:查准率和查全率调和平均数。
用一个指定的验证集,加上F1指数,能加快迭代速度。
有n个指标需要满足:设置单一数字评估:需要让取其中一个指标来尽量满足(尽量最高或者最低)+其他n-1个指标满足阈值即可。
1.5—1.6 数据集的划分
机器学习过程:在训练集上用不同的思路训练(不同的模型),然后用验证集来评估选择一个模型,然后不停地迭代去改善验证集的性能,最后得到一个最好的成本,拿去给测试集来评估。
让测试集和训练集来自同一个分布:
例子:把每个地区的数据随机混合在一起作为验证集和测试集
测试集的目的是具有一定置信度去评估,保证置信度就足够了不需要太大的数据集;而且有的时候不需要很高的置信度,所以只分为训练和验证,这时验证集被叫做开发集。
1,7 改变开发集和评估标准
设计一个目标,定义一个目标;设计可以优化的成本函数;
用户真正使用的时候会跟开发集之间有区别:如果开发集的效果很好,但是实际使用的时候却不是,就要重新设计指标或者改变开发集
1.8 人的表现
贝叶斯误差:
如果算法的效果比人的表现差,可以喂给算法更多的数据;或者考虑方差,偏差。
1.9 如何衡量系统表现的好坏
用不同数据集里面系统的表现与人类在这些数据集里的表现比较。这样比较出来的偏差 叫做可避免偏差
第一种分类器:(8%-1%)=7%的可避免偏差;(10%-8%)=2%方差
第二类分类器:(8%-7.5%)=0.5%是可避免偏差;(10%-8%)=2%方差
第二周:
2.1 误差分析:同步分析改进系统的方法,手动分析误差这样就能找出应该改进的方向。
找出错误分类的例子进行分析,统计这些错误例子中的不同错误标记类型的比例
:
2.2 在开发集中被标记错(清除标记错误的数据)
标记错误的例子怎么处理:
训练集:只要错误是随机的,数据集足够大就不用管。但是对系统性的错误就不行了。
测试集和开发集:在误差分析的时候引入一列,这一列是测试集中标签错误的例子。统计标签错误的比例,看看到底占错误例子的比例大不大。看看是不是会影响测试集选择出两个分类器。
不管什么修正方法都要同时用在测试和开发集上。测试集和开发集(验证集)要来自同一个分布,训练集无所谓;还要注意要找标签错误不仅要找分类器分类错误的还要找分类器分类正确的
2.3 快速搭建系统
·,首先设立开发集,测试集和指标(这样才能确定目标);然后快速搭建一个系统,系统确定以后训练集上训练一下,在开发集上进行偏差方差分析。再进行误差分析来确定要改进的方向,即找到误差的大致方向。
2.4。
训练集和测试集的差异:
如果猫分类器的数据有网上的清楚的照片和用户拍的模糊的照片
我们的目标是分类用户的模糊照片,如果把上面两者合在一起随机分配给train,dev,test;这时开发集里面只有一部分来自用户图片,这就与我们的目标不一样了
正确的分配:训练集:网上的照片+一部分用户照片(或者全部来自网上照片),测试集:另一部分用户照片;测试集:剩下的用户照片
2.5 训练集和测试集来自不同分布时如何进行偏方差分析
将原本的trian datset 分出来一部分作为train_dev这一部分不用来进行训练。
训练误差如果相比贝叶斯误差(或者人类平均水平)很大,就是偏差问题
训练误差小和train_dev误差大(先不看dev的误差)说明在同分布里的范化差,方差比较大;
如果训练误差和train_dev误差都很小,但是dev误差大说明是数据来源不同即数据不匹配造成的
这四个误差分别衡量了:偏差;数据不匹配;方差;对开发集过拟合程度
一般train_dev误差都会大于train误差,因为系统没有在这个数据集上训练过
不仅仅看这四个数据还有更通用的方法:
2.6 处理数据不匹配的一些尝试
比较训练集和开发集之间的不同。看看两者之间的差别在哪儿,把训练集改得像开发集:人工合成数据。但是存在的缺点就是容易对合成用的噪音过拟合
2.7 迁移学习
把猫分类器用在放射图片识别上:把最后一层神经网络和权重去掉,换上新的神经网络和权重。
迁移的方法:新的数据(放射图片)比较少,只训练和更新最后一层或两层;如果数据很多,就全部更新:预训练,微调
场合:迁移来源问题数据很多,迁移目的问题数据较少
2.8 多任务学习(端对端),2.10 优点
数据比较多的时候,端对端的方法就很好用;但是要注意有的方法分步进行最好
优点:不会添加人类的知识,真正让数据决定;需要更少的中间组件;缺点:需要更多的端到端的数据;去掉了一些细节和有用的人工中间组件