Andrew Ng机器学习(ML)入门学习笔记(二)

一.多变量线性回归(Multivariate linear regression)

前面讨论的房屋价格问题我们认为房屋价格只与其大小有关,故定义了 hθ(x)=θ0+θ1x 这样的假设函数。

若房屋的价格 y 受到其大小x1,卧室数量 x2 ,楼层 x3 ,房屋年龄 x4 多个因素共同影响,则称为多特征或多变量问题。

符号说明:

n ,如这里 n=4

x(i) → 第 i 组训练数据的所有特征

x(i)j → 第 i 组训练数据的特征j的值

此时假设函数 hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4 ,我们可以令 x0=1x(i)0=1

并把特征变量的数目扩展到 n ,得到多变量线性回归一般的假设函数

hθ(x)=θ0x0+θ1x1+θ2x2++θnxn

定义两个 n+1 ,

x=x0x1x2xnRn+1

θ=θ0θ1θ2θnRn+1

hθ(x)=θTx

代价函数 J(θ0,θ1,,θn)=12mmi=1(hθ(x(i))y(i))2 ,用上述 n+1 维向量形式表示 θ ,则

J(θ)=12mi=1m(hθ(x(i))y(i))2

也可以写成
J(θ)=12mi=1m((j=0nθjx(i)j)y(i))2

二.多变量回归的梯度下降

根据代价函数 J(θ) ,可以得到多变量线性回归的数学表达

重复直到收敛{

θj:=θjαθjJ(θ)
},为 j=0,1,,n 同时更新。

J(θ) 的表达式代入,可以得到

θj:=θjα1mi=1m((hθ(x(i))y(i))x(i)j)

这里之所以会多乘一项 x(i)j ,是因为 hθ(x(i))=θ0x(i)0+θ1x(i)1++θnx(i)n θj 求偏导时会得到 θj 项前面的系数 x(i)j

三.特征缩放(Feature Scaling)

多变量线性回归可能会遇到的一个问题是,如果特征变量 x1 (房屋大小)的取值范围是 02000 ,特征变量 x2 的取值范围是 15 (卧室数目),则画等值线图时会发现因为 x1x2 取值差别很大,导致 θ1 变化很小,等值线图变成又高又瘦的椭圆,如下图

这里写图片描述

这会导致梯度下降收敛到中心最优点的速度很缓慢。为了解决这个问题,需要进行特征缩放,即将特征变量值除以其可以取到的最大值:

x1=2000
x2=5

这样可确保让不同特征变量的取值在相近的范围内(具有可比性),等值线图变得更圆,梯度下降算法收敛更快。

进行特征缩放时,通常让每一个特征取值大概在 1xi1 的范围,因为 x0 总是等于1,它也满足这个范围。但这里的范围界限 11 也不是绝对的,只要范围和此范围接近就行。

四.均值归一化(Mean Normalization)

除了特征缩放外,有时候也可以进行均值归一化,即以

xixiuisi
这种形式让特征值有近似于0的均值。

其中, ui 是训练数据集中 xi 的平均值, si xi 的取值范围(用 xi 的最大值减最小值)。注意这里对 x0 不适用,因为 x0=1

例如: x1=10002000 , 此时 x1 就落在 0.5x10.5 这个范围。

均值归一化的目的与特征缩放一样,也是为了让梯度下降算法收敛速度更快。

五.梯度下降的两个问题

对于梯度下降 θj:=θjαθjJ(θ) ,提出两个问题

①如何确定梯度下降是正常工作的

②如何选择学习率 α

对于梯度下降,我们的目标是 minθJ(θ) 。正常情况下,每一次迭代后,代价函数 J(θ) 都减小了。我们可以画出 J(θ) 随迭代次数增加而变化的曲线图。如下图,若 J(θ) 在一定的迭代次数后趋于平坦了,则认为梯度下降收敛了。

这里写图片描述

需要注意的是,对于不同的问题,梯度下降收敛所需的迭代次数也不同。

除了可以根据如上所述的 J(θ) 随迭代次数变化曲线判断是否收敛外,还可以进行自动收敛测试,即给定一个合适的较小值 ε ,如果在一次迭代后 J(θ) 减小到小于 ε ,则认为梯度下降收敛了。

但这里的 ε 怎样才能取得合适并不好定一个规则,故通过判断曲线图是否平坦可能更好。

除此之外,曲线图还可以给出梯度下降没有正常工作的警告。

如下图,随着迭代次数增加, J(θ) 却不断增大,这是因为学习率 α 太大,每次迭代后 J(θ) 都冲过了最小值,反而变得更大,这提示我们要用更小的 α

