本文关于吴恩达老师机器学习课程笔记~
多功能
在前面,我们假设房子的价格只与房子的大小这一因素有关系,因此在假设函数中只有一个参数 x ,即 hθ(x)=θ0+θ1x

那如果房子的价格跟多个因素有关系呢?比如大小、房间数量,楼层数量、房龄等,应该怎样表示假设函数 h(x) ?
我们把以上四个特征分别记为 x1,x2,x3,x4,用 y 表示要预测的输出变量。
符号表示:
- n = 4 表示特征向量的数量
-
x(i) 表示第 i 个样本的特征向量,x(i) 是 n 维向量
-
xj(i) 表示第 i 个样本的第 j 个特征向量
既然有多个特征向量,线性回归假设应该为
h(x)=θ0+θ1x1+...+θnxn
为了表示方便,假设 x0=1,这意味着对于第 i 个训练样本,都有 x0(i)=1
x=⎣⎢⎢⎢⎡x0x1⋮xn⎦⎥⎥⎥⎤∈Rn+1 θ=⎣⎢⎢⎢⎡θ0θ1⋮θn⎦⎥⎥⎥⎤∈Rn+1
h(x)=θ0+θ1x1+...+θnxn=θTx
多元梯度下降法

特征缩放
在具有多个特征的线性回归中,如果能确保特征都处在一个相近的范围,这样梯度下降法就能更快的收敛
具体的,假设有尺寸和房间数量两个特征,x1=size(0−2000feet2),x2=number of bedrooms(1−5)
画出 x1,x2 代价函数的等高线图如下,如果直接运行梯度下降的话,梯度会来回波动,并且需要很长一段时间才能收敛到最小值

解决这个问题的一个有效方法就是进行特征缩放
令x1=2000size(feet2),x2=5numberofbedrooms,则 0≤x1≤1,0≤x2≤1 ,得到的代价函数等高线图如下

经过特征缩放后的等高线图接近圆形,梯度下降很快收敛到最小值
更一般的,当我们在进行特征缩放时,通常将特征的取值约束到 -1 ~ +1范围内,至少不会偏离太多
均值归一化
用 xi−ui 代替 xi(其中 ui 为平均值)使得特征具有为 0 的平均值,很明显,我们不需要对 x0 执行这一步,因为 x0 恒为 1,不可能具有为 0 的平均值。
更一般的,令 xi=sxi−ui,其中 s 为最大值减最小值
经过特征缩放后,梯度下降的速度变得更快,收敛所需的迭代次数更少
学习率
在正常情况下,代价函数的值应该随着迭代次数的增加而下降,如图

若代价函数的值随着迭代次数的增加而增大或者上下波动,则应减小学习率 α 的值。

学习率的选择
对每一个特定问题,梯度下降算法所需的迭代次数可能会相差很远。
- 若学习率设置太大,代价函数并不会在每次迭代后都下降
- 若学习率设置太小,代价函数收敛很慢
在学习率的选择上,可以把学习率设置为…,0.001,0.003,0.01,0.03,0.1,0.3,1,…
正规方程
在梯度下降算法中,我们需要通过迭代一步一步的求出 θ 的最优值,而正规方程提供一种求 θ 的解析解法,可以一次求解 θ 的最优值
为了对这个算法有个直观的了解,我们举个简单的例子,假设 J(θ)=αθ2+bθ+c,假设 θ 为实数而非向量,要令 J(θ) 取得最小值,可令 dθdJ(θ)=0 ,求得 θ 的值
在我们感兴趣的问题中,θ 是一个向量而非实数 θ∈Rn+1,而代价函数
J(θ0,θ1,...,θn)=2m1i=1∑m(hθ(x(i)−y(i))2
要使代价函数取得最小值,可令dθjdJ(θ)=0,然后计算 θ0,θ1,...,θn 的值。但是遍历完所有积分是一件很费事的事情
我们举一个例子来解释正规方程法
下图我们在所有特征前面加一个特征 x0=1,则 X∈Rm×(n+1),y∈Rm
令 θ=(XTX)−1XTy ,便可求得使代价函数取得最小值的 θ

在一般情况下,假设有 m 个训练样本 (x(1),y(1)),...,(x(m),y(m)),n 个特征
x(i)=⎣⎢⎢⎢⎢⎡x0(i)x1(i)⋮xn(i)⎦⎥⎥⎥⎥⎤∈Rn+1
则 X=⎣⎢⎢⎢⎡(x(1))T(x(2))T⋮(x(m))T⎦⎥⎥⎥⎤∈Rm×(n+1),θ=(XTX)−1XTy
在梯度下降算法中,我们提到要进行特征缩放,但是在正规方程中则不需要,即若 x1∈(0,1),x2∈(0,10000),x3∈(0,10−5)也是可以的
梯度下降法和正规方程的优缺点
梯度下降法:
- 优点:
- 缺点:
- 需要选择学习率,并且经过多次尝试
- 需要进行多次迭代
正规方程法:
- 优点:
- 缺点:
- 计算 (XTX)−1,时间复杂度为 O(n3)
- 当特征数量 n 较多时,计算慢
因此,当 n 较小时 (n < 1000 or 10000),正规方程法是一个很好的选择,当 n 较大时,选择梯度下降法