机器学习(一):线性回归

机器学习回顾以及学习笔记。

        

一、线性回归(LinearRegression)

阅读斯坦福的机器学习教材,首先就是线性回归,通过线性回归可以很直接的对机器学习有一个感性的认识。

这一部分的目标是熟悉目标函数,计算梯度和通过调参对其进行优化。这些都将贯穿之后大多数的更加复杂的算法。

我们的目标是通过一个n维的输入向量X来估计输出y。所以,我们的目标是寻找到一个确定的函数,使得来自训练集的。从直觉上来讲,如果我们找到这样一个h(x),使得估计时的误差小到一个可接受的范围,那么我们就可以认为这个h(x)是一个可接受的预测函数,我们也就可以使用这个函数,用新的输入X来估计对应的y。

那么如何找到这样的h(x)呢?在线性回归中,我们仅考虑输入变量的一次项,如果将对应变量的参数设为,那么,我们使用的线性函数h(x)就可以表示为:


于是,问题转化为如何选择合适的向量使得得到的h(x)估计到的y与真实的y之间的误差最小。通过最小二乘法,我们可以将这个误差描述为的函数:


这个描述误差的关于的函数就是损耗函数(cost function)这个以后会以不同的形式多次出现。

现在的问题又到了如何选择使得这个cost function最小了。这时,就要请出著名的梯度下降方法(gradient descent)。当然,今后有可能遇到cost function变化后,要使用梯度上升(gradient ascent)方法的时候。

从直觉上来讲,当求一个函数的最值时,首先想到的就是找其导数的零点。对应到这种多元函数的情况下,就是求其梯度。


对于单个梯度分量而言:



其中,为学习速度,也就是每次变换参数时的步长。

由于每次调整参数都要遍历全部的训练集,所以这个算法也称为Batch gradient descent。

对于训练集较大的情况,可以使用静态gradient descent。

此时,每次只考虑一个或较少个(例如10个)变量。

算法与之前几乎相同,虽然这样可能会使得不能保证每次迭代之后的cost function必定减小,但大大加快了计算的速度。

 

还有一种不需要迭代就可以获取最佳参数的方法,称为Normal equations。


下面是对其的推导:


最小化时得:



将左右两边向量化:



当数据量小的时候,这样算又快又准。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值