现在位置: 首页 > AI 数学基础 > 正文

符号运算能力

之前的章节我们知道了各种规则和概念,本章节我们将看看大家的熟练度,是否可以自己把公式推一遍。

这个能力直接决定你能不能跟着论文里的推导走下去,而不是在作者跳步的地方卡住,每个知识点都配了交互演示,特别是 (a+b)² 的几何切分动画,看一遍就能明白"交叉项 2ab 是从哪来的"。


为什么"符号运算能力"很重要

读论文时经常会遇到这种情况:作者写了"经过化简,可得……",中间跳过了三五步。

如果符号运算不够熟练,这几步跳跃会直接把你挡在门外。

如果熟练,你可以自己把这几步补上,真正"跟上"作者的思路,而不是被动接受结论。

同样一条规则,"知道"和"能闭着眼睛熟练运用"是两个能力层级。这一章练的就是后者。


从 (a+b)² 到多元展开

最基础的恒等式

几何视角:为什么多出一个"2ab"

理解成"边长为 a+b 的正方形的面积",可以把这个正方形切成 4 块:

区域形状面积
左上角边长为 a 的正方形
右上角长 b、宽 a 的长方形
左下角长 a、宽 b 的长方形
右下角边长为 b 的正方形

四块面积加起来

这个"2ab"不是凭空冒出来的,而是两个交叉的长方形。点击下方"展开"按钮,看四块面积如何分开。

交互演示:(a+b)² 的几何切分
拖动滑块改变 a 和 b 的比例(总边长固定为 4),点击"展开"看正方形被切成四个部分,再点"复原"拼回去。
ab ab a = 2.5 b = 1.5 边长 (a+b) 的大正方形 被切成 4 块: a² + ab + ab + b² 交叉的 2ab 来自两个 绿色长方形

推广到三个变量

按照"每一对变量都会产生一个交叉项"的规律,可以直接写出:

推导逻辑:把 看成 ,展开时每一项和每一项两两相乘。

相同变量相乘得到平方项(),不同变量相乘会出现两次(比如 ),合并后就是

推广到向量

这个规律在向量运算里以另一种形式反复出现,比如计算两个向量差的模长平方:

本质就是把 里的"数"换成了"向量",把"乘法"换成了"点积"。

看到论文里出现类似的展开,可以直接联想到这里学的规则--新公式往往是旧规则换了一层皮,这正是"符号运算能力"帮你"看穿"新公式的方式。

实例

# 数值验证恒等式:一个检验公式是否记错的好习惯
# 思路:随便代入几个数,看等式两边是否相等

for a, b in [(2, 3), (5, 1), (0.5, 2.5), (-1, 4)]:
    lhs = (a + b) ** 2                 # 左边:(a+b)²
    rhs = a ** 2 + 2 * a * b + b ** 2  # 右边:a² + 2ab + b²
    print(a, b, abs(lhs - rhs) < 1e-12)

# 顺便验证向量版本:‖x - y‖² = ‖x‖² - 2x·y + ‖y‖²
import math
x, y = (3, 4), (1, 2)
lhs = (x[0]-y[0])**2 + (x[1]-y[1])**2
rhs = (x[0]**2 + x[1]**2) - 2*(x[0]*y[0] + x[1]*y[1]) + (y[0]**2 + y[1]**2)
print(abs(lhs - rhs) < 1e-12)

执行以上代码输出结果为:

2 3 True
5 1 True
0.5 2.5 True
-1 4 True
True

这个"随机代入验证"的方法非常实用:忘了公式细节时,代几个数就能确认自己记的版本对不对。

练习:展开

点击查看答案

分别把 代入 即可。


化简、变形、配方

配方法:把一般式变成"顶点式"

配方法的目标是把 这种"缺一块"的式子,凑成一个完整的平方:

例题:把 配方,得到

验证:展开 ,确实相等。

配方法的两个典型用途:

用途做法例子
求二次函数顶点直接看出顶点 (-3, -7),不需要画图或求导
凑完全平方简化推导把复杂多项式凑成平方项最小二乘法、正态分布最大似然估计的中间步骤
交互演示:配方法与顶点
拖动滑块改变 b,观察抛物线 y = x² + bx 的顶点如何移动,以及顶点横坐标始终等于 -b/2。

