机器学习技术的变化

过去 25 年,机器学习领域有哪些变化?您可能不关心这个问题。您甚至可能没有认识到,作为一个科技领域,机器学习诞生已有 25 年多的时间。但是我关心这个问题。我关心这个问题是因为我在 1990 年获得了机器学习哲学博士学位。然后我改变了研究方向,去研究约束编程和数学优化。几年前我又重新开始研究机器学习,并曾问自己:我的哲学博士学位是否仍有意义,或者机器学习是否已发生了很大的变化,以致于我需要再次从头学习

简单来讲:我的哲学博士学位不再有意义。我过去研究的课题(比如符号机器学习和归纳逻辑编程)现在已不那么流行

这是否意味着我需要从头学习机器学习?让我感到幸运的是,这个问题的答案是不需要这样

为什么?

原因有两个:

1.自我获得哲学博士学位以来,机器学习技术没有太大变化

2.它变得离我非常熟悉的数学优化更接近了

让我详细介绍一下这两个原因。

机器学习技术自 1990 年以来没有太大变化。

这可能让您感到吃惊,因为机器学习仅在几年前才引起人们注意。近年来肯定发生了一些变

最明显的变化是,许多行业现在开始使用机器学习,而在 1990 年,机器学习还仅用于学术研究。一个不错的使用示例是推荐系统,比如 Netflix 用来推荐要观看的电影的系统,或者亚马逊等电子商务网站用来推荐要购买的产品的系统。这些推荐系统从人们如何决定观看某部电影或购买某款产品中进行学习。推荐不是由开发人员团队手动编码完成的

最近对机器学习的采用是否与机器学习算法的突破有关?我不这么认为

深度学有何变化?在听到有人说机器学习术 25 年来没有太大变化时,您首先可能会想到深度学习这个概念

事实上,深度学习中使用的大部分算法与我的哲学博士学位一样古老。随机梯度下降是构建深度学习模型的方式的核心在 80 年代就已被 Léon Bottou 开发出来。卷积网络引发了图像识别领域的突破,几乎在同一时间被第一次使用。这些算法不被称为深度学习,而是称为连接机制。但是它们已与神经网络的概念和训练方式相关

变化的是扩展能力,也就是说,能够通过使用 GPU 更高效地训练神经网络。第二个变化是ImageNet 变得可用,这是一个非常大的已标注图像集合。有了更快的神经网络和大量可供学习的示例,图像识别领域的突破就变成了可能。深度学习现在是一个活跃的研究主题,每年都会出现创新,但我们不要忘了它的基本原理不是最近才提出来

机器学习技术中还有其他重大变化,虽然它们不像深度学习那么显眼,但仍值得提及。让我挑选两个变化进行介绍

因子分解推荐系统的首选技术。它们同时构建客户概要、产品概要及二者的交互方式。然后人们可以使用这些概要推荐产品。鉴于这项技术如此酷炫,我很快会发表一篇文章介绍它的工作原理。在此期间,感兴趣的读者应该阅读 Steffen Rendle 的论文和有关现场感知因子分解机的论文。

另一个重大进步是推进决策树应用。决策树不是新概念。在我获得哲学博士学位,CART 和C4.5 等算法就已提出。但是,梯度推进机或梯度推进决策树是最近才提出的,可以参阅xgboost 实现示例了解更多详情。这里的新颖之处在于使用某种优化算法,构造一组具有前所未有的准确度的决策树。梯度推进决策树现在在机器学习竞赛中获胜的首选工

这就引出了我不需要再次从头学习机器学习的第二个原

机器学习算法是优化算法

梯度推进决策树使用某种优化算法选择可能最佳的一组决策树。因子分解机也使用某种优化算法以最佳方式模拟用户和产品的交互方式。   深度学习使用一种类似随机梯度下降的优化算法来训练模型。事实上,大部分(虽然不是全部)最先进的机器学习算法也在解决优化问题

基本上讲,机器学习算法在一系列可能的模型中选择预测误差最少的模型。模型的预测准确率越高,该模型就越好。我们通常还坚持让模型尽可能简单,请阅机器学习中的过度拟合了解一些示例。因此,我们会寻找预测误差最少的、最简单的模型

然后通过做出以下选择来定义机器学习问题

  • 一系列模型
  • 预测误差的定义
  • 模型复杂性的定义

然后您可以使用自己最喜欢的优化算法来解决

我们提供一个稍微有点抽象的示例。

线性回归或许是最简单、使用最广泛的机器学习算法。顺便说一下,这是过去 25 年中出现的另一个主要趋势的典型例子:现在的机器学习与统计学的关系比 25 年前更紧密。事实上,线性回归是一种统计方法。但现在也将它视为一种机器学习算法。有人甚至认为机器学习应称统计机器学

回到我们的主题,机器学习的目标是从一系列示例中的一组量 x 中预测一个量 y,这些示例的格式为

y f(xi1, xi2, .., xin)

  其中 ≃ 表示约等于

我们的 f 的系列模型将是线性模型,也就是说,模型中的 f 具有以下格式

f(x1, x2, .., xn) = a0 + a1 x1 + a2 x2 + …+  an xn

该模型由参数 ai 描述。

我们的预测误差函数将是误差平方的平均值,

sum 1/m [ y– (a0 + a1 xi1 + a2 xi2 + …+  an xin  ) ] 2

其中 m 是示例数量。

我们的模型可以简单地表示为参数 ai 的绝对值之和

sumj | aj |

利用此模型的简单性,我们可以获得 Lasso 算法的一种变形。此算法查找具有最小误差的模

sum 1/m [ y– (a0 + a1 xi1 + a2 xi2 + …+  an xin  ) ] 2 + sumj | aj |

这可以转换为一个等效的约束二次最小化问题

minimize

sum 1/m [ y– (a0 + a1 xi1 + a2 xi2 + …+  an xin  ) ] 2 + sumj  zj

such that

   aj ≤ zj

 – aj ≤ zj

熟悉数学优化解算器的读者可能立即联想到这个问题。但是,由于这个优化问题受到的约束最少,而且涉及的范围可能非常大,所以数学优化解算器中提供的算法可能不是最佳算法。机器学习研究者更喜欢使用随机梯度下降、共轭梯度法或 LBFGS 等本地方法。

还有更多机器学习算法可描述为优化算法,请阅 Stephen Wright 的这篇不错的演示查看有关示例。

结束语

我想您现在已经了解了为什么我与如今的机器学习一见如故:它的宗旨是优化