1、核函数的概念
处理非线性数据问题本质是依靠升维(按照某种规则扩充数据的特征)使得原本在低维空间内线性不可分的数据在升维后的空间内变得线性可分。SVM的核函数 主要是为解决数据线性不可分而提出一系列变换函数,不同的特征扩充规则对应了了不同的核函数。
在实际应用 核SVM 的时候,往往是通过变形 线性SVM的目标函数 为适用核函数的效率形式:如
这里适用多项式核的SVM优化目标 max ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ⋅ x i x j \max \sum_{i=1}^{m}\alpha_i - \frac {1}{2} \sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\cdot x_ix_j max∑i=1mαi−21∑i=1m∑j=1mαiαjyiyj⋅xixj 函数内嵌套了 i , j i,j i,j两层加法循环,每次循环都是对样本集内的任意两个样本 x ( i ) , x ( j ) x^{(i)},x^{(j)} x(i),x(j)做一次点乘。对于这样的点乘运算,核函数 的思想在于直接通过变换 K K K处理使得原始特征的点积结果与对两样本添加构造特征后计算的点积结果相类似的效果。这样相比起先添加构造特征提升数据维度,再应用线性SVM 。在SVM原始优化目标里直接以函数变换 K K K 来计算升维后两样本 x i ′ x j ′ x_i'x_j' xi′xj′的内积结果,不但降低了添加构造特征带来的硬件资源消耗,还进一步提升了运算效率。所以 核函数 本质只是一个在算法里提升效率的运算技巧(Kernel Trick)。
核函数 技巧一般多应用在两向量的内积处理上。
2、多项式核函数
一般数学形式: K ( X , Y ) = ( X ⋅ Y + C ) d K(X,Y) = (X\cdot Y + C)^d