rambo

核方法与非线性识别能力

机器学习领域,学习问题实际情况往往是非线性的,所谓的线性较少存在。但是由于线性方法的大量存在,那么就不可避免的涉及到一个问题,如何将这些线性的学习方法应用在非线性问题上或者说获得非线性识别能力?

1
Fig.1 映射函数 \Phi 将数据映射到一个高维空间中,使得非线性的模式线性可分。核方法计算输入向量与训练样本间的内积表示数据点之间的相似程度。

考虑嵌入映射(embedding map):\Phi:x\in R^{n}\mapsto \Phi(x)\in H\subseteq R^{N} 映射到高维空间,这个空间可以是有限维空间,也可以是无穷维空间。它是一个Hilbert空间。任何核方法包括:1)映射方法(embed the data into a space where the patterns can be discovered as linear relations)  2)学习算法来发掘映射空间中的线性模式 (Represent linear patterns efficiently in high-dimensional space to ensure adequate representational power)

实际上,svm核方法升维,使得在高维上的线性切割,投射到实际空间就变为非线性的切割;lr通过增加大量非线性特征,使得获得非线性切割能力;深度学习通过二层以上神经网络获得非线性切割。核心都需要有非线性识别能力。

Least Squares Linear Regression

首先让我们抛开所谓的核方法,而从least squares linear regression(最小二乘线性回归)这个通俗易懂的问题切入。

给定训练集S=\{(x_{1},y_{1}),..., (x_{l},y_{l})\}x_{i}\in X=R^n,y_{i}\in Y=\{1,-1\} \in R,i=1,...,l

n维输入向量x=(x_1,x_2,...,x_n) ,需要找出一个决策函数,推断输入x  相对应的输出值y 。最简单的方法就是通过一个线性函数g(x)x映射到y

g(x)=<w,x>=w^{'}x={\sum_{i=1}^{n} }{w_{i}x_{i}},要求f((x,y))=\lvert{y-g(x)}\rvert=\lvert{y-<w,x>}\rvert \approx 0

2

Fig.2. A one-dimensional n=1 linear regression problem.

X_{l\times n}w_{n\times 1}=y_{l\times 1},X=[x{_1}^{'};...;x{_l}^{'}],y=(y_1,...,y_{l})^{'}

当存储数据的矩阵X的行维数(即数据点的个数)小于数据点的维数时,w有无穷多个解(describe the data exactly),此时选择的标准是取最小范数的w。当X的行维数大于列维数时,且数据点存在噪声,此时不存在准确的模式(exact pattern),此时应使误差最小。一般情况下处理有噪声的小数据集,我们应选择w,使误差最小及其范数最小。

\xi=(y-g(x))为误差,f((x,y))=\lvert{y-g(x)}\rvert=\lvert{\xi} \rvert,寻找一个映射函数使得训练误差最小。通常选择误差的平方和\rm{L}(g,S)=\rm{L}(w,S)={\sum_{i=1}^{l} (y_{i}-g((x_{i}))^2}=\sum_{i=1}^{l}\xi_{i}^2,寻找w\in W使得训练误差总和(collective loss)最小。

\xi=y-Xw ,损失函数{\rm{L}}(w,S)=\lVert\xi\rVert_{2}^{2}=(y-Xw)^{'}(y-Xw) ,求取损失函数对参数w的偏导并使其为0向量。

\frac{\partial \rm{L}(w,S)}{\partial{w}}=-2X^{'}y+2X^{'}Xw=0从而有X^{'}y=X^{'}Xw(normal equations)(1)

X^{'}X的逆存在时,该最小二乘问题的解为:w=(X^{'}X)^{-1}X^{'}y

X^{'}Xn\times n的矩阵,解一个n\times n的线性方程组时间复杂度为O(n^{3})。对于新的输入测试数据点,其预测输出为g(x)=<w,x>=w^{'}x

Remark1: 对偶表达形式    

如果X^{'}X的逆存在,w可以表示为训练数据点的线性组合,如下所示

w=(X^{'}X)^{-1}X^{'}y=X^{'}X(X^{'}X)^{-2}X^{'}y=X^{'}\alpha=\sum_{i=1}^{l}\alpha_{i}x_{i}

Remark2: 伪逆(Pseudo-inverse)

如果X^{'}X奇异(singular),则寻找满足式1)的最小范数的w。并在范数值大小与损失函数间进行trade-off,这个方法称为岭回归(Ridge Regression)。

Ridge Regression

Definition:min_{w} L_{\lambda} {(w,S)}=min_{w}\lambda\lVert w \rVert^{2}+\sum_{i=1}^{l}(y_{i}-g(x_{i}))^{2}

\lambda为正数,通过控制\lambda的大小调整范数大小与损失函数间的tradeoff。

Primal Solution:(原始解)

同样对代价函数求取参数向量w的偏导并使其为0,可以得到

X^{'}y=X^{'}Xw+\lambda w=(X^{'}X+\lambda I_{n})w   I_{n}n\times n的单位阵

显然X^{'}X+\lambda I_{n}可逆当\lambda>0,该方程解为

w=(X^{'}X+\lambda I_{n})^{-1}X^{'}y

解这个有个n未知数,n个等式的线性方程组时间复杂度为O(n^{3})

g(x)=<w,x>=y^{'}X(X^{'}X+\lambda I_{n})^{-1} x

g(x)需要n次相乘,复杂度为O(n)

 Dual Solution:(对偶解)

w=\lambda^{-1}X^{'}(y-Xw)=X^{'}\alpha=\sum_{i=1}^{l}\alpha_{i}x_{i} where \alpha=\lambda^{-1}(y-Xw)

\alpha=\lambda^{-1}(y-Xw)

\Rightarrow \lambda \alpha=(y-XX^{'}\alpha) \Rightarrow (XX^{'}+\lambda I_{l})\alpha=y

\Rightarrow \alpha=(G+\lambda I_{l})^{-1}y

where G=XX^{'} ,G_{ij}=<x_{i},x_{j}>

解这个有l未知数,l个等式的线性方程组时间复杂度为O(l^{3})

g(x)=<w,x>=<\sum_{i=1}^{l}\alpha_{i}x_{i} ,x>=\sum_{i=1}^{l}\alpha_{i}<x_{i},x>= y^{'}(G+\lambda I_{l})^{-1}k

where k_{i}=<x_{i},x>g(x)需要次nl相乘,复杂度为O(nl) 。(more costly)

所以!!包含在训练样本中的信息可以通过训练样本对的内积获得。G=XX^{'}G_{ij}=<x_{i},x_{j}>

当输入一个新的样本x,预测函数所需要的信息正是训练样本与x_{i},(i=1,...,l)的内积。

G_{l\times l}矩阵称为Gram matrix,(G+\lambda I_{l})_{l\times l}。显然当训练样本的特征维数n大于训练样本数l时,对偶解法更为高效。

结论:岭回归算法只需要求解数据点之间的内积就可以求解。It’s amazing!