跳到主要内容

概率统计与神经网络求解

这一章讲三件事: 统计学怎么「用一部分推断全体」;OLS 和 MLE 这两把估参数的刀怎么用; 以及神经网络求解——前两件事在这里合流,变成全书往后每一个「训练」的内核。 这一章是全书数学密度最高的一章,但也是唯一一章:此后所有章节的数学都复用这里的内容。

1. 主走查:从「特朗普有多高」到「新药有没有效」

本章的主线走查是书里的一个真实案例,先摆出来,后面每一节都为它补一块零件:

问:特朗普身高 190cm,算不算比历届美国总统显著地高? 书里的做法:拿 42 位总统的身高数据算出平均数 179.74、标准差(衡量数据散得多开的数) 7.02,按 95% 置信水平算出置信区间 (165.99, 193.49);190 落在区间内,所以结论是**「不显著」**——他的身高没有超出寻常波动范围1

这个三步走(算平均数和标准差→算置信区间→看落点下结论)就是假设检定的全部骨架,而它的每一步都站在统计的地基上。下面把地基一层层补齐。

2. 统计的地基:抽样与描述统计

统计要解决的根本问题:总体太大,只能看一部分。 要预测某市下任市长,不可能问遍所有市民,只能随机抽约 1000 份问卷;数据表里的一列(如「年龄」),行话叫字段(field)——后面所有章节的「特征」都存在字段里。

先把术语说清:全体有投票权的市民叫母体,被抽中的叫样本2

抽法有讲究。分层抽样按母体的构成比例抽(政党、年龄、性别各占多少,样本里就占多少),书中用程序对比了两种抽法:分层抽样抽 6 个,三个类别每类恰好 2 个,与母体比例一致;不分层抽 6 个,抽成 1:3:2,比例走样了3

拿到样本先看两个东西:

  • 集中趋势:平均数、中位数、众数。其中中位数的价值在于抗离群值,书里的数字最直观:样本 [100, 200, 300, 400, 500],平均数=中位数=300;把 500 改成 50000,平均数飙到 10200,中位数还是 300——统计年收入这类数据时,一个富豪就能把平均数带偏,中位数不会4;
  • 离散程度:变异数、标准差——数据散得多开。

书里用美国 42 位总统的身高把这套全算了一遍:平均 179.74、标准差 7.02、最矮 163、最高 193——这组数字正是主走查的第一步

另一件必须先办的事:文字和类别要变成数字。红/蓝/绿这类没有大小之分的类别,要转成 One-Hot 编码——每一类单独成一个「是/否」变量(「是红色吗」「是蓝色吗」「是绿色吗」),书里特别提醒:不能编码成 1/2/3,否则算法会误以为类别有大小顺序5

3. 概率:给「可能性」立规矩

概率的定义本身很朴素:事件包含的样本点数 ÷ 样本空间总样本点数。 掷两次硬币,「两个正面」是 4 种结果里的 1 种,概率 1/4;「一正一反」占 2 种,概率 1/26

三条定理各配一个书中例子,值得对照记忆:

关系定理书中例子
独立P(A∩B)=P(A)×P(B)掷硬币,第一次结果不影响第二次
互斥P(A∪B)=P(A)+P(B)明天晴(1/2)、阴(1/4)、雨(1/4);「明天不是雨」=1/2+1/4=3/47
相依P(A∪B)=P(A)+P(B)−P(A∩B)抽扑克牌不放回:第一张抽走红色后,第二张再抽红的概率=25/(25+26),已经和第一张的结果绑在一起8

排列、组合与二项分布:概率的第一批实弹

排列管顺序,组合不管:10 颗不同颜色的球抽 3 颗排顺序,10×9×8=720 种9

把「概率不均等」加进来,就得到二项分布:掷硬币正面概率 0.4(不对称的硬币),掷三次,出现正面次数的概率各是 0.2160 / 0.4320 / 0.2880 / 0.0640(0 次/1 次/2 次/3 次)10。每种概率=「组合数 × p 的 k 次方 × (1−p) 的剩余次方」。

