每日三思(5月19日)
每日三思(5月19日)
问题一:今天做了什么?
今天主要进行了翻译训练,并且将SVM的全部内容包括线性SVM以及非线性SVM的代码实现全部学习完成。
问题二:怎么理解核函数?
在分类问题中,如果数据是线性可分的,我们可以用一个超平面将不同类别的样本分开。但在实际应用中,很多数据是非线性可分的。 这时,我们想到一个办法:
把数据从低维空间映射到高维空间,在更高维度上变得线性可分。
比如,二维数据 可以映射成三维特征 ,这样就可能找到一个平面进行分割。但问题是:映射到高维空间后计算代价很高,特别是当维数非常大时。此时,我们就需要用到核函数了。它不需要显式地把数据映射到高维空间,而是直接计算它们在高维空间中的内积。
问题三:核函数的数学定义是怎么样的?
给定两个样本 ,核函数 的定义是:
其中:
- 是将原始输入空间映射到高维空间的函数;
- “” 表示内积(点积);
- 核函数的结果就是这两个映射后的向量的内积。
所以,我们不用真的去算 ,只需要知道它们的内积即可 —— 这大大节省了计算成本!
核函数名称 | 公式 | 特点 |
---|---|---|
线性核(Linear Kernel) | 最简单,适用于线性可分数据 | |
多项式核(Polynomial Kernel) | 能处理较复杂的非线性关系,参数多 | |
径向基函数核 / RBF核(Gaussian RBF Kernel) | 最常用的核函数,适合大多数非线性问题 | |
Sigmoid核 | 类似神经网络激活函数,有时用于二分类 |
在 SVM 中
我们的目标是最大化分类间隔,优化的目标函数中会涉及到样本之间的内积。
例如:
如果我们使用核函数,就可以把里面的 替换成 。
也就是说,整个优化过程都不需要知道具体的映射函数 **** ,只需要知道核函数值即可。
SVM中,如何选择核函数?
数据特点 | 推荐核函数 |
---|---|
维度低且线性可分 | 线性核 |
图像、文本等复杂结构 | RBF核(默认首选) |
有明确多项式关系 | 多项式核 |
模拟神经网络效果 | Sigmoid核(较少使用) |
可以想象:在整理一个房间中乱七八糟的东西(原始数据),想把它们分成两类(比如书和其他):如果东西太杂乱,你可能要把它们放到一个更大的房间(高维空间)里才能分清楚;但是搬东西很麻烦,核函数就像有个聪明助手,他能告诉你:“其实你不一定要搬到大房间,只要你知道它们在大房间里怎么摆放(内积),就能判断怎么分。
问题四:什么是内积?为什么内积可以展示数据集在高维的分布情况?
两个向量 的内积(也叫点积)是:
内积的几何意义:
- 表示两个向量之间的相似度;
- 如果两个向量方向一致,内积大;
- 如果垂直(正交),内积为0;
- 如果方向相反,内积为负值。
二、内积与分类的关系?
在 SVM 中,我们要找一个最优超平面:
其中:
- 是将输入映射到高维空间后的特征;
- 是超平面的方向;
- 是偏置项。
为了找到这个 ,我们需要计算不同样本之间的内积:
所以,内积决定了决策边界如何形成 —— 它直接影响了模型对样本位置和类别的判断,反映了两个点之间的角度和距离关系,这种关系决定了它们在高维空间中的分布情况。
每日三思(5月19日)
https://github.com/DukeZhu513/dukezhu513.github.io.git/post/think-twice-every-day-may-19-1vdngz.html