AI_概率统计-2.常见分布

以下涵盖均匀分布、正态分布(高斯分布)、伯努利分布、二项分布、多项分布,以及 Softmax 背后的分布思想。


2. 常见分布

核心目标 :掌握 AI 中高频使用的6种分布(均匀、正态、伯努利、二项、多项、softmax对应分布),理解每种分布的核心含义、适用场景,能完成简单手工计算,通过代码实现分布的生成与概率计算。重点掌握正态分布的中心极限定理、误差假设,以及 Softmax 背后的分布思想,为后续模型(如线性回归、分类器)的假设与推导奠定基础。
说明:知识点侧重"AI实战应用",不深究复杂的分布推导,重点掌握"分布特点""AI场景""计算与实现",避免纯理论堆砌。


2.1 均匀分布(Uniform Distribution)

2.1.1 定义与参数

均匀分布:在某个区间内,每个点被取到的概率(密度)相同。

  • 离散型均匀分布:有限个等可能取值。概率质量函数:P(X=x_i) = \frac{1}{n},i=1,2,\dots,n。

  • 连续型均匀分布 :记作 X \sim U(a, b),其中 a 为下限,b 为上限。
    概率密度函数(PDF):

    f(x) = \begin{cases} \frac{1}{b-a}, & a \le x \le b \\ 0, & \text{其他} \end{cases}
    期望:E[X] = \frac{a+b}{2},方差:\text{Var}(X) = \frac{(b-a)^2}{12}(记熟即可,无需推导)。

在 AI 中的应用

  • 模型参数初始化(如神经网络权重初始化,避免权重过大或过小,常用均匀分布如 [-0.1, 0.1])。
  • 随机抽样(如数据集随机打乱、强化学习中的探索策略)。
  • 无信息先验假设(当对某个参数无先验认知时,用均匀分布假设其概率)。

2.1.2 手工计算示例

例1(连续) :参数初始化区间为 [0, 0.2],求随机抽取一个参数 x 落在 [0.05, 0.15] 内的概率。

解:a=0,b=0.2,f(x)=\frac{1}{0.2}=5,P(0.05 \le x \le 0.15) = (0.15-0.05) \times 5 = 0.5。

例2(离散):掷一颗均匀骰子,点数 X 服从离散均匀分布,P(X=k)=\frac{1}{6}, k=1..6。求 P(X \le 3) = \frac{3}{6}=0.5。

2.1.3 Python 代码示例

复制代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform

# 连续均匀分布 U(0,1)
a, b = 0, 1
x = np.linspace(-0.2, 1.2, 500)
pdf = uniform.pdf(x, loc=a, scale=b-a)

plt.plot(x, pdf, 'b-', linewidth=2, label=f'U({a},{b}) PDF')
plt.fill_between(x, 0, pdf, where=(x>=0.3)&(x<=0.7), alpha=0.3, color='red', label='P(0.3≤X≤0.7)')
plt.title('连续均匀分布 U(0,1)')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend()
plt.grid(alpha=0.3)
plt.show()

# 模拟参数初始化区间
a_init, b_init = 0, 0.2
samples = uniform.rvs(loc=a_init, scale=b_init-a_init, size=1000)
prob_sim = np.mean((samples >= 0.05) & (samples <= 0.15))
print(f"P(0.05≤x≤0.15) 模拟值: {prob_sim:.3f} (理论值 0.5)")

2.2 正态分布(高斯分布)------ 中心极限定理、误差假设

2.2.1 定义与参数

正态分布记作 X \sim N(\mu, \sigma^2),其中 \mu 为均值(位置参数),\sigma^2 为方差(尺度参数),\sigma为标准差。

概率密度函数(PDF):

f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right), \quad -\infty < x < \infty

  • 标准正态分布:\mu=0, \sigma^2=1,记作 Z \sim N(0,1),PDF 简化为 f(x)=\frac{1}{\sqrt{2\pi}}e^{-x^2/2}。

