ML学习心得(2)----Linear Regression 和Regularization

0、前言

接下来打算按照Andrew公开课视频以及Pattern Recognition and Machine Learning(PRML)书中的内容,总结下学到的东西。本文主要讲的是监督学习中最常见的线性回归和逻辑回归算法,以及他们的regularization。在我看来Andrew的视频更偏向与实际的使用和实现,用最简单的方式告诉你是怎么去完成实现的,而PRML更多的是数学公式和理论推导,所以两者是很好的补充关系,就是PRML中的推导太多有时候很难静下心来细细的看。

1、Linear Regression的基本公式

这里的线性并不是单纯的指2维空间上的直线,而是指拟合曲线与特征值之间线性的关系。形如下面的公式:


这里是D个特征分别记为x1……,在PRML中把这称为basis function(这里值得一提的是,它指的就是你要在怎么样的一个空间表示这些实物,比如你有很多球,那么我们它的颜色,大小,重量来形容他,那这些其实就是basis function),而w是我们要求的参数。我们可以得到这个预测的值和实际值t之间的关系:


这里的服从高斯分布,可以得到:


 这里的t是一个观测值,当我们取N个观测值的时候,就可以得到其似然函数:


根据PRML书中公式3.11的推导可以得到:

其中

有没有觉得很眼熟,没错,这就是Andrew一开始就提出来的cost function也是最小二乘法的核心公式,这里我们可以通过概率的推导得到。

而我们的目的就是最小化这个值,从而得到最优的Regression曲线。


2、Gradient descent梯度下降

在这里Andrew用的是Batch梯度下降算法使得算法收到到达最优解。让我们一起看看具体是怎么实现的,这里盗用下他视频的图片

对cost fuction 做参数theta的求导(这里和上文的公式不太一样,我们这里回归Andrew视频中的公式)得到下图所示的公式


从上面可以看到,有m个训练集合,n个basis fuction 也就是特征。在每次一个循环求解参数theta的时候,都会用到训练集中所有的数。这里值得一提的是,我们每次更新完所有的theta才进行下一个循环,在当前循环新求出的theta1值,并不会对theta2值有影响。

相对应的每次循环使用的训练集中的数,我们有stochastic gradient descent和mini-batch gradient descent算法。相比较而言,更容易得到全局最优解,而不是陷入局部最优解中。

这里还涉及到了学习步长a的选择,a选大了,会出现无法收敛的情况,a选小了,会使得我们的算法收敛的很慢,那么a怎么去选择呢?我们可以以3为倍数对a进行选择。比如a选0.01,0.03,0.1,0.3,1……

3、Regularization

为什么需要Regularization呢?Regularization是什么呢?

首先如果我们不Regularization的话,会出现over-fitting的情况,也就是我在上篇博客中抛硬币所说那样,因为我们把普遍存在的误差也就是不确定因素,也预测了那么势必会让我们的模型出现误差,换句话说,我们过多的让basis function影响我们的预测结果了。导致的最直接的现象就是,我们的Regression在训练集上有很优秀的表现,但是在cross-validation上的表现不好,也就是bias-variance,这点会在后面的篇章中继续讨论。用图直观的表示就是:


最后一张图,就是使得我们的cost function很小。那么为什么Regularization能解决这个问题,其实也就是它是什么?

其实就是在我们的cost function后面加上我们的参数:


这样一来,我们就限制了theta j的大小,而限制了theta j的大小,就限制了它所对应的basis function  x j对于这个模型的影响,从而避免了over-fitting

4、Normal Equation


上述公式就是可以直接通过训练模型X和对应的label Y得到我们要的参数矩阵,这个公式在couresa上的视频上没有听到,在PRML公式3.14和网易公开课上的视频分别用概率和线性代数的方式进行了证明,有兴趣的同学可以去看看。

但是使用这种方法求解有些问题

1、导致信息丢失。假设X中的某个小数值刚好能在计算机中表示,但是X^T*X之后,就会因为超出精度而丢失。

2、X^T*X的条件数是X的平方。系统的稳定性变差。应对的方式是对数据进行中心化处理,从而增加基向量的正交性。

这里在matlab实现的时候最好用pinv而不是inv。


Reference:

Andrew的公开课视频

PRML第三章内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值