贝叶斯定理 (Bayes’ Theorem)#
设事件 B 已经发生,需要评估哪个 事件 Ai 最有可能导致 B 的发生。贝叶斯定理提供了一个计算后验概率的公式:
P(Ai∣B)=P(B)P(AB)=P(B)P(B∣Ai)P(Ai)=∑jP(B∣Aj)P(Aj)P(B∣Ai)P(Ai)
- 先验概率:P(Ai),表示在观察到事件 B 之前对事件 Ai 的信念。
- 似然函数:P(B∣Ai),表示在事件 Ai 发生的条件下事件 B 发生的概率。
- 后验概率:P(Ai∣B),表示在观察到事件 B 之后对事件 Ai 的信念。
后验 ∝ 似然 × 先验。后验概率与先验概率成正比,比例系数由似然函数决定。
有两种优化函数:
- 最大后验概率 (MAP):A^=argmaxAiP(Ai∣B)=argmaxAiP(B∣Ai)P(Ai)
- 最大似然估计 (MLE):A^=argmaxAiP(B∣Ai)
后验概率考虑了先验知识,而最大似然估计只关注数据本身的似然性。选择哪种方法取决于具体问题和可用的信息。
生成式模型和判别式模型#
生成式模型:建模 联合概率分布 P(X,Y),可以通过 P(Y∣X)=P(X)P(X∣Y)P(Y) 来进行分类。
判别式模型:直接建模 条件概率分布 P(Y∣X),不关心特征的分布。
NOTE生成式模型可以导出判别式模型,但判别式模型不能导出生成式模型。
判别式模型通常转化为:
从邮件分类的实际例子来看:
用生成式模型(朴素贝叶斯)来分类邮件#
统计:
- 先验:P(垃圾邮件) 和 P(正常邮件),可以通过历史数据中垃圾邮件和正常邮件的比例来估计。
- 似然:P(邮件内容∣垃圾邮件) 和 P(邮件内容∣正常邮件),可以通过分析邮件内容中出现的词汇来估计。
计算:
- 后验:P(垃圾邮件∣邮件内容) 和 P(正常邮件∣邮件内容),通过贝叶斯定理计算,选择概率较大的类别作为分类结果。
能解释这个被分类成垃圾邮件的邮件为什么被分类成垃圾邮件
用判别式模型(逻辑回归)来分类邮件#
直接假设:存在一个函数,可以把特征 x (邮件内容)映射到类别概率。一个比较常见的模型是逻辑回归。后文会讲到
生成式模型-朴素贝叶斯分类-MAP#
TIP贝叶斯分类器通过最大化后验概率 P(C∣X),利用贝叶斯公式将其转化为先验概率 P(C) 与似然概率 P(X∣C) 的乘积;其中先验反映类别分布,似然反映类别条件下特征分布,在朴素贝叶斯中进一步假设特征条件独立,将联合概率分解为各特征概率的乘积。
给定属性(特征)X=(x1,x2,...,xn),类别 C=c1,c2,...,ck,我们想要计算 P(C∣X),即在给定特征 X 的条件下类别 C 的概率。
朴素:假设特征之间条件独立,即 P(X∣C)=∏i=1nP(xi∣C)。
对 P(C∣X) 应用贝叶斯定理:
P(C∣X)=P(X)P(X∣C)P(C)=∑c′P(X∣c′)P(c′)P(X∣C)P(C)在分类时,我们希望越准越好,也就是最大化 P(C∣X),由于 P(X) 对所有类别都是常数,我们可以简化为:
C^=argCmaxP(X∣C)P(C)这里面符号的语义
-
P(C):类别 C 的先验概率。在没有看到任何数据之前,种类C的概率。
在数据中体现为类别 C 的频率。
-
P(X∣C):在类别 C 下特征 X 的似然。
如果种类是 C, 那么特征 X 出现的概率。
-
P(C∣X):在给定特征 X 的条件下类别 C 的后验概率。需要求解的目标。
-
P(X):特征 X 的边缘概率。对所有类别的特征 X 的概率进行求和。
在分类时是常数,可以忽略。
补充:图模型#
贝叶斯分类器本质上就是一个非常简单的概率图模型(贝叶斯网络)
结构如下:
node: 特征 xi 和类别 C 都是节点。
edge: C→xi,表示类别 C 影响特征 xi 的生成。特征之间没有边,表示条件独立。
此时,联合概率分布可以表示为:
P(C,x1,x2,...,xn)=P(C)i=1∏nP(xi∣C)=P(C)P(X∣C)因此,后验概率 P(C∣X) 可以通过贝叶斯定理计算为:
P(C∣X)=∑c′P(c′)∏i=1nP(xi∣c′)P(C)∏i=1nP(xi∣C)
判别式模型-二项逻辑回归-MLE#
判别式模型直接建模条件概率 P(Y∣X),不关心特征的分布。对于二分类问题,常用的模型是逻辑回归。
例如,X∈Rn 作为输入,Y∈{0,1} 作为输出,我们可以使用逻辑函数(sigmoid函数)将线性组合映射到概率空间:
P(Y=1∣X)P(Y=0∣X)=σ(wTX+b)=1+e−(wTX+b)1=1−P(Y=1∣X)=1−σ(wTX+b)TIP这里sigmoid的指数显示的指出了 w,b,但是也可以用增广的输入 X′=[X;1] 和权重 θ=[w;b] 来表示,这样就不需要单独处理偏置项了。
这种表示下的 θTX′ 和后文的 wTX+b 是等价的。
对于输入数据,格式为 {X(n),Y(n)}n=1N ,右上角的 (n) 表示第 n 个样本。其中的 X∈Rn 是特征组成的向量,Y={0,1} 是标签。我们可以通过最大化似然函数来训练模型:
L(w,b)=n=1∏NP(Y(n)∣X(n))=n=1∏Nσ(wTX(n)+b)Y(n)(1−σ(wTX(n)+b))1−Y(n)这里 Y(n) 在幂指数的位置, P(Y(n)∣X(n)) 是根据 Y(n) 的取值来选择 σ(wTX(n)+b),(Y(n)=1) 或 1−σ(wTX(n)+b),(Y(n)=0),这样可以统一表示两种情况。
但是这依托是乘积不好优化,不妨转化为对数似然:
logL(w,b)=n=1∑N[Y(n)logσ(wTX(n)+b)+(1−Y(n))log(1−σ(wTX(n)+b))]乘以 (−N1) ,转化为最小化问题(这其实就是交叉熵损失函数)
w,bminl(w,b)=w,bmin−N1n=1∑N[Y(n)logσ(wTX(n)+b)+(1−Y(n))log(1−σ(wTX(n)+b))]问题来了,怎么解?
梯度下降:
关于梯度的计算:
TIPsigmoid函数的导数 σ′(z)=σ(z)(1−σ(z)),这是一个重要的性质,在计算梯度时会用到。
外面套一个log,求导 (logσ(z))′=σ(z)σ′(z)=1−σ(z)
∂w∂l∂b∂l=N1n=1∑N(σ(wTX(n)+b)−Y(n))X(n)=N1n=1∑N(σ(wTX(n)+b)−Y(n))