核心性质

  • 钟形曲线,关于 x=\mu 对称。
  • 68-95-99.7法则:约68%的数据落在 [\mu-\sigma, \mu+\sigma],95%落在 [\mu-2\sigma, \mu+2\sigma],99.7%落在 [\mu-3\sigma, \mu+3\sigma]。

2.2.2 关键延伸(AI核心)

  • 中心极限定理(CLT) :当样本量足够大时,多个独立随机变量的和(或均值)会趋近于正态分布,与单个变量的分布无关。
    AI应用:模型的预测误差、样本均值的分布,均可通过中心极限定理近似为正态分布,简化概率计算和模型推导。
  • 误差假设:AI中线性回归、神经网络等模型,常假设"模型预测误差服从正态分布",即 y = f(x) + \epsilon,其中 \epsilon \sim N(0, \sigma^2)(误差均值为0,方差为 \sigma^2)。该假设是最小二乘法的理论基础,可通过极大似然估计推导模型参数。

2.2.3 手工计算示例

例1(标准正态) :已知 X \sim N(0,1),求 P(-1 \le X \le 1)。

解:根据68-95-99.7法则,\mu \pm \sigma 区间内的概率约为68.27%,即 P(-1 \le X \le 1) \approx 0.6827。

例2(误差假设) :线性回归中,误差 \epsilon \sim N(0, 0.04)(\mu=0,\sigma=0.2),求误差的绝对值小于0.4的概率。

解:区间 [-0.4, 0.4] 对应 \mu \pm 2\sigma,概率约为95.45%。

例3(中心极限定理) :掷一颗骰子100次,求点数之和的近似分布。

单次点数均值 \mu=3.5,方差 \sigma^2 \approx 2.917。和 S_{100} 近似 N(100\times3.5, 100\times2.917) = N(350, 291.7)。

2.2.4 Python 代码示例

复制代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# 标准正态分布
mu, sigma = 0, 1
x = np.linspace(-4, 4, 500)
pdf = norm.pdf(x, mu, sigma)

plt.plot(x, pdf, 'b-', label=f'N({mu},{sigma}^2)')
plt.fill_between(x, 0, pdf, where=(x>=-1.96)&(x<=1.96), alpha=0.3, color='green', label='95% 置信区间')
plt.title('标准正态分布')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend()
plt.grid(alpha=0.3)
plt.show()

# 模拟误差正态分布
mu_e, sigma_e = 0, 0.2
samples = norm.rvs(loc=mu_e, scale=sigma_e, size=1000)
prob_sim = np.mean(np.abs(samples) < 0.4)
print(f"P(|ε|<0.4) 模拟值: {prob_sim:.4f} (理论≈0.9545)")

# 中心极限定理演示:掷骰子和的分布
n_dice = 30
n_trials = 10000
sums = [np.random.randint(1,7, n_dice).sum() for _ in range(n_trials)]
plt.hist(sums, bins=30, density=True, alpha=0.7, label='模拟和分布')
mu_sum = n_dice * 3.5
sigma_sum = np.sqrt(n_dice * 2.91667)
x_norm = np.linspace(mu_sum - 4*sigma_sum, mu_sum + 4*sigma_sum, 200)
plt.plot(x_norm, norm.pdf(x_norm, mu_sum, sigma_sum), 'r-', label='正态近似')
plt.title(f'{n_dice}颗骰子点数和的分布(中心极限定理)')
plt.xlabel('和')
plt.ylabel('密度')
plt.legend()
plt.show()

2.3 伯努利分布(Bernoulli Distribution)

2.3.1 定义与参数

伯努利分布描述 单次 试验中只有两种结果(成功/失败,1/0)的随机变量。

参数:成功概率 p \in [0,1]。

概率质量函数(PMF):

P(X=1)=p, \quad P(X=0)=1-p

期望:E[X]=p,方差:\text{Var}(X)=p(1-p)。

