机器学习 - 梯度下降在多参数线性回归模型的应用以及解析

时间:2024-07-07 07:06:52

我们通过一个具体的例子来演示多变量线性回归中的梯度下降算法。

示例数据集

假设我们有一个简单的数据集,包含两个特征和一个目标值:

(x_1) (x_2) (y)
1 2 5
2 3 8
3 4 11
4 5 14

我们要训练一个线性回归模型,模型的形式为:
f w , b ( x ) = w 1 ⋅ x 1 + w 2 ⋅ x 2 + b f_{w,b}(x) = w_1 \cdot x_1 + w_2 \cdot x_2 + b fw,b(x)=w1x1+w2x2+b

梯度下降步骤

我们从随机初始化的参数 w 1 w_1 w1 w 2 w_2 w2 b b b 开始,然后通过梯度下降算法迭代地更新这些参数。

初始化

假设:

  • 初始权重 w 1 = 0 w_1 = 0 w1=0 w 2 = 0 w_2 = 0 w2=0
  • 初始偏置 b = 0 b = 0 b=0
  • 学习率 α = 0.01 \alpha = 0.01 α=0.01
  • 迭代次数为 2 次(为了简洁)

计算梯度

我们需要计算每个参数的偏导数,并用这些偏导数来更新参数。

第一次迭代

计算偏导数
  1. 计算预测值和误差:
    预测值 f w , b ( x ( i ) ) = w 1 ⋅ x 1 ( i ) + w 2 ⋅ x 2 ( i ) + b \text{预测值} \quad f_{w,b}(x^{(i)}) = w_1 \cdot x_1^{(i)} + w_2 \cdot x_2^{(i)} + b 预测值fw,b(x(i))=w1x1(i)+w2x2(i)+b
    对于每个样本,我们计算预测值和误差:

    • 对于第一个样本 (1, 2, 5):
      f w , b ( x ( 1 ) ) = 0 ⋅ 1 + 0 ⋅ 2 + 0 = 0 误差 = 0 − 5 = − 5 f_{w,b}(x^{(1)}) = 0 \cdot 1 + 0 \cdot 2 + 0 = 0 \\ \text{误差} \quad = 0 - 5 = -5 fw,b(x(1))=01+02+0=0误差=05=5
    • 对于第二个样本 (2, 3, 8):
      f w , b ( x ( 2 ) ) = 0 ⋅ 2 + 0 ⋅ 3 + 0 = 0 误差 = 0 − 8 = − 8 f_{w,b}(x^{(2)}) = 0 \cdot 2 + 0 \cdot 3 + 0 = 0 \\ \text{误差} \quad = 0 - 8 = -8 fw,b(x(2))=02+03+0=0误差=08=8
    • 对于第三个样本 (3, 4, 11):
      f w , b ( x ( 3 ) ) = 0 ⋅ 3 + 0 ⋅ 4 + 0 = 0 误差 = 0 − 11 = − 11 f_{w,b}(x^{(3)}) = 0 \cdot 3 + 0 \cdot 4 + 0 = 0 \\ \text{误差} \quad = 0 - 11 = -11 fw,b(x(3))=03+04+0=0误差=011=11
    • 对于第四个样本 (4, 5, 14):
      f w , b ( x ( 4 ) ) = 0 ⋅ 4 + 0 ⋅ 5 + 0 = 0 误差 = 0 − 14 = − 14 f_{w,b}(x^{(4)}) = 0 \cdot 4 + 0 \cdot 5 + 0 = 0 \\ \text{误差} \quad = 0 - 14 = -14 fw,b(x(4))=04+05+0=0误差=014=14
  2. 计算梯度:
    ∂ J ∂ w 1 = 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) ⋅ x 1 ( i ) ∂ J ∂ w 2 = 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) ⋅ x 2 ( i ) ∂ J ∂ b = 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) \frac{\partial J}{\partial w_1} = \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)}) - y^{(i)}) \cdot x_1^{(i)} \\ \frac{\partial J}{\partial w_2} = \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)}) - y^{(i)}) \cdot x_2^{(i)} \\ \frac{\partial J}{\partial b} = \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)}) - y^{(i)}) w1J=m1i=1m(fw,b(x(i))y(i))x1(i)w2J=m1i=1m(fw,b(x(i))y(i))x2(i)