您的位置:首页 > 大数据 > 人工智能

机器学习——15分钟透彻理解感知机(续)

2018-01-18 19:18 441 查看

问题

感知机回顾

学完了感知机模型能够确定感知机的基本模型如下:

f(x)=w⋅x+b

由上式可以得到一个向量f(x),而感知机在分类问题的运用中则是增加了一级函数sign来处理模型输出向量f(x)的值,再输出易于比较的数值,这样我们只需极其简单的比较等运算就能够将f(x)归为某一类,而f(x)又与向量x是一一对应的,因此对f(x)分类实际上就是对特征向量x进行分类。因此分类问题也可以拆解为三部分,一是模型接受特征向量再输出一组解,二是分类器将这组解进行处理,三是简单比较运算确定特征向量属于哪一类,并作为损失函数的参考值用于继续训练。



在前一篇机器学习——15分钟透彻理解感知机没有将分类问题做这样细致的拆分导致很多人对感知机可能还是有不少困惑的地方,但在这儿做这种分析后应该能解决不少疑惑。

由模型引发的问题

我们已经看到模型的本质就是一个函数,函数的输入即定义域为{x∈[x1,x2,x3,⋯,xn],n∈N,xn∈R},而输出即值域为{y∈[y1,y2,y3,⋯,ym],m∈N,ym∈R}。那么问题来了,可不可以任意构造一个映射关系来作为模型呢?

关于问题的讨论

我们知道初等函数的分类主要有以下几个方面,幂函数、指数函数、对数函数、三角函数、反三角函数等。总的来说,可以由基本初等函数经过有限次的四则运算或有限次的函数复合所构成并可以用一个解析式表示出的函数都可以称为初等函数。那么感知机模型的形式就是一个最简单的初等函数的形式,即:

f(x)=ax+b

那么由此可以推论:模型可以由任何映射关系f来定义。我们从感知机出发看看模型定义的特点。

感知机模型具有如下特点

感知机模型会将输入特征向量信息压入其对应维度的一个平面中去

感知机分类本质是在特征向量空间中的一个超平面上进行划分

感知机分类的基础是特征向量被压如其对应维度的某个模型平面后,其特征变得更加清晰

好了,得到以上结论我们需要进行一定的空间想象。最简单的理解方式是思考对三维空间的点划分开始,如果从二维空间考虑,以我们从感知机模型学到的理解方式,那么很难想象在二维平面里面的平面是怎样的(实际上二维空间的平面可以理解为在三维空间中一个平面上的直线)。

有了以上这些基本认知,认真再来看看这么一个情形,在一个三维空间中分布着无数点集,而假设上帝在其中的某个区域设置了一个透明光罩,在光罩内部的点集都被标记——属于一类,其它的属于另一类。现在要怎么确定所有点被标记的规律呢?当然这个问题的描述很不严谨,但我们可以先忽略严谨性问题,而将关注重点放在如何解决类似的问题上。

首先我们看看利用感知机能不能解决问题,在三维空间中利用感知机将点集分成两类的示意图,



从上图来看,不管我们将表示模型的平面怎么调整,始终不能将图中的点集分成正确的两类,因此这又是一种典型的线性不可分问题。由上文描述,我们可知分类的条件边界应该是个球形,那么我们不用感知机模型,而用如下模型来看看效果。

⟹f(x)=w1(x1−o1)2+w2(x2−o2)2+w3(x3−o3)2+Rf(x)=[w1w2w3]⋅[(x1−o1)2(x2−o2)2(x3−o3)2]+R

而分类器仍然使用sign函数,也就是:

g(x)=sign(x)={1−1,x>0,x<=0

现在先来考虑损失函数L的定义,可以将损失函数定义为所有分类错误的点距离球心的距离总和,因此就有如下模型训练策略:

当模型表示球形外的一点分类错误时,即在f(xi)>0,yi<0时,应该朝着使球面接近误差点的方向调整

当模型表示球形内的一点分类错误时,即在f(xi)<0,yi>0时,应该朝着使球面远离误差点的方向调整

经过上面的分析,粗看感觉存在矛盾,但仔细一想,损失函数的值是以总体变小的趋势发展的,当损失函数的值为0时,就证明不存在误差点,但这实际上是不可能为0的。因此现在的问题就变成了求损失函数L的极小值,在这儿仍然可以利用随机梯度下降或者是其它方法。

通过上面的分析,其实问题的解也就显而易见了,在此就不做更多的推导和讨论,如果有兴趣的可以试着继续推导下去。但需要注意的是像这种非线性模型的处理是很复杂的,就拿本例而言,不仅需要考虑{w向量的更新,还需要考虑球心o1,o2,o3更新和R的更新。因此这种复杂度对于计算,推导还有实现来说还是有一定难度的。

总结

上文展示了如何用一个非线性模型来处理三维空间中点集的分类问题。通过上文提到的解决问题的情形,再结合之前感知机的分析与介绍,可以得出下列结论:

模型的选择需要根据实际的问题进行合理的选择,很多时候需要进行主观的尝试加上逻辑的推理验证来确定,但目前在机器学习的各个领域已经形成了很多通用的模型,在解决一些常见问题时,可以不加验证地直接选择该类问题的模型来实现功能。同时力求让模型的复杂度变低,模型越复杂需要考虑的其它东西就越多,在之后将逐步讲到确定模型与损失函数后还需要考虑的东西。

模型的作用是用来形成一个解空间,当问题在正常的特征空间无法区分与识别时,一个有效的方法是利用某种模型将特征空间映射到解空间中去,在解空间能够将问题简化非常多。经过上面的映射后问题就能够被化简为求解某个函数的最优解的问题。而这个函数就是所谓的损失函数,是用于评价模型好坏的标准。

解空间可以是一维的,也可以是多维的,这是根据对应的问题特征与解决问题目标去调整的。通过对损失函数求解最优解将获得一个最优的解空间,而在分类场景中应该怎样使用这个解空间需要根据具体情况而定。而出现的各种分类器就是对于解空间的不同利用形式而已,不同的应用也会产生不同的效果。

至此,关于感知机的内容就讨论到这里,通过感知机的学习,可以了解机器学习的基本过程以及其理论基础,在之后将分析更多的模型来体会如何应用机器学习来解决许多实际问题。

任何意见或建议随时联系:

Github

Gmail



2018.1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息