网络知识 娱乐 【机器学习】浅谈正规方程法&梯度下降

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

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

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

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

【机器学习】

  • 一、梯度下降
    • 1.1 一个参数
    • 1.2梯度下降核心方程
    • 1.3学习率 α alpha α
    • 1.4两个参数
    • 1.5多个参数
    • 1.6数据标准化
  • 二、正规解法
    • 2,1 使用场景和优缺点
    • 2.2 正规方程(不可逆性)* 选读

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

一、梯度下降

1.1 一个参数

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

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

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

h θ ( x ) h_theta(x) hθ(x) = θ 1 ∗ x theta_1*x θ1x
我们希望能求出 θ 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=1nnhθ(x)y2 (代价函数方程 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)}{dtheta_1} dθ1dJ(θ1) (即求导数)。
原理讲解

  • θ 1 theta_1 θ1 所在的代价函数区间是单调递增的,如下图(红线标记),
    此时 d J ( θ 1 ) d θ 1 frac{dJ(theta_1)}{dtheta_1} dθ1dJ(θ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 α需要根据数据调节,

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

在这里插入图片描述

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

1.4两个参数

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

h θ ( x ) h_theta(x) <