机器学习工作流程(第1部分)

本译文自 EROGOL 发表在 http://www.erogol.comMachine Learning Work-Flow (Part 1),文中版权、图像代码等数据均归作者所有。为了本土化,翻译内容略作修改。

到目前为止,我打算编写一系列的文章来讲解基本的机器学习工作流程(主要是监督学习)。在这篇文章中,我的目标是提出鸟瞰图,我将在后面的章节中详细讲解每个组件。我决定写这个系列有两个原因; 第一个原因是经过一段时间的理论研究和工业实践,我想把把所有学到的东西都整理到一起;第二个是给初学者和爱好者提供一个简单的指南。

下面,我们对题目所提到的工作流程进行概述。我们用颜色来区别每个区域。每个盒子的色调都是从黄色红色 。黄色盒子的颜色越深,说明在这个盒子里的组件越倾向于统计知识库。同样红色盒子越深(变暗),盒子里的组件更倾向于机器学习知识库。通过这样说之后,也就意味着,如果没有很好的统计和理解,我们就无法构建一个方便的机器学习通道。作为一个脚注,这个模式被后现代主义的表示学习算法所改变,我将在后面的文章中谈到这一点。

我们先来看看架构。我们从我们需要从中提取特征表示的原始数据(文档,图像,录音等)开始。特征提取是指将机器学习算法不能识别的原始数据转化为算法可以识别的特征的过程。(例如Bag Of Words表示将每个不同长度的文档转换成相同长度的向量表示)

下一步的Sanity-Check是确保特征值的质量和便利性。我相信每一个ML课程和社区都会忽视这一步。但是,现阶段的任何错误都是非常致命,因为它们太难修复。例如,你做的一切都是正确的,但是最终的预测精度与预期都低于期望值。于是你一遍又一遍地调试所有的管道,但是就是没找到错误的地方。然后在几个小时之后,您在第2965个特征向量处实现了空值。然后你就草了。我敢非常肯定,如果你在这个领域有一定的经验,那么你肯定遭遇过相同或者类似的情况。

之后; 我们需要将我们的数据解析、训练、验证以及保留集合。此步骤与模型培训评估步骤中的方法相关。例如,如果您希望在模型训练部分使用神经网络,并且进行交叉验证评估,那么这可能是最好的选择。使用具有K倍交叉验证的训练数据进行训练和超参数优化,然后用验证数据断言最终模型。在最后阶段使用保留集合来进行最终的性能量化。

特征预处理是与ML模型相关的另一个模块。在这一步,我们将训练数据转换成适合ML算法规范的数据。例如,SVM要求平均值= 0,标准偏差= 1。如果你忘记数据的预处理,你很可能会看到ML算法有非常奇怪的行为。也许花费太长时间来调整模型权重,这样你得到值可能有在一个有趣的范围内波动。此外,不要忘记在预处理之后全面性的检查。例如,为了规范化,将得到的值频繁的除以0,很显然得到值是空的

模型训练 是有趣的部分。你有一堆算法正在等待被使用。不幸的是,这在整个工作流程中只占5%。但从执行的角度来看,这是迄今为止最浪费时间的一步。在这一步常见的错误之一没有任何的推理就使用随机的使用算法。这就像在大海捞针一样。使用算法,就应该对症下药。损失函数,学习算法,正则化项和其他参数的选择完全是问题特定的。我将在接下来的文章中进一步解释... 模型训练 包括超参数优化和对数据的首次洞察,以及前面步骤的质量。例如,假设您使用网格搜索进行K-fold交叉验证的参数选择,并且您观察到每个不同候选值的每个折叠的得分都非常不同。这是训练数据不足或特征表示不恰当的早期指标。那么你需要再来一次。

模型评估 测量你最近训练过的模型在验证集上的质量,这在以前的任何步骤中都没有涉及到。首先,我们也使用同样的方法对数据进行预处理,然后我们输入模型。这个步骤是根据质量测量(ROC,RMNS,F-Score)的选择来定义的,假定与用于训练的测量相同。请记住,不同的措施会为您的模型提供不同的思路。

