采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,有个问题不太明白,就是为什么高斯核函数的地标数与样本数相同呢,我看网上的推导公式,不管样本数多少结果都是无穷维
我听了一遍课程内容,确实有歧义。我简单澄清一下:
1)课程中介绍的 landmark 的方式,是帮助同学们理解,高斯核函数为什么能够做到非线性分类的。因为高斯核函数的本质是把低维数据映射成高维数据。
2)使用 landmrk 的方式,我们可以直观地看到这个映射结果。课程中以两个landmark,将一维数据映射成二维数据距离。
通常,如果使用手动方式,真的将数据升为高维,来模拟高斯核函数到底在如何改变数据,我们会选择使用样本数那么多的地标。在每个样本点上,都有一个地标。注意,这是我们人为选择的结果,而不是数学结论。
3)但实际上,高斯核函数到底把数据变成了什么样,是描述不清楚的。就是因为,高斯核函数的本质,是把数据映射到了无穷维。这一点,课程中也介绍了。但是,虽然我们把数据映射到了无穷维, 但是这样的两个无穷维的数据点乘的结果,却可以非常简单的用高斯核函数表达出来。这就是核函数的威力:我们不用管数据变成什么样,只需要知道他们点乘的方式,就能求解 SVM 了。
所以,选取 m 个landmark 的方式,是对 RBF Kernel SVM 的一个模拟,来帮助同学们理解,RBF Kernel 到底对原始数据做了什么。实际上,你是对的,RBK Kernel 将数据映射成为了无穷维。
继续加油!:)
感谢老师回复~~另外一个问题,如果说高斯核函数是把数据映射成为了无穷维,那么它应该就只能实现数据升维吧,但是课件中又说可以用它对维数非常高但是样本数量不多的数据进行降维,这个该怎么理解呢。
说 SVM 进行了降维不准确。在课程中,我还是在说,用地标的方式模拟的话,是这个效果。不能说高斯核进行了降维。我不确定我在课程中是否有这么说,如果有这么说,是错误的,抱歉。但高斯核函数做的事情,非常像在每一个数据点周围,包围了一层高斯函数,以此进行分类判断,对此,你可以通过下一小节我们绘制高速核函数 SVM 的决策边界直观看出来:)
非常感谢老师耐心解答!我在这里绕了好久,上面的说法是我的理解不是老师说的,我又回头看了老师的回复和课程,大概理解了,最后关于自然语言那块稍微有点不太明白,等学那块知识的时候再回头理解下。谢谢老师!
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
2.9k 15
1.6k 15
1.4k 14