By Kubi Code
Source: http://kubicode.me/2015/08/19/Machine%20Learning/Linear-Regression/
Linear Regression
现在相对比于之前的Perceptron Learning Algorithm算法,假如我们现在时的问题不是解决是否发行用卡,而是该发多少额度的问题
也就是输出空间属于一个实数,那么就需要一个回归算法来解决该问题!
那么我们其实可以直接使用特征属性与权重的加权求和来表示需要发的信用额度即可(与PLA
类似,但是没有激活函数:二值判断逆函数)
上图中表示的就是为线性回归(Linear Regression
),其中wTx
就是表示为全部的假设空间(hypothesis set
)
如果当前的特征是一维的,那么这里的hypothesis set
就表示一条线,(因为总体的特征向量里面还有一个常数值)
如果当前的特征是二维的,那么这里的hypothesis set
就一个平面
当然特征更加多得话,最终hypothesis set
表示一个超平面
其中图上红色的部分叫做误差(视频里面叫做余数),那么回归分析的目标就是将所有的误差降到最小越好
这里使用平方误差来衡量整体的误差
那么从机器学习的角度来说,这里的误差就可以看做(下面这个表达式就很熟悉了)
相应的
表示这个分类器在未来未训练数据集中产生的误差是多少
那么现在的线性回归的问题就是转为将Ein(w)
优化到最小。
Ein(w)最小化
- 向量内积可交换,将
wTx
转为xTw
- 将连加转为向量形式的长度(应该是二范数)
- 将
w
单独提出来(相当于隔离出了一个特征属性向量的矩阵) - 最终使用缩写来进行整理
到了这一步我们可以发现Ein(w)
只与w
有关,那么他们的关系图是
可以发现Ein(w)
是连续可导,还有它是凸的
那么用Ein(w)
对w
求偏导即可求导最优值(梯度为0的位置)
这样现在问题又转为了 求
进一步将问题转换为
式子中XTX
和XTy
都是已知的,唯一不知道的就是w
,这样就变为了一个一次的方程式
所以这里的核心就是计算虚假的反矩阵(pseudo-inverse
),听林老师说这个的计算很多工具都是由现成的^_^
刚刚求
Ein(w)
最小化的过程中看似直接用公式代替可到,但是其中的pseudo-inverse
计算起来麻烦,最终在计算的时候还是需要迭代,然后会触发Ein(w)
和Eout(w)
的变化,是一个深度隐含的学习过程(这种是叫做Analytic Solution
)。
Learning happened
那么该如果保证Eout
可以是小的呢?
我们先来看一下Ein
的平均
其中nosie level
表示样本中噪声的一个情况,d+1
表示模型的自由度,N
表示样本的容量
其中单独表示Ein(w)
的话为
这样就形成了两项1-XX+
和y
,也就是相当于将输入喝输出进行了一个分离,其中XX+
叫做hat matrix
关于这个hat matrix
,它的意义是这样纸的
- 红色区块表示向量
X
的一个扩散,而y^
就是落在这个空间上 - 目标就是求
y-y^
的最小化,也就是图种的绿色那条线(y^
)向下投影的线 H
就是表示这个空间上y
到y^
的一个投影I-H
就是表示误差部分y-y^
相应的会有trace(I-H)=N-(d+1)
- 其中如果
f(x)
为目标函数,那么目标值y
就相当于在f(x)
上添加噪声 - 然后这个噪声通过
I-H
就可以转为y-y^
现在对噪声作评价的话,那么就可以得到
此时
这两个式子哲学上的意思是Ein
的平均是可以看到的,所以当存在噪声的时候看到的线会偏向于噪声方向,而在Eout
的平均是未知的,比最好的那个线还要向右边偏一点(没听懂-_-)
他们俩会形成如下的关系线
它描述的是当前的样本量与平均的Ein
和Eout
的关系,随着样本量N
的增长,最终会趋向于nosie level
那么就可以得到
说明N
足够大,然后他的noise level
够小时,说明了Learning happened
总结
- 线性回归最终求出的是一个加权求和的值.
- 线性回归的
Ein
的采用的是最小平方误差. - 在计算
Ein
的最小化时,可以将问题转为矩阵之后就逆矩阵相关即可. - 通过
Ein
平均的计算,说明了Learning happened
. - 其实线性回归去坐分类问题也是可以的^_^,第9课第4个小视频.
参考
- 《台湾国立大学-机器学习基石》第九讲
配图均来自《台湾国立大学-机器学习基石》