在 AI 中的应用

  • 二分类任务的标签建模(如样本标签为0/1)。
  • 逻辑回归中模型输出 p=P(Y=1|X),伯努利分布描述预测的随机性。
  • 交叉熵损失函数正是伯努利分布的负对数似然。

2.3.2 手工计算示例

:二分类任务中,模型预测样本为正类(X=1)的概率 p=0.8,求负类概率、期望、方差。

解:P(X=0)=0.2,E[X]=0.8,\text{Var}(X)=0.8\times0.2=0.16。

2.3.3 Python 代码示例

复制代码
from scipy.stats import bernoulli
import numpy as np

p = 0.8
samples = bernoulli.rvs(p, size=1000)
print(f"模拟正类比例: {np.mean(samples):.3f} (理论 {p})")
print(f"期望: {bernoulli.mean(p)}, 方差: {bernoulli.var(p)}")

2.4 二项分布(Binomial Distribution)

2.4.1 定义与参数

二项分布描述 n 次独立伯努利试验 中成功次数的分布。

参数:试验次数 n,每次成功概率 p。记作 X \sim B(n, p)。

概率质量函数:

P(X=k) = \binom{n}{k} p^k (1-p)^{n-k}, \quad k=0,1,\dots,n

期望:E[X]=np,方差:\text{Var}(X)=np(1-p)。

在 AI 中的应用

  • 多轮二分类预测的概率计算(如 n 个样本中,有 k 个被预测正确的概率)。
  • 模型性能评估(如 n 次预测中正确 k 次的概率)。

2.4.2 手工计算示例

:模型准确率 p=0.9,预测 n=10 个样本,求恰好有8个正确的概率。

解:P(X=8)=\binom{10}{8} 0.9^8 0.1^2 = 45 \times 0.4305 \times 0.01 \approx 0.1937。

2.4.3 Python 代码示例

复制代码
from scipy.stats import binom
import numpy as np

n, p, k = 10, 0.9, 8
prob = binom.pmf(k, n, p)
print(f"P(X={k}) = {prob:.4f}")

# 模拟
samples = binom.rvs(n, p, size=10000)
print(f"模拟比例: {np.mean(samples == k):.4f}")

2.5 多项分布(Multinomial Distribution)

2.5.1 定义与参数

多项分布是二项分布的推广:n 次独立试验,每次试验有 K 种互斥结果,概率分别为 p_1,\dots,p_K(\sum p_i=1)。随机向量 \mathbf{X}=(X_1,\dots,X_K) 表示每种结果出现的次数,满足 \sum X_i=n。

概率质量函数:

P(X_1=n_1,\dots,X_K=n_K) = \frac{n!}{n_1!\cdots n_K!} p_1^{n_1}\cdots p_K^{n_K}

边缘分布:X_i \sim B(n, p_i),但 X_i 之间不独立。

在 AI 中的应用

  • 多分类任务的标签建模(如样本标签为0/1/2)。
  • Softmax 输出层的概率分布基础。

2.5.2 手工计算示例

:三分类任务,模型预测类别1、2、3的概率分别为 0.6,0.3,0.1,预测 n=5 个样本,求恰好有3个类别1、1个类别2、1个类别3的概率。

解:P = \frac{5!}{3!1!1!} \times 0.6^3 \times 0.3^1 \times 0.1^1 = 20 \times 0.216 \times 0.3 \times 0.1 = 0.1296。

2.5.3 Python 代码示例

复制代码
from scipy.stats import multinomial
import numpy as np

n, p = 5, [0.6, 0.3, 0.1]
counts = [3, 1, 1]
prob = multinomial.pmf(counts, n, p)
print(f"P(3,1,1) = {prob:.4f}")

# 模拟
samples = multinomial.rvs(n, p, size=1000)
print(f"模拟比例: {np.mean(np.all(samples == counts, axis=1)):.4f}")

2.6 Softmax 背后的分布思想(分类输出的概率)

2.6.1 核心思想

