知道如何操作还不够!深入了解4大热门机器学习算法

开发 前端 算法
近来,我花了大量时间采访了许多中小企业、数据科学家、商业分析师、领导和客户、程序员、数据爱好者以及来自世界各地不同领域的专家们,整理出一个列表,这些技术将会在该领域保留很长一段时间。

本文转载自公众号“读芯术”(ID:AI_Discovery)。

机器学习已然成为许多领域的大热词。但其实,真正了解机器学习的人还是少数,大多数人属于以下两个阵营:

  • 不懂机器学习算法;
  • 知道算法是如何工作的,但不知道为什么会工作。

因此,本文试图阐述算法的工作流程和内容,尽力直观地解释其中的工作原理,希望能让你对此有豁然开朗之感。

[[342820]]

决策树

决策树用水平线和垂直线划分特征空间。下图是一个简单的决策树,有一个条件节点和两个类节点,表示一个条件以及判断满足该条件的节点属于哪个类别。

知道如何操作还不够!深入了解4大热门机器学习算法

请注意,标记为不同颜色的字段与该区域内实际是该颜色或熵的数据点之间有很多重叠。要以最小化熵构造决策树,这种情况下,可以添加一个额外的复杂层。如果加入另一个条件(x<6,y>6),可以把相应区域的点标为红色。这个移动降低了熵值。

知道如何操作还不够!深入了解4大热门机器学习算法

该算法在每个步骤中都试图找到一种方法来构建树,使熵最小化。将熵的数量看作是“无序的”、“混乱的”,其对立面是“信息增益”——分频器为模型添加信息和见解的多少,具有最高信息增益(以及最低熵)特征的,分割位于顶部。

知道如何操作还不够!深入了解4大热门机器学习算法

这些条件的一维特征可能会被拆分,方式可能为:

知道如何操作还不够!深入了解4大热门机器学习算法

注意,条件1分离清晰,因此熵低,信息增益高。而条件 3就不同了,这就是它被放置在决策树底部的原因。决策树的构造确保其轻量级。

随机森林模型

随机森林模型是决策树的袋装版本(引导聚合),其主要含义是:每个决策树都要经过数据子集的训练,然后输入每个模型之间的传递,其输出通过如均值之类的函数以最终输出。袋装法(bagging)是一种综合学习形式。

知道如何操作还不够!深入了解4大热门机器学习算法

有很多类似的例子可以解释随机森林的有效性。以下是一个常见的例子:

你要决定下一顿去哪家餐馆,需要他人的推荐,你必须回答“是或否”的问题,引导他们决定你去哪一家餐厅。你是选择问一个朋友还是问几个朋友,是普遍共识吗?除非只有一个朋友,多数人会选择问几个朋友。这个类比告诉我们,每棵树都有“思维多样性”,它们选择不同的数据,因此有不同的结果。

这个类比虽简单明了,却未引起Andre Ye的注意。现实生活中,单一朋友选项的经验比所有朋友的经验都要少,但在机器学习中,决策树和随机森林模型是根据相同的数据进行训练,因此体验相同,集成模型实际上并没有接收到任何新信息。如果你请一位无所不知的朋友推荐,他也不会有什么反对意见。

根据随机提取数据子集以模拟人工“多样性”的同一数据进行训练的模型,如何比对整个数据进行训练的模型表现更好?以具有重正等分布噪声的正弦波为例,这一单个决策树分类器自然是一个非常高方差的模型。

知道如何操作还不够!深入了解4大热门机器学习算法

选择 100个“近似器”,这些近似器随机选择正弦波上的点并生成正弦拟合,就像对数据子集进行训练的决策树一样。然后对这些拟合进行平均,形成袋形曲线,也就是一条更平滑的曲线。

知道如何操作还不够!深入了解4大热门机器学习算法

装袋算法之所以有效,是因为它降低了模型的方差,并以人为方式使模型置信度更高,帮助提高泛化能力,这也是装袋算法在低方差模型(如逻辑回归)中不起作用的原因。

支持向量机

