机器学习4.1-4.8:多元函数梯度下降

本文探讨了多元变量下房屋价格预测的方法,包括特征缩放(最大绝对值归一化与均值归一化)、梯度下降中的假设函数和代价函数调整,以及特征选择(如多项式回归与创建新特征)。介绍了正规方程与梯度下降的区别,并针对不同场景推荐适用的优化策略。
摘要由CSDN通过智能技术生成

多元变量的情形

多元变量情况下的标号

在之前的研究中,我们研究房屋价格和房屋面积的关系,这种情况下仅有房屋价格一个自变量。
现在,我们引入其它变量,因为一个房子的售价不仅与房屋面积有关,还与房屋年龄,卧室数目,层数等因素有关。
在这里插入图片描述
将四个特征量分别命名为 x 1 , x 2 , x 3 , x 4 x_1,x_2,x_3,x_4 x1,x2,x3,x4(由于特征量有四个,因此n = 4),房屋价格仍为 y y y
我们一共有47个样本,因此样本数量m = 47。
使用 x ( i ) x^{(i)} x(i)来表示第i个样本的特征值所组成的列向量,如:
x ( 2 ) = [ 1416 3 2 40 ] x^{(2)} = \begin{bmatrix} 1416\\ 3 \\ 2 \\40 \end{bmatrix} x(2)=14163240
使用 x j ( i ) x_j^{(i)} xj(i)来表示第i个样本的特征值所组成的列向量中的第j个值 (截至此处起始标号为1而不是0),如:
x 3 ( 2 ) = 2 x_3^{(2)} = 2 x3(2)=2

变量,假设函数,代价函数的变化

原来单变量的时候,我们的假设函数形式为:
h θ ( x ) = h 0 + h 1 x 1 h_\theta(x) = h_0 + h_1x_1 hθ(x)=h0+h1x1
以此类推,我们现在具有多变量的情况下,假设函数形式改变为:
h θ ( x ) = h 0 + h 1 x 1 + h 2 x 2 + h 3 x 3 + h 4 x 4 h_\theta(x) = h_0 + h_1x_1+h_2x_2+h_3x_3+h_4x_4 hθ(x)=h0+h1x1+h2x2+h3x3+h4x4
为了方便起见,我们需要对上一小节中定义的列向量做一些修改。我们定义一个额外的特征量 x 0 ( i ) = 1 x_0^{(i)} = 1 x0(i)=1。也就是说,我们将上述列向量扩充了一行 (到这里起始标号为0),将上述整个表扩充了一列,例:
x ( 2 ) = [ 1 1416 3 2 40 ] x^{(2)} = \begin{bmatrix} 1\\1416\\ 3 \\ 2 \\40 \end{bmatrix} x(2)=114163240
那么一般的,特征值构成的列向量形式为:
x = [ x 0 x 1 x 2 x 3 x 4 ] x= \begin{bmatrix} x_0\\ x_1\\ x_2 \\ x_3 \\ x_4 \end{bmatrix} x=x0x1x2x3x4
同时,我们将参数写成列向量:
θ = [ θ 0 θ 1 θ 2 θ 3 θ 4 ] \theta= \begin{bmatrix} \theta_0\\ \theta_1\\ \theta_2 \\ \theta_3 \\ \theta_4 \end{bmatrix} θ=θ0θ1θ2θ3θ4
因此,假设函数 h θ ( x ) h_\theta(x) hθ(x)可写成:
h θ ( x ) = θ T ⃗ x ⃗ h_\theta(x) = \vec{\theta^T} \vec{x} hθ(x)=θT x
同样的,代价函数写成:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2m} \sum_ {i=1}^m(h_\theta(x^{(i)}) - y^{(i)}) ^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2

此时,计算机应执行下列操作:
θ i : = θ i − α ∂ J ( θ ) ∂ θ i \theta_i := \theta_i - \alpha \frac {\partial J(\theta)}{\partial\theta_i} θi:=θiαθiJ(θ)
即同步更新各个参数。
更为细致地说,后面的导数项根据计算可以得出来。具体结果如下:
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) \theta_0 := \theta_0 - \alpha\frac{1}{m} \sum_ {i=1}^m(h_\theta(x^{(i)}) - y^{(i)})x_0^{(i)} θ0:=θ0αm1i=1m(hθ(x(i))y(i))x0(i)
θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 1 ( i ) \theta_1 := \theta_1 - \alpha\frac{1}{m} \sum_ {i=1}^m(h_\theta(x^{(i)}) - y^{(i)})x_1^{(i)} θ1:=θ1αm1i=1m(hθ(x(i))y(i))x1(i)
θ 2 : = θ 2 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 2 ( i ) \theta_2 := \theta_2 - \alpha\frac{1}{m} \sum_ {i=1}^m(h_\theta(x^{(i)}) - y^{(i)})x_2^{(i)} θ2:=θ2αm1i=1m(hθ(x(i))y(i))x2(i)
θ 3 : = θ 3 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 3 ( i ) \theta_3 := \theta_3 - \alpha\frac{1}{m} \sum_ {i=1}^m(h_\theta(x^{(i)}) - y^{(i)})x_3^{(i)} θ3:=θ3αm1i=1m(hθ(x(i))y(i))x3(i)
. . . . . . ...... ......

梯度下降实践——1.特征缩放

最大绝对值归一化

