Kernel Ⅰ
对于上图的数据集,我们之前使用的是多项式模型来对数据集进行分类操作。我们可能使用的模型为θ0 + θ1x1 + θ2x2 + θ3x1x2 + θ4x12 + θ5x22 + ...
对于该模型当θ0 + θ1x1 + θ2x2 + θ3x1x2 + θ4x12 + θ5x22 + ... ≥ 0时,我们可以预测y = 1。因此,该模型的假设函数为:
上述模型中,我们使用高阶项来更好地拟合数据集。但我们通常不清楚这些高阶项是否满足我们的需求,而且高阶项其计算量过大。因此,我们寻求使用新的特征变量来替代这些高阶项。例如:令f1 = x1,f2 = x2,f3 = x1x2,f4 = x12,f5 = x22,...,从而我们的模型变为θ0 + θ1f1 + θ2f2 + θ3f3 + θ4f4 + θ5f5 + ...
除此之外,我们可以利用核函数(Kernel Function)来计算出新的特征。
给定一个训练实例x,我们利用x的各个特征与我们预先选定的地标(landmark)l(1),l(2),l(3)距离大小来构造新的特征变量f1,f2,f3。
通过使用核函数我们可以构建新的特征变量。
图中similarity(x, l)函数即为高斯核函数(Gaussian Kernel Function)。
其中
表示实例x中所有特征与地标l(1)之间的距离的和。因此,我们以f1为例,将其改写为:
我们根据x与地标距离的大小,可得出如下结论:
其中,关于σ2的取值,我们可以根据下图得出相关结论。
即σ2的值越大,特征变量fi的变化曲线就越平滑,模型出现低方差高偏差问题;σ2的值越小,特征变量fi变化曲线就越陡峭,模型出现高方差低偏差问题。
假设对于下图数据集,我们使用的模型为θ0 + θ1f1 + θ2f2 + θ3f3,当其大于等于零时,我们可以预测y = 1,其中θ0 = -0.5,θ1 = 1,θ2 = 1,θ3 = 0。
图中紫红色x与地标l(1)的距离小,因此我们可以认为f1 ≈ 1;而x与地标l(2)和l(3)距离较大,我们可以认为f2 ≈ 0,f3 ≈ 0。从而我们可以计算出θ0 + θ1f1 + θ2f2 + θ3f3 = 0.5 ≥ 0,因此我们可以预测在紫红色x处y = 1。同理,我们可以预测天蓝色x处y = 0,绿色x处y = 1。因此,我们可以画出红色线条表示的判定边界,其内的我们都可以预测y = 1,其外则y = 0。
Kernel Ⅱ
给定一个数据集为(x(1), y(1)),(x(2), y(2)),···,(x(m), y(m)),我们令l(1) = x(1),l(2) = x(2),···,l(m) = x(m)。通常我们利用上述方法选择相应的地标,然后我们再利用核函数构建新的特征变量f1,f2,···,fm。因此,我们可将代价函数J(θ)改写为: