KRR & SVR
RR(Ridge Regression,岭回归)
问题: 最小二乘法当数据集合存在多重线性(病态矩阵)时,计算出的
w
w
w 数值很大,使得在线性模型
y
=
w
T
x
y=w^Tx
y=wTx 中,当输入变量
x
x
x 有微小变动时,输出变量
y
y
y 就会很大。即该线性回归模型对
x
x
x 的噪音很敏感。
解决思路: 限制参数
w
w
w 的大小,使其不会变的很大,减少对噪音的敏感度。在原来回归模型的基础上加一个惩罚项,称为正则化(Regularization)。
1. LASSO(Least absolute shrinkage and selection operator)回归: 惩罚项是
w
w
w 的
l
1
l_1
l1 范数,如下式。
J
(
w
)
=
(
y
−
X
w
)
2
+
λ
∣
∣
w
∣
∣
1
(
1
)
J(w)=(y-Xw)^2+\lambda||w||_1 \ \ \ \ \ \ \ (1)
J(w)=(y−Xw)2+λ∣∣w∣∣1 (1)
2. 岭回归: 惩罚项是
w
w
w 的
l
2
l_2
l2 范数,如下式。
J
(
w
)
=
(
y
−
X
w
)
2
+
λ
∣
∣
w
∣
∣
2
2
(
2
)
J(w)=(y-Xw)^2+\lambda||w||_2^2 \ \ \ \ \ \ \ (2)
J(w)=(y−Xw)2+λ∣∣w∣∣22 (2)
将
J
(
w
)
J(w)
J(w) 对
w
w
w 求导数等于0,得到
J
′
(
w
)
=
−
2
X
T
(
y
−
X
w
)
+
2
λ
w
=
0
(
3
)
J'(w)=-2X^T(y-Xw)+2\lambda w=0 \ \ \ \ \ \ \ (3)
J′(w)=−2XT(y−Xw)+2λw=0 (3)
解得
w
=
(
X
T
X
+
λ
I
)
−
1
X
T
y
(
4
)
w=(X^TX+\lambda I)^{-1}X^Ty \ \ \ \ \ \ \ (4)
w=(XTX+λI)−1XTy (4)
KRR(Kernal Ridge Regression,核岭回归)
改进的问题: RR只能处理线性数据,引入核函数后,能够处理非线性数据,将数据映射到某一个核空间,使得数据在这个核空间上线性可分。
推导过程: 由于公式(4)的有一项X没有办法写成内积的形式,因此使用矩阵求逆引理(Matrix inversion lemma)推导得到如下公式。
w
=
X
T
(
X
X
T
+
λ
I
N
)
−
1
y
(
5
)
w=X^T(XX^T+\lambda I_N)^{-1}y \ \ \ \ \ \ \ (5)
w=XT(XXT+λIN)−1y (5)
下面将其kernal化,令
α
=
(
K
+
λ
I
N
)
−
1
y
\alpha = (K+ \lambda I_N)^{-1}y
α=(K+λIN)−1y,其中
K
=
X
X
T
K=XX^T
K=XXT,可写为
w
=
X
T
α
=
∑
i
=
1
N
α
i
x
i
w=X^T\alpha=\sum_{i=1}^N \alpha _i x_i
w=XTα=∑i=1Nαixi,于是,对于一个新样本
x
∗
x^*
x∗,可通过下式预测
y
∗
y^*
y∗。
y
∗
=
w
T
x
∗
=
∑
i
=
1
N
α
i
x
i
T
x
∗
=
∑
i
=
1
N
α
i
k
(
x
∗
,
x
i
)
(
6
)
y^*=w^Tx^*=\sum_{i=1}^N\alpha_ix_i^Tx^*=\sum_{i=1}^N\alpha_ik(x^*,x_i) \ \ \ \ \ \ \ (6)
y∗=wTx∗=i=1∑NαixiTx∗=i=1∑Nαik(x∗,xi) (6)
SVR(Support Vector Regression,支持向量回归)
SVR由SVM引出,和SVM不同的是,在SVR中,将虚边界外部和边界上的点作为支持向量(SVM将虚边界内部和边界上的点作为支持向量)。回归函数设为
f
(
x
)
=
w
T
x
+
b
f(x)=w^Tx+b
f(x)=wTx+b,拟合精度为
ε
\varepsilon
ε ,得到下式。
考虑到SVM中线性不可分的情形,引入松弛因子
ξ
i
≥
0
\xi_i\geq0
ξi≥0,
ξ
i
∗
≥
0
\xi^*_i\geq0
ξi∗≥0,得到如下最优化问题。
其中,
ε
\varepsilon
ε–insensitive loss function
∣
ξ
∣
ε
|\xi|_\varepsilon
∣ξ∣ε为:
引入Lagrange乘数,经过一系列求解与对偶(具体可见Paper),求得线性拟合函数如下式,其中,
α
i
\alpha_i
αi,
α
i
∗
\alpha_i^*
αi∗ 为Lagrange乘数。
f
(
x
)
=
w
T
x
+
b
=
∑
i
=
1
n
(
α
i
−
α
i
∗
)
(
x
⋅
x
i
)
+
b
(
7
)
f(x)=w^Tx+b=\sum_{i=1}^{n}(\alpha_i-\alpha_i^*)(x\cdot x_i)+b \ \ \ \ \ \ \ (7)
f(x)=wTx+b=i=1∑n(αi−αi∗)(x⋅xi)+b (7)
将其Kernal化之后,对于一个新样本
x
∗
x^*
x∗,可如下预测
y
∗
y^*
y∗,得到下式。
y
∗
=
w
T
x
∗
+
b
=
∑
i
=
1
n
(
α
i
−
α
i
∗
)
k
(
x
∗
,
x
i
)
+
b
(
8
)
y^*=w^Tx^*+b=\sum_{i=1}^{n}(\alpha_i-\alpha_i^*)k(x^*, x_i)+b \ \ \ \ \ \ \ (8)
y∗=wTx∗+b=i=1∑n(αi−αi∗)k(x∗,xi)+b (8)
KRR与SVR比较
相同点: 核岭回归(KRR)与支持向量回归(SVR)都可以利用核技巧来学习非线性函数,也就是说, 它们可以在相应的核诱导出的空间中学习一个线性函数。而该核诱导空间的线性函数对应于原始空间的非线性函数。而且,二者都包含
l
2
l_2
l2正则项。
不同点: 二者的损失函数不同(KRR为
(
y
−
X
w
)
2
(y-Xw)^2
(y−Xw)2,SVR为
C
∑
i
=
1
l
(
ξ
i
+
ξ
i
∗
)
C\sum_{i=1}^{l}(\xi_i+\xi_i^*)
C∑i=1l(ξi+ξi∗))。与SVR相比较, KRR的拟合可以用闭合形式(closed-form)完成,并且在中等规模的数据集上通常更快。 另一方面,KRR学习到的模型是非稀疏的,所以在预测阶段KRR比SVR要慢。
详细内容可见操作案例。
常用的核函数