关于机器学习的几点思考
机器学习是一个大的、跨学科的研究领域。
你可以通过机器学习获得令人印象深刻的结果,并找到非常具有挑战性的问题的解决方案。但这只是更广泛的机器学习领域的一小部分,通常被称为预测建模或预测分析。
在这篇文章中,你将发现如何改变你对机器学习的思考方式,以便更好地为你提供机器学习实践者的服务。
读完这篇文章,你就会知道:
- 什么是机器学习,以及它与人工智能和统计学的关系。
- 你应该关注的机器学习领域。
- 如何思考你的问题以及机器学习对你的问题的解决方案。
我们开始吧。
概述
这篇文章分为三个部分,它们是:
- 你搞糊涂了。
- 什么是机器学习?
- 你的机器学习。
你搞糊涂了
你有一个机器学习问题要解决,但是你对机器学习到底是什么感到困惑。
我们有充分的理由感到困惑。这对初学者来说是令人困惑的。
机器学习是一个很大的研究领域,如果你专注于解决一个问题,并不是所有的研究都与你相关。
在这篇文章中,我希望能为你澄清一些事情。
我们将从最广泛的术语开始描述机器学习,以及它与其他研究领域(如统计学和人工智能)的关系。
之后,我们将放大机器学习方面的内容,这些方面是你在实际工程和解决问题时确实需要了解的。
什么是机器学习?
机器学习是一个与学习程序相关的计算机科学领域。
机器学习领域关注的问题是如何构建随经验自动改进的计算机程序。
这太广泛了。
学习的类型很多,需要学习的反馈也很多,可以学到的东西也很多。
这可能包括多种类型的学习,例如:
- 开发代码来研究有机体种群如何在进化过程中“学习”以适应其环境。
- 开发代码来研究大脑中的一个神经元是如何“学习”的,以响应来自其他神经元的刺激。
- 开发代码来调查蚂蚁如何“学习”从它们的家到食物来源的最佳路径。
我特意给出这些深奥的例子,以帮助你们真正确定机器学习是一个广泛而深远的研究项目。
你可能更熟悉的另一个案例是:
- 开发代码来研究如何“学习”历史数据中的模式。
这不那么吸引人,但它是我们作为实践者非常感兴趣的机器学习小角落的基础。
这与其他示例没有什么不同;在学习方法、基本任务、评估学习的方式等方面可能会有很多重叠。
那么人工智能呢?
机器学习是人工智能的一个子领域。
它与机器学习有重叠之处。
人工智能也是计算机科学的一个领域,但它关注的是开发智能的程序,或者可以做智能的事情。
智能包括学习,例如机器学习,但也可能涉及其他问题,如推理、规划、记忆等。
这可能包括多种类型的学习,例如:
- 开发代码以调查如何优化物流计划。
- 开发代码来研究如何对一段文本进行推理。
- 开发代码来调查如何感知照片内容。
人工智能经常被框定在环境中的代理的上下文中,目的是解决一些问题,但情况并不一定是这样。
机器学习可以很容易地被命名为人工学习,以保持与人工智能的一致,并帮助初学者。
线条很模糊。机器学习问题也是人工智能问题。
那统计数据呢?
统计学,或计算机应用统计,是数学的一个子领域,涉及描述和理解数据中的关系。
这可能包括多种类型的学习,例如:
- 开发模型来总结变量的分布。
- 开发模型以最好地方式描述两个变量之间的关系。
- 开发模型来测试两个观察群体之间的相似性。
它还与机器学习中对数据模式感兴趣的领域重叠。
许多用于理解统计学中的数据的方法都可以用于机器学习,以学习数据中的模式。这些任务可以称为机器学习或应用统计。
你的机器学习
机器学习是一个很大的研究领域,它可以帮助你解决具体的问题。
但是你不需要知道所有的事情。
- 你不是一个研究深奥的学习类型的学者,不像在机器学习中那样。
- 你并不是像人工智能那样试图制造智能代理。
- 你对更多地了解为什么数据中的变量与统计中的变量相互关联不感兴趣。
事实上,当谈到学习数据中的关系时:
- 你不是在调查算法的功能。
- 你并不是在开发一种全新的理论或算法。
- 你并没有将现有的机器学习算法扩展到新的案例。
这些可能是我们可能感兴趣的机器学习角落里的活动,但这些活动是学者的活动,而不是像你这样的实践者的活动。
那么,你需要关注机器学习的哪些部分呢?
我认为有两种方式来思考机器学习:
- 就你试图解决的问题而言。
- 就你所需的解决方案而言。
你的机器学习问题
你的问题可以用以下几个词来描述:
找到一个模型或程序,最大限度地利用由输入和输出组成的历史数据,以便在未来给定新的和看不见的输入的情况下熟练地预测输出。
这是非常具体的。
首先,它抛弃了机器学习的整个子领域,例如无监督学习,而专注于一种称为监督学习的学习类型,以及适合该领域的所有算法。
这并不意味着你不能利用无人监督的方法;它只是意味着你没有将注意力集中在那里,至少一开始不是这样。
其次,它为你提供了一个支配所有其他目标的明确目标:即以牺牲模型复杂性、模型可解释性等其他关注点为代价的模型技能。
再说一次,这并不意味着这些不重要,只是它们被认为是在模型技能之后或与模型技能结合在一起考虑的。
第三,以这种方式构建问题非常适合于另一个研究领域,称为预测建模。这是一个借鉴机器学习方法的研究领域,目的是开发做出巧妙预测的模型。
在某些业务领域,此领域也可称为预测性分析,不仅包括建模组件,还包括收集和准备数据以及部署和维护模型的相关活动。
最近,这项活动也可以被称为数据科学,尽管这个短语除了通过解决方案来解决问题之外,还具有发明或发现问题的含义。
我认为你怎么称呼这项活动并不重要。但我确实认为,重要的是要深刻理解,你对机器学习的兴趣和使用是非常具体的,不同于学者的其他一些用途。
它允许你过滤你阅读的材料和你选择的工具,以便将注意力集中在你试图解决的问题上。
你的机器学习解决方案
你需要的解决方案最好描述为以下内容:
自动创建历史数据中输入和相关输出之间未知基本关系的最可能近似值的模型或过程。
再说一次,这是非常具体的。
你需要一种自动方法来生成可用于进行预测的程序或模型。
你不能坐下来编写代码来解决你的问题。它完全是特定于数据的,你拥有大量数据。
事实上,这类问题抵制自上而下的手工编码解决方案。如果你可以坐下来写一些if语句来解决你的问题,那么你就不需要机器学习解决方案了。这将是一个编程问题。
你需要的机器学习方法的类型将学习历史数据中输入和输出之间的关系。
此框架允许你考虑实际的底层但未知的映射函数可能是什么样子,以及历史数据的噪声、损坏和采样可能会如何影响由不同建模方法做出的此映射的近似值。
没有这个框架,你会想像这样的事情:
- 为什么不只有一种超级算法或一组参数。
- 为什么专家不能直接告诉你应该使用什么算法。
- 为什么你不能用你的模型中的预测实现零错误率。
它可以帮助你看到你试图解决的预测建模问题的模糊本质,并设置合理的预期。
下一步
既然你知道如何思考机器学习,下一步就是改变你思考用机器学习解决问题的过程的方式。
摘要
在这篇文章中,你发现了如何改变你对机器学习的思考方式,以便更好地服务于你作为机器学习实践者。
具体地说,你了解到:
- 什么是机器学习,以及它与人工智能和统计学的关系。
- 你应该关注的机器学习领域。
- 如何思考你的问题以及机器学习对你的问题的解决方案。