阅读记录-基本知识

machine learning yearning - andrew ng

总结

今天看了一下machine learning yearning - andrew ng这本书,期待值很高,开题写的是"如何使用此书来帮助你的团队"。内容简单所以很快看完了。发现越是大牛写的文章越是让人觉得学习是一件可达到的事(每一步都是‘三观很正’的方法,不会让你觉得遥不可及,也不会教导你投机取巧),但是看完没有觉得可以帮助团队这种感觉- -。我之后会再看几遍,加深这个思考,今天只是通读了一下。本来看的是英文,所以想说记录一下,后来发现了中文翻译,所以没写了- -。

开题故事

假设你正在创建一家初创公司,为爱猫人士提供源源不断的猫咪照片,使用了一个神经网络来检测图片中的猫,但是算法精度不是很好,你或许会怎么做?
1.得到更多的数据:搜集更多猫的图片
2.搜集更多样的训练集:不同位置、不同颜色的猫、不同相机参数的图片...
3.增加模型迭代次数
4.尝试用更大的神经网络,更多的层、神经元、参数
5.尝试更小的网络
6.尝试添加正则
7.改变神经网络结构(激活函数、隐藏层单元数量)

改进神经网络的方法

为什么关于神经网络的想法已经存在很多年,现在才流行?这得益于数据量的增加和计算规模的扩大。下图是数据量和性能的曲线图,一般来说,在小数据集上,手工特征的影响,传统的算法不一定差于神经网络;但是如果数据很大,还是神经网络效果比较好。现在提高神经网络的方法有改进网络结构等,但是最可靠的方法是:训练一个更大的网络、得到更多的数据

14095569-d50ba14d47e0c44e.png
image

训练集和测试集的选择

1.Choose dev and test sets to reflect data you expect to get in the future and want to do well on.(这里的dev set指验证集;文中的例子是不能拿网站上下载的图片作为训练集,但是上线是要预测用户上传的图片,因为用户上传的图片清晰度更低)
2.Your dev and test sets should come from the same distribution(文中的例子是,假设你的训练集图片来自不同的国家:美国,印度,中国和其他,不可以把美国和印度的图片作为训练集,剩下两个作为测试集)

需要多大的验证集和测试集?

验证集应该足够大,以检测您正在尝试的算法之间的差异。例如,如果分类器A的准确率为90.0%,分类器B的准确率为90.1%,那么一个包含100个例子的开发集将无法检测到这0.1%的差异。与我见过的其他机器学习问题相比,100个示例开发集是很小的。大小从1,000到10,000个示例的开发集是常见的。通过10,000个示例,您将有很好的机会检测到0.1%的改进
测试集的大小如何?它应该足够大,使您对系统的整体性能有足够的信心。一个流行的启发式方法是将30%的数据用于测试集。当只有少量的例子时,比如100到10,000个例子时,这种方法非常有效。但在大数据时代,我们的机器学习有时会遇到超过10亿个例子的问题,分配给开发/测试集的数据比例一直在下降,尽管开发/测试集中的例子绝对数量一直在增长。除了评估算法性能所需的开发/测试集之外,没有必要拥有过大的开发/测试集。

建立一个要优化的单数字评估指标

当在大量分类器中进行选择时,使用单个数字的评估指标可以提高做出决策的能力。每次一个优化指标,这样训练了多个模型之后,可以快速决定选择哪一个。如果同时关心多个指标,比如精度和召回率,可以用一个标准化方法组合成一个指标:f-score。取平均值或加权平均值是将多个指标组合成一个指标的最常见方法之一(如何确定这个权值是一个新的问题- -)。

转载于:https://www.jianshu.com/p/727298aec4ed

猜你喜欢

转载自blog.csdn.net/weixin_33862993/article/details/91331323