支持向量机试图找到一个可以最好地划分数据的超平面,依靠“支持向量”的概念来划分两个类别。

知道如何操作还不够!深入了解4大热门机器学习算法

不幸的是,大多数据集并不是那么容易分离的。如果分离容易,SVM 可能就不是处理数据集的最佳算法了。考虑一维分离这样的目标是没有完美分隔线的,因为任何一个分离都会导致两个单独的类被归为同一个类。

知道如何操作还不够!深入了解4大热门机器学习算法

一个分裂的提议

SVM 能够使用所谓的“内核技巧”解决这类问题,将数据投射到新的维度,使分离任务更加容易。例如,创建一个新维度,仅定义它为 x^2(x是原始维度):

知道如何操作还不够!深入了解4大热门机器学习算法

数据被投射到新的维度,每个数据点在两个维度中表示为(x,x^)后,数据是完全可分离的。使用各种内核(最普遍、多式非分体、sigmoid 和 RBF 内核)、内核技巧可以完成创建转换空间的繁重任务,使分离任务变得简单。

神经网络

神经网络是机器学习的巅峰。相关发现以及在此基础上进行无限变化和改进,使其成为领域内深度学习的主题。不可否认,神经网络仍然不完整(“神经网络是无人理解的矩阵乘法”),但最简单的解释方法是通用近似定理(UAT)。

在其核心,每个监督算法都试图为数据的一些基本功能建模,通常是回归平面或要素边界。思考函数y=x2,它可以通过几个步骤建模为任意精度。

知道如何操作还不够!深入了解4大热门机器学习算法

这就是神经网络所能做的,也许会稍微复杂并且超越水平步骤(如下图二次线和线性线)来建模关系,但其核心就是一个分段函数近似器。

知道如何操作还不够!深入了解4大热门机器学习算法

每个节点都委托给分段函数的一部分,网络的目的是激活负责部分要素空间的特定神经元。例如,如果要对是否留胡子的男性进行图像分类,应将几个节点专门分配到经常出现胡子的像素位置。在多维空间的某个地方,这些节点表示数值范围。

"神经网络为什么工作"的问题仍然没有答案,UAT没有回答这个问题。但它指出神经网络在某些人的解释下可以建模任何功能,可解释的人工智能领域兴起,通过激活最大化和灵敏度分析等方法回答这些问题。

[[342830]]

图源:unsplash

这4种算法以及其他许多算法其实都是低纬度的,并且非常简单。这就是机器学习领域的一个关键点,我们声称在人工智能中看到的许多“魔法”和“智能”,实际上是隐藏在高维表象下的一个简单算法。

决策树将区域拆分为正方形很简单,但将高维空间拆分为超立方体则不简单;SVM 通过执行内核技巧,提高从一维到二维的可分离性,但 SVM 在数百个维度的大数据集上做同样的事情是难上加难。

 

我们对机器学习的钦佩和困惑是源于对高维空间缺乏理解,学习如何绕过高维空间,理解本地空间的算法,对直观理解很有帮助。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2022-05-11 15:20:31

机器学习算法预测

2009-12-17 11:24:56

Linux Fedor

2020-07-20 06:35:55

BashLinux

2020-09-21 05:58:40

深度学习算法目标检测

2010-11-19 16:22:14

Oracle事务

2010-06-23 20:31:54

2009-08-25 16:27:10

Mscomm控件

2010-07-13 09:36:25

2020-09-21 09:53:04

FlexCSS开发

2022-08-26 13:48:40

EPUBLinux

2017-08-25 14:05:01

机器学习算法模型

2010-09-27 09:31:42

JVM内存结构

2013-04-16 10:20:21

云存储服务云存储SLA服务水平协议

2018-06-22 13:05:02

前端JavaScript引擎

2021-04-28 10:13:58

zookeeperZNode核心原理

2021-01-19 12:00:39

前端监控代码

2010-11-08 13:54:49

Sqlserver运行

2022-06-03 10:09:32

威胁检测软件

2011-07-18 15:08:34

2010-11-15 11:40:44

Oracle表空间
点赞
收藏

51CTO技术栈公众号