1.
训练数据 ( X , y ) (X,y) (X,y),其中X是一个 N ∗ d N*d N∗d的矩阵,表示训练数据有 d d d个特征,一共有 N N N个训练数据点, y y y是一个长度为 N N N的向量。
X ( i ) : X^{(i)}: X(i): \quad 表示第 i i i个数据点( X 的 第 i 行 X的第i行 X的第i行)
X j : X_j: Xj: \quad 表示 X 的 第 j 列 X的第j列 X的第j列
X j ( i ) : X_{j}^{(i)}: Xj(i): \quad 则表示 X X X的第 i i i行 j j j列的元素
y ( i ) : y^{(i)}: y(i): \quad 就是 X ( i ) X^{(i)} X(i)所对应的值
2.
对于线性回归模型,我们希望训练出一个模型 f ( x ) = w ⋅ x = x T w f(x) = w\cdot x = x^T w f(x)=w⋅x=xTw ,其中(假设我们使用平方距离作为代价函数),
w = a r g   m i n w ∑ i N ( y ( i ) − X ( i ) w ) 2 w = arg\,min_w \sum_{i}^{N} (y^{(i)} - X^{(i)} w)^2 w=argminw∑iN(y(i)−X(i)w)2
通过对代价函数 ∑ i N ( y ( i ) − X ( i ) w ) 2 \sum_{i}^{N} (y^{(i)} - X^{(i)} w)^2 ∑iN(y(i)−X(i)w)2关于 w w w求导,并将导数设为 0 0 0,可以解得 w w w;
因为,每一个特征 X j X_j Xj都对应一个权重参数 w j w_j wj,所以要对每一个 w j w_j wj求导:
∂ ∂ w j ∑ i N ( y ( i ) − X ( i ) w ) 2 \quad\quad\quad\frac{\partial}{\partial w_j}\sum_{i}^{N} (y^{(i)} - X^{(i)} w)^2 ∂wj∂∑iN(y(i)−X(i)w)2
= ∑ i N 2 ( y ( i ) − X ( i ) w ) ( − X j ( i ) ) = 0 \quad\quad=\sum_{i}^{N}2(y^{(i)} - X^{(i)} w)(-X_{j}^{(i)})=0 =∑iN2(y(i)−X(i)w)(−Xj(i))=0
∑ i N ( y ( i ) − X ( i ) w ) X j ( i ) = 0 ( 1 ) \quad\quad\quad\sum_{i}^{N}(y^{(i)} - X^{(i)} w)X_{j}^{(i)}=0\quad\quad\quad\quad(1) ∑iN(y(i)−X(i)w)Xj(i)=0(1)
现在,我们将求和,转换成矩阵乘法,求和是从i到N,那么 ( y ( i ) − X ( i ) w ) (y^{(i)} - X^{(i)} w) (y(i)−X(i)w)就可以写成向量 ( y − X w ) (y-Xw) (y−Xw), X j ( i ) X_{j}^{(i)} Xj(i)就变成 X j X_{j} Xj,这样一来,(1)式就可以写成:
( y − X w ) T X j = 0 ( 2 ) (y- Xw)^TX_{j}=0\quad\quad\quad\quad(2) (y−Xw)TXj=0(2)
对于每个 w j w_j wj,都有一个这样的限定条件,一共有 d d d个,所以(2)式又可写成:
( y − X w ) T X = 0 ( 3 ) (y- Xw)^TX=0\quad\quad\quad\quad(3) (y−Xw)TX=0(3)
由(3)式可以求解得到 w w w,
(
y
−
X
w
)
T
X
=
0
\quad\quad\quad\quad(y- Xw)^TX=0
(y−Xw)TX=0
(
y
T
−
(
X
w
)
T
)
X
=
0
\quad\quad\quad(y^T-(Xw)^T)X=0
(yT−(Xw)T)X=0
(
y
T
−
w
T
X
T
)
X
=
0
\quad\quad\quad(y^T-w^TX^T)X=0
(yT−wTXT)X=0
y
T
X
−
w
T
X
T
X
=
0
\quad\quad\quad y^TX-w^TX^TX=0
yTX−wTXTX=0
y
T
X
=
w
T
X
T
X
\quad\quad\quad\quad y^TX=w^TX^TX
yTX=wTXTX
(
y
T
X
)
T
=
(
w
T
X
T
X
)
T
\quad\quad (y^TX)^T=(w^TX^TX)^T
(yTX)T=(wTXTX)T
X
T
y
=
X
T
X
w
\quad\quad\quad\quad X^Ty=X^TXw
XTy=XTXw
(
X
T
X
)
−
1
X
T
y
=
w
\quad\quad\quad(X^TX)^{-1}X^Ty=w
(XTX)−1XTy=w
3.
将其代入 f ( x ) f(x) f(x),可以得到:
f
(
x
)
=
w
⋅
x
=
x
T
w
f(x) = w\cdot x = x^T w
f(x)=w⋅x=xTw
=
x
T
(
X
T
X
)
−
1
X
T
y
\quad\quad=x^T(X^TX)^{-1}X^Ty
=xT(XTX)−1XTy
=
x
T
X
T
(
X
T
)
−
1
(
X
T
X
)
−
1
X
T
y
\quad\quad=x^TX^T(X^T)^{-1}(X^TX)^{-1}X^Ty
=xTXT(XT)−1(XTX)−1XTy
=
x
T
X
T
(
X
T
)
−
1
X
−
1
(
X
T
)
−
1
X
T
y
\quad\quad=x^TX^T(X^T)^{-1}X^{-1}(X^T)^{-1}X^Ty
=xTXT(XT)−1X−1(XT)−1XTy
=
x
T
X
T
(
X
T
)
−
1
X
−
1
y
\quad\quad=x^TX^T(X^T)^{-1}X^{-1}y
=xTXT(XT)−1X−1y
=
x
T
X
T
(
X
X
T
)
−
1
y
(
4
)
\quad\quad=x^TX^T(XX^T)^{-1}y\quad\quad\quad(4)
=xTXT(XXT)−1y(4)
f(x)是线性回归输出的预测值,是一个数,
x
:
d
×
1
;
X
:
N
×
d
X
X
T
:
N
×
N
y
:
N
×
1
x:d\times 1;\quad\quad X:N\times d\quad\quad XX^T:N\times N\quad\quad y:N\times 1
x:d×1;X:N×dXXT:N×Ny:N×1
x T : 1 × d X T : d × N X ( X T ) − 1 : N × N y : N × 1 x^T:1\times d\quad\quad X^T:d\times N\quad\quad X(X^T)^{-1}:N\times N\quad\quad y:N\times 1 xT:1×dXT:d×NX(XT)−1:N×Ny:N×1
令 α = ( X X T ) − 1 y \alpha=(XX^T)^{-1}y α=(XXT)−1y, (4)可以写成,
f ( x ) = x T X T α \quad\quad f(x)=x^TX^T\alpha f(x)=xTXTα
现在,把矩阵乘法改成求和的形式:
f
(
x
)
=
x
T
X
T
α
\quad\quad f(x)=x^TX^T\alpha
f(x)=xTXTα
=
∑
i
N
x
T
X
(
i
)
T
α
i
\quad\quad\quad\quad =\sum_{i}^{N}x^TX^{{(i)}^{T}}\alpha_i
=∑iNxTX(i)Tαi
=
∑
i
N
α
i
X
(
i
)
T
⋅
x
\quad\quad\quad\quad =\sum_{i}^{N}\alpha_iX^{{(i)}^{T}}\cdot x
=∑iNαiX(i)T⋅x
=
∑
i
N
α
i
k
(
X
(
i
)
T
,
x
)
\quad\quad\quad\quad =\sum_{i}^{N}\alpha_ik(X^{{(i)}^{T}},x)
=∑iNαik(X(i)T,x)
问题,两个样本点积的形式,就一定能写成核函数么?
在机器学习中,我们要用到内积运算。而在映射后的高维空间中,内积往往是很不好求解的。所以,我们能不能找到在低维空间中的某个运算,恰好等于高维空间中的内积运算呢?
是不是理解成,即便我们没有将自己的数据向高维去映射,但只对于我们维度很高的数据,为了简化其运算,也可以将其写成内积的形式。
换句话说,核函数就是低维空间中的内积的某个函数。
当我们对新的样本点进行数据分类的时候,我们可以通过判断这个样本向量和我们求得的分割超平面的法向量w的内积来计算,二者的夹角若是小于90度,说明分类正确,夹角若是大于90度,说明分类错误。
而之前我们是怎样判断一个样本分类正确与否的呢?我们是先初始化一个分割超平面,然后分别把我们的样本点带入到超平面的方程,结果值大于0的分为一类,小于零的分为一类,
之前是,给定训练数据,找一条直线去拟合这些数据,一个样本数据有 x 1 , x 2 , . . . x n x_1,x_2,...x_n x1,x2,...xn,n个特征,我们给每个特征分别赋以n个权重 w 1 , w 2 , . . . w n w_1,w_2,...w_n w1,w2,...wn,有了权重和特征的线性组合 f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w n x n f(x)=w_1x_1+w_2x_2+...+w_nx_n f(x)=w1x1+w2x2+...+wnxn,这样我们就可以对新的数据进心预测。
现在是,我们通过对 f ( x ) = w ⋅ x f(x)=w\cdot x f(x)=w⋅x的变形,得到 f ( x ) = ∑ i N α i k ( X ( i ) T , x ) f(x) =\sum_{i}^{N}\alpha_ik(X^{{(i)}^{T}},x) f(x)=∑iNαik(X(i)T,x)
4.
α
=
(
X
X
T
)
−
1
y
\alpha=(XX^T)^{-1}y
α=(XXT)−1y,
K
=
(
X
X
T
)
−
1
K=(XX^T)^{-1}
K=(XXT)−1,
那,
K
j
(
i
)
=
X
(
i
)
X
(
j
)
T
K_{j}^{(i)}=X^{(i)}X^{{(j)}^T}
Kj(i)=X(i)X(j)T
K
j
(
i
)
=
X
(
i
)
T
⋅
X
(
j
)
T
\quad K_{j}^{(i)}=X^{{(i)}^T}\cdot X^{{(j)}^T}
Kj(i)=X(i)T⋅X(j)T
K
j
(
i
)
=
k
(
X
(
i
)
T
,
X
(
j
)
T
)
\quad K_{j}^{(i)}=k(X^{{(i)}^T}, X^{{(j)}^T})
Kj(i)=k(X(i)T,X(j)T)
这样,通过核函数可以计算出 K K K,进而得到 α \alpha α,然后利用核函数版的模型
这样,通过核函数可以计算出 ,进而得到 ,然后使用核函数版的模型 f ( x ) = ∑ i N α i k ( X ( i ) T , x ) f(x) =\sum_{i}^{N}\alpha_ik(X^{{(i)}^{T}},x) f(x)=∑iNαik(X(i)T,x) ,就可以在线性回归模型中,利用核函数向其它空间映射(在不实际计算映射函数的情况下)处理线性不可分的数据了。
参考:
作者:行为流
链接:https://www.zhihu.com/question/24627666/answer/261691223
来源:知乎