机器学习算法主要有2类:监督学习、无监督学习。前者是指训练样本是有标记的,需要学习的是模型与参数,使得预测值尽可能地接近真实值,典型代表为回归、分类,其中回归是指标记为连续数值(如考试分数),而分类则是指标记为离散值或类别标号(比如天气是多云还是小雨);后者是指训练样本是无标记的,需要学习出这些样本本身的联系或者逻辑关系、结构关系,典型代表为聚类。

如上所述,线性回归自然属于监督学习。线性回归就是给定输入样本:


(x 1 ,y 1 ),(x 2 ,y 2 ),(x 3 ,y 3 ),...,(x m ,y m ) 

训练出参数 θ,使得预测值 y ^  i =x i ∗θ  尽可能地接近 y i (i=1,2,3,...,m) 。假设:

X=[x 1 ,x 2 ,x 3 ,...,x m ] T ,Y=[y 1 ,y 2 ,y 3 ,...,y m ] T  

则参数 θ  应使得 X∗θ=Y  尽可能地成立。线性回归的形式为:



x i 0 ∗θ 0 +x i 1 ∗θ 1 +x i 2 ∗θ 2 +...+x i k ∗θ k =y i (i=1,2,3,...,m) 


而我们要训练的就是参数

θ=[θ 0 ,θ 1 ,θ 2 ,⋯,θ k ] 。

对于线性回归的参数最优化,一般采用均方误差最小化((Least Mean Square,LMS)的思想,即:


E=12m ∑ i=1 m (y ^  i −y i ) 2  


LMS的物理意义很好理解:试图找到一条由

θ=[θ 0 ,θ 1 ,θ 2 ,⋯,θ k ] 确定的直线,使得所有样本到此直线的欧氏距离最小,如下图所示。


mlp回归器 lms回归_mlp回归器


那么代价函数就可以写成:



J(θ)=12m ∑ i=1 m (y ^  i −y i ) 2 =12m ∑ i=1 m (x i ∗θ−y i ) 2  


优化目标为:



min θ J(θ) 


在求解优化函数时,可以用最小二乘参数估计。线性回归的代价函数是凸函数,可采用梯度下降法(会在以后说明),也可以用求导的方法,对

θ 求导,并使得



∂J(θ)∂θ 0  =1m ∑ i=1 m (x i ∗θ−y i )∗x i 0 =0 



∂J(θ)∂θ 1  =1m ∑ i=1 m (x i ∗θ−y i )∗x i 1 =0 



∂J(θ)∂θ 2  =1m ∑ i=1 m (x i ∗θ−y i )∗x i 2 =0 



⋮ 



∂J(θ)∂θ n  =1m ∑ i=1 m (x i ∗θ−y i )∗x i n =0 


综合上式可得到:



X T ∗(X∗θ−Y)=0 


经过一些矩阵运算,当

X T ∗X  为满秩矩阵时,可得到 θ 最优解的闭式解:



θ ^ =(X T ∗X) −1 ∗X T ∗Y 


而当

X T ∗X  不是满秩矩阵时,则需要对特征进行选择或者进行正则化。

其实在实际应用中,我从没用过线性回归,这是一个很简单的模型。
1)线性回归形式简单,只是属性的线性组合,而训练出的只是各个属性的权重值。
2)线性回归可解释性强,属性前的权重代表了此属性的重要程度,或对结果的影响程度。
但是简单并不意味着不重要。相反地,线性回归在机器学习算法中具备基础地位。
1)线性回归是以后学习其他复杂机器学习算法以及非线性模型的基础。
2)通过对线性回归引入层级结构、联系函数或进行高维映射,可以得到广义线性模型等。