【机器学习】浅谈正规方程法&梯度下降

👋👋欢迎来到👋👋
🎩魔术之家!!🎩

该文章收录专栏
✨— 机器学习 —✨

专栏内容
✨— 【机器学习】浅谈正规方程法&梯度下降 —✨
✨— 机器学习】梯度下降之数据标准化 —✨
✨— 第十届”泰迪杯”感谢学习总结—✨

【机器学习】

正规方程法(最小二乘)与 梯度下降法都是为了求解线性回归的最优参数,但是不同的是正规方程法只需要一步就可以得到代价函数最优点,而梯度下降则是迭代下降,看起来似乎正规方程法要好得多,但实际梯度下降使用场景更多,下面我们介绍这两种算法以及优缺点

一、梯度下降

1.1 一个参数

  • 我们从最简单的线性方程解释,后面推广到的多个参数的方程

典型的房价预测问题

【机器学习】浅谈正规方程法&梯度下降

我们假设其数据模型为线性回归模型,方程如下

h θ ( x ) h_\theta(x)h θ​(x ) = θ 1 ∗ x \theta_1x θ1 ​∗x
我们希望能求出θ 1 \theta_1 θ1 ​参数,让方程h θ ( x ) h_\theta(x)h θ​(x ) 更加拟合数据,梯度下降的方法就是通过求
代价函数*最小得到最优参数或者局部最优参数的,

代价函数
代价函数就是实际数据与数学模型(这里是一元一次方程)所预测的差值的平方之和的平均值,(其中y y y 为真实预测值)

  • J θ ( x ) J_\theta(x)J θ​(x ) =∑ x = 1 n ( h θ ( x ) − y ) 2 n \sum_{x=1}^n \frac{(h_\theta(x) – y)^2}{ n }∑x =1 n ​n (h θ​(x )−y )2 ​ (代价函数方程J θ ( x ) J_\theta(x)J θ​(x ) )

如:

【机器学习】浅谈正规方程法&梯度下降

蓝线的长度就是 代价函数,可以看到 代价函数越大拟合效果越差,代价函数越小,拟合效果越好。

其中关于 所求方程h θ ( x ) h_\theta(x)h θ​(x )(左图)和 θ 1 \theta_1 θ1 ​ 的的 代价函数( θ 1 ) (\theta_1)(θ1 ​)(右图)如下图:

【机器学习】浅谈正规方程法&梯度下降

可以看到当方程越拟合数据, 代价函数越小,当 代价函数J ( θ 1 ) J(\theta_1)J (θ1 ​)值为0时,回归方程h θ ( x ) h_\theta(x)h θ​(x )完全拟合数据,此时我们要做的就是让代价函数变小。
(后面所讲的正规方程解法就是直接令代价函数为0,求解θ \theta θ参数的)

; 1.2梯度下降核心方程

迭代求解方程
θ 1 \theta_1 θ1 ​ = θ 1 \theta_1 θ1 ​ – α ∗ δ J ( θ 1 ) δ θ 1 \alpha*\frac{δJ(\theta_1)}{δ\theta_1}α∗δθ1 ​δJ (θ1 ​)​

其中α \alpha α是 学习率, δ J ( θ 0 ) δ θ 0 \frac{δJ(\theta_0)}{δ\theta_0}δθ0 ​δJ (θ0 ​)​ 是对 代价函数J ( θ 1 ) J(\theta_1)J (θ1 ​)求关于θ 1 \theta_1 θ1 ​ 的偏导数,由于只有一个参数(一阶),所以这里的方程 δ J ( θ 1 ) δ θ 1 \frac{δJ(\theta_1)}{δ\theta_1}δθ1 ​δJ (θ1 ​)​ 也可以表示为 d J ( θ 1 ) d θ 1 \frac{dJ(\theta_1)}{d\theta_1}d θ1 ​d J (θ1 ​)​ (即求导数)。
原理讲解

  • 当θ 1 \theta_1 θ1 ​ 所在的代价函数区间是单调递增的,如下图( 红线标记),
    此时d J ( θ 1 ) d θ 1 \frac{dJ(\theta_1)}{d\theta_1}d θ1 ​d J (θ1 ​)​ (即h θ ( x ) h_\theta(x)h θ​(x )的斜率)大于0,则θ 1 \theta_1 θ1 ​ =θ 1 \theta_1 θ1 ​ -α ∗ δ J ( θ 1 ) δ θ 1 \alpha*\frac{δJ(\theta_1)}{δ\theta_1}α∗δθ1 ​δJ (θ1 ​)​ 为θ 1 \theta_1 θ1 ​ 减去一个正数,θ 1 \theta_1 θ1 ​往左边退(向代价函数最小值靠近),
  • 当θ 1 \theta_1 θ1 ​ 所在的代价函数区间是单调递减时的如图( 蓝线标记),此时θ 1 \theta_1 θ1 ​ =θ 1 \theta_1 θ1 ​ -α ∗ δ J ( θ 1 ) δ θ 1 \alpha*\frac{δJ(\theta_1)}{δ\theta_1}α∗δθ1 ​δJ (θ1 ​)​ 为θ 1 \theta_1 θ1 ​ 减去一个负数,θ 1 \theta_1 θ1 ​往右边退(向代价函数最小值靠近)

