字:
关灯 护眼
笔趣阁 > 重生学神有系统 > 第119章 高中课程里有这些?

第119章 高中课程里有这些?

他当初刚写第一篇论文的时候,就拟好了这个题目,只是由于数学基础不够,一直停留在构思阶段。

这两天他利用碎片时间,稍微补了补高数知识,这才真正动笔。

江寒将近期一些想法整理了一下,罗列了个大纲出来。

很多机器学习分类算法,都要求假设数据线性可分,“感知机”也不例外。

如果数据不是线性可分的,就必须采用一些特殊的方法,把数据非线性地投射到更高的维度上。

在高维空间里,数据更有可能变成线性可分的,这就是所谓的Cover定理。

对于感知机来说,处理线性不可分的问题,有个最简单的解决办法,那就是把单层感知机拓展为多层感知机。

多层感知机的关键,在于如何训练各层之间的连接权值。

一种常用的办法是只训练某两层间的连接权值,而将其它连接权值进行固定。

可以从数学上证明,对于所有非线性可分的样本集,这种方法都是收敛的。

也可以采用BP技术,也就是另一个世界里,大名鼎鼎的“反向传播神经网络”。

当然,这个世界里,“感知机”都还没正式登场,说这些还有点早。

至于BP技术什么时候问世,基本上是江寒自己说了算……

此外,还可以将数据带到核空间,再进行分类。

在另一个世界里,有很多著名的算法,例如支持向量机(SVM)、径向基神经网络(RBF NN)等等,都采用了所谓的“核方法”。

核方法的核心,是核函数。

工业生产中,常用的核函数有线形核、多项式核、高斯核等等。

所谓核空间,百度百科上说:“核型空间是一类局部凸空间。”

具体来说:如果对零元的任何均衡凸邻域V,存在另一零元的均衡凸邻域U?V,使得典型映射T:XV→XU是核映射,则局部凸空间X称为核型空间。

这里,XU是商空间(X,PU(·))/{x|PU(x)=0},而XV是商空间(X,PV(·))/{x|PV(x)=0}的完备化空间,PU(·)及PV(·)是由U和V各自产生的闵可夫斯基泛函。

嗯,江寒刚开始看到这个的时候,还真有点懵逼。

所以,再加强一点数学素养,还是很有必要的说……

当然,就算不懂上面的数学表达,一样可以理解核函数的功能。

核函数主要做的事情,就是将样本映射到更高维的空间。

但是,这样做虽然能使样本变得可分,但却会造成维数过高,使得计算量急遽增大。

这就是“高维NP难”问题。

所谓NP难(NP-hard),是指:非确定性多项式问题的大型实例,不能用精确算法求解,只能寻求有效的近似算法。

而解决的办法,也有很多……

好吧,先回到一开始的问题:如何判断数据是线性可分的?

最简单的情况,比如数据向量是一维、二维或者三维的,只要把图像画出来,直观上就能判断出来。

但如果数据向量的维度变得很高,又该怎么办?

答案是检查凸包(vex hull)是否相交。

所谓凸包,简单的说,就是一个凸的闭合曲线(曲面),它刚好包住了所有的数据。

以二维的情况为例,如果我们的数据训练集有两类:M+和M-。

当我们画出两个类的凸包,如果两者不重叠,那么两者线性可分,反之则线性不可分。

靠画出图形,然后用眼睛来判断是否线性可分,虽然比直接看数据更加容易了些……

但好像依然没有解决高维数据的问题?

其实不是这样的。

判断两个凸包是不是有重叠,可以通过判断两个凸包(M+和M-)的边是否相交来实现,而无需把凸包画出来。

要想高效地找到一组数据的凸包,在计算几何中有很多现成的算法:

穷举法、分治法、Jarvis步进法、Graham扫描法、Melkman算法……

江寒在这篇论文中选择的算法,称之为快速凸包算法(quickhull)。

第二个问题,如何高效地判断出,两个凸包的边缘是否相交?

也有许多可选的算法,江寒使用了所谓的扫描线算法(sweepline)。

https://zerifeisheng.com/book/7208/1891185.html

本站地址:zerifeisheng.com

点此播放在线视频 ①

点此播放在线视频 ②

最新小说: 让你写歌,你吊打国学大师? 华娱太子爷! 老六老师:我淋过雨,你们想撑伞 表白失败,那就追她闺蜜 我带家乡科技致富 重生就别当舔狗了 我抢了别人的重生门票 我养大的妹妹们,只想把我送监狱 让你算命,你说我算什么东西? 重生不当接盘侠,前世老婆她急了