查看全课大纲(第 1 / 82 节)
  1. 1.函数与数据泛化
  2. 2.向量:从几何直觉到高维空间
  3. 3.矩阵与张量
  4. 4.特征值与特征向量:矩阵变换的不动方向
  5. 5.凸函数:从向量求导的矩阵记号到好优化的函数形状
  6. 6.概率与统计:机器学习的数学基础
  7. 7.独立性与随机变量:贝叶斯公式与二项分布
  8. 8.期望、方差与协方差:随机变量的数字画像
  9. 9.联合概率:当一条轴不够用的时候
  10. 10.概率分布(一):从伯努利到伽马函数
  11. 11.概率分布(二):贝塔、泊松、正态与两个贝叶斯故事
  12. 12.机器学习的模型:找输入与输出的关系
  13. 13.机器学习的应用
  14. 14.过拟合
  15. 15.机器学习的分类
  16. 16.有监督学习:从房价预测说起
  17. 17.损失函数
  18. 18.梯度下降(上):更新规则与学习速率
  19. 19.梯度下降(2)
  20. 20.牛顿方法
  21. 21.KNN简介
  22. 22.距离测算
  23. 23.朴素贝叶斯
  24. 24.朴素贝叶斯的实际应用
  25. 25.信息熵:决策树构建的度量基础
  26. 26.信息增益与决策树的构建
  27. 27.ID3算法
  28. 28.决策树节点的划分
  29. 29.CART树
  30. 30.Bagging
  31. 31.Boosting:自适应提升算法
  32. 32.Gradient Boosting
  33. 33.线性模型:回归与分类的同一副骨架
  34. 34.最小二乘:把最优参数直接解出来
  35. 35.最小二乘法的几何与概率视角
  36. 36.极大似然:给最小二乘一个概率出身
  37. 37.逻辑回归(1):把线性模型接到分类上
  38. 38.逻辑回归(2):损失函数与多分类
  39. 39.---- 手造数据: 5 个样本, 2 个特征; x2 几乎 = 2*x1 (偏差手工指定, 无随机) ----
  40. 40.讲师例: 向量 "23014" -- 三把范数尺子量同一个向量
  41. 41.优化方法(1):坐标下降与前向选择
  42. 42.优化方法(2):前向策略与最小角回归
  43. 43.拉格朗日乘子法(1):从无约束到等式约束
  44. 44.拉格朗日乘子法(2):等式约束下的平行条件与拉格朗日函数
  45. 45.拉格朗日乘子法(3):不等式约束与 KKT 条件
  46. 46.最大间隔:把分类问题变成优化问题
  47. 47.拉格朗日对偶问题:把 w 和 b 全部换成 α
  48. 48.支持向量:边界上的少数派
  49. 49.SVM 计算过程:一笔到底算完,再走进核方法
  50. 50.贝叶斯公式:概率即信念
  51. 51.隐含变量和概率模型:给看不见的原因建模
  52. 52.EM 算法:期望与最大化的迭代
  53. 53.琴生不等式:EM 的数学钥匙
  54. 54.三个硬币问题:EM 的复盘与衔接
  55. 55.高斯混合模型:用隐变量解释双峰数据
  56. 56.隐马尔可夫模型
  57. 57.隐马尔可夫模型(2):前向算法与动态混合模型
  58. 58.隐马尔可夫模型在 NLP 中的运用
  59. 59.EM 算法:把「为什么收敛」推到底
  60. 60.HMM 在 NLP 中的运用:从分词到机器翻译
  61. 61.HMM 参数估计:Baum-Welch 的三块拉格朗日
  62. 62.高维下的高斯模型
  63. 63.主题模型:从词袋到隐含主题
  64. 64.Dirichlet 分布(1)
  65. 65.Dirichlet 分布(2)
  66. 66.统计学习内容回顾
  67. 67.K-means 算法
  68. 68.PCA 降维
  69. 69.SVD 降维
  70. 70.从聚类到流形
  71. 71.局部线性嵌入
  72. 72.随机邻域嵌入:SNE 与 t-SNE
  73. 73.无参模型:让数据自己说话
  74. 74.高斯过程:函数空间里的正态分布
  75. 75.高斯过程(2):噪声、正则化与核的线性组合
  76. 76.神经网络简介:从感知器到自编码器
  77. 77.反向传播:把误差一层层传回去
  78. 78.卷积神经网络(CNN):让特征自己学出来
  79. 79.循环神经网络(RNN):给网络装上记忆
  80. 80.深度学习回顾:静态一类,动态一类
  81. 81.增强学习(1):蒙特卡洛、树搜索与 Q-learning
  82. 82.强化学习(2):从乌鸦吃核桃到井字棋的 value 回传

函数与数据泛化

约 15 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

小象实战讲义 · 机器学习算法精讲

欢迎来到机器学习算法精讲的第一课。机器学习听起来像是”机器”在学习,但讲师更愿意把它叫作 model learning——我们面对真实世界纷繁复杂的数据,目标是为其背后的规律找到一个合适的数学模型。本节课从最基础的数学概念——函数出发,看它如何成为我们理解和泛化数据的核心工具,并回顾几种在机器学习中至关重要的函数形式。