【机器学习】浅谈正规方程法&梯度下降
【机器学习】浅谈正规方程法&梯度下降

1.3学习率 α \alpha α

有时我们的迭代方程下降时,可能很缓慢,
需要走很多步(化很久时间)才能到达局部最优或者全局最优 如下图:

【机器学习】浅谈正规方程法&梯度下降

此时学习率α \alpha α的作用就是调整步子长度,让其更快的下降到局部最优或者全局最优
注意

α \alpha α需要根据数据调节,

  • 如果设置太大,一步太大不能跳到另一端,这与预期的结果相反,如图所示
    [En]

    if the setting is too big, one step is too big to jump to the opposite end, which is contrary to the desired result, as shown in the figure*

【机器学习】浅谈正规方程法&梯度下降
  • 设置小了,步子又太小,所以设置α \alpha α也是一个细活

; 1.4两个参数

两个参数 θ 1 \theta_1 θ1 ​,θ 0 \theta_0 θ0 ​,方程为

h θ ( x ) h_\theta(x)h θ​(x ) = θ 0 + \theta_0 +θ0 ​+ θ 1 ∗ x \theta_1*x θ1 ​∗x

迭代求解方程 (注意:参数是同步更新的,你的腿只能走一步)

  • θ 0 \theta_0 θ0 ​ =θ 0 \theta_0 θ0 ​ -α ∗ δ J ( θ 0 ) δ θ 0 \alpha*\frac{δJ(\theta_0)}{δ\theta_0}α∗δθ0 ​δJ (θ0 ​)​
  • θ 1 \theta_1 θ1 ​ =θ 1 \theta_1 θ1 ​ -α ∗ δ J ( θ 1 ) δ θ 1 \alpha*\frac{δJ(\theta_1)}{δ\theta_1}α∗δθ1 ​δJ (θ1 ​)​

此时的代价函数为J ( θ 0 , θ 1 ) J(\theta_0,\theta_1)J (θ0 ​,θ1 ​),如下图(是一个碗状,与一个参数的图像一样都是凹函数)

【机器学习】浅谈正规方程法&梯度下降

为了更好理解,我们可以绘制出其的等高线

【机器学习】浅谈正规方程法&梯度下降

则目标所求的既是 等高线中心 或 碗底,即让代价函数最小

1.5多个参数

在问题案例中,往往有个参数 θ i ( i = 1 , 2 , 3… ) \theta_i(i=1,2,3…)θi ​(i =1 ,2 ,3 …)

此时的代价方程则时关于多个θ i \theta_i θi ​参数,如图

【机器学习】浅谈正规方程法&梯度下降

迭代求解方程 (注意:参数是同步更新的,你的腿只能走一步)
θ 0 \theta_0 θ0 ​ = θ 0 \theta_0 θ0 ​ – α ∗ δ J ( θ 0 ) δ θ 0 \alpha\frac{δJ(\theta_0)}{δ\theta_0}α∗δθ0 ​δJ (θ0 ​)​
θ 1 \theta_1 θ1 ​ = θ 1 \theta_1 θ1 ​ – α ∗ δ J ( θ 1 ) δ θ 1 \alpha
\frac{δJ(\theta_1)}{δ\theta_1}α∗δθ1 ​δJ (θ1 ​)​
θ 2 \theta_2 θ2 ​ = θ 2 \theta_2 θ2 ​ – α ∗ δ J ( θ 2 ) δ θ 2 \alpha*\frac{δJ(\theta_2)}{δ\theta_2}α∗δθ2 ​δJ (θ2 ​)​

θ n \theta_n θn ​ = θ n \theta_n θn ​ – α ∗ δ J ( θ n ) δ θ n \alpha*\frac{δJ(\theta_n)}{δ\theta_n}α∗δθn ​δJ (θn ​)​

还可以看到,在梯度下降迭代中有两个最优结果(可能还有许多其他情况)。

[En]

It can also be seen that there are two optimal results in the gradient descent iteration (there may be many other cases)

整个迭代过程可以形象的理解为 你现在在山顶,要找一条最快的路下山,山底就是你的目标地点,也就是 代价函数最小

; 1.6数据标准化

