《机器学习训练秘籍》读书笔记(1)

《机器学习训练秘籍》为吴恩达未发表的作品,其中文版通过微信公众号每周更新,以下是读书笔记


举个例子:如何建立一个猫咪图片初创公司


有许多的改进方案,例如:

1.获取更多的数据,即收集更多猫的图片

2.收集更加多样化的训练数据集,比如处于不常见位置的猫的图片,颜色奇异的猫的图片,以及使用不同相机参数拍摄的猫的图片

3.通过增加梯度下降(gradient descent)的迭代次数,使算法训练得久一些

4.尝试一个拥有更多层(layer)/更多隐藏元(hidden units)/更多参数(parameters)的,规模更大的神经网络

5.尝试加入正则化(例如 L2 正则化)

6.改变神经网络的架构(激活函数,隐藏元数量等等)


一般将数据集按照 70% / 30% 的比例划分为训练集(training set)和测试集(test set),并且使用这些数据构建出了一个在训练集和测试集上均表现良好的猫咪检测器,效果可能并不好,另外定义开发集用于调试模型

训练集(training set)用于运行你的学习算法。

开发集(development set)用于调整参数,选择特征,以及对学习算法作出其它决定。有时也称为留出交叉验证集(hold-out cross validation set)。

测试集(test set)用于评估算法的性能,但不会据此决定使用什么学习算法或参数。

要在特定的机器学习应用上取得进展,而不是搞研究,尝试选择服从相同分布的开发集和测试集数据,这会让团队更有效率

训练集和开发集大小并非越大越好


单值评估指标进行优化,比如准确率

猫分类器的查准率指的是在训练集(或者测试集)被预测为猫的图片中,实际类别是猫的样本比例。而查全率指的是在训练集(或者测试集)所有实际类别为猫的图片中,被正确预测为猫的样本比例。人们常常在查准率和查全率之间权衡取舍。

 优化指标和满意度指标

首先定义一个“可接受的”运行时间,一般低于 100ms 。接着在限定的运行时间范围内最大化分类器的准确率。此处的运行时间是一个“满意度指标” —— 你的分类器必须在这个指标上表现得“足够好”,这儿指的是它应该至多需要 100ms,而准确度是一个“优化指标”。

通过开发集和度量指标加速迭代

如何修改开发集,首先需要研究为什么分类效果不佳

1.你需要处理的实际数据的分布和开发集/测试集数据的分布情况不同

2.你在开发集上过拟合了。

当你完成开发后,应该在测试集上评估你的系统。如果你发现算法在开发集上的性能比测试集好得多,则表明你很有可能在开发集上过拟合了。

3.该指标所度量的不是项目应当优化的目标。

>总结如何通过改进数据集对模型进行优化

选择作为开发集和测试集的数据,应当与你预期在将来获取并良好处理的数据有着相同的分布,但不需要和训练集数据的分布一致。

开发集和测试集的分布应当尽可能一致。

为你的团队选择一个单值评估指标进行优化。需要考虑多项目标时,不妨将它们整合到一个表达式里(比如对多个误差指标取平均),或者定义满意度指标和优化指标。

机器学习是一个高速迭代的过程:在最终令人满意的方案出现前,你可能要尝试很多想法。

拥有开发集、测试集和单值评估指标可以帮你快速评估一个算法,从而加速迭代过程。

当你探索一个全新的应用时,尽可能在一周内建立你的开发集、测试集和指标,而在成熟的应用上则可以花费更长的时间。

传统的 70% / 30% 训练集/测试集划分对大规模数据并不适用,实际上开发集和测试集的比例会远低于 30%。

开发集的规模应当大到能够检测出算法精度的细微改变,但也不用太大;测试集的规模应该大到能够使你对系统的最终性能作出一个充分的估计。

当开发集和评估指标不再能给团队一个正确的导向时,就尽快修改它们:(i) 如果你在开发集上过拟合,则获取更多的开发集数据。(ii) 如果开发集和测试集的数据分布和实际关注的数据分布不同,则获取新的开发集和测试集。(iii) 如果评估指标不能够对最重要的任务目标进行度量,则需要修改评估指标。


误差分析(Error Analysis) 指的是检查算法误分类的开发集样本的过程,以便你找到造成这些误差的原因

清洗误标注的开发集和测试集样本

 将大型开发集拆分为两个子集,专注其一

1.Eyeball开发集:随机选择10%的开发集进行人为检查(选择的标准是错误样本能够反映错误来源)

2.Blackbox 开发集:用剩余90%的开发集测量错误率来自动评估分类器,也可以使用它来选择算法或调整超参数

意义:当你在 Eyeball 开发集中建立对样本的直观认识之后,则容易更快地过拟合。当Eyeball 开发集的性能比 Blackbox 开发集提升得更快,说明已经过拟合 Eyeball 开发集了。此时可能需要丢弃它并寻找一个新的 Eyeball 开发集

>总结如何进行基础误差分析

通过手动检查约100个算法错误分类的开发集样本来执行误差分析

考虑将开发集分为人为检查的Eyeball开发集和非人为检查的Blackbox 开发集

偏差和方差:误差的两大来源

此处定义偏差(bias)为训练集上的错误率

方差(variance)为算法在开发集(或测试集)上的表现比训练集差多少

总误差=偏差+方差

如果具有较高的可避免偏差,那么加大模型的规模(例如通过添加层/神经元数量来增加神经网络的大小)。

如果具有较高的方差,那么向训练集增加数据。


诊断偏差与方差:学习曲线

学习曲线可以将开发集的误差与训练集样本的数量进行关联比较


未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容