Day 2

这篇博客介绍了梯度下降和正规方程两种优化算法在机器学习中的应用。梯度下降用于求解参数,通过迭代更新逐步优化,需要选择合适的学习率,适用于大规模特征问题。正规方程提供解析解,直接求得最优参数,但计算复杂度高,不适合特征数量大的情况。文章强调了特征缩放和学习率选取的重要性,并指出在特征数量适中时,正规方程是更好的选择。总结了两者优缺点及适用场景。
摘要由CSDN通过智能技术生成

4.1 多功能

n:特征的数量(number of features)
x i x^i xi:第 i 个训练样本的输入特征值,i 是训练样本的一个索引(input (features) of i t h i^{th} ith training example)
x j i x^i_j xji:第 i 个训练样本中第 j 个特征量的值(value of feature j in i t h i^{th} ith training example)

假设函数:
h θ ( x ) = θ T x = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋅ ⋅ ⋅ + θ n x n h_θ(x)= θ^Tx = θ_0 + θ_1x_1 + θ_2x_2 + ··· + θ_nx_n hθ(x)=θTx=θ0+θ1x1+θ2x2++θnxn

4.2 多元梯度下降法

假设函数: h θ ( x ) = θ T x = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋅ ⋅ ⋅ + θ n x n h_θ(x)= θ^Tx = θ_0 + θ_1x_1 + θ_2x_2 + ··· + θ_nx_n hθ(x)=θTx=θ0+θ1x1+θ2x2++θnxn
参数: θ 0 , θ 1 , θ 2 , ⋅ ⋅ ⋅ , θ n θ_0,θ_1,θ_2,···,θ_n θ0,θ1,θ2,,θn
代价函数: J ( θ 0 , θ 1 , θ 2 , ⋅ ⋅ ⋅ , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(θ_0,θ_1,θ_2,···,θ_n) = \frac{1}{2m}\sum_{i=1}^m(h_θ(x^i)-y^i)^2 J(θ0,θ1,θ2,,θn)=2m1i=1m(hθ(xi)yi)2
梯度下降:
Repeat {
θ j : = θ j − α d d θ j J ( θ 0 , θ 1 , θ 2 , ⋅ ⋅ ⋅ , θ n ) θ_j := θ_j - α\frac{d}{dθ_j}J(θ_0,θ_1,θ_2,···,θ_n) θj:=θjαdθjdJ(θ0,θ1,θ2,,θn)
}
即:
在这里插入图片描述

求导后得到:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H7wljkp4-1602600520388)(./1602595338284.png)]

当 n >= 1, θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 x 0 i θ_0 := θ_0 - a\frac{1}{m}\sum_{i=1}^m(h_θ(x^i)-y^i)^2x_0^i θ0:=θ0am1i=1m(hθ(xi)yi)2x0i
θ 1 : = θ 1 − a 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 x 1 i θ_1 := θ_1 - a\frac{1}{m}\sum_{i=1}^m(h_θ(x^i)-y^i)^2x_1^i θ1:=θ1am1i=1m(hθ(xi)yi)2x1i
θ 2 : = θ 2 − a 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 x 2 i θ_2 := θ_2 - a\frac{1}{m}\sum_{i=1}^m(h_θ(x^i)-y^i)^2x_2^i θ2:=θ2am1i=1m(hθ(xi)yi)2x2i

4.3 梯度下降法实践 1 - 特征缩放

面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快的收敛。对应的方法是尝试将所有特征的尺度都尽量缩放到 -1 到 1 之间。如图:
在这里插入图片描述
最简单的方法是令: x n = x n − u n s n x_n = \frac{x_n-u_n}{s_n} xn=snxnun,其中 u n u_n un 是平均值, s n s_n sn 是标准差。

##4.4 梯度下降法实践2-学习率

自动收敛测试:如果代价函数 J(θ) 一步迭代后的下降小于一个很小的值 ε 这个测试就判断函数已收敛。ε 可以 1e-3。通常选择一个合适的阈值 ε 是相当困难的,因此为了判断梯度下降算法是否收敛实际上更倾向于通过看左边的曲线而不是依靠自动收敛测试。
在这里插入图片描述
看图片还有个好处是能提前知道算法是否运算正确。
总结:
如果学习率 a 太小的话,收敛速度会很慢
如果学习率 a 太大的话,代价函数 J(θ) 可能不会在每次迭代都下降,甚至不会收敛

在运行算法时,尝试不同的 a 值,比如 0.001,0.01… 每隔 10 倍取一个值。通过绘制图选择使得 J(θ) 快速下降的一个 a 值。

4.5 特征和多项式回归

有时候通过定义一个新的特征,可能会得到一个更好的模型。如房价预测中可以将临街的长度和宽度两个特征整合成面积特征。
在这里插入图片描述

4.6 正规方程

正规方程提供了一种求 θ 的解析解法,所以我们不需要运行迭代算法,而是可以直接一次性求解 θ 的最优值。

在这里插入图片描述

上面的式子会给出最优的 θ 的值,其中 ( X T X ) − 1 (X^TX)^{-1} (XTX)1 X ′ X X'X XX 的逆矩阵 X T X^T XT 是 X 的转置矩阵。如果令 θ 等于这个,这个 θ 值会最小化线性回归的代价函数 J(θ)。
如果使用正规方程,则不需要进行特征缩放。

何时应该使用梯度下降,何时应该使用正规方程法呢?
梯度下降的一个缺点是需要选择学习速率 a,这就表示通常需要运行多次,尝试不同的 a 找到运行效果最好的那个。梯度下降的另一个缺点是需要迭代多次,对于不同的实现方式,计算可能会更慢。
梯度下降法在特征变量很多的情况下也能运行地相当好,所以就算有上百万个特征也可以选择梯度下降,并且通常很有效。
正规方程不需要选择学习率。
正规方程需要计算 ( X T X ) − 1 (X^TX)^{-1} (XTX)1 计算该结果的时间大概是 n 的三次方级,所以如果 n 非常大的话会计算的非常慢,在这种情况下正规方程法会比梯度下降慢很多。因此如果 n 比较大,那么一般会选择梯度下降法。
n 何时比较大呢?对于现代计算机 n 的值如果上万,可能会倾向于选择梯度下降法,但是如果 n 远大于此可能就会选择梯度下降法了。

总结:

对于特征变量不大的情况下,会选择正规方程。具体来说,只要特征变量数量小于 1 万通常会使用正规方程法而不使用梯度下降法。

4.7 正规方程及不可逆性

如果矩阵 X T X X^TX XTX 是不可逆的通常有两种最常见的原因:第一个原因是,由于某些原因,你的学习问题包含了多余的特征。第二个原因是,你允许的学习算法有很多特征,具体地说,在 m 小于或等于 n 的时候。
总结:如果发现 X T X X^TX XTX 是不可逆的,首先看特征里是否有多余的特征,如果的确有多余的特征,可以删除其中之一。如果没有多余的特征,可以检查是否有过多的特征,如果特征数量实在太多,如果少一些不影响的话则删除一些特征或者考虑使用正规化方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值