
项目
mengmengmiao
这个作者很懒,什么都没留下…
展开
-
MLY -- 13.Error analysis:look at dev set examples to evaluate ideas
当你在玩你的猫app时,你发现几个把狗狗分类成猫的例子。但是有些狗狗真的很像猫! 你的团队成员提出结合第三方软件将会使系统在处理狗狗图片上更好。但这将会花费一个月,团队成员对此很是热情。你应该要求他们做吗? 在投入一个月在这个项目上之前,我建议你首先评估一下这样做后系统的准确率会提高多少。然后你能更理性地决定这样做是否值得,或者你最好把时间用在其他任务上。 具体来说,你可以这样做:翻译 2017-02-27 12:43:12 · 620 阅读 · 0 评论 -
'MLY -- 12.Takeways:Setting up development and test sets'
选择能反映“你未来期望得到并且希望算法在其上能表现得好的数据”的分布的开发集和测试集。这可能和你训练集的分布不同。 尽量使开发集和测试集的分布相同 为你的团队选择优化单数值评价度量。如果有多个目标,可以考虑将他们组合成单个公式(例如对多个错误度量(error metrics)取平均),或者定义满意度量和优化度量。 机器学习是个高迭代过程:在发现能使你满意的点子之前,你可能需要尝试翻译 2017-02-27 12:42:10 · 368 阅读 · 0 评论 -
MLY -- 11.When to change dev/test sets and metrics
当开始做一个新项目时,我会快速选择开发集和测试集,因为这会给团队一个明确的目标。 通常,我会要求我的团队在一周之内提出初始的开发集、测试集和度量,大多时候都不会多于一周。先提出一些不完美的东西使项目能前进下去,比过多考虑开发集、测试集、度量好的多。但是,一周时间线并不适用于成熟的应用。例如,垃圾邮件是一个成熟的深度学习应用。我曾见到在已经很成熟的系统上工作的团队花费数月的时间去获得好点儿的开发翻译 2017-02-27 12:41:23 · 325 阅读 · 0 评论 -
MLY -- 10.Having a dev set and metric speeds up iterations
很难事先知道什么算法最适合一个新问题。就算是经验丰富的机器学习研究人员通常也需要尝试一系列方法后才能发现一些令人满意的方法。当构建一个机器学习系统时,我经常: 1.以一些如何构建系统的想法开始 2.用代码实现这些想法 3.做实验,实验会告诉我们哪些想法效果好。(通常,我开始的几个想法效果并不好)基于这些已学到的想法,我们回到第1步再产生更多想法,并循环下去。 上图就是迭代过程。这一圈翻译 2017-02-27 12:40:29 · 380 阅读 · 0 评论 -
MLY -- 9.Optimizing and satisficing metrics
其实,还有一种组合多个评价度量的方法。 假设,你将准确率和运行时间看做同等重要的评价项,你需要从以下三个分类器中选择一个: classifier accuracy running time A 90% 80ms B 92% 95ms C 95% 1500ms如按照上一章的方法,通过将准确率和运行时间放入一个公式中得到单数值度量看起来是不自然的:翻译 2017-02-27 12:39:43 · 387 阅读 · 0 评论 -
MLY -- 8.Establish a single-number evaluation metric for your team to optimize
分类准确率(classification accuracy)是一个单数值的评价度量:将开发集(或测试集)输入分类器分类,分类器返回“被分类器正确分类的数据占输入数据集的比例”。如果分类器A获得97%的准确率,分类器B获得90%的准确率费,根据评价度量,分类器A较好。 与此不同的是,精度率和召回率(precision and recall)就不是一个单数值评价度量:它用两个数值去评价分类器。多数翻译 2017-02-27 12:38:37 · 416 阅读 · 0 评论 -
MLY -- 7.How large do the dev/test sets need to be?
开发集应该足够大,大到可以检测出多个算法之间的不同。例如,分类器A的分类精度是90.0%,分类器B的精度为90.1%,开发集有100个样例,则开发集不能检测出这0.1%的不同(将开发集输入分类器A、B进行分类,A、B的结果都是90个样例的类标签正确,所以不能区分A、B)。就我所见过的机器学习问题来说,100个样例的开发集确实小了点儿。一般,开发集都是1000到10000这么大。当你有了10000个样翻译 2017-02-27 12:37:46 · 307 阅读 · 0 评论 -
MLY -- 6.Your dev and test sets should come from the same distribution
根据你app应用的市场:(i)US,(ii)China,(iii)India,(iv)Other,你将猫图片数据分为四个部分。 若想要一个开发集和一个测试集时,我们可以随机地选两个作为开发集,剩下的两个作为测试集。例如,可以选US和India作为开发集,China和Other作为测试集。 一旦确定好了开发集和测试集,你的小团队将专注于提高学习算法在开发集上的表现。因此,开发集应该反映你想翻译 2017-02-27 12:36:42 · 310 阅读 · 0 评论 -
MLY -- 5.your development and test sets
让我们回想一下猫图片那个例子:你们公司运行一个手机app,用户往app上上传许多不同物体的图片,而你想从这些图片中让机器自动找到猫图片。 你的团队从不同的网站上获得了包含猫的图片(正样例)和不包含猫的图片(负样例)。然后将70%的图片用作训练集,30%的图片用作测试集。使用这些图片,你的团队构建了一个猫检测器,这个检测器在训练集和测试集上表现很好。 但是,当你将这个分类器发布到移动端app时,其翻译 2017-02-27 12:35:38 · 382 阅读 · 0 评论 -
MLY翻译 -- 4.Scale drivers machine learning progress
深度学习(神经网络)的很多想法已经存在几十年了,为什么这些想法现在才流行起来? 促使机器学习进来的进步的两大因素是: 可得到的数据。现在,人们会花费更多的时间在数字设备上(例如笔记本,手机)。人们的数字行为产生了大量的数据,而这些数据可以用来训练我们的学习算法。 计算的规模。 也就是在近几年,我们才有计算能力训练足够大的神经网络,这种足够大的网络能利用我们拥有的巨大的数据集。翻译 2017-02-27 12:34:56 · 381 阅读 · 0 评论 -
MLY翻译 -- 3.Prerequisites and Notation
如果你学习过机器学习课程,或者有使用监督学习的经验,你将能够更好理解这本书。 本书中,我在讲述下面的章节时,会假设你对监督学习很熟悉。监督学习是在有标签的数据(x,y)中学习从x映射到y的一个函数,线性回归、逻辑回归、神经网络都是监督学习算法。目前存在很多机器学习的形式,但机器学习产生的实际价值多数都是监督学习带来的。 在这本书中,我将会多次提到神经网络(即深度学习)。为学习这本书,你需要对神经翻译 2017-02-27 12:33:33 · 395 阅读 · 0 评论 -
MLY翻译 -- 2.How to use this book to help your team?
在读完这本书后,你将会对“如何为机器学习项目设定技术方向”有一个深入的理解。 但是你的队友可能不理解你为什么偏向那个技术方向,例如你想让你队友们定义一个单数评价矩阵,但是他们对此不信服。你将会如何说服他们? 这就是我将章节设置得如此短的原因:你可以将1-2页的内容打印出来,让你的队友读一读。 对事务优先级的改变,将对你的团队的工作效率有很大的影响。多提几个对团队有帮助的改变策略,你就会成为众人翻译 2017-02-27 12:32:08 · 398 阅读 · 0 评论 -
MLY翻译 -- 1.Why Machine Learning Strategy?
机器学习是很多应用的基础,如网页搜索,反垃圾邮件,语音识别,推荐系统等。如果你的团队正在做一个基于机器学习的应用,这本书能够帮你的团队取得快速的进步。一个例子:提供猫图片的创业公司假如你现在正在创建一个为猫奴提供很多猫图片的公司,你用神经网络建立一个从图片中检测猫的计算机视觉系统。但悲剧的是,你发现你的学习算法精度不够,面临提高猫检测器精度的巨大压力,你要怎么做? 你的小团队很给力,他们提出以下解翻译 2017-02-27 12:30:45 · 397 阅读 · 0 评论 -
MLY -- 14.Evaluating multiple ideas in parallel during error analysis
你的团队有提高猫检测器的几个点子: 解决狗被分类为猫的问题 解决“大猫”(狮子,豹等)被认为是家猫(宠物)的问题 提高系统在模糊图像上的性能 …… 你可以并行地评估所有这些点子。我通常创建一个电子表格,并在查看这100张误分类开发集图片时填写这张表格,并记下有助于我记起具体是哪个例子的评论。下面用四个图片来演示我是怎么做的: image dog great c翻译 2017-02-27 12:44:15 · 411 阅读 · 0 评论