机器学习数学基础 120 章

求和、连乘、阶乘与组合数

层级:A|必学

1. 为什么必须读懂压缩记号

机器学习公式需要同时描述成百上千个样本、特征或类别。求和与连乘把重复结构压缩为一行。阅读时最重要的不是背公式,而是能把符号展开、识别索引范围,并分清“对样本求和”“对特征求和”和“对类别求和”。

2. 求和符号

i=1nxi=x1+x2++xn.\sum_{i=1}^{n}x_i=x_1+x_2+\cdots+x_n.

ii 是求和索引,11 是起点,nn 是终点,xix_i 是被求和项。索引名称是局部占位符:

i=1nxi=j=1nxj.\sum_{i=1}^{n}x_i=\sum_{j=1}^{n}x_j.

但上下限和被求和表达式必须配套。i\sum_i 是省略写法,索引范围应由上下文明确;工程实现时不要依赖模糊范围。

例:均方误差

MSE=1ni=1n(yiy^i)2\operatorname{MSE}=\frac1n\sum_{i=1}^{n}(y_i-\hat y_i)^2

表示对每个样本的平方误差求和,再除以样本数。

3. 求和的线性性质

对与索引 ii 无关的常数 a,b,ca,b,c

i=1n(axi+byi)=ai=1nxi+bi=1nyi,\sum_{i=1}^{n}(ax_i+by_i) =a\sum_{i=1}^{n}x_i+b\sum_{i=1}^{n}y_i, i=1nc=nc.\sum_{i=1}^{n}c=nc.

因此

i=1n(xixˉ)=ixinxˉ=0,\sum_{i=1}^n(x_i-\bar x) =\sum_i x_i-n\bar x=0,

其中 xˉ=(1/n)ixi\bar x=(1/n)\sum_i x_i。这是“样本相对均值的偏差之和为零”。

一般地,

(ixi)2ixi2.\left(\sum_i x_i\right)^2\ne\sum_i x_i^2.

以两个数为例,左侧还含有交叉项 2x1x22x_1x_2

4. 双重求和与交换顺序

i=1nj=1daij\sum_{i=1}^{n}\sum_{j=1}^{d}a_{ij}

先对每个固定的 iij=1j=1dd 加完,再对 ii 求和。有限求和可以交换顺序:

i=1nj=1daij=j=1di=1naij.\sum_{i=1}^{n}\sum_{j=1}^{d}a_{ij} =\sum_{j=1}^{d}\sum_{i=1}^{n}a_{ij}.

aija_{ij} 是数据矩阵第 ii 个样本第 jj 个特征,这就是先按行再按列,或先按列再按行,总和不变。

有时需要排除某个索引:

jiaij.\sum_{j\ne i}a_{ij}.

它表示对所有允许的 jj 求和,但跳过 j=ij=i。必须从上下文知道 jj 的总体范围。

5. 常见有限和

nn 个正整数之和:

i=1ni=n(n+1)2.\sum_{i=1}^{n}i=\frac{n(n+1)}2.

平方和:

i=1ni2=n(n+1)(2n+1)6.\sum_{i=1}^{n}i^2=\frac{n(n+1)(2n+1)}6.

有限等比数列(r1r\ne1):

i=0n1ari=a1rn1r.\sum_{i=0}^{n-1}ar^i=a\frac{1-r^n}{1-r}.

这些公式不是机器学习主线,但能帮助理解复杂度、衰减权重和几何级数收敛。

6. 加权和与凸组合

i=1nwixi\sum_{i=1}^{n}w_i x_i

是加权和。若 wi0w_i\ge0iwi=1\sum_iw_i=1,称为凸组合或加权平均。结果位于各个 xix_i 的最小值与最大值之间。

集成学习可写为

H(x)=t=1Tαtht(x),H(\boldsymbol x)=\sum_{t=1}^{T}\alpha_t h_t(\boldsymbol x),

其中 hth_t 是基学习器,αt\alpha_t 是权重。注意权重是否非负、是否和为 1 要看具体算法,不能仅凭“加权”二字假设。

7. 连乘符号

i=1nxi=x1x2xn.\prod_{i=1}^{n}x_i=x_1x_2\cdots x_n.

独立样本的联合似然常写成连乘:

L(θ)=i=1np(xiθ).L(\theta)=\prod_{i=1}^{n}p(x_i\mid\theta).

取对数把连乘变成求和:

