我们通过一个具体的例子来演示多变量线性回归中的梯度下降算法。
示例数据集
假设我们有一个简单的数据集,包含两个特征和一个目标值:
(x_1) | (x_2) | (y) |
---|---|---|
1 | 2 | 5 |
2 | 3 | 8 |
3 | 4 | 11 |
4 | 5 | 14 |
我们要训练一个线性回归模型,模型的形式为:
fw,b(x)=w1⋅x1+w2⋅x2+bf_{w,b}(x) = w_1 \cdot x_1 + w_2 \cdot x_2 + bfw,b(x)=w1⋅x1+w2⋅x2+b
梯度下降步骤
我们从随机初始化的参数 w1w_1w1、w2w_2w2 和 bbb 开始,然后通过梯度下降算法迭代地更新这些参数。
初始化
假设:
- 初始权重w1=0w_1 = 0w1=0、w2=0w_2 = 0w2=0
- 初始偏置 b=0b = 0b=0
- 学习率 α=0.01\alpha = 0.01α=0.01
- 迭代次数为 2 次(为了简洁)
计算梯度
我们需要计算每个参数的偏导数,并用这些偏导数来更新参数。
第一次迭代
计算偏导数
-
计算预测值和误差:
预测值fw,b(x(i))=w1⋅x1(i)+w2⋅x2(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))=w1⋅x1(i)+w2⋅x2(i)+b
对于每个样本,我们计算预测值和误差:- 对于第一个样本 (1, 2, 5):
fw,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))=0⋅1+0⋅2+0=0误差=0−5=−5 - 对于第二个样本 (2, 3, 8):
fw,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))=0⋅
- 对于第一个样本 (1, 2, 5):