将线性回归模型处理成核函数版本

1.

训练数据 ( X , y ) (X,y) (X,y),其中X是一个 N ∗ d N*d Nd的矩阵,表示训练数据有 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行 Xi)

X j : X_j: Xj: \quad 表示 X 的 第 j 列 X的第j列 Xj

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)=wx=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=argminwiN(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 wjiN(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) (yXw) 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) (yXw)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) (yXw)TX=0(3)

由(3)式可以求解得到 w w w,

( y − X w ) T X = 0 \quad\quad\quad\quad(y- Xw)^TX=0 (yXw)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 (yTwTXT)X=0
y T X − w T X T X = 0 \quad\quad\quad y^TX-w^TX^TX=0 yTXwTXTX=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)=wx=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)1X1(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)1X1y
= 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)Tx
= ∑ 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)=wx的变形,得到 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)TX(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
来源:知乎

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值