💡 核心导读

  • 从”机器学习”到”模型学习”:机器学习的本质是给数据寻找数学模型。
  • 函数即关系:函数是描述输入与输出之间关系的数学工具,这种关系可以是显式的(如物理公式),也可以是隐式的(如社会现象)。
  • 函数的多样性:从标量到向量、从静态模型到动态模型,函数的形式决定了我们描述世界的能力。
  • 关键函数回顾:指数、对数、Sigmoid 与 ReLU,是后续课程天天会碰到的基石。
  • 函数的构造与复合:简单函数既可相加组合(如多项式),也可层层复合,搭建出复杂的模型。

函数的本质:从映射到关系

在数学中,一个函数(function)定义了一组输入与一组允许输出之间的特定关系,核心特性是:每一个输入都唯一地对应一个输出。它既是一种映射(mapping),本质上更是一种关系(relation)。

一个简单的例子是 f(x)=2x+3f(x) = 2x + 3。当输入 x=2x=2 时,输出 f(2)=7f(2) = 7。这描述了一种清晰的、显式的(explicit)关系:给一个物体施加力(输入),它会产生运动(输出),可以写成 F=maF = ma 这样的方程。

但生活中还有远比这复杂的函数关系。你饿了、吃了东西,会觉得饱——输入是食物,输出是饱腹感,但这个关系很难用一个简洁的方程描述。再比如”努力学习 → 可能考上好大学 → 可能找到好工作 → 可能挣到更多钱”:这些关系确实存在,只是无法用 F=maF=ma 那样的物理方程显式写出。这类函数称为隐式的(implicit)函数关系,与显式的(explicit)相对。

机器学习的核心任务,正是从观测到的数据(输入-输出对)中,学习出这种或显或隐的函数关系,从而对未知情况做出预测。从这个意义上说,这门课叫”模型学习”(model learning)比”机器学习”更贴切——只是大家叫习惯了。

从标量到向量:函数的维度拓展

我们最先学的函数,如 y=x2y = x^2,输入输出都是标量(scalar)。但仅有标量函数,能刻画的世界太有限。

  • 从平面到空间:把平方、三次方这些简单函数组合起来,就得到多项式(polynomial)函数,能刻画更复杂的形状——这说明复杂函数可以由简单函数构造而来。
  • 多元函数:输入变成两个变量时,z=f(x,y)z = f(x, y) 描述了三维空间中的一张曲面;输入继续拓展到 nn 维向量 x=[x1,x2,…,xn]T\mathbf{x} = [x_1, x_2, \ldots, x_n]^T,就得到 y=f(x)y = f(\mathbf{x})——这正是机器学习里最常见的情形:每个数据样本就是一个特征向量。
  • 静态与动态:没有周期性、与时间无关的映射是静态模型——给定一个输入,得到一个输出,与时间顺序无关;而像 sin⁡\sin、cos⁡\cos 这样沿时间轴周期变化的,以及股票价格、太阳黑子数量这类随时间起伏的序列,则是动态模型(dynamic)——时间本身作为一个输入量,取值随时间不同而不同。

看一个真实数据的例子:从 1700 年到 2008 年,每年的太阳黑子数量大约每 11 年出现一次爆发尖峰,整体呈现明显的周期性动态特征。面对图中这些真实数据点,机器学习希望找到一条函数曲线去拟合(fit)与逼近(approximate)它们——拟合好历史,才能合理预测未来(比如 2050 年太阳黑子会是什么水平)。这个”寻找最佳函数”的过程,就是模型学习。

机器学习中的关键函数

构建和训练模型时,下面这几个函数会反复出现,值得先混个脸熟。

指数函数与对数函数

  • 指数函数 y=exy = e^x:指数增长是”翻着倍长”——1 变 2、2 变 4、4 变 8,每隔一步总量翻倍,增长越来越快。它与线性增长(每个时间段只增加固定的量)完全不是一个概念。两个经典例子:谣言的传播——你转发给朋友,朋友再转发给他的几百个朋友,很快覆盖整个网络;国际象棋棋盘的传说——第 1 格放 1 粒麦子、第 2 格 2 粒、第 3 格 4 粒……放到 8×8=64 格的第 64 格是 2632^{63} 粒,全世界的粮食产量都填不满这个棋盘。指数增长,是非常可怕的事。
  • 对数函数 y=log⁡(x)y = \log(x)(以 ee、22 或 1010 为底):它是指数函数的反函数,增长越来越慢。信息论里常用以 2 为底的对数,因为我们关心的信息由 0 和 1 的组合表达——数一数需要多少个 0/1 组合,正好用上 log⁡2\log_2。

Sigmoid 函数

σ(x)=11+e−x\sigma(x) = \frac{1}{1 + e^{-x}}

它的输入端是整个实数轴(负无穷到正无穷),而无论输入什么,输出 σ(x)\sigma(x) 总被压缩在 (0,1)(0, 1) 之间。这个”把整条数轴映射到 0 和 1 之间”的优良特性,让它日后成为常用的激活函数——比如把线性输出转化为类别概率时。