书里还拿这套工具算了一道真题:台湾彩票「今彩 539」,39 个号码选 5 个,总组合 575757 种,各奖级的中奖注数可以逐一枚举(一个个数出来),算出平均中奖金额 27.92 元——除以票价,平均回报率 −44.16%11

押 100 元长期买,期望(长期平均结果)拿回 55.84 元。概率论最实用的功能之一,就是把「运气」变成可以核算的期望值。

分布:给随机性画肖像

  • 正态分布(高斯分布):考试成绩、全年气温都长这样——中间高两头低。两个参数定终身:平均数 μ(位置)、标准差 δ(胖瘦)12;
  • 泊松分布:「给定时间内事件发生 k 次」的概率,书里给的落地场景是客服排班——估计柜台等候人数,决定安排几个人才能达到服务水平承诺13;
  • 二项/伯努利:上面的硬币实验就是。

正态分布有组必背的数,第 01 章的积分已经算过一遍:±1 标准差覆盖 68.3%,±2 覆盖 95.4%,±3 覆盖 99.7%14

4. 假设检定:主走查的第二、三步

点估计不精确。 书里先戳破一个幻觉:就算样本恰好等于平均数,概率也只有 0.4 左右——单报一个「平均身高 179.74」意义有限,改报区间更稳健:「95% 的样本落在 (165.99, 193.49)」15。这个区间就是置信区间,业界最常用 95%,对应 ±1.96 倍标准差16

中心极限定理保证了这套做法的普适性:不管原始数据服从什么分布,只要每批(一批=同时抽取的一组样本)的数据个数够大,「每批平均值」这个统计量自己会近似正态分布——所以我们总能用正态分布那一套去框它。要注意「每批平均值的离散程度」(标准误差)比原始数据的标准差更小,书里用二项分布做了数值验证:一万批、每批 100 个数据,批平均的标准差 0.04982,与理论值 0.05 几乎重合17

于是主走查水到渠成:总统平均 179.74,95% 区间 (165.99, 193.49),特朗普 190 在区间内→不显著。规范的说法很有意思:统计上只说「不能拒绝原假设」,不说「原假设成立」——因为没拒绝不等于证明了对18

要不要拒绝,看 p 值:书里的问卷调查例子算出 t 统计量 2.0250、p 值 0.024;0.024 小于显著水平 0.05,所以「顾客喜欢新品」显著成立19。作者还借专家的口吻给了个实用建议:别去背 1.645、1.96 这些临界值,直接拿 p 值和 0.05 比就行

5. 线性规划:优化的另一条路,以及它为什么走不通

线性规划解决的问题长这样:最大化 z=3x+2y,限制 2x+y≤100、x+y≤80、x≤40。它有精确解法(单形法):最优解必在可行区域的顶点上,把每个顶点代一遍取最大——书里用 pulp 包解出 x=20、y=60、z=18020

那深度学习为什么不用它?书里说得很直白:神经网络的变量动辄几百上千万个,顶点法不可行,只能用优化方式逐渐逼近近似解21。这一句是承上启下的枢纽:概率统计教我们定义「什么叫好」(损失函数),而「怎么变好」这件事,从这里开始正式交给梯度下降。

6. 两把刀:OLS 与 MLE

书里戏称这两法是「优化器求解的倚天剑与屠龙刀」22。它们的共同点:都是「对参数求导、令导数为零」,差别只在目标函数怎么定。

OLS(普通最小二乘法):让误差平方和最小

以 y=wx+b 为例:定义损失为均方误差(MSE),对 w、b 分别求偏导、令其为零,联立解出 w 和 b——第 01 章的「令导数=0 找最值」在这里第一次正经干活。矩阵形式把它推广到任意多元:误差平方和写成 (y−wx)ᵀ(y−wx),展开后对 w 求导即得正规方程,波士顿房价数据集(13 个特征)算出的 14 个系数与 Sklearn 现成函数的结果完全一致23