Softmax 并非一种独立的分布,而是一种 概率归一化方法,其背后是多项分布思想------将模型输出的"未归一化得分"(logits)转化为"多分类的概率分布",满足多项分布的概率约束(所有类别概率和为1)。

2.6.2 公式

对于模型输出的 K 个得分 z_1,\dots,z_K,第 i 个类别的概率为:

p_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}}

特性

  • 归一化:\sum_{i=1}^K p_i = 1。
  • 指数放大:放大得分差异,便于区分类别。
  • 与多项分布的关联:Softmax 输出的概率可视为多项分布中"单次试验"的各类别概率。

2.6.3 手工计算示例

三分类模型输出得分 z=[2,1,0],计算 Softmax 概率:

e^2\approx7.389,e^1\approx2.718,e^0=1,总和 \approx11.107。

p_1\approx0.665,p_2\approx0.245,p_3\approx0.090,和为1。

2.6.4 Python 代码示例(带数值稳定性)

复制代码
import numpy as np

def softmax(logits):
    exp_logits = np.exp(logits - np.max(logits, axis=-1, keepdims=True))
    return exp_logits / np.sum(exp_logits, axis=-1, keepdims=True)

logits = np.array([2, 1, 0])
probs = softmax(logits)
print(f"Softmax 概率: {np.round(probs, 3)}")
print(f"概率和: {np.sum(probs)}")

2.7 学习资料链接(聚焦 AI 应用)


2.8 小结与学习建议

分布 参数 AI 应用场景 重要性
均匀分布 U(a,b) a,b 随机初始化、随机采样 ★★★
正态分布 N(\mu,\sigma^2) \mu,\sigma 误差假设、权重初始化、CLT ★★★★★
伯努利分布 Bern(p) p 二分类标签 ★★★★★
二项分布 B(n,p) n,p n次试验成功次数 ★★★
多项分布 Mult(n,\mathbf{p}) n,\mathbf{p} 多分类、词袋模型 ★★★★
Softmax(归一化) \mathbf{z} 多分类输出概率 ★★★★★

学习路径

  1. 理解每个分布的核心参数和形状。
  2. 手工计算简单概率,加深记忆。
  3. 运行 Python 代码,观察分布的可视化形态。
  4. 重点掌握正态分布(与中心极限定理、误差假设关联)和 Softmax(多分类输出核心)。

注意:在 AI 实践中,概率分布主要用于建模数据生成过程、定义损失函数(通过最大似然估计)以及进行随机采样。不需要背诵复杂公式,但需要知道"什么场景用什么分布"。

相关推荐
企业架构师老王1 小时前
2026制造业安全生产隐患识别AI方案:从主流产品对比看企业级AI Agent的非侵入式落地路径
人工智能·安全·ai
Aleeeeex1 小时前
RAG 那点事:从 8 份企业文档到能用的问答系统,全过程拆给你看
人工智能·python·ai编程
冬奇Lab1 小时前
一天一个开源项目(第87篇):Tank-OS —— Red Hat 工程师用一个周末,把 AI Agent 塞进了一个可启动的 Linux 镜像
人工智能·开源·资讯
小糖学代码1 小时前
LLM系列:2.pytorch入门:8.神经网络的损失函数(criterion)
人工智能·深度学习·神经网络
Captaincc2 小时前
转发-中央网信办部署开展“清朗·整治AI应用乱象”专项行动
人工智能·vibecoding
AI自动化工坊2 小时前
Late框架技术深度解析:5GB VRAM实现10倍AI编码效率的工程架构
人工智能·5g·架构·ai编程·late
我是大聪明.2 小时前
DeepSeek V4 Pro + 华为昇腾910:国产大模型落地的性能实测与深度解析
人工智能·华为
机器之心2 小时前
Generalist之后,罗剑岚团队推出LWD,也要变革具身智能训练范式
人工智能·openai
IT_陈寒3 小时前
Vite的public文件夹放静态资源?这坑我替你踩了
前端·人工智能·后端