ReLU 函数

ReLU(Rectified Linear Unit,修正线性单元)更简单:

ReLU(x)=max⁡(0,x)\mathrm{ReLU}(x) = \max(0, x)

x>0x > 0 时原样输出(x=3x=3 则 y=3y=3),x≤0x \le 0 时输出 0。它也是深度学习中常用的激活函数,好处之一是不像 Sigmoid 那样容易在训练中梯度消失——细节到第 19 章神经网络时展开。

函数的复合:构建复杂模型

复杂模型可以由简单函数搭出来。除了像多项式那样”相加组合”,还有一种更灵活的构造方式——复合(composition):把一个函数的输出,作为另一个函数的输入。记 f∘gf \circ g 为 ff 与 gg 的复合:

(f∘g)(x)=f(g(x))(f \circ g)(x) = f(g(x))

示例:设 f(x)=2x+3f(x) = 2x + 3,先求 f∘f(x)f \circ f(x):把 f(x)=2x+3f(x) = 2x+3 的输出再喂回 ff,得 (f∘f)(x)=f(f(x))=2(2x+3)+3=4x+9(f \circ f)(x) = f(f(x)) = 2(2x+3) + 3 = 4x + 9。

再复合一次,f∘f∘f(x)=f(4x+9)=2(4x+9)+3=8x+21f \circ f \circ f(x) = f(4x+9) = 2(4x+9) + 3 = 8x + 21;代入 x=2x=2:f∘f∘f(2)=8×2+21=37f \circ f \circ f(2) = 8 \times 2 + 21 = 37。逐层套娃,验证一下:f(2)=7f(2)=7,f(7)=17f(7)=17,f(17)=37f(17)=37,一致。

靠这种层层复合,线性变换、Sigmoid、ReLU 这些基础件就能堆叠出表达能力极强的复杂模型——第 19 章的神经网络正是这一思想的代表。

📝 动手练一练

  1. 概念辨析:想用机器学习模型刻画”每天学习时间”与”考试成绩”的关系,这更适合静态模型还是动态模型?为什么?
👉 点击查看参考答案

更适合静态模型。考试成绩由一段时期的学习投入决定,是”给定输入、得到输出”的结果性输出,与时间序列的先后演化无关——即便纳入多天数据,也是把它们作为一个多维特征向量一次性输入,而不是按时间顺序递推。动态模型对应的是股价、太阳黑子这类”当前取值依赖时间位置”的序列数据。

  1. 动手实现:用 Python 标准库实现 Sigmoid 与 ReLU,对输入 [-2, -1, 0, 1, 2] 计算输出,并注意数值稳定性(防 exp 溢出)。
👉 点击查看参考答案
import math

def sigmoid(x):
    """Sigmoid,对指数输入限幅防溢出"""
    x = max(min(x, 500), -500)
    return 1 / (1 + math.exp(-x))

def relu(x):
    """ReLU:max(0, x)"""
    return max(0, x)

test_inputs = [-2, -1, 0, 1, 2]
print("输入值:", test_inputs)
print("Sigmoid输出:", [round(sigmoid(x), 6) for x in test_inputs])
print("ReLU输出:    ", [relu(x) for x in test_inputs])
输入值: [-2, -1, 0, 1, 2]
Sigmoid输出: [0.119203, 0.268941, 0.5, 0.731059, 0.880797]
ReLU输出:     [0, 0, 0, 1, 2]

从输出可见:Sigmoid 把整条数轴压进了 (0,1)(0,1)——对称中心 0 恰好映射为 0.5;ReLU 对非正数输出 0、正数原样通过。两者都将在后续课程反复出场。

本章小结

本节奠定了全课的思想基调:机器学习更准确地说是”模型学习”——给定数据,为其中的规律找一个合适的数学模型。函数是描述这种规律的基本工具:它既是映射、更是关系,从显式的物理方程到隐式的生活因果;从标量到向量、从静态到动态。指数与对数的增长直觉、Sigmoid 的”压到 (0,1)“、ReLU 的”负数归零”,以及简单函数经组合与复合生长为复杂模型的能力,会在后续每一章反复用到。(函数与线性代数基础的系统展开,可对照站内《人工智能数学基础》相关章节补强。)

📋 行动清单

  • 用”输入—输出—关系”的框架观察一个身边现象,判断它是显式函数还是隐式函数
  • 运行一遍本节 Sigmoid/ReLU 代码,改几个极端输入(如 -1000、1000),体会限幅的必要性与两函数的形状差异
  • 按课件 Page 9 的原题继续算:f∘f∘f∘f(x)f \circ f \circ f \circ f(x) 等于多少?(f(x)=2x+3f(x)=2x+3)

—— 小象教研组

配套资料 · 直接下载

课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。

  • 第1章课件:机器学习的数学基础 I
    下载
  • 第1章笔记:机器学习导论
    下载
  • 第1章笔记:行列式的几何解释
    下载
  • 第1章笔记:Lp 范数
    下载