但 OLS 有个天花板:要求「导数=0 能解出来」。 书里用 x²+5 演示了另一条路:SciPy 的 leastsq() 用逼近法,迭代 22 次把 x 压到约 0、函数值 5;起始点给得差也能收敛(逐步稳定到答案),只是要更多轮次(慢收敛)24

函数一复杂、变量一多,数学解析(套公式直接算出)解就没了,逼近法是唯一出路——梯度下降就是逼近法的代表。

MLE(最大似然估计):让「看到手数据」的概率最大

换个问法:数据已经到手,哪套参数「最有可能产生它」?步骤:

  1. 写出每个样本点的概率密度;
  2. 独立样本联合概率=连乘;
  3. 连乘不好算,取对数——大小顺序不变,乘法变加法;
  4. 对参数求导、令导数为零。

书里用它估正态分布的 μ 和 δ:解出来的公式与教科书上的「样本平均数、样本变异数」一模一样——我们背了多年的均值公式,其实就是 MLE 的解。实战演示:两个样本点 x=1、x=3,判断来自 N(1,1) 还是 N(2,3)?算联合概率,前者大,判 N(1,1);反过来给一组样本反推参数,数值解 (3.62, 1.57),与 NumPy 直接算的结果一致25

判断(我们的,不是书里的): MLE 的「取对数」是全书最值得带走的小技巧——把连乘压成连加,既防数值下溢,又让求导变简单。后面第 04 章的交叉熵损失里那个 log,做的正是同一件事。 如果错,会错在: 如果某个场景不关心联合概率(比如逐样本独立评估),取对数就不是必须的;但它至少无害。

7. 合流:神经网络求解=正向传导+反向传导

现在把全章(其实是前两章)的数学合到一台机器上。书里的定位句先立住:一个神经网络可以视为多条回归线组合而成的模型26——第 01 章的 y=wx+b 没有消失,它变成了网络里的每一个神经元,再叠一个非线性激活函数让网络能弯能折。

求解是一个双阶段循环27:

正向传导:权重(先随便设)→ 逐层算出预测值 → 与真实值比差 → 得到损失(如 MSE)
↑ │
│ ↓
更新权重 ←── 反向传导:用链式法则从损失逐层往回算出每个权重的梯度
更新公式:W新 = W旧 − 学习率 × 梯度

图说:反复循环,「直到损失函数没有显著改善为止」。

下山比喻(书里原话):在山顶不知道下山的路,就每到一个岔路口选坡度最陡的路往下走,直到走到平地28

主走查:看着损失一路走下山

书里跑了两次真实实验,数字都留在了纸上:

实验一,损失函数 f(x)=x²,从 x=5 出发。 每一轮的损失值被程序打印出来:

5, 2, 0.8, 0.32, 0.13, 0.05, 0.02, 0.01, 0, 0, …29

第一轮从 5 降到 2(降 60%),随后每轮降幅缩小,第 8 轮归零——函数的最小值。换成起点 −5 一样收敛(抛物线对称)。这串数字就是「训练」两个字的全部含义:损失逐轮下降,直到不再改善。

实验二,换一个有坑的函数 f(x)=2x⁴−3x²−20,故意把学习率设成 0.3。 程序直接报错 「Result too large」:步子太大,一步跨过最小值冲到对面山坡,那里梯度更大,下一步跨得更远,损失越滚越大直到数值溢位30。改 lr=0.001、轮数加到 15000,才收敛到 x=0.51 的最小值31同一个下降算法,同一个函数,只动学习率,结局从溢位到收敛——第 01 章说「学习率大则跳过最小值」,这里是它的灾难版。

