《重生学神有系统》第119章 高中课程里有这些?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    这里,xu是商空间)/{x|pu=0},而xv是商空间)/{x|pv=0}的完备化空间,pu及pv是由u和v各自产生的闵可夫斯基泛函。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    其实不是这样的。

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

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

    穷举法、分治法、jarvis步进法、graham扫描法、melkman算法……

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

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

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

    pline的时间复杂度,都是o,这是它们被选中的前提条件。

    时间复杂度越低,实践中就越有可行性。

    但写论文不能这么简单的直接扔出来结论,必须将各种算法的效率和优缺点,全都分析一下。

    有必要的时候,还要逐一测试n遍,收集到足够的数据,然后进行横向比较,最后才能得出结论。

    江寒理清了思路后,开始打草稿。

    首先写下标题,然后是摘要,接下来是正文……

    (此
猜你喜欢
返回首页返回目录