logL(θ)=i=1nlogp(xiθ).\log L(\theta)=\sum_{i=1}^{n}\log p(x_i\mid\theta).

空求和通常约定为 00,空连乘约定为 11,这样递推与代数规则在边界情形仍成立。

8. 阶乘

对非负整数 nn

n!=n(n1)21,0!=1.n!=n(n-1)\cdots2\cdot1, \qquad0!=1.

n!n!nn 个互不相同对象的排列数。例如 3 个不同任务的执行顺序有 3!=63!=6 种。

阶乘增长极快。10!=362880010!=3\,628\,80020!20! 已超过 2×10182\times10^{18}。算法枚举所有特征排列或样本排列通常不可行。

9. 排列与组合

nn 个不同对象中选 kk 个并考虑顺序,排列数为

P(n,k)=n!(nk)!.P(n,k)=\frac{n!}{(n-k)!}.

只选取、不考虑顺序,组合数为

(nk)=n!k!(nk)!.\binom nk=\frac{n!}{k!(n-k)!}.

例如从 5 个特征选 2 个:无序组合有 (52)=10\binom52=10 种;若区分“第一个、第二个”,则有 5×4=205\times4=20 种。

组合数满足

(nk)=(nnk),(nk)=(n1k)+(n1k1).\binom nk=\binom n{n-k}, \qquad \binom nk=\binom{n-1}{k}+\binom{n-1}{k-1}.

二项式定理:

(a+b)n=k=0n(nk)akbnk.(a+b)^n=\sum_{k=0}^{n}\binom nk a^k b^{n-k}.

它直接导出二项分布概率和为 1。

10. 指示函数

事件 AA 的指示函数定义为

1{A}={1,A 成立,0,A 不成立.\mathbf1\{A\}=\begin{cases} 1,&A\text{ 成立},\\ 0,&A\text{ 不成立}. \end{cases}

分类错误率可写为

1ni=1n1{f(xi)yi}.\frac1n\sum_{i=1}^{n}\mathbf1\{f(\boldsymbol x_i)\ne y_i\}.

这就是把每个样本“是否分错”转成 0 或 1,再取平均。指标函数把逻辑条件接入代数运算,是概率和统计学习理论的常用桥梁。

11. 易错点

  1. 索引只是占位符,但索引范围不能丢。
  2. ixi2\sum_i x_i^2(ixi)2(\sum_i x_i)^2 不同。
  3. i(xi+yi)\prod_i(x_i+y_i) 不能拆为 ixi+iyi\prod_ix_i+\prod_iy_i
  4. 组合不计顺序,排列计顺序。
  5. 数据样本写成集合记号时,求和仍按每个观测索引计算,重复样本不能自动去重。

常见问答

Q1:损失到底除以 nn 还是不除?

求和损失与平均损失的最优点通常相同,因为只相差正常数 nn;但梯度大小、正则化相对强度和不同数据规模间的可比性会改变。实现时必须确认约定。

Q2:为什么概率似然用连乘?

当样本在给定参数下条件独立时,联合概率等于各条件概率之积。没有独立假设就不能直接连乘。

Q3:组合数是否需要手算大整数?

不需要。重要的是判断是否考虑顺序、是否允许重复,以及组合规模如何增长。实际计算常用对数或递推避免溢出。

练习

  1. 展开 i=25(2i1)\sum_{i=2}^{5}(2i-1) 并计算。
  2. 证明 i(xi+c)=ixi+nc\sum_i(x_i+c)=\sum_ix_i+nc
  3. x=(1,2,3)x=(1,2,3),比较 (ixi)2(\sum_ix_i)^2ixi2\sum_ix_i^2
  4. 6 个特征中选 3 个有多少种组合?若选择顺序重要呢?
  5. 三个基学习器预测为 (0.2,0.6,0.9)(0.2,0.6,0.9),权重为 (0.2,0.3,0.5)(0.2,0.3,0.5),求加权预测。
  6. 用指示函数写出样本中标签等于类别 kk 的数量。

答案与提示

  1. 3+5+7+9=243+5+7+9=24
  2. 利用求和线性性及 ic=nc\sum_i c=nc
  3. 36361414
  4. (63)=20\binom63=20;排列数 6×5×4=1206\times5\times4=120
  5. 0.670.67
  6. i=1n1{yi=k}\sum_{i=1}^{n}\mathbf1\{y_i=k\}