我们在处理机器学习的相关特征值时,可能会遇上特征值与特征值之间的数值差距过大的情况。比如房屋面积(1944,2000…)和卧室个数(3,5…)。如果不加处理就扔给算法处理,最后呈现出来的等高线图效果就是:
在这里插入图片描述
这里插一点不精确的数学分析,从如图所示的起点出发,其方向(即曲面在这一点的切线方向)一部分向下,另一部分并不是指向最低点(二维图中的中心),所以其轨迹如图所示。根据前文所述,导数项提供起始方向,学习率负责距离,点是沿着曲面走的。
解决方法是最大绝对值归一化。如图所示:
在这里插入图片描述
这样, x 1 , x 2 x_1,x_2 x1,x2均位于[0,1]之间。等高线图就会变成下面这个样子:下降也会比较快。
在这里插入图片描述
事实上,考虑到一些指标并不一定为正数,所以我们通常将特征值约束在[-1,1]之间。但是也并不绝对,比如要是有一个数据位于[0,3]之间的话,也并不需要对其归一化。除非是某个特征值的数量大出或者小了几个数量级才需要归一化,如·200,-0.0004。吴恩达在这里给出了一个经验范围:不能超过[-3,+3],不能低于[-0.3,+0.3]

均值归一化

均值归一化是指将数值范围缩放到 [-1, 1] 区间里,且数据的均值变为0,其公式为:
x ′ = x − μ x m a x − x m i n x^{'} = \frac{x-\mu}{x_{max}-x_{min}} x=xmaxxminxμ
均值归一化并不会改变样本数据的分布情况

梯度下降实践——2.学习率

关于学习率的问题我们之前已经详细考察过了,这里做一点简略的描述。
由前文可知,导数项提供起始方向,学习率负责距离,这两点使得点沿着曲面行进。若 α \alpha α取的足够小,那么代价函数随着迭代次数增加而变化的变化趋势应该如下:
在这里插入图片描述
而我们遇到的情况可能如下所示:

两者都是因为学习率过大而导致难以收敛,因此应该调小学习率。我们通常按以下规律来调整学习率:
在这里插入图片描述

特征选择和多项式回归

创造新的特征

选择和创造合理的特征值会使我们的学习模型更加高效准确,这里我们仍然以房屋售价为例子来阐述。
假设房屋售价与房子的临街宽度和纵深有关,我们可以创造这样一个线性回归模型:
h θ ( x ⃗ ) = θ 0 + θ 1 x 1 + θ 2 x 2 h_\theta(\vec{x}) = \theta_0 + \theta_1x_1+\theta_2x_2 hθ(x )=θ0+θ1x1+θ2x2
在这里插入图片描述

我们可以创造一个新的特征,定义为房屋面积,即 x = x 1 ∗ x 2 x = x_1*x_2 x=x1x2
故模型修改为:
h θ ( x ) = θ 0 + θ x h_\theta(x) = \theta_0 + \theta x hθ(x)=θ0+θx

多项式回归

面对如图所示的数据,简单的线性回归似乎并不适用,我们考虑引入多项式回归:
在这里插入图片描述
h θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 h_\theta(x) = \theta_0 + \theta_1x+\theta_2x^2+\theta_3x^3 hθ(x)=θ0+θ1x+θ2x2+θ3x3
为了和我们之前讲的线性回归联系起来,这里我们采用了一个很巧妙的手法,令:
x 1 = x x_1 = x x1=x
x 2 = x 2 x_2 = x^2 x2=x2
x 3 = x 3 x_3 = x^3 x3=x3
这样,假设函数修改为:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 h_\theta(x) = \theta_0 + \theta_1x_1+\theta_2x_2+\theta_3x_3 hθ(x)=θ0+θ1x1+θ2x2+θ3x3
经过这样的处理,我们就将多项式回归转化为了我们之前熟悉的线性回归。同时由于高次项的出现,可能需要我们进行特征缩放的操作以实现梯度下降。

正规方程

我们之前讲的寻找最优参数的迭代方法是梯度下降法,这里我们引入一种新的方法,即利用正规方程直接求出最佳参数,一步完成。

下列结论推导过程较为复杂(具体过程可以参考此网页),我们这里仅仅给出结论

https://zhuanlan.zhihu.com/p/60719445

我们首先回顾一下固定标号,m代表样本数量,n代表特征量个数,y代表实际值。除此之外,我们定义各个特征量为 x i x_i xi,且将x汇总起来形成矩阵X。如下图所示:
在这里插入图片描述
然后,我们运用正规方程法求解出最佳参数,公式如下:
θ = ( x T x ) − 1 x T y \theta = (x^Tx)^{-1}x^Ty θ=(xTx)1xTy
正规方程法由于不存在多次迭代的过程,所以不需要做特征缩放。

梯度下降法正规方程
需要选择学习率不需要选择学习率
需要多次迭代不需要多次迭代
在特征比较多时效果很好由于需要计算 ( x T x ) − 1 (x^Tx)^{-1} (xTx)1,复杂度高达O( n 3 ) n^3) n3)

建议是当n<10000时选择正规方程,反之选择梯度下降。

正规方程的局限性

根据前文所示,我们认为正规方程法可以直接计算出最为理想的 θ \theta θ参数。其计算公式如下:
θ = ( x T x ) − 1 x T y \theta = (x^Tx)^{-1}x^Ty θ=(xTx)1xTy
显然当 ( x T x ) − 1 (x^Tx)^{-1} (xTx)1不可逆的时候,无法根据正规方程求解。以下两种情况可能导致我们无法使用正规方程:

  • 特征中有冗余向量,即向量有强线性相关性
    举例来说, x 1 x_1 x1表示房屋面积( m 2 m^2 m2), x 2 x_2 x2也表示房屋面积( f e e t 2 feet^2 feet2)。这时两个特征值之间实际上表述的是同一个量,只不过是单位有所不一样,这导致了两者之间具有强相关性: x 1 = ( 3.28 ) 2 x 2 x_1 = (3.28)^2x_2 x1=(3.28)2x2
  • m<n也会导致正规方程无法使用。此时特征值过多而样本量很多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值