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

注:本文若没特殊声明,所有截图均来自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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值