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

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

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

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

专栏内容
✨--- 【机器学习】浅谈正规方程法&梯度下降 ---✨
✨--- 第十届“泰迪杯“感谢学习总结---✨

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

一、梯度下降

1.1 一个参数

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

典型的房价预测问题
在这里插入图片描述

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

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

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

  • $J_\theta(x)$ = $\sum_{x=1}^n \frac{(h_\theta(x) - y)^2}{ n }$ (代价函数方程$J_\theta(x)$ )

如:

在这里插入图片描述

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

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

在这里插入图片描述

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

1.2梯度下降核心方程

迭代求解方程
$\theta_1$ = $\theta_1$ - $\alpha*\frac{δJ(\theta_1)}{δ\theta_1}$

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

  • 当$\theta_1$ 所在的代价函数区间是单调递增的,如下图(红线标记),

此时$\frac{dJ(\theta_1)}{d\theta_1}$ (即$h_\theta(x)$的斜率)大于0,则$\theta_1$ = $\theta_1$ - $\alpha*\frac{δJ(\theta_1)}{δ\theta_1}$ 为 $\theta_1$ 减去一个正数,$\theta_1$往左边退(向代价函数最小值靠近),

  • 当$\theta_1$ 所在的代价函数区间是单调递减时的如图(蓝线标记),此时$\theta_1$ = $\theta_1$ - $\alpha*\frac{δJ(\theta_1)}{δ\theta_1}$ 为 $\theta_1$ 减去一个负数,$\theta_1$往右边退(向代价函数最小值靠近)

在这里插入图片描述
在这里插入图片描述

1.3学习率$\alpha$

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

在这里插入图片描述

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

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

  • 设置大了,走一步太大了跳到对面那一头了,与想要的结果违背,如图

在这里插入图片描述

  • 设置小了,步子又太小,所以设置$\alpha$也是一个细活

1.4两个参数

两个参数 $\theta_1$,$\theta_0$,方程为

$h_\theta(x)$ = $\theta_0 +$ $\theta_1*x$

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

  • $\theta_0$ = $\theta_0$ - $\alpha*\frac{δJ(\theta_0)}{δ\theta_0}$
  • $\theta_1$ = $\theta_1$ - $\alpha*\frac{δJ(\theta_1)}{δ\theta_1}$

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

在这里插入图片描述

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

在这里插入图片描述

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

1.5多个参数

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

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

在这里插入图片描述

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

$\theta_0$ = $\theta_0$ - $\alpha*\frac{δJ(\theta_0)}{δ\theta_0}$
$\theta_1$ = $\theta_1$ - $\alpha*\frac{δJ(\theta_1)}{δ\theta_1}$
$\theta_2$ = $\theta_2$ - $\alpha*\frac{δJ(\theta_2)}{δ\theta_2}$
........
$\theta_n$ = $\theta_n$ - $\alpha*\frac{δJ(\theta_n)}{δ\theta_n}$

从中也可以看到在梯度下降迭代中,有两个最优结果(其他案例可能有许多),

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

1.6数据标准化

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

在这里插入图片描述

在梯度下降算法中,参数更新就会如上图左右震荡,收敛缓慢,我们就需要对特征进行特征缩放---数据标准化

二、正规解法

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

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

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

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

在这里插入图片描述

这里的 $a_{11}$代表第一个数据$x_1$的第一个特征值,依次往下,化简即为
在这里插入图片描述

第一行即为$x_1$N维向量的的转置

方程原理讲解视频:

在这里插入图片描述

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

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

2,1 使用场景和优缺点

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

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

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

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

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

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

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

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

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

其实这种不可逆的情况非常少见,所以在平时案例不用特别担心
在这里插入图片描述

相关文章
|
机器学习/深度学习 Python
【机器学习】正规方程
【1月更文挑战第23天】【机器学习】正规方程
|
机器学习/深度学习 人工智能 自然语言处理
梯度下降求极值,机器学习&深度学习
梯度下降求极值,机器学习&深度学习
|
11月前
|
机器学习/深度学习 算法 Python
“探秘机器学习的幕后英雄:梯度下降——如何在数据的海洋中寻找那枚失落的钥匙?”
【10月更文挑战第11天】梯度下降是机器学习和深度学习中的核心优化算法,用于最小化损失函数,找到最优参数。通过计算损失函数的梯度,算法沿着负梯度方向更新参数,逐步逼近最小值。常见的变种包括批量梯度下降、随机梯度下降和小批量梯度下降,各有优缺点。示例代码展示了如何用Python和NumPy实现简单的线性回归模型训练。掌握梯度下降有助于深入理解模型优化机制。
144 2
|
11月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
11月前
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)
|
11月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
机器学习/深度学习 算法 Python
【绝技揭秘】Andrew Ng 机器学习课程第十周:解锁梯度下降的神秘力量,带你飞速征服数据山峰!
【8月更文挑战第16天】Andrew Ng 的机器学习课程是学习该领域的经典资源。第十周聚焦于优化梯度下降算法以提升效率。课程涵盖不同类型的梯度下降(批量、随机及小批量)及其应用场景,介绍如何选择合适的批量大小和学习率调整策略。还介绍了动量法、RMSProp 和 Adam 优化器等高级技巧,这些方法能有效加速收敛并改善模型性能。通过实践案例展示如何使用 Python 和 NumPy 实现小批量梯度下降。
113 1
|
机器学习/深度学习 算法 Python
探索机器学习中的梯度下降优化算法
【8月更文挑战第1天】在机器学习的广阔天地里,梯度下降法如同一位勇敢的探险家,指引我们穿越复杂的数学丛林,寻找模型参数的最优解。本文将深入探讨梯度下降法的核心原理,并通过Python代码示例,展示其在解决实际问题中的应用。
189 3
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
242 3
|
机器学习/深度学习 人工智能 算法
【人工智能】<吴恩达-机器学习>批量梯度下降&矩阵和向量运算概述
【1月更文挑战第26天】【人工智能】<吴恩达-机器学习>批量梯度下降&矩阵和向量运算概述