化简的一般思路

遇到一个复杂表达式,通常按这个顺序尝试:

顺序技巧说明
1合并同类项把相同的变量幂次合并
2提取公因式找出所有项共有的因子提出来
3利用恒等式套用 等现成公式
4换元反复出现的复杂子表达式用新变量代替

换元法例题:化简

令 t = x² + 1
原式 = t² - 3t + 2 = (t-1)(t-2)
代回 t:
     = (x²+1-1)(x²+1-2)
     = x² · (x²-1)
     = x⁴ - x²

能不能自己推导公式,是分水岭

"看懂"和"能推"是两个能力层级

层级表现
能读懂看着推导步骤,能理解"这一步为什么成立"
能推导合上书,自己能把这几步重新走一遍

很多人卡在论文阅读上,卡的不是"新知识",而是这一层:公式用到的都是前三章讲过的规则,只是需要在没有提示的情况下自己组织出正确的步骤顺序。

完整推导练习:均方误差的最小值

问题:给定 n 个数据点,想找一个常数 c,使得所有点到 c 的"平方距离之和" 最小,求最优的 c。

推导过程

设 f(c) = Σᵢ (xᵢ - c)²

展开每一项(用到 (a-b)² 公式):
f(c) = Σᵢ (xᵢ² - 2cxᵢ + c²)
     = Σᵢ xᵢ² - 2c·Σᵢxᵢ + n·c²    (把 Σ 拆到每一项,c 是常数可以提出来)

这是关于 c 的二次函数,开口向上(c² 系数为 n > 0),
顶点(最小值点)在 c = -B/2A,这里 B = -2Σxᵢ,A = n

代入:c = -(-2Σxᵢ) / (2n) = Σxᵢ / n

结论:最优的 c 正好是所有数据点的平均值

这个推导只用了本章和第一章的知识(平方展开、Σ 求和、二次函数顶点公式),却推出了统计学里"为什么均值是最小化平方误差的最优点"这个重要结论。

拖动滑块亲手验证:c 偏离平均值时,平方距离之和如何变大。

交互演示:为什么均值让平方误差最小
5 个数据点固定为 1, 3, 4, 8, 9(均值 5)。拖动滑块移动 c,观察 f(c) = Σ(xᵢ-c)² 的变化,c = 5 时误差最小。
灰点是数据点,红色抛物线是 f(c),蓝点是当前的 c 位置。无论 c 往哪边偏,误差都大于 c = 5 处的最小值。

实例

# 数值验证:均值是使 Σ(xᵢ-c)² 最小的 c
data = [1, 3, 4, 8, 9]
mean = sum(data) / len(data)

def sq_error(c):
    """f(c) = Σ(xᵢ - c)²"""
    return sum((x - c) ** 2 for x in data)

print(mean)            # 均值 = 5
print(sq_error(mean))  # c = 均值时的误差

# 对比几个偏离均值的 c:误差都更大
for c in [0, 3, 5, 7, 10]:
    print(c, sq_error(c))

执行以上代码输出结果为:

5.0
46.0
0 171
3 66
5 46
7 66
10 171

注意 c=3 和 c=7 的误差相等(都是 66)--它们到均值 5 的距离相同,这正是抛物线"关于顶点对称"的体现。

练习:尝试不看上文,独立重新推导一遍"均值最小化平方误差"的过程,只用三个工具:平方展开公式、Σ 的线性性质、二次函数顶点公式。

点击查看答案

展开 ,识别为开口向上的二次函数,顶点 ,即均值。


本章小结

技能一句话核心
(a+b)² 展开几何上是"切正方形",交叉项来自两个方向的乘积,可推广到多变量和向量
配方法把"缺一块"的式子凑成完整平方,用于求顶点、简化推导
化简思路合并同类项 → 提取公因式 → 套用恒等式 → 换元
独立推导能不看答案重新走一遍推导,是读懂论文公式的分水岭