Eagle233-Blog

[Machine Learning 2021] 回归(Regression)


Categories Machine Learning 2021
Tags

1.2k Words   |   4 Minutes

回归(Regression)

机器学习:寻找函数

机器学习可以概括为“寻找函数” ($f$):

  • 语音识别:输入声音,输出文本(如 $f(\text{声音}) = \text{“How are you”}$)。
  • 图像识别:输入图片,输出类别(如 $f(\text{图片}) = \text{“Cat”}$)。
  • 下围棋:输入棋局,输出下一步棋的走法。

不同类型的函数

  • 回归(Regression):函数输出一个标量 (scalar)。

    • 例子:预测明天的 PM2.5 浓度。
  • 分类(Classification):函数输出正确的类别。

    • 例子:垃圾邮件过滤 ($f(\text{邮件}) = \text{Yes/No}$)。
    • 例子:下围棋中预测下一步棋,可视为 $19 \times 19$ 类的分类问题。
  • 结构化学习(Structured Learning):生成具有结构的输出(如图像、文档),比回归与分类更进一步。


寻找函数:案例研究

案例:预测 YouTube 频道(李宏毅教授)在 2/26 的观看次数 $y$。
目标:找到函数
$$y = f(\text{输入特征})$$

一般步骤:

  1. 函数模型假设:假设具有未知参数的函数。
  2. 定义损失函数 (Loss):度量预测结果与真实值的差异。
  3. 优化 (Optimization):通过最小化损失函数找到最优参数。

1. 函数模型假设(线性模型)

假设一个简单的线性模型:
$$y = b + w x_1$$

其中:

  • $y$:目标值(观看次数)
  • $x_1$:特征(前一天观看次数)
  • $w$:权重 (weight)
  • $b$:偏差 (bias)

$w$ 和 $b$ 是需要从数据中学习的未知参数。


2. 定义损失函数 (Loss)

损失函数 $L(b, w)$ 衡量参数好坏:

  • 均方误差 (MSE):$$e = (y - \hat{y})^2$$
  • 平均绝对误差 (MAE):$$e = |y - \hat{y}|$$
  • 交叉熵 (Cross-entropy):用于概率分布型任务。

误差曲面 (Error Surface):展示损失 $L$ 随参数 $(w, b)$ 变化的图像。
目标是找到使 $L$ 最小的点。


3. 优化 (Optimization)

目标:
$$w^, b^ = \arg \min_{w, b} L$$

梯度下降 (Gradient Descent)

  1. 随机初始化 $w^0, b^0$
  2. 计算梯度
    $$\frac{\partial L}{\partial w}, \frac{\partial L}{\partial b}$$
  3. 更新参数
    $$
    \begin{aligned}
    w^{t+1} &\leftarrow w^t - \eta \frac{\partial L}{\partial w}
    b^{t+1} &\leftarrow b^t - \eta \frac{\partial L}{\partial b}
    \end{aligned}
    $$
    其中 $\eta$ 是学习率 (learning rate)。

结果(示例):
$$y = 0.1k + 0.97x_1$$
在训练集上最小损失 $L = 0.48k$,测试集上 $L’ = 0.58k$。

线性模型局限性:过于简单(存在模型偏差),难以拟合复杂数据。


寻找更复杂的模型(非线性)

分段线性与 Sigmoid

  • Sigmoid 函数:
    $$
    y = c \cdot \frac{1}{1 + e^{-(b + w x_1)}}
    $$

通过调整 $w, b, c$ 可以控制斜率、平移和高度。

多个 Sigmoid 的线性组合可以近似任意非线性函数:
$$
y = b + \sum_i c_i \cdot \text{sigmoid}(b_i + w_i x_1)
$$


新模型:多特征与 Sigmoid 层

扩展到多个特征:
$$
y = b + \sum_i c_i \cdot \text{sigmoid}\left(b_i + \sum_j w_{ij} x_j\right)
$$

向量形式:
$$
\mathbf{r} = \mathbf{b} + \mathbf{W}\mathbf{x}, \quad
\mathbf{a} = \sigma(\mathbf{r}), \quad
y = b + \mathbf{c}^T \mathbf{a}
$$

未知参数集合:
$$
\theta = {\mathbf{W}, \mathbf{b}, \mathbf{c}, b}
$$


新模型的优化

目标:
$$
\theta^* = \arg \min_{\theta} L
$$

梯度下降更新:
$$
\theta^{t+1} = \theta^t - \eta \nabla L(\theta^t)
$$

批量梯度下降(Mini-batch SGD)

  • 每次使用一个批次 (batch) 计算梯度。
  • 一个 epoch:遍历全部样本一次。
  • 更新次数:$\text{总样本数} / \text{批次大小}$。

更多模型变化

激活函数变化:Sigmoid → ReLU

  • ReLU(Rectified Linear Unit):
    $$
    \max(0, b + w x_1)
    $$
  • 使用 ReLU 的模型:
    $$
    y = b + \sum_i c_i \cdot \max(0, b_i + \sum_j w_{ij} x_j)
    $$

深度学习

  • 多层网络:将 Sigmoid/ReLU 层堆叠,形成隐藏层。
  • 神经元 (Neuron):计算单元。
  • 神经网络 (Neural Network):具有多层隐藏层的模型。
  • 深度学习 (Deep Learning):拥有多层结构(如 ResNet 有 152 层)。

模型复杂度与过拟合(Overfitting)

实验:
使用 56 天观看次数为输入,每层 100 个 ReLU 神经元。

模型 训练损失 (2017–2020) 测试损失 (2021)
1 层 0.28k 0.43k
2 层 0.18k 0.39k
3 层 0.14k 0.38k
4 层 0.10k 0.44k

结论:

  • 随着层数增加,训练损失持续下降。
  • 但测试损失上升 → 出现过拟合。

模型选择 (Model Selection):在后续任务中需平衡复杂度与泛化性能。


总结

本讲通过预测 YouTube 观看次数的例子,系统介绍了机器学习的三大核心步骤:

  1. 模型假设:设定具有未知参数的函数。
  2. 定义损失函数:衡量预测误差。
  3. 优化过程:使用梯度下降找到最优参数。

从简单的线性模型到非线性 Sigmoid / ReLU,再到多层神经网络(深度学习),逐步揭示模型复杂度与泛化之间的平衡关系,并指出过拟合是模型选择中的关键挑战。


Page views: Loading...  ·  Visitors: Loading...
Except where otherwise noted, original content on this site is dedicated to the public domain under CC0 1.0.
Powered by Hexo & Theme mdsuper
沪ICP备2026040813号
Search