博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
知道如何操作还不够!深入了解4大热门机器学习算法
阅读量:2108 次
发布时间:2019-04-29

本文共 2333 字,大约阅读时间需要 7 分钟。

全文共2487字,预计学习时长7分钟

图源:unsplash

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

 

· 不懂机器学习算法;

· 知道算法是如何工作的,但不知道为什么会工作。

 

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

 

决策树

 

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

 

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

 

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

 

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

 

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

 

随机森林模型

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

支持向量机

 

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

 

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

 

一个分裂的提议

 

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

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

 

神经网络

 

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

 

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

 

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

 

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

 

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

 

图源:unsplash

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

 

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

 

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

 

一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

转载地址:http://uruef.baihongyu.com/

你可能感兴趣的文章
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>
【Python】关于Python多线程的一篇文章转载
查看>>
【Pyton】【小甲鱼】文件
查看>>
【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
查看>>
【Pyton】【小甲鱼】异常处理:你不可能总是对的
查看>>
APP性能测试工具
查看>>
【Pyton】【小甲鱼】类和对象
查看>>
压力测试工具JMeter入门教程
查看>>
作为一名软件测试工程师,需要具备哪些能力
查看>>
【Pyton】【小甲鱼】类和对象:一些相关的BIF(内置函数)
查看>>
【Pyton】【小甲鱼】魔法方法
查看>>
单元测试需要具备的技能和4大阶段的学习
查看>>
【Loadrunner】【浙江移动项目手写代码】代码备份
查看>>
Python几种并发实现方案的性能比较
查看>>