反向传导的梯度怎么来?链式法则:损失对最外层求导,再乘上激活函数的导数,一层层往回乘,「依次逆算出每一层神经元对应的 w、b」32。书里以 MSE 为损失推出了梯度公式,并提醒:换损失函数、加激活函数,梯度都会变复杂——好在框架提供自动微分,这些不用手推(第 03 章的 GradientTape 就是干这个的)。

这一节的末尾,书里埋了全书最重要的一句伏笔:有些算法会自定义损失函数,「会因此产生意想不到的功能」——风格转换能合成两张图像,GAN 能产生几可乱真的图像33。第 09、10 章会兑现这句话。

8. 可带走的

  1. 统计=用样本推总体:分层抽样保比例;中位数抗离群值(500→50000,均值 10200,中位数纹丝不动);
  2. 概率三定理各有阵地:独立相乘、互斥相加(明天不是雨=3/4)、相依要减交集;
  3. 二项分布=组合数×p 的幂:不对称硬币掷三次的概率 0.216/0.432/0.288/0.064;今彩 539 的期望回报率 −44.16%,概率论能把运气算成账;
  4. 点估计不如区间估计:单点概率其实很低;95% 置信区间=±1.96 标准差;中心极限定理让这套对任何分布通用(标准误差=σ/√n);
  5. 假设检定的完整流程(主走查):算统计量→算置信区间→看落点;只说「不能拒绝」,不说「成立」;直接比 p 值和 0.05;
  6. 线性规划有顶点精确解,但变量一多就失效——深度学习必须走优化逼近;
  7. OLS 与 MLE 是同一招的两个目标函数:一个最小化误差平方和,一个最大化看到数据的概率;解析解不存在时,用逼近法(梯度下降);
  8. 神经网络求解=正向算损失+反向链式法则求梯度+W−=学习率×梯度;f(x)=x² 的损失序列 5→2→0.8→0.32→… 就是「训练」的缩影;学习率 0.3 会溢位、0.001 才收敛——步长是命门;
  9. 自定义损失函数是后面一切生成类算法的种子(风格转换、GAN)。

9. 原文地图

