贝叶斯理论
1. 贝叶斯理论
(1)基本概念
- **先验概率:**在考虑任何新证据之前,对事件发生的概率的初始估计。这是根据以往的经验或先前的知识得出的概率。
- **后验概率:**在考虑了新证据之后,对事件发生的概率的修正估计。这是通过将先验概率与新证据结合起来,使用贝叶斯定理得出的概率。
- **条件概率:**表示事件A在另一个事件B已经发生的条件下发生的概率,通常写作P(A|B),读作“A在给定B的条件下发生的概率”。
(2)贝叶斯公式
贝叶斯理论是概率论中用于更新先验概率的重要工具,其核心公式为:
P
(
A
∣
B
)
=
P
(
B
∣
A
)
⋅
P
(
A
)
P
(
B
)
P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}
P(A∣B)=P(B)P(B∣A)⋅P(A)
- 其中,事件 A A A是要考察的目标事件, P ( A ) P(A) P(A)是事件 A A A的初始概率,称为先验概率,它是根据一些先前的观测或者经验得到的概率。
- B B B是新出现的一个事件,它会影响事件 A A A。 P ( B ) P(B) P(B)表示事件 B B B发生的概率。
- P ( B ∣ A ) P(B|A) P(B∣A)表示当 A A A发生时 B B B的概率,它是一个条件概率。
- P ( A ∣ B ) P(A|B) P(A∣B)表示当 B B B发生时 A A A的概率(也是条件概率),它是我们要计算的后验概率,指在得到一些观测信息后某事件发生的概率。
(3)理解与应用实例
过去没有大数据,所以先验概率很难获得。近年来,随着技术的发展,很多数据被人们积累下来,贝叶斯模型的运用领域也越来越广泛。比如在一些语言翻译的网站、电子邮件软件、医疗诊断的仪器中等等,都会用到贝叶斯的统计方法。
贝叶斯定理告诉我们,即便获得了新的证据,也不要完全放弃初始的信念。新的证据会让我们对某些结果更有信心,或帮助我们修正初始信念的错误。也就是说,我们既要关注新的证据,又不能忽略初始信念。新的证据很重要,因为初始信念可能是错的,这些证据可以用于做出修正。但同时,初始信念仍然是重要的基础,不能只根据新证据就草率地做出判断。
贝叶斯定理的应用,包括但不限于:
- 医学诊断:在医学中,贝叶斯定理可用于确定疾病的风险和诊断结果的准确性。医生可以根据患者的症状和检测结果,结合先验知识和条件概率,计算出患某种疾病的后验概率,从而做出更准确的诊断。
- 机器学习:在机器学习中,贝叶斯定理通常用于概率图模型和贝叶斯推断。例如,在朴素贝叶斯分类器中,我们使用贝叶斯定理来计算给定特征的情况下某个类别的后验概率,从而对新数据进行分类。
- 自然语言处理:在自然语言处理中,贝叶斯定理可以用于文本分类、情感分析等任务。通过将先验概率与文本中的单词或短语的出现频率结合起来,可以推断出文本所属的类别或情感倾向。
- 信号处理:在通信和信号处理领域,贝叶斯推断可用于解决噪声干扰下的信号恢复和通信问题。通过考虑先验概率和观测数据,可以推断出信号的真实值。
- 金融领域:在金融领域,贝叶斯定理可用于风险管理、投资组合优化和预测金融市场趋势。通过结合历史数据和先验知识,可以更准确地估计资产的风险和收益。
- 搜索引擎:贝叶斯推断在搜索引擎中也有应用,例如用于个性化搜索结果排序和相关性评分的计算。通过考虑用户的历史搜索行为和网页内容的特征,可以提高搜索结果的准确性和用户满意度。
应用实例(1):疾病检测
问题:某疾病发病率为1%,检测准确率为99%(即患者检测阳性概率为99%,健康人检测阴性概率为99%)。若某人检测为阳性,实际患病的概率是多少?
计算过程:
-
定义事件:
A A A:患病, B B B:检测阳性。
已知: P ( A ) = 0.01 P(A)=0.01 P(A)=0.01, P ( B ∣ A ) = 0.99 P(B|A)=0.99 P(B∣A)=0.99, P ( B ∣ ¬ A ) = 0.01 P(B|\neg A)=0.01 P(B∣¬A)=0.01。 -
计算全概率 P ( B ) P(B) P(B):
P ( B ) = P ( B ∣ A ) P ( A ) + P ( B ∣ ¬ A ) P ( ¬ A ) = 0.99 × 0.01 + 0.01 × 0.99 = 0.0198 P(B) = P(B|A)P(A) + P(B|\neg A)P(\neg A) = 0.99 \times 0.01 + 0.01 \times 0.99 = 0.0198 P(B)=P(B∣A)P(A)+P(B∣¬A)P(¬A)=0.99×0.01+0.01×0.99=0.0198 -
应用贝叶斯公式:
P ( A ∣ B ) = 0.99 × 0.01 0.0198 ≈ 0.5 P(A|B) = \frac{0.99 \times 0.01}{0.0198} \approx 0.5 P(A∣B)=0.01980.99×0.01≈0.5
结论:即使检测准确率高达99%,因疾病罕见,检测阳性者实际患病概率仅约50%,凸显了结合先验概率的重要性。
应用实例(2):贝叶斯理论在侧信道分析中的应用——模板攻击(Template Attack)
【注】侧信道分析(Side-Channel Analysis, SCA)是一种通过物理设备运行时泄漏的旁路信息(如功耗、电磁辐射、执行时间等)推断密码算法内部秘密信息(如密钥)的攻击方法。贝叶斯公式在侧信道分析中扮演了核心角色,尤其是在模板攻击和概率建模中,能够将先验知识与观测数据结合,逐步缩小密钥的可能范围。
模板攻击是侧信道分析中最强大的攻击方法之一,其核心是贝叶斯理论。以下以攻击AES-128加密算法为例说明流程:
公式定义:
P
(
密钥
∣
侧信道数据
)
=
P
(
侧信道数据
∣
密钥
)
⋅
P
(
密钥
)
P
(
侧信道数据
)
P(\text{密钥} | \text{侧信道数据}) = \frac{P(\text{侧信道数据} | \text{密钥}) \cdot P(\text{密钥})}{P(\text{侧信道数据})}
P(密钥∣侧信道数据)=P(侧信道数据)P(侧信道数据∣密钥)⋅P(密钥)
先验概率
P
(
密钥
)
P(\text{密钥})
P(密钥):攻击者对密钥的初始猜测(如均匀分布假设或历史攻击经验)。
后验概率 P ( 密钥 ∣ 数据 ) P(\text{密钥} | \text{数据}) P(密钥∣数据):结合观测数据后,密钥正确的更新概率。
- 模板构建(训练阶段)
- 目标:为每个可能的密钥字节(或中间值)建立侧信道泄漏的统计模型。
- 步骤:
- 采集数据:使用已知密钥对设备进行多次加密,记录功耗或电磁轨迹。
- 特征提取:选择泄漏点(如特定时钟周期的功耗)。
- 建模:对每个密钥假设 k k k,计算其对应泄漏数据的概率分布(如多元高斯分布),即 P ( 数据 ∣ k ) P(\text{数据} | k) P(数据∣k)。
- 密钥恢复(攻击阶段)
-
目标:利用未知密钥设备的侧信道数据,通过贝叶斯公式计算后验概率。
-
步骤:
-
观测数据:获取目标设备运行时的侧信道轨迹 D D D。
-
计算似然:对每个候选密钥 k i k_i ki,计算 P ( D ∣ k i ) P(D | k_i) P(D∣ki)(基于模板模型)。
-
更新后验:假设先验 P ( k i ) P(k_i) P(ki) 均匀分布,则后验概率简化为:
P ( k i ∣ D ) ∝ P ( D ∣ k i ) P(k_i | D) \propto P(D | k_i) P(ki∣D)∝P(D∣ki) -
迭代优化:通过多次观测 D 1 , D 2 , … , D n D_1, D_2, \dots, D_n D1,D2,…,Dn,逐次更新后验概率:
P ( k i ∣ D 1 , D 2 , … , D n ) ∝ ∏ j = 1 n P ( D j ∣ k i ) P(k_i | D_1, D_2, \dots, D_n) \propto \prod_{j=1}^n P(D_j | k_i) P(ki∣D1,D2,…,Dn)∝j=1∏nP(Dj∣ki) -
确定密钥:选择后验概率最高的 k i k_i ki 作为正确密钥。
-
- 实例:AES密钥恢复
- 攻击目标:恢复AES-128的第一轮密钥字节。
- 模板建模:对每个候选密钥字节(0~255),训练其对应S盒输出的功耗分布模型(均值和协方差矩阵)。
- 攻击过程:
- 对未知密钥设备采集单条功耗轨迹 D D D,提取S盒计算阶段的泄漏点。
- 对每个候选密钥 k i k_i ki,计算其S盒输出值,并利用模板模型计算 P ( D ∣ k i ) P(D | k_i) P(D∣ki)。
- 归一化后验概率,输出概率最高的密钥字节。
结果:通过多次观测,正确密钥的后验概率迅速收敛至接近1,错误密钥概率趋近于0。
(4)贝叶斯定理优点与局限
- 优点:能够自然地处理不确定性,能够利用先验知识有效地更新后验概率,尤其适用于小样本情况。
- 局限:需要给定先验概率,选择合适的先验可能会影响结果;在计算边际概率时可能需要求和或积分,计算复杂度较高。
2. 极大似然
(1)基本概念
极大似然估计(Maximum Likelihood Estimation, MLE)是一种统计方法,利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。它的基本思想是:找到一组参数,使得在这些参数下,观测到的数据出现的概率最大。
(2)公式
假设我们有一个参数化的概率模型,其参数为 θ \theta θ,对于观测到的数据集 X = { x 1 , x 2 , … , x n } X = \{x_1, x_2, \ldots, x_n\} X={x1,x2,…,xn},每个数据点的概率由模型的概率密度函数 f ( x ∣ θ ) f(x|\theta) f(x∣θ) 或概率质量 P ( x ∣ θ ) P(x|\theta) P(x∣θ)给出。
-
目标: 选择一个参数 θ ^ \hat{\theta} θ^,使得数据 X X X 在参数为 θ \theta θ 的条件下的联合概率最大。
-
似然函数: 数据 X X X 的联合概率被称为 似然函数,表示为:
L ( θ ∣ X ) = ∏ i = 1 n P ( x i ∣ θ ) L(\theta|X) = \prod_{i=1}^n P(x_i|\theta) L(θ∣X)=i=1∏nP(xi∣θ)
这里 P ( x i ∣ θ ) P(x_i|\theta) P(xi∣θ) 是每个样本点的条件概率。 -
极大化目标: 选择参数 θ \theta θ使得似然函数 L ( θ ∣ X ) L(\theta|X) L(θ∣X) 最大:
θ ^ = arg max θ L ( θ ∣ X ) \hat{\theta} = \arg \max_{\theta} L(\theta|X) θ^=argθmaxL(θ∣X)
(3)应用实例
应用实例(1):离散型分布(伯努利分布)
问题:假设一个硬币抛 n n n 次,观察到正面 k k k 次,反面 n − k n - k n−k 次,硬币正面概率为 p p p。目标是估计 p p p。
-
概率模型:单次抛硬币的概率由伯努利分布给出:
P ( x ∣ p ) = p x ( 1 − p ) 1 − x , x ∈ { 0 , 1 } P(x|p) = p^x(1-p)^{1-x}, \quad x \in \{0,1\} P(x∣p)=px(1−p)1−x,x∈{0,1} -
似然函数:
L ( p ∣ X ) = ∏ i = 1 n P ( x i ∣ p ) = p k ( 1 − p ) n − k L(p|X) = \prod_{i=1}^n P(x_i|p) = p^k(1-p)^{n-k} L(p∣X)=i=1∏nP(xi∣p)=pk(1−p)n−k -
对数似然函数:
ℓ ( p ∣ X ) = log L ( p ∣ X ) = k log p + ( n − k ) log ( 1 − p ) \ell(p|X) = \log L(p|X) = k \log p + (n-k) \log(1-p) ℓ(p∣X)=logL(p∣X)=klogp+(n−k)log(1−p) -
求导并极值化:
对 ( p ) 求导并令导数为 0:
∂ ℓ ( p ∣ X ) ∂ p = k p − n − k 1 − p = 0 \frac{\partial \ell(p|X)}{\partial p} = \frac{k}{p} - \frac{n-k}{1-p} = 0 ∂p∂ℓ(p∣X)=pk−1−pn−k=0
解得:
p ^ = k n \hat{p} = \frac{k}{n} p^=nk
结论:硬币正面概率的极大似然估计值是观测到的正面次数比例。
应用实例(2):连续型分布(正态分布)
问题:假设观测到的数据 X = { x 1 , x 2 , … , x n } X = \{x_1, x_2, \ldots, x_n\} X={x1,x2,…,xn} 服从正态分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2),目标是估计 μ \mu μ 和 σ 2 \sigma^2 σ2。
- 概率模型:
f ( x ∣ μ , σ 2 ) = 1 2 π σ 2 exp ( − ( x − μ ) 2 2 σ 2 ) f(x|\mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp \left( -\frac{(x - \mu)^2}{2\sigma^2} \right) f(x∣μ,σ2)=2πσ21exp(−2σ2(x−μ)2)
- 似然函数:
L ( μ , σ 2 ∣ X ) = ∏ i = 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) L(\mu, \sigma^2|X) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi\sigma^2}} \exp \left( -\frac{(x_i - \mu)^2}{2\sigma^2} \right) L(μ,σ2∣X)=i=1∏n2πσ21exp(−2σ2(xi−μ)2)
- 对数似然函数:
ℓ ( μ , σ 2 ∣ X ) = − n 2 log ( 2 π ) − n 2 log σ 2 − ∑ i = 1 n ( x i − μ ) 2 2 σ 2 \ell(\mu, \sigma^2|X) = -\frac{n}{2} \log (2\pi) - \frac{n}{2} \log \sigma^2 - \frac{\sum_{i=1}^n (x_i - \mu)^2}{2\sigma^2} ℓ(μ,σ2∣X)=−2nlog(2π)−2nlogσ2−2σ2∑i=1n(xi−μ)2
- 对 μ \mu μ 和 σ 2 \sigma^2 σ2 求导并解方程:
- 对 μ \mu μ:
∂ ℓ ( μ , σ 2 ∣ X ) ∂ μ = ∑ i = 1 n ( x i − μ ) σ 2 = 0 \frac{\partial \ell(\mu, \sigma^2|X)}{\partial \mu} = \frac{\sum_{i=1}^n (x_i - \mu)}{\sigma^2} = 0 ∂μ∂ℓ(μ,σ2∣X)=σ2∑i=1n(xi−μ)=0
解得:
μ ^ = 1 n ∑ i = 1 n x i \hat{\mu} = \frac{1}{n} \sum_{i=1}^n x_i μ^=n1i=1∑nxi
- 对 σ 2 \sigma^2 σ2:
∂ ℓ ( μ , σ 2 ∣ X ) ∂ σ 2 = − n 2 σ 2 + ∑ i = 1 n ( x i − μ ) 2 2 σ 4 = 0 \frac{\partial \ell(\mu, \sigma^2|X)}{\partial \sigma^2} = -\frac{n}{2\sigma^2} + \frac{\sum_{i=1}^n (x_i - \mu)^2}{2\sigma^4} = 0 ∂σ2∂ℓ(μ,σ2∣X)=−2σ2n+2σ4∑i=1n(xi−μ)2=0
解得:
σ
^
2
=
1
n
∑
i
=
1
n
(
x
i
−
μ
^
)
2
\hat{\sigma}^2 = \frac{1}{n} \sum_{i=1}^n (x_i - \hat{\mu})^2
σ^2=n1i=1∑n(xi−μ^)2
结论:
-
均值 μ \mu μ的极大似然估计值是样本均值
-
方差 $ \sigma^2$的极大似然估计值是样本方差
(4)优点与局限
优点
- 直观性强:直接从数据出发,寻找使数据出现概率最大的参数。
- 应用广泛:适用于多种分布模型(离散型和连续型)。
- 计算效率高:在许多模型中,可以通过解析解直接找到最优参数。
局限性
- 过拟合:当数据量少时,极大似然估计可能导致过拟合问题。
- 数据分布假设:极大似然估计依赖于模型假设,如果模型假设不正确,估计可能失效。
- 非凸问题:某些复杂模型中,似然函数可能是非凸的,难以找到全局最优解。
极大似然估计是一种强大的参数估计方法,通过最大化数据的似然函数找到最优参数。它既有理论上的严格性,又有实际应用的高效性,是统计学和机器学习中的核心方法之一。