首页
学习
活动
专区
工具
TVP
发布

机器学习漫谈(5):如何构建你自己的机器学习思维框架

不管你是一个熟练的“调包工”,还是一个对机器学习某种算法有深入研究但刚步入工业界的“研究僧”,能否构建一个机器学习应用的思维框架,让自己在面对不同问题时能够得心应手,这是一个机器学习从业者必须跨过的门槛。说得高深点,这具有方法论的意义。有了它,你就可以“以无招胜有招”,不再拘泥于固有的算法套路。

从个人经验出发,借鉴结构化分析与设计的思路,我认为构建一个完整的机器学习思维框架应该从如下几个方面着手。

(1)问题定义。这虽然是做任何事情都要走的第一步,是最最重要的一步,但也是最容易被忽视的一步。问题定义的过程涉及到对应用领域的理解、问题的聚焦、问题的抽象化,实际上也暗含了数学模型的构建过程。

要想精准地定位问题,首先要深入理解客户的业务,帮助客户聚焦目标并使之清晰化。最优秀的机器学习人员能够引领客户把目标推得更高、更远,同时还能提供一个合理的解决方案。这个过程,也是机器学习人员把现实问题向数学空间映射的过程。通过和客户的交互,加上个人的理解,可以初步清楚问题的类型、限制条件、表达方式、优化目标,也就是初步确定了问题的数学模型。问题的类型、限制条件、表达方式等决定了模型与现实的契合程度,这点需要大量的经验和对理论的深刻理解才能做得更好。

举个栗子,车牌识别:这是个目标相对很清晰的问题,就是要满足一定精度地识别出车牌上的文字、字母、数字。可能的限制条件有:照片分辨率、拍照光线、角度、遮挡、污损等等。问题的表达很直观,原始数据以数字图像的方式存储(数字矩阵)。文字、字母、数字都是有限集合,采用有监督学习的方式可行。但在不同的应用场景下,优化目标仍旧有不同。比如在固定停车场应用,可控制条件有照片分辨率、拍照角度、拍照光线(近似可控)等,不可控的条件如遮挡、污损等可以由工作人员处理。因此这个对算法的要求可能就降低了,更多的可能是强调应用开发的简单快捷。如果是在交通违章拍照应用,控制条件和要求可能就不同了,对精度的要求也不同。这时候在选择算法和整体应用方案时,就会有不同的考虑。其实也是对问题的定义不同了。

(2)数据分析和预处理。这一步其实很多时候在问题定义时就需要先做了,只是精细程度不同。如果问题定义已经清楚,进一步的数据分析和预处理工作则是为了给出更清晰度算法解决路线、模型优化过程等。一般来说,问题定义时给出的目标可能是一个相对比较大的目标,也是相对难以实现的目标。为了能给出清晰的算法解决路线,对数据进行细致的分析是必要的。常规的先做总体统计,观察数据的总体特点,这也可以进一步确认模型的符合程度。然后通常会对数据做时间维度的观察(图像可能没有,大多数记录数据会有),按照时间切片分析,看不同时间段、时间点上的统计特性变化,这也是常用的特征衍生方法。除了时间维度的考虑,还有地域、人员的生物特征等等很多维度,这些分析越透彻,对模型的认识也会越深入,当然,这种分析需要结合业务进行,效果会更好。

数据的预处理则是为了模型的训练而进行的。核心问题是要理解预处理的方法对模型的影响,比如正规化,到底要不要做?

(3)建立模型的评价指标。这点是在训练模型前就要确定的,它取决于你对问题领域的理解。常见的评价指标单独另文讨论。需要注意的是,模型的评价指标必须要有明确的业务解释,而不能只是一组数字而已。

(4)把握模型调优的方向。举个栗子说明回溯调优的方向。假设模型的优劣以KS值来衡量。当模型训练完毕,基本的观察路径是:KS达到预期要求了吗?如果达到了,观察过拟合了吗?如果过拟合了,是数据量太少还是模型太复杂?如果是数据量太少,怎么来增加数据量?做Data Augmentation有哪些技巧可用?这一系列的问题其实指示了模型优化的一个方向,当然在每个问题上都会有不同的分叉,也就指示了不同的优化方向。在这个问题上的表现,往往体现了个人对机器学习算法理解的深度。

(5)制定模型应用的实际方案。在问题定义时,其实已经有了模型应用的方案,但真正投入使用,是在模型训练好之后,根据模型的实际情况,往往都要采取一些不同的策略结合使用。算法终究不是万能的,有时候一条简单的策略可能会胜过千百个模型调优的技巧。

上面谈的基本都是独立于算法之外的,也就是不会因为采用不同的算法而不同。真正掌握了机器学习的精髓后,你会发现,算法只是形式而已,就是为了便于学习或者研究,给起了个名字,可以有效集中在一些点上。在实际应用时,如果拘泥于形式而缺乏对问题本质的理解,恐怕再好听的算法也只是花架子了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190111G0RC8R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券