图谱连接

草稿

特征映射

把原始输入改写成表示坐标,让简单比较能看见你关心的模式。

concept intermediate machine-learningkernelsrepresentation

Hook problem:原始坐标可能藏住模式

假设模型只能看到两个坐标 x1x2。如果真正有用的模式来自平方项或交互项,那么在原空间里做直线式比较可能看不见它。

第一个修补还不是核函数。它是特征映射(feature map):把每个输入改写到另一组坐标中的规则。

先升维,再比较特征映射把一个点改写成新坐标,让线性模型能看见需要的模式。
A (1, 1)B (2, 1)C (-1, 2)D (0, -2)
phi(A)[1, 1.414, 1]

二次特征坐标

phi(B)[4, 2.828, 1]

同一个映射,新点

phi(A) * phi(B)9

在该映射下等于 (A * B)^2

First naive idea:保持输入不变

最简单的特征映射是恒等映射:

ϕ(x)=x\phi(x)=x

当原始特征已经暴露结构时,它很好用。但如果“相似”来自相似的乘积、相似的平方,或靠近一条弯曲边界,原坐标就会变得吃力。

Core invention:选择表示坐标

特征映射是一个函数:

ϕ:XF\phi: X \to F

它把原空间 X 中的输入送到特征空间(feature space)F。对二维点,一个二次映射可以是:

ϕ(x1,x2)=(x12,2x1x2,x22)\phi(x_1,x_2)=(x_1^2,\sqrt{2}x_1x_2,x_2^2)

这些新坐标不是魔法。它们只是我们决定要测量的东西:两个平方项和一个交互项。

Implementation sketch

function quadraticFeatureMap(point: { x: number; y: number }) {
  return [point.x ** 2, Math.SQRT2 * point.x * point.y, point.y ** 2];
}

同一个映射必须用于每个点。比较 AB 时,二者都要先经过 phi

Why kernels appear next

当映射后的向量很小时,特征映射很容易直接理解。但有些有用映射非常大;RBF 核甚至表现得像来自无限维特征空间。

核函数学习路径特征映射引出核函数;不同核函数选择不同的相似度含义。
特征映射

基础思想

核函数

基础思想

线性核

具体选择

多项式核

具体选择

RBF 核

具体选择

Sigmoid 核

具体选择

下一个想法是一条捷径:不一定真的构造 phi(x),也能直接算出映射后的内积。

Common confusions

  • 特征映射是表示规则;核函数(kernel)是成对比较的捷径。
  • 坐标更多不代表一定更好。映射要服务于任务。
  • 如果简单几何已经可用,原始输入本身就是一个有效的特征映射。

Exercises

  1. x1 x2 这一项创造了什么新坐标?
  2. 为什么每个点都必须使用同一个特征映射?
  3. 什么时候恒等映射就足够?

图谱连接 : 特征映射