本文概述
机器学习(ML)逐渐发展起来, 人们越来越认识到ML在各种关键应用程序中可以发挥关键作用, 例如数据挖掘, 自然语言处理, 图像识别和专家系统。 ML在所有这些领域以及更多领域提供潜在的解决方案, 并将成为我们未来文明的支柱。
有能力的ML设计人员的需求尚未赶上这一需求。造成这种情况的主要原因是ML非常棘手。本机器学习教程介绍了机器学习理论的基础知识, 列出了通用主题和概念, 使你可以轻松地遵循逻辑并熟悉机器学习基础。
什么是机器学习?
那么”机器学习”到底是什么呢? ML实际上是很多东西。这个领域非常广泛, 并且正在迅速扩展, 正在不断地将ad nauseam划分和细分为不同的子专业和类型的机器学习。
但是, 有一些基本的共同点, 最重要的主题可以用亚瑟·萨缪尔(Arthur Samuel)早在1959年经常引用的声明来概括:” [机器学习是]研究领域, 它使计算机能够学习被明确编程。”
最近, 在1997年, 汤姆·米切尔(Tom Mitchell)提出了一个”恰当的”定义, 该定义已被证明对工程类型更有用:以P衡量, 其在T上的表现会随着经验E的提高而提高。”
“如果某个计算机程序在T上的性能(由P来衡量)随着经验E的提高而改善, 那么据说它可以从经验E中学习一些任务T和一些性能度量P。” -卡内基梅隆大学汤姆·米切尔
因此, 如果你想让程序预测例如繁忙路口的交通模式(任务T), 则可以通过机器学习算法来运行它, 其中包含有关过去交通模式的数据(体验E), 并且如果它成功地”学习了” “, 那么它将更好地预测未来的流量模式(性能指标P)。
但是, 许多现实世界中问题的高度复杂性通常意味着, 即使不是不可能, 发明能够每次都完美解决问题的专用算法也是不切实际的。机器学习问题的示例包括:”这是癌症吗?”, “这所房子的市场价值是什么?”, “这些人中的哪些是彼此的好朋友?”, “这种火箭发动机会在起飞时爆炸吗? “, “这个人会喜欢这部电影吗?”, “这是谁?”, “你说了什么?”和”你如何驾驶这东西?”。所有这些问题都是ML项目的绝佳目标, 实际上ML已成功应用于其中的每个问题。
ML解决了仅靠数字手段无法解决的问题。
在不同类型的ML任务中, 监督学习和非监督学习之间存在重要区别:
- 有监督的机器学习:在预定义的”训练示例”集上对该程序进行”训练”, 然后在给定新数据时促进其得出准确结论的能力。
- 无监督机器学习:程序会获得大量数据, 并且必须在其中找到模式和关系。
我们将在这里主要关注监督学习, 但是本文的结尾部分简要讨论了无监督学习, 并为那些有兴趣进一步追求该主题的人们提供了一些链接。
监督机器学习
在大多数有监督的学习应用程序中, 最终目标是开发一种经过微调的预测函数h(x)(有时称为”假设”)。 “学习”包括使用复杂的数学算法来优化此功能, 以便在给定有关某个领域(例如房屋的平方英尺)的输入数据x的情况下, 它将准确地预测一些有趣的值h(x)(例如市场价格)对于所说的房子)。
实际上, x几乎总是代表多个数据点。因此, 例如, 房价预测工具可能不仅会占用平方英尺数(x1), 而且还会占用卧室数量(x2), 浴室数量(x3), 楼层数量(x4), 建成年份(x5), 邮政编码(x6), 依此类推。确定要使用的输入是机器学习设计的重要组成部分。但是, 为了说明起见, 最简单的假设使用一个输入值。
因此, 假设我们的简单预测变量具有以下形式:
其中
和
是常数。我们的目标是找到
和
使我们的预测变量尽可能地发挥作用。
使用训练示例对预测变量h(x)进行优化。对于每个训练示例, 我们都有一个输入值x_train, 事先知道其对应的输出y。对于每个示例, 我们找到已知正确值y和我们的预测值h(x_train)之间的差异。通过足够的培训示例, 这些差异为我们提供了一种测量h(x)的”错误”的有用方法。然后我们可以通过调整h(x)的值来调整h(x)
和
使其”减少错误”。一遍又一遍地重复此过程, 直到系统收敛到最佳值为止。
和
。通过这种方式, 预测器得到了训练, 并准备进行一些实际的预测。
机器学习实例
为了说明起见, 我们在本文中坚持简单的问题, 但是存在ML的原因是, 在现实世界中, 问题要复杂得多。在此平面屏幕上, 我们最多可以为你绘制一张三维数据集的图片, 但是ML问题通常处理的是数百万个维度的数据以及非常复杂的预测函数。 ML解决了仅靠数字手段无法解决的问题。
考虑到这一点, 让我们看一个简单的示例。假设我们有以下培训数据, 其中公司员工对他们的满意度的评分为1到100:
首先, 请注意数据有点嘈杂。就是说, 虽然我们可以看到存在某种模式(即, 员工满意度随着薪水的增加而趋于上升), 但并不是所有的因素都完全符合一条直线。实际数据始终都是这种情况(我们绝对希望使用真实数据来训练我们的机器!)。那么, 我们如何训练机器来完美预测员工的满意度呢?答案当然是我们做不到。 ML的目标是永远不要做出”完美”的猜测, 因为ML在没有此类事物的领域中交易。目标是做出足够有用的猜测。
这多少让人联想到英国数学家和统计学教授乔治·E·博克斯(George E. P. Box)的著名说法, 即”所有模型都是错误的, 但有些模型是有用的”。
ML的目标是永远不要做出”完美”的猜测, 因为ML在没有此类事物的领域中交易。目标是做出足够有用的猜测。
机器学习很大程度上基于统计数据。例如, 当我们训练机器学习时, 我们必须给它一个统计上有意义的随机样本作为训练数据。如果训练集不是随机的, 我们将冒着机器学习模式实际上不存在的风险。而且, 如果训练集太小(请参阅大量定律), 我们将学习不足, 甚至可能得出不正确的结论。例如, 仅根据来自高层管理人员的数据来预测公司范围内的满意度模式可能很容易出错。
有了这些认识, 让我们将上面提供的数据提供给我们的机器, 并让它学习。首先, 我们必须使用一些合理的值来初始化我们的预测变量h(x)
和
。现在, 当将我们的预测变量放在我们的训练集上时, 它看起来像这样:
如果我们问这个预测变量对一个赚取6万美元的员工的满意度, 它将预测为27:
很明显, 这是一个可怕的猜测, 而这台机器并不太了解。
因此, 现在让我们为该预测变量提供我们训练集中的所有薪水, 并计算出所得的预期满意度和相应员工的实际满意度之间的差异。如果我们执行一些数学巫术(我将在稍后描述), 我们可以非常确定地计算出对于
对于0.61
将为我们提供更好的预测指标。
如果我们重复此过程(例如1500次), 则预测变量将最终看起来像这样:
在这一点上, 如果我们重复该过程, 我们会发现
和
不会再有任何可观的变化, 因此我们看到系统已经收敛。如果我们没有犯任何错误, 则意味着我们已经找到了最佳预测指标。因此, 如果我们现在再次向机器询问获得$ 60k的员工的满意度, 则它将预测该满意度约为60。
现在我们到了某个地方。
机器学习回归:关于复杂性的注记
上面的示例从技术上讲是一个简单的单变量线性回归问题, 实际上可以通过导出一个简单的正态方程并完全跳过此”调整”过程来解决。但是, 请考虑如下所示的预测变量:
此函数接受四个维度的输入, 并具有多种多项式项。推导该函数的正态方程是一个巨大的挑战。许多现代机器学习问题需要使用数千甚至数百万个数据维度来使用数百个系数来建立预测。预测生物体基因组的表达方式或五十年后的气候将是此类复杂问题的例子。
许多现代机器学习问题需要使用成千上万个甚至数百万个维度的数据来建立使用数百个系数的预测。
幸运的是, 面对这样的复杂性, 机器学习系统采用的迭代方法更具弹性。机器学习系统没有使用蛮力, 而是”摸索”了答案。对于大问题, 这会更好。尽管这并不意味着ML可以解决所有任意复杂的问题(它不能解决), 但它的确提供了一种非常灵活而强大的工具。
渐变下降-最小化”错误”
让我们仔细看看这个迭代过程是如何工作的。在上面的示例中, 我们如何确保
和
每一步都变得更好, 而不是更糟?答案在于我们先前提到的”错误度量”以及一些微积分。
错误度量称为成本函数(也称为损失函数),
。输入
代表我们在预测变量中使用的所有系数。所以就我们而言
真的是一对
和
.
为我们提供了数学预测, 即当预测变量使用给定值时, 预测错误的程度
和
.
成本函数的选择是ML程序的另一个重要部分。在不同的情况下, “错误”可能意味着非常不同的事情。在我们的员工满意度示例中, 公认的标准是线性最小二乘函数:
平方最小的情况下, 对错误猜测的惩罚会随着猜测和正确答案之间的差异而平方上升, 因此, 它是对错误的”严格”度量。成本函数计算所有训练示例的平均惩罚。
所以现在我们看到我们的目标是找到
和
对于我们的预测变量h(x)使得我们的成本函数
尽可能小。我们呼吁微积分的力量来实现这一目标。
考虑以下针对某些特定机器学习问题的成本函数图:
在这里, 我们可以看到与
和
。我们可以看到图形的形状略有碗状。碗的底部代表了预测者根据给定的训练数据可以给我们的最低成本。目标是”滚下山坡”并找到
和
与此相对应。
这是本计算机学习教程的微积分所在。为了使这种解释易于管理, 我在这里不写方程式, 但实际上我们要做的是采用
, 是的一对导数
(一个以上
还有一个
)。的每个不同值的梯度都会不同
和
, 并告诉我们”山坡是什么”, 尤其是”山坡向下”, 对于这些特定人群
s。例如, 当我们插入当前值
进入梯度, 它可能会告诉我们, 将
然后从中减去一点
会将我们带向成本函数-谷底的方向。因此, 我们在
, 然后从中减去一点
, 瞧!我们已经完成了一轮学习算法。我们更新的预测变量h(x)=
+
x, 将返回比以前更好的预测。我们的机器现在更智能了。
在计算电流梯度和更新电流梯度之间交替进行的过程
结果中的s称为梯度下降。
这涵盖了大多数监督型机器学习系统的基础理论。但是, 基本概念可以根据眼前的问题以多种不同方式应用。
机器学习中的分类问题
在受监督的ML下, 有两个主要子类别:
- 回归机器学习系统:预测值落在连续频谱上某个位置的系统。这些系统可以帮助我们解决”多少钱”的问题。或”多少?”。
- 分类机器学习系统:我们寻求”是或否”预测的系统, 例如”此肿瘤是否癌变?”, “此cookie是否符合我们的质量标准?”, 等等。
事实证明, 底层的机器学习理论或多或少是相同的。主要区别在于预测变量h(x)的设计和成本函数的设计
.
到目前为止, 我们的示例着重于回归问题, 因此现在让我们来看一个分类示例。
以下是Cookie质量测试研究的结果, 其中所有培训示例都被标记为蓝色的”好Cookie”(y = 1)或红色的”坏Cookie”(y = 0)。
在分类中, 回归预测器不是很有用。我们通常想要的是一个预测器, 可以在0到1之间进行猜测。在cookie质量分类器中, 对1的预测将非常有把握地表示cookie是完美的, 令人垂涎。预测为0表示对Cookie造成cookie行业尴尬的高度信心。落在此范围内的值表示信心不足, 因此我们可以将系统设计为这样的预测值0.6意味着”伙计, 这是一个艰难的选择, 但我会同意的, 你可以出售该cookie, “中间值为0.5, 可能表示完全不确定。这并非总是在分类器中分布置信度的方式, 而是一种非常常见的设计, 可以用于我们的插图。
事实证明, 有一个很好的功能可以很好地捕捉这种行为。它称为S型函数g(z), 看起来像这样:
z是我们的输入和系数的某种表示形式, 例如:
这样我们的预测变量变为:
请注意, sigmoid函数会将输出转换为0到1之间的范围。
成本函数设计背后的逻辑在分类上也有所不同。我们再次问:”猜错是什么意思?”这次的一个很好的经验法则是, 如果正确的猜测为0, 而我们猜测为1, 则我们完全是完全错误的, 反之亦然。由于你不可能犯错而不是绝对犯错, 因此这种情况下的罚款是巨大的。或者, 如果正确的猜测为0, 而我们猜测为0, 则成本函数不应在每次发生时都添加任何成本。如果猜测是正确的, 但我们并不完全有信心(例如y = 1, 但h(x)= 0.8), 则应该付出很小的代价, 如果我们的猜测是错误的, 但我们并不完全有信心(例如y = 1但h(x)= 0.3), 这应该付出一些可观的代价, 但不如我们完全错了。
日志功能捕获了此行为, 例如:
同样, 成本函数
为我们提供了所有培训示例的平均费用。
因此, 这里我们描述了预测变量h(x)和成本函数
回归和分类之间有所不同, 但梯度下降仍然可以正常工作。
分类预测器可以通过绘制边界线来可视化。即预测从”是”(预测大于0.5)更改为”否”(预测小于0.5)的障碍。使用设计良好的系统, 我们的cookie数据可以生成如下所示的分类边界:
现在, 这台机器了解Cookie的一两件事!
神经网络概论
没有至少提及神经网络, 就不会完成对机器学习的讨论。神经网络不仅为解决棘手的问题提供了极为强大的工具, 而且还为我们的大脑运作提供了迷人的暗示, 并为一天创造出真正的智能机器提供了无限的可能性。
神经网络非常适合输入数量巨大的机器学习模型。对于我们上面讨论的系统类型而言, 处理此类问题的计算成本实在太大了。然而, 事实证明, 使用原理上与梯度下降极为相似的技术可以有效地调整神经网络。
对神经网络的全面讨论不在本教程的讨论范围之内, 但是我建议你查阅我们之前关于该主题的文章。
无监督机器学习
无监督机器学习通常负责查找数据中的关系。在此过程中没有使用培训示例。取而代之的是, 为系统提供一组数据, 并负责在其中查找模式和相关性。一个很好的例子是在社交网络数据中识别紧密联系的朋友组。
用于执行此操作的机器学习算法与用于监督学习的算法非常不同, 并且该主题值得一提。但是, 在此期间需要咀嚼的内容包括聚类算法(例如k均值)和降维系统(例如主成分分析)。我们之前关于大数据的帖子还更详细地讨论了其中一些主题。
总结
我们在这里介绍了机器学习领域的许多基本理论, 但是当然, 我们只是勉强摸索。
请记住, 要将本简介中包含的理论真正应用于现实生活中的机器学习示例, 需要对此处讨论的主题有更深入的了解。机器学习有许多微妙和陷阱, 并且似乎被完善地思考的机器误导了许多方法。基本理论的几乎每个部分都可以反复使用和不断修改, 其结果通常令人着迷。许多人成长为全新的研究领域, 更适合于特定的问题。
显然, 机器学习是功能强大的工具。在未来的几年中, 它有望帮助解决我们一些最紧迫的问题, 并为数据科学公司打开全新的机遇世界。机器学习工程师的需求只会持续增长, 这为成为大型项目的一部分提供了令人难以置信的机会。希望你会考虑采取行动!
致谢
本文大量借鉴了斯坦福大学教授吴安德(Andrew Ng)在其免费开放的机器学习课程中教授的材料。该课程将深入讨论本文中讨论的所有内容, 并为ML从业人员提供大量实用建议。对于那些有兴趣进一步探索这个迷人领域的人, 我不能推荐这门课程。
有关:
- 声音逻辑和单调AI模型
- 像素鸟:强化学习教程