Eagle233-Blog

[Machine Learning 2021] 回归(Regression)


Categories Machine Learning 2021
Tags

1.4k Words   |   5 Minutes

回归(Regression)

机器学习:寻找函数

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

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

不同类型的函数

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

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

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


寻找函数:案例研究

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

一般步骤:

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

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

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

其中:

  • yy:目标值(观看次数)
  • x1x_1:特征(前一天观看次数)
  • ww:权重 (weight)
  • bb:偏差 (bias)

ww 和 bb 是需要从数据中学习的未知参数。


2. 定义损失函数 (Loss)

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

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

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


3. 优化 (Optimization)

目标:
w∗,b∗=arg⁡min⁡w,bLw^*, b^* = \arg \min_{w, b} L

梯度下降 (Gradient Descent)

  1. 随机初始化 w0,b0w^0, b^0
  2. 计算梯度
    ∂L∂w,∂L∂b\frac{\partial L}{\partial w}, \frac{\partial L}{\partial b}
  3. 更新参数wt+1←wt−η∂L∂w bt+1←bt−η∂L∂b\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.97x1y = 0.1k + 0.97x_1
在训练集上最小损失 L=0.48kL = 0.48k,测试集上 L′=0.58kL' = 0.58k。

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


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

分段线性与 Sigmoid

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

通过调整 w,b,cw, 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+wx1)\max(0, b + w x_1)
  • 使用 ReLU 的模型:y=b+∑ici⋅max⁡(0,bi+∑jwijxj)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