主题原书章原文位置
母体与样本、分层抽样2-4 概率与统计text/14-ch02-2-4.txt:65(搜「母体(Population)」)
One-Hot 编码2-4 概率与统计text/14-ch02-2-4.txt:35(搜「哑变量」)
中位数抗离群值2-4 概率与统计text/14-ch02-2-4.txt:143(搜「100200」)
概率定义、掷硬币 1/42-4 概率与统计text/14-ch02-2-4.txt:293(搜「1/4」)
互斥相加 3/4、相依抽牌2-4 概率与统计text/14-ch02-2-4.txt:308(搜「3/4」) · text/14-ch02-2-4.txt:304(搜「26 /(25」)
排列 7202-4 概率与统计text/14-ch02-2-4.txt:398(搜「720」)
二项分布 0.2162-4 概率与统计text/14-ch02-2-4.txt:434(搜「0.2160」)
今彩 539 回报率2-4 概率与统计text/14-ch02-2-4.txt:468(搜「575757」) · text/14-ch02-2-4.txt:484(搜「44.16」)
正态/高斯分布2-4 概率与统计text/14-ch02-2-4.txt:510(搜「高斯分布」)
泊松分布与排班2-4 概率与统计text/14-ch02-2-4.txt:632(搜「泊松分布经常运用」)
点估计不精确、置信区间2-4 概率与统计text/14-ch02-2-4.txt:654(搜「概率也只有0.4」) · text/14-ch02-2-4.txt:662(搜「1.96δ」)
中心极限定理、标准误差2-4 概率与统计text/14-ch02-2-4.txt:698(搜「中心极限定理(Central」) · text/14-ch02-2-4.txt:706(搜「标准误差」)
特朗普身高检定2-4 概率与统计text/14-ch02-2-4.txt:752(搜「特朗普」) · text/14-ch02-2-4.txt:756(搜「置信区间=(165.99」)
不能拒绝原假设、p 值2-4 概率与统计text/14-ch02-2-4.txt:746(搜「不能拒绝」) · text/14-ch02-2-4.txt:782(搜「2.0250」)
线性规划顶点解、为何 DL 不用2-5 线性规划text/15-ch02-2-5.txt:35(搜「x=20、y=60」) · text/15-ch02-2-5.txt:27(搜「pulp」)
倚天剑与屠龙刀2-6 普通最小二乘法与最大似然估计法text/16-ch02-2-6.txt:5(搜「倚天剑」)
OLS 波士顿房价2-6 普通最小二乘法与最大似然估计法text/16-ch02-2-6.txt:43(搜「波士顿」)
leastsq 逼近法 22 轮2-6 普通最小二乘法与最大似然估计法text/16-ch02-2-6.txt:75(搜「22次执行周期」)
MLE 取对数、数值解2-6 普通最小二乘法与最大似然估计法text/16-ch02-2-6.txt:97(搜「取对数」) · text/16-ch02-2-6.txt:143(搜「3.62」)
NN=多条回归线的组合2-7 神经网络求解text/17-ch02-2-7.txt:33(搜「多条回归线」)
下山比喻、正向传导2-7 神经网络求解text/17-ch02-2-7.txt:43(搜「山顶」) · text/17-ch02-2-7.txt:114(搜「正向传导(Forward」)
链式法则反向传导2-7 神经网络求解text/17-ch02-2-7.txt:116(搜「链法则」)
损失序列 5→2→0.8→…2-7 神经网络求解text/17-ch02-2-7.txt:73(搜「0.32, 0.13」)
学习率溢位与收敛2-7 神经网络求解text/17-ch02-2-7.txt:91(搜「Result too large」) · text/17-ch02-2-7.txt:95(搜「x=0.51」)
自定义损失的伏笔2-7 神经网络求解text/17-ch02-2-7.txt:154(搜「风格转换(Style Transfer)可以合成」)

Footnotes

  1. 出处:「2-4 概率与统计」第 752 段(text/14-ch02-2-4.txt:752,搜「特朗普」)与第 756 段(text/14-ch02-2-4.txt:756,搜「置信区间=(165.99」)。原文明确写出「特朗普的身高190cm在置信区间内,表示……并不显著」。

  2. 出处:「2-4 概率与统计」第 65 段(text/14-ch02-2-4.txt:65,搜「母体(Population)」)。

  3. 出处:「2-4 概率与统计」第 117 段(text/14-ch02-2-4.txt:117,搜「每个类别各有两个」)与第 133 段(text/14-ch02-2-4.txt:133,搜「不相同」)。分层抽样每类 2 个;不分层抽成 0 类 1 个、1 类 3 个、2 类 2 个。

  4. 出处:「2-4 概率与统计」第 143 段(text/14-ch02-2-4.txt:143,搜「100200」)。

  5. 出处:「2-4 概率与统计」第 35 段(text/14-ch02-2-4.txt:35,搜「哑变量」)。

  6. 出处:「2-4 概率与统计」第 293 段(text/14-ch02-2-4.txt:293,搜「1/4」)。

  7. 出处:「2-4 概率与统计」第 308 段(text/14-ch02-2-4.txt:308,搜「3/4」)。

  8. 出处:「2-4 概率与统计」第 304 段(text/14-ch02-2-4.txt:304,搜「26 /(25」)。

  9. 出处:「2-4 概率与统计」第 398 段(text/14-ch02-2-4.txt:398,搜「720」)。原文另解释:抽第一次 10 种、第二次 9 种、第三次 8 种。

  10. 出处:「2-4 概率与统计」第 434 段(text/14-ch02-2-4.txt:434,搜「0.2160」)。四个概率值在同一执行结果块内。

  11. 出处:「2-4 概率与统计」第 468 段(text/14-ch02-2-4.txt:468,搜「575757」)与第 484 段(text/14-ch02-2-4.txt:484,搜「44.16」)。平均中奖金额 27.92 元见第 482 段。

  12. 出处:「2-4 概率与统计」第 510 段(text/14-ch02-2-4.txt:510,搜「高斯分布」)。

  13. 出处:「2-4 概率与统计」第 632 段(text/14-ch02-2-4.txt:632,搜「泊松分布经常运用」)。

  14. 出处:「2-3 微积分」第 348 段(text/13-ch02-2-3.txt:348,搜「68.3」)。±2、±3 的数字见同章第 352、356 段。

  15. 出处:「2-4 概率与统计」第 654 段(text/14-ch02-2-4.txt:654,搜「概率也只有0.4」)。

  16. 出处:「2-4 概率与统计」第 662 段(text/14-ch02-2-4.txt:662,搜「1.96δ」)。

  17. 出处:「2-4 概率与统计」第 698 段(text/14-ch02-2-4.txt:698,搜「中心极限定理(Central」)、第 706 段(text/14-ch02-2-4.txt:706,搜「标准误差」)与第 720 段(text/14-ch02-2-4.txt:720,搜「0.04982」)。

  18. 出处:「2-4 概率与统计」第 746 段(text/14-ch02-2-4.txt:746,搜「不能拒绝」)。

  19. 出处:「2-4 概率与统计」第 782 段(text/14-ch02-2-4.txt:782,搜「2.0250」)。

  20. 出处:「2-5 线性规划」第 35 段(text/15-ch02-2-5.txt:35,搜「x=20、y=60」)。

  21. 出处:「2-5 线性规划」第 27 段(text/15-ch02-2-5.txt:27,搜「pulp」)。原文:「深度学习的变数动辄几百个……无法使用单形法求解,而是采取优化的方式,逐渐逼近找到近似解」。

  22. 出处:「2-6 普通最小二乘法与最大似然估计法」第 5 段(text/16-ch02-2-6.txt:5,搜「倚天剑」)。

  23. 出处:「2-6 普通最小二乘法与最大似然估计法」第 43 段(text/16-ch02-2-6.txt:43,搜「波士顿」)。

  24. 出处:「2-6 普通最小二乘法与最大似然估计法」第 75 段(text/16-ch02-2-6.txt:75,搜「22次执行周期」)。

  25. 出处:「2-6 普通最小二乘法与最大似然估计法」第 97 段(text/16-ch02-2-6.txt:97,搜「取对数」)与第 143 段(text/16-ch02-2-6.txt:143,搜「3.62」)。

  26. 出处:「2-7 神经网络求解」第 33 段(text/17-ch02-2-7.txt:33,搜「多条回归线」)。

  27. 出处:「2-7 神经网络求解」第 111 段(text/17-ch02-2-7.txt:111,搜「多条回归线的组合」)与第 114 段(text/17-ch02-2-7.txt:114,搜「正向传导(Forward」)。

  28. 出处:「2-7 神经网络求解」第 43 段(text/17-ch02-2-7.txt:43,搜「山顶」)。

  29. 出处:「2-7 神经网络求解」第 73 段(text/17-ch02-2-7.txt:73,搜「0.32, 0.13」)。

  30. 出处:「2-7 神经网络求解」第 91 段(text/17-ch02-2-7.txt:91,搜「Result too large」)。

  31. 出处:「2-7 神经网络求解」第 95 段(text/17-ch02-2-7.txt:95,搜「x=0.51」)。

  32. 出处:「2-7 神经网络求解」第 116 段(text/17-ch02-2-7.txt:116,搜「链法则」)。

  33. 出处:「2-7 神经网络求解」第 154 段(text/17-ch02-2-7.txt:154,搜「风格转换(Style Transfer)可以合成」)。