本文主要是介绍用人话讲明白梯度下降Gradient Descent(以求解多元线性回归参数为例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1.梯度
- 2.多元线性回归参数求解
- 3.梯度下降
- 4.梯度下降法求解多元线性回归
梯度下降算法在机器学习中出现频率特别高,是非常常用的优化算法。
本文借多元线性回归,用人话解释清楚梯度下降的原理和步骤。
1.梯度
梯度是什么呢?
我们还是从最简单的情况说起,对于一元函数来讲,梯度就是函数的导数。
而对于多元函数而言,梯度是一个向量,也就是说,把求得的偏导数以向量的形式写出来,就是梯度。
例如,我们在用人话讲明白线性回归LinearRegression一文中,求未知参数 β 0 \beta_{0} β0 和 β 1 \beta_{1} β1时,对损失函数求偏导,此时的梯度向量为 ( ∂ Q ∂ β 0 , ∂ Q ∂ β 1 ) T (\frac{∂Q}{∂\beta_{0}}, \frac{∂Q}{∂\beta_{1}})^T (∂β0∂Q,∂β1∂Q)T,其中:
∂ Q ∂ β 0 = 2 ∑ 1 n ( y i − β 0 ^ − β 1 ^ x i ) \frac{\partial Q}{\partial \beta_{0}}=2\sum_{1}^{n}{(y_{i}-\hat{\beta_{0}}-\hat{\beta_{1}}x_{i})} ∂β0∂Q=2∑1n(yi−β0^−β1^xi)
∂ Q ∂ β 1 = 2 ∑ 1 n ( y i − β 0 ^ − β 1 ^ x i ) x i \frac{\partial Q}{\partial \beta_{1}}=2\sum_{1}^{n}{(y_{i}-\hat{\beta_{0}}-\hat{\beta_{1}}x_{i})x_{i}} ∂β1∂Q=2∑1n(yi−β0^−β1^xi)xi
那篇文章中,因为一元线性回归中只有2个参数,因此令两个偏导数为0,能很容易求得 β 0 \beta_{0} β0 和 β 1 \beta_{1} β1的解。
但是,这种求导的方法在多元回归的参数求解中就不太实用了,为什么呢?
2.多元线性回归参数求解
多元线性回归方程的一般形式为:
y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β p x p y={\beta}_{0}+{\beta}_{1} {x}_{\mathbf{1} }+{\beta}_{2} {x}_{2 }+\cdots+{\beta}_{p}{x}_{p} y=β0+β1x1+β2x2+⋯+βpxp
可以简写为矩阵形式(一般加粗表示矩阵或向量):
Y = X β \boldsymbol{Y}=\boldsymbol{X}\boldsymbol{\beta} Y=Xβ
其中, Y = [ y 1 y 2 ⋮ y n ] , X = [ 1 x 11 ⋯ x 1 p 1 x 21 ⋯ x 2 p ⋮ ⋮ ⋮ 1 x n 1 ⋯ x n p ] , β = [ β 0 β 1 ⋮ β p ] \boldsymbol{Y}=\left[\begin{array}{c}y_{1} \\ y_{2} \\ \vdots \\ y_{n}\end{array}\right], \boldsymbol{X}=\left[\begin{array}{cccc}1 & x_{11} & \cdots & x_{1 p} \\ 1 & x_{21} & \cdots & x_{2 p} \\ \vdots & \vdots & & \vdots \\ 1 & x_{n 1} & \cdots & x_{n p}\end{array}\right], \boldsymbol{\beta}=\left[\begin{array}{c}\beta_{0} \\ \beta_{1} \\ \vdots \\ \beta_{p}\end{array}\right] Y=⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤,X=⎣⎢⎢⎢⎡11⋮1x11x21⋮xn1⋯⋯⋯x1px2p⋮xnp⎦⎥⎥⎥⎤,β=⎣⎢⎢⎢⎡β0β<
这篇关于用人话讲明白梯度下降Gradient Descent(以求解多元线性回归参数为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!