草稿
Sigmoid 核
用 tanh 压缩仿射点积,同时记住这种核对参数敏感,并不总是有效。
concept intermediate machine-learningkernelssimilarity
Hook problem:点积可能没有上界
线性核和多项式核可能产生很大的正值或负值。一个自然的修补是把点积分数送进一个非线性函数里压缩。
**Sigmoid 核(sigmoid kernel)**使用 tanh,形状类似早期神经网络激活函数。
| 点 | 点积 | 距离平方 | K(A, z) |
|---|---|---|---|
| A | 2 | 0 | 0.964 |
| B | 3 | 1 | 0.987 |
| C | 1 | 5 | 0.905 |
| D | -2 | 10 | 0 |
First naive idea:压缩后就当作核
压缩很有吸引力,因为输出有界。但有界相似度不自动等于有效核。核方法需要成对矩阵表现得像特征空间里的内积。
Formal version
参数 gamma 控制点积分数的斜率。参数 c 在进入 tanh 前平移分数。输出位于 -1 到 1 之间。
Interactive comparison
核相似度实验台
tanh(gamma x * z + c): 压缩仿射点积,但不是所有参数选择都有效。 只影响 RBF 的衰减速度;其他核函数保持固定参数。
把每个点都和选中的锚点比较。注意每种核函数对“接近”的理解不同。
相似度; 点积 2, 距离平方 0
相似度; 点积 3, 距离平方 1
相似度; 点积 1, 距离平方 5
相似度; 点积 -2, 距离平方 10
Implementation sketch
function sigmoidKernel(dot: number, gamma = 0.5, c = 1) {
return Math.tanh(gamma * dot + c);
}
Validity caveat
不同于线性核、标准参数下的多项式核和 RBF 核,Sigmoid 核并不是对所有参数和数据集都正半定。把它当作一个专门选项:确认库接受这些参数,并用验证集表现证明它值得使用。
Common confusions
- Sigmoid 核不是逻辑回归。
- 输出有界不保证是有效核。
- 饱和会让多个很大的点积看起来几乎一样。
Exercises
tanh起什么作用?- 为什么 Sigmoid 核比 RBF 核更需要谨慎?
- 饱和会隐藏什么差异?
图谱连接 : Sigmoid 核