AndrewNg - 线性回归【1】梯度下降

本文探讨了Andrew Ng提出的经典线性回归问题——预测房价。通过对房屋面积和房间数量等特征进行分析,采用梯度下降法来寻找最佳拟合参数θ,并介绍了批量梯度下降与随机梯度下降两种优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AndrewNg - 线性回归


经典的Ng房屋问题,给定数据集如下:

2014160024001416300033324400220369232540

xR2x(i)1表示房屋面积,x(i)2表示房间数量,首先我们会估计yx是一个线性函数:hθ(x)=θ(0)+θ(1)x1+θ(2)x2。其中θi为参数(也称为权重),为了更方便于表达,我们定义x0=1,所以有:
hθ(x)=i=1nθixi=θTx,

其中n为输入向量中特征个数(不包含x0)。那么对于给定的训练集,我们如何选择或学习得出θ?在这里我们选取的方法是让hθ(x)尽量的接近于y ,所以我们得到成本函数(cost function-最小二乘法)如下:
J(θ)=12i=1m(hθ(x(i))y(i))2

最小均方差算法( Least mean square)

我们的目标是选取可以使J(θ)最小的的θ。为了得到最终的θ,一般我们会给θ赋上初值,通过相关的算法对θ迭代求值,知道θ收敛。这里提及的是梯度下降法,迭代式如下:

θj:=θjαθjJ(θ).

当然,θ0,...,θn是同时迭代更新的。这里的α我们是用来控制学习速率的参数。当然写代码的时候式子中的偏导还得再求一下,为了计算方便起见,假设我们先只有一个样本(x,y),即J(θ)中的求和符号先忽略一下:
θjJ(θ)=θj12(hθ(x)y)2=(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(i=0nθixiy)=(hθ(x)y)xj

所以对于一个训练样本来说,迭代式会变成:
θj:=θj+α(y(i)hθ(x)(i))x(i)j.

要将上边的迭代式拓展到含m样本的训练集上,我们一般用到的有两种修改方法,其一如下:


Loopuntilconvergence:{θj:=θj+αi=1m(y(i)hθ(x)(i))x(i)j(for every j).}


很明显这个算法每一次的迭代都要遍历整个训练集,所以起名叫批量梯度下降。我们说沿着梯度方向总能够找到局部最优解(说明问题的优化与初值有关),而且我们这里的问题还是一个凸二次函数,说明它只有一个局部最优解就是全局最优解。

这里写图片描述

可以看到图中是初值为(48,30)时梯度下降法的迹。与批量梯度下降法对应,随机梯度下降法相对来说更适合比较大的数据集:

Loopuntilconvergence:{for i to m{θj:=θj+α(y(i)hθ(x)(i))x(i)j(for every j).}}


相比于批量梯度下降法每次都要遍历训练集才能更新θ来说,随机梯度下降立杆见影,每一步都会对θ有一个调整,不过其最后只能接近最优而到不了真正的最优。

下节预告

换一种方法,用公式直接推导出θ的值,规范形方程(normal equations),简单粗暴!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值