绪论

  • 本周初步入门了机器学习课程,了解了机器学习的一些背景,对机器学习任务分类,回归问题完整三步框架,损失函数与优化(梯度下降),线性模型局限与非线性拟合思想,偏差与方差的权衡,欠拟合与过拟合的识别与对策,正则化、交叉验证,梯度下降算法进行了初步的了解。

一、机器学习核心概念

1.1 人工智能、机器学习与深度学习的关系

  • 人工智能:目标。
  • 机器学习:实现人工智能的手段。
  • 深度学习:机器学习的一种特殊方法,基于神经网络。

1.2 机器学习的本质:寻找函数

  • 任何机器学习任务都可以归结为:让机器根据输入找到一个合适的函数(Function),产生期望的输出。
  • 示例:
    • 语音识别:输入音频 → 输出文字。
    • 图像识别:输入图片 → 输出类别。

1.3 机器学习的主要任务类型

任务类型 输出形式 典型应用
回归 连续数值 房价预测、气温预测
分类 离散类别 垃圾邮件识别、图片分类
结构化学习 结构化对象(序列、树、图等) 文本生成、图像生成

1.4 按数据标注情况分类

  • 监督学习:训练数据有完整标签。
  • 自监督学习:无需人工标注,模型从数据自身构造监督信号进行预训练。
  • 无监督学习:训练数据完全无标签,挖掘内在结构(如聚类)。
  • 强化学习:没有明确标签,仅根据奖励/惩罚信号学习策略(如下围棋)。

二、回归(Regression)

2.1 回归任务定义

  • 目标:预测一个连续的数值输出。
  • 示例:根据历史 PM2.5 数据预测未来一小时的 PM2.5 数值。

2.2 机器学习的三步框架(以回归为例)

2.2.1 第一步:定义模型(一组带有未知参数的函数)

  • 简单线性模型:y = b + w · x
    • x:输入特征(已知)
    • y:预测值
    • w:权重(未知)
    • b:偏置(未知)
  • 更复杂的模型可以包含多个特征:y = b + Σ w_i · x_i

2.2.2 第二步:定义损失函数(Loss Function)

  • 损失函数:衡量一组参数 (w, b) 预测结果与真实值之间的差距。
  • 常用形式:
    • MAE(平均绝对误差)e = |y_true - y_pred|
    • MSE(均方误差)e = (y_true - y_pred)²
  • 训练过程中数据分批(Batch):
    • 一个批次计算一次损失并更新参数 → 一次 Update
    • 完整遍历一次所有批次 → 一个 Epoch

2.2.3 第三步:优化 — 梯度下降(Gradient Descent)

  • 核心思想:通过迭代更新参数,使损失函数值最小化。
  • 更新公式w_new = w_old - η · ∂L/∂w
    • η:学习率(Learning Rate),控制步长。
    • ∂L/∂w:损失函数对参数的偏导数(梯度)。
  • 过程
    1. 随机初始化参数。
    2. 计算当前点的梯度。
    3. 沿梯度反方向更新参数(梯度为正则减小参数,为负则增大参数)。
    4. 重复直到梯度趋近于0或达到预设迭代次数。

2.3 从线性模型到更复杂的模型

2.3.1 线性模型的局限

  • 当线性模型在训练集和测试集上的损失均不理想时,表示模型表达能力不足(高偏差/欠拟合)。
  • 线性模型无法拟合非线性的复杂关系。

2.3.2 用分段线性曲线逼近非线性函数

  • 任何连续曲线都可以用许多分段线性折线近似。
  • 一条复杂的目标红线可以表示为:常数项 + 若干条蓝色折线的叠加

2.3.3 激活函数与神经网络

  • Sigmoid 函数:平滑的 S 形曲线,常用来模拟“折线”的拐弯效果。
  • 神经网络:将多个带有 Sigmoid(或其它激活函数)的线性组合叠加,构成可以拟合任意非线性函数的模型。
  • 神经网络中,每个“神经元”执行:线性变换 + 激活函数

三、误差与梯度下降

3.1 误差的来源:偏差(Bias)与方差(Variance)

  • 偏差:模型的“先验假设”与真实情况之间的差距。
    • 简单模型 → 高偏差 → 容易欠拟合(在训练集上表现就差)。
  • 方差:模型对不同训练数据样本的敏感程度。
    • 复杂模型 → 高方差 → 容易过拟合(训练集表现极好,测试集表现差)。

3.2 模型诊断与选择

3.2.1 欠拟合(高偏差)的表现与对策

  • 表现:训练集损失很大。
  • 对策
    • 增加模型复杂度(增加特征、增加神经网络层数/神经元数量)。
    • 减少正则化强度。

3.2.2 过拟合(高方差)的表现与对策

  • 表现:训练集损失很小,但验证集/测试集损失很大。
  • 对策
    • 增加训练数据量。
    • 降低模型复杂度(减少特征、简化网络结构)。
    • 正则化(Regularization):在损失函数中增加参数范数惩罚项(如 L1 或 L2 正则化),限制参数大小。

3.2.3 模型选择方法

  • 交叉验证(Cross Validation)
    • 将训练数据分成 K 份,轮流用 K-1 份训练,1 份验证,最后取平均性能。
    • 避免因一次划分的偶然性导致误判。

3.3 梯度下降深入解析

3.3.1 梯度下降的工作原理

  • 梯度方向是函数值上升最快的方向,负梯度方向是下降最快的方向。
  • 梯度下降利用这一性质,每次沿负梯度方向更新参数。

3.3.2 学习率的影响

  • 学习率过小:收敛速度慢,容易陷入局部极小。
  • 学习率过大:损失函数震荡甚至发散,无法收敛。
  • 常用改进:学习率调度(Learning Rate Scheduling),如随时间衰减、自适应学习率方法(Adam、RMSprop 等)。

3.3.3 梯度下降的变体

  • 批量梯度下降(BGD):使用全部数据计算梯度,准确但慢。
  • 随机梯度下降(SGD):每次随机使用一个样本计算梯度,快但不稳定。
  • 小批量梯度下降(Mini-batch GD):取折中,每次使用一个小批量样本(最常用)。

3.4 梯度下降面临的挑战

3.4.1 局部极小值(Local Minima)

  • 梯度为0但并非全局最优的点。
  • 在高维深度学习模型中,真正的局部极小值很少,更常见的是鞍点(Saddle Point)

3.4.2 鞍点(Saddle Point)

  • 梯度为0,但在某些维度上是极小值,在另一些维度上是极大值。
  • 导致梯度下降停滞不前。

3.4.3 如何应对

  • 使用动量(Momentum) 方法:累加历史梯度,帮助冲出平坦区域或鞍点。
  • 使用自适应学习率优化器(Adam、RMSprop 等)。
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