广义线性模型之线性回归(一)

2021年9月30日 30点热度 0条评论 来源: chemical_romance

注:本文若没特殊声明,所有截图均来自cs229 Machine Learning Lecture notes 1


监督学习中,最常见的是线性回归和分类问题。然而,我们熟知的linear regression和logistic regression这两个机器学习算法其实只是一个更广泛的模型family的特殊特殊情况——广义线性模型(Generalized Linear Models)。本系列分三部分,首先介绍linear regression,再介绍logistic regression,最后点出广义线性模型,并介绍softmax regression。


线性回归中的cost function定义如下(它被称为最小二乘代价):

 
其中
 

机器学习算法就是要找出一个theta使cost function 最小。下面分别使用两种不同的方法求解这个模型:梯度下降 和 normal equation。


1 梯度下降



使用梯度下降更新模型,先求J对theta的偏倒

 

于是若只有一个样本时,theta的更新公式为(LMS update rule)

 
其中alpha为学习速率(learning rate)。

如果一次参数更新用到整个训练集,方法则被称为批次梯度下降(batch gradient descent),算法如下:


 
当然也可以一次只使用一个样本更新参数,此时则有个很不错的名字:随机梯度下降(stochastic gradient descent)。算法如下:
 
那上面时候用随机梯度下降SGD,什么时候用随机梯度下降BGD?
1、若cost function是凸函数,则当样本数不多时,BGD是很有效的。而SGD可能会一直在全局最优解旁边打转,却始终取不到它。
2、当样本数很大时,一次gradient descent需要动用整个样本集代价是很大的。因此可以使用SGD。而且使用SGD还会有附加的好处。
3、若cost function是非凸函数,则BGD容易陷入局部最优解。而SGD不容易出现这样的情况。


2 Normal equation


由于该cost function是凸函数,因此可以直接对其求导,令导数等于0,得到的theta即为所求值。过程如下,

 
从而得到theta为,
 
一个很漂亮的公式,但其中涉及到矩阵的求逆。若feature向量为n维,则normal equation的计算复杂度为O(max{n^3,mn^2})。不幸的是上式中求逆的部分不一定是可逆的,一个解决办法是如下改动式子:
 from [2]
其中I为n×n的单位矩阵,其中n为feature个数。因此,严格来讲应该是(n+1)×(n+1)。

有趣的是这个式子刚好对应规则化(regularized)的线性回归,其中delta^2对应规则化参数lambda。




最后,我们可以看到最小二乘其实对应一个很漂亮的概率模型。若假设预测值与真实值间的误差epsilon服从高斯分布N(0,delta^2),则有


 
对似然函数取log并求导得
 

可以看到最大化 l 即最小化我们的cost function。 

参考文献:

[1] cs229 Machine Learning Lecture notes 1: "Supervised Learning, Discriminative Algorithms"

[2] CPSC340:Ridge regression and regularization

    原文作者:chemical_romance
    原文地址: https://blog.csdn.net/u013166160/article/details/19125635
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。