梯度下降在量化纲位不同,如果数
据范围分别是是【0~1000,0 ~5】或者【-0.00004 ~ 0.00002,10 ~ 30】, 那么在使用梯度下降算法时,他们的等高线是一个又窄又高的等高线,如下图:

【机器学习】浅谈正规方程法&梯度下降

在梯度下降算法中,参数更新会像上图那样左右波动,收敛速度较慢,需要特征尺度–数据标准化

[En]

In the gradient descent algorithm, the parameter update will fluctuate left and right as shown above, and the convergence is slow, so we need to * feature scaling-data standardization *

详解见文章
【机器学习】梯度下降之数据标准化

二、正规解法

对正规解法来说,一般例子是对代价函数J ( θ ) J(θ)J (θ)求偏导数,令其为 0 便可以直接算出 最优参数θ θθ,但大多数情况下θ θθ是一个多维向量(即有多个参数 θ i ( i = 1 , 2 , 3… ) \theta_i(i=1,2,3…)θi ​(i =1 ,2 ,3 …)),此时代价函数f ( θ ) f(θ)f (θ)是关于θ θθ多维向量的函数,那么要求从θ 0 θ_0 θ0 ​ 到 θ n θ_n θn ​的值,就分别对对应的θ i θ_i θi ​(i = 1,2,3,4…)求偏导数,并令其为0求其最优参数.

假设有M个数据,每个数据N个特征
方程如下:

θ = ( x T ∗ x ) − 1 ∗ x T ∗ y θ = (x^T * x )^{-1} * x^T * y θ=(x T ∗x )−1 ∗x T ∗y

这里的x x x为矩阵,该矩阵每一行为x i ( i = 1 , 2 , 3… ) x_i(i=1,2,3…)x i ​(i =1 ,2 ,3 …)(x i x_i x i ​为列向量,维度为特征N)的向量转置组成,即任意一行的每一列为x i x_i x i ​其特征
x x x矩阵同下图A矩阵:

【机器学习】浅谈正规方程法&梯度下降

这里的 a 11 a_{11}a 1 1 ​代表第一个数据x 1 x_1 x 1 ​的第一个特征值,依次往下,化简即为

【机器学习】浅谈正规方程法&梯度下降

第一行即为x 1 x_1 x 1 ​N维向量的的转置

方程原理讲解视频:

【机器学习】浅谈正规方程法&梯度下降

【线性回归】正规方程(最小二乘法)】

由于正规方程是直接求解,所以不需要迭代熟练,不需要”下山”,所以不需要对其进行特征缩放(如梯度下降需要数据标准化)

; 2,1 使用场景和优缺点

假设我们有M个数据集,N个特征

*

梯度下降缺点: 首先需要先提前设定好学习率,并调试,这无疑是额外的工作 需要尝试不同的学习率 ,
梯度下降缺点:需要多次迭代下降,计算可能会更慢
x
*
正规解法缺点:在对于大量的数据来说,梯度学习也可以很好的运行结果,而正规方程求解中 ( x T ∗ x ) − 1 (x^T * x )^{-1}(x T ∗x )−1 这一步中,其维度即为x的特征维度,由于计算机在计算矩阵的逆 的时间复杂度时O ( n 3 ) O(n^3)O (n 3 ) ,在特征维度非常大时,运行时间很久,

综上所述:
可以看到他们二者适用场景 不同于数据的大小, 那我们怎么定义数据”大”还是”小”呢, 吴恩达老师给出了一个比较好的区间:

N > 10000 => 梯度下降
N < 10000 => 正规解法
但是不是绝对的判断,还需要根据情况而定

2.2 正规方程(不可逆性)* 选读

  1. 方阵中的两个维度之间存在线性变换关系,导致方阵不满秩
  2. n(特征数量)相较于m(样本数量)过大,导致其产生的齐次方程组Ax=0不只有零解

这些不可逆的矩阵我们称为 奇异矩阵,逆矩阵在不存在时,我们所求的逆矩阵为伪逆

实际上我们案例对应的情况有

  1. 如,房价预测多了一些特征值,而这个特征值和所有特征值有线性相关,即出现上述第一种情况
  2. 在特征n >= 数据集数量m的情况下,例如 10 个数据 ,每个数据有 100 个特征,那么我们所要求的 &#x3B8;就是一个101维向量,10个样本太少了,求得的结果偏离真实值,对应上述情况二,这个时候我们可以减去一些特征,或者使用正则化方法()

其实这种不可逆的情况非常少见,所以在平时案例不用特别担心

【机器学习】浅谈正规方程法&梯度下降

Original: https://blog.csdn.net/weixin_66526635/article/details/125201143
Author: 计算机魔术师
Title: 【机器学习】浅谈正规方程法&梯度下降

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/10527/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总