线性回归的梯度下降优化过程
题目描述
线性回归是一种预测连续值的监督学习算法,其目标是找到一组参数(权重和偏置),使得预测值与真实值之间的均方误差最小。梯度下降是一种迭代优化算法,通过计算损失函数的梯度并沿负梯度方向更新参数来最小化损失函数。本题目将详细讲解如何使用梯度下降法求解线性回归的参数。
解题过程
- 定义线性回归模型与损失函数
- 线性回归模型:
\[ y = w_1 x_1 + w_2 x_2 + \cdots + w_n x_n + b \]
其中 $ w $ 为权重,$ b $ 为偏置,$ x $ 为特征,$ y $ 为预测值。
- 损失函数(均方误差,MSE):
\[ L(w, b) = \frac{1}{m} \sum_{i=1}^{m} (y^{(i)} - \hat{y}^{(i)})^2 \]
其中 $ m $ 为样本数量,$ \hat{y}^{(i)} $ 为第 $ i $ 个样本的真实值。
- 计算梯度
- 对权重 \(w_j\) 的偏导数:
\[ \frac{\partial L}{\partial w_j} = \frac{2}{m} \sum_{i=1}^{m} (y^{(i)} - \hat{y}^{(i)}) \cdot (-x_j^{(i)}) = -\frac{2}{m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)}) x_j^{(i)} \]
- 对偏置 \(b\) 的偏导数:
\[ \frac{\partial L}{\partial b} = -\frac{2}{m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)}) \]
- 梯度向量为 \(\nabla L = \left[ \frac{\partial L}{\partial w_1}, \frac{\partial L}{\partial w_2}, \ldots, \frac{\partial L}{\partial b} \right]\).
- 梯度下降更新参数
- 初始化参数 \(w\) 和 \(b\)(如设为0或随机小值)。
- 设置学习率 \(\alpha\)(如0.01)和迭代次数 \(T\)。
- 重复以下步骤直到收敛或达到最大迭代次数:
\[ w_j^{\text{new}} = w_j^{\text{old}} - \alpha \cdot \frac{\partial L}{\partial w_j} \]
\[ b^{\text{new}} = b^{\text{old}} - \alpha \cdot \frac{\partial L}{\partial b} \]
实际计算时,常用小批量梯度下降(Mini-batch),即每次更新使用一小部分样本计算梯度。
- 收敛判断
- 检查损失函数的变化率(如两次迭代间损失值变化小于阈值 \(\epsilon\)),或直接限制最大迭代次数。
关键点说明
- 学习率 \(\alpha\) 需谨慎选择:过大会导致震荡,过小则收敛慢。
- 特征标准化可加速收敛(如将特征缩放到均值为0、方差为1)。
- 梯度下降的变体(如随机梯度下降、Adam)可进一步提升效率。