不要把你的训练模型扔掉。假设您训练了5个性能差距较小的不同神经网络,然后 用平均值,最大值或任何其他投票架构进行集成。你可以看看Kaggle的获胜者,他们中的大多数神经网络,都是支持向量机或随机森林(es)的集合。他们甚至在集合中也使用差的模型。这是因为范围越大,对于你的模型集合也越好。这里有一些限制。考虑最终模型的运行时期望。当你增加你的集合的大小,计算和内存的需求也增加。我们在这里讨论可扩展性与准确性的权衡。也许最好的例子就是100万美元的Netflix挑战 Netflix由于可伸缩性问题而没有实现赢家算法。

现在,我们正在最后一步。完了,就可以关掉你的电脑。测量你的最终模型(模型集合)的性能与外出的设置。不要忘记预处理,就像验证和训练集一样。这是表明最终模型的真实生活表现的最关键的一步。如果您的测量结果与验证数据不一样,则意味着您的集成模式没有起到左右,你就要对它进行更改。但是,请确保以前没有任何错误,从所有可能的角度来看,所有的集合模型都非常有可能。否则,在这一步糟糕的表现会让你处于一个非常危险的境地,根据任何一个步骤的任何模型,有许多不同的组合缺陷。

这是暂时的。我试图用少量的细微差别来解释我提出的ML工作流程。我打算详细解释每一个这些步骤的细节,每周都会发布一些新的职位(至少计划是这样)。更重要的是,请在这篇文章留下你的任何可以重塑或者讨论这个想法。如果有得话,请指证我的错误。

原文链接:http://www.erogol.com/machine-learning-work-flow-part-1/

原文作者:EROGOL

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

周志华团队和蚂蚁金服合作:用分布式深度森林算法检测套现欺诈

2109
来自专栏ATYUN订阅号

NVIDIA开发新的基于深度学习的算法,实时为黑白视频上色

手动着色黑白视频是需要大量劳动力且繁琐的过程。 但是现在,由NVIDIA研究人员开发的一种新的基于深度学习的算法有望使这个过程变得更加容易,新的框架允许视觉艺术...

2154
来自专栏机器之心

KDD 2018 | 腾讯提出用于文本匹配的多信道信息交叉模型,在真实任务中表现优异

4202
来自专栏量子位

AI界的七大未解之谜:OpenAI丢出一组AI研究课题

林鳞 编译自 OpenAI官方博客 量子位 出品 | 公众号 QbitAI 今天,OpenAI在官方博客上丢出了7个研究过程中发现的未解决问题。 OpenAI希...

3579
来自专栏机器之心

ECCV 2018 | 中山大学&商汤提出部分分组网络PGN,解决实例级人体解析难题

识别每个语义部分(如手臂、腿等)是人体解析中最基本、最重要的一部分。不仅如此,它还在许多高级应用领域中发挥了重要的作用,例如视频监控 [38]、人类行为分析 [...

1674
来自专栏机器之心

观点 | AutoML、AutoKeras......这四个「Auto」的自动机器学习方法你分得清吗?

让我们先来看一个简短的童话故事… 从前,有一个魔法师,他使用一种无人再使用的编程语言,在一种无人再使用的框架下训练模型。一天,一位老人找到他,让他为一个神秘的...

1514
来自专栏机器之心

资源 | 谷歌开源AdaNet:基于TensorFlow的AutoML框架

结合不同机器学习模型预测的集成学习在神经网络中得到广泛使用以获得最优性能,它从其悠久历史和理论保证中受益良多,从而在 Netflix Prize 和多项 Kag...

933
来自专栏机器之心

解读 | 如何用进化方法优化大规模图像分类神经网络?

机器之心原创 作者:Angulia Chao 参与:Joni、侯韵楚、高振 让机器具备生物一样的进化能力一直是计算机科学的一个热门研究领域,今年三月份,谷歌的...

36511
来自专栏华章科技

最全机器学习种类讲解:监督、无监督、在线和批量学习都讲明白了

这些标准之间互相并不排斥,你可以以你喜欢的方式将其任意组合。例如,现在最先进的垃圾邮件过滤器可能是使用深度神经网络模型对垃圾邮件和常规邮件进行训练,完成动态学习...

1871
来自专栏算法+

图像去模糊算法 循序渐进 附完整代码

这样看,虽然知道是在做一个点面计算的操作,但是要具体描述卷积的用途或者原理,是有点困难的。

7484

扫码关注云+社区

领取腾讯云代金券