这里写图片描述

J(θ) 曲线图反复地下降后又上升,如下图,这也是因为学习率 α 较大,导致 J(θ) 可能不会每次迭代都减小,也提示要用更小的 α

这里写图片描述

总之,若 α 太小,则收敛太慢;若 α 太大,则 J(θ) 可能不会每次迭代都减小,可能无法收敛。

实际上应该尝试一系列的 α 值,作出 J(θ) 随迭代次数变化的曲线,找到一个可以使梯度下降较快收敛的学习率 α 的值。

六.特征选择和多项式回归

仍然以房价问题为例,假设房价受街道临宽(frontage)和纵向深度(depth)共同影响,则假设函数

hθ(x)=θ0+θ1frontage+θ2depth
但实际上用房屋宽度和深度的乘积,也就是房屋大小作为特征可能更合适。我们可以创造特征变量 x=frontagedepth ,这样 hθ(x)=θ0+θ1x ,有时候通过一个新的特征,会得到一个更好的模型。

此时房价只与房屋大小(size)有关。假设有如下图所示的训练数据,为了取得较好的拟合效果,可能会想到用图中蓝线所示的二次函数去拟合,但此二次函数上升到顶点后会下降,与房价的实际情况出入较大。所以用图中绿线所示的三次函数去拟合数据可能更合适。

这里写图片描述

这时

hθ(x)=θ0+θ1x+θ2x2+θ3x3
称为多项式回归(Polynomial Regression)。

而对于多变量线性回归

hθ(x)=θ0+θ1x1+θ2x2+θ3x3

可以通过设置特征变量

x1=(size)
x2=(size)2
x3=(size)3
将多项式回归和多变量线性回归联系起来。

需要注意的是,若房屋大小这个特征变量的取值范围是 11000 ,则新设置的特征变量的范围如下:

x1:11000
x2:1106
x3:1109
这时候前面所提到的特征缩放和均值归一化就非常重要了,必须要让所有特征变量的取值范围变得有可比性。

除了多项式回归之外,还有其他设计特征的选择,如:

hθ(x)=θ0+θ1x+θ2x
只要能够通过设计不同的特征,取得更好的拟合效果就行。

七.正规方程(Normal Equation)

正规方程提供了一种可以一次性求解最优 θ 值的解析方法。

①对于单变量(特征)线性回归, θR ,为了求解 minθJ(θ) ,需要

ddθJ(θ)=0θ

②对于多变量(特征)情况, θRn+1 θj:=θjαθjJ(θ) ,为了求解 minθ ,需要

jθjJ(θ)=0θ0,θ1,,θn

然而,这种偏导计算可能很复杂。

若给定了 m 组训练数据(x(1),y(1)),(x(2),y(2)),,(x(m),y(m))以及特征变量的数目 n ,则每组训练数据的输入实际上都是一个n+1维向量(包含了始终为1的 x0

x(i)=x(i)0x(i)1x(i)2x(i)nRn+1
定义一个 m(n+1) 维的设计矩阵
X=(x(1))T(x(2))T(x(m))TRm(n+1)

m 组训练数据的输出构成一个m维向量
y=y(1)y(2)y(n)Rm
正规方程法给出的求解 minθJ(θ) 的公式是
θ=(XTX)1XTy
另外,使用正规方程法时不需要归一化特征变量。

对比梯度下降法和正规方程法求解 θ ,梯度下降法的劣势是需要选择学习率 α ,需要多次迭代,而正规方程法不需要。但这不意味着正规方程法就优于梯度下降,正规方程法需要计算 (XTX)1 ,当特征变量的数目 n 很大时,XTX (n+1)(n+1) 维矩阵,对该矩阵求逆计算量巨大,复杂度大致是 O(n3) ,此时用梯度下降发反而更合适。

通常, n 在10000以上时,多考虑用梯度下降法。

当然这里又有两个问题:

①如果XTX不可逆怎么办?

首先,这种情况并不多见;其次,Andrew Ng教授强调了Octave里的pinv()伪逆函数依旧可以求解。

②为什么 XTX 会不可逆?

<1>存在多余的特征,即有特征变量之间是线性相关的。
如: x1 是以 2 为单位的房屋大小, x2 是以 2 为单位的房屋大小,实际上二者是线性相关的,即 x1=3.28x2

针对这种情况,可删除一些特征变量直至特征变量之间没有互相线性相关的特征存在。

<2>特征变量太多( mn )

针对这种情况,可删除一些特征变量或使用正则化的方法使得即使只有很小的训练集( m 很小),也能找到适合很多特征的θ值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值