1. 绪论
Classification:Probabilistic Generative Model,本节课讲的是基于概率生成模型的分类。
分类任务本质上是找到一个函数,函数的输入是输入数据,输出是类别。应用范围比较广,例如信用卡评分、医学诊断、手写数字识别、人脸识别等等。
下图是对不同的宠物小精灵划分类别,如火系、冰系、草系等等。
下图是给定了一些宠物小精灵的特征,然后去预测它的类别。
下面我们以二分类为例:
简单扩展一下分类问题。本节课主要讲的分类指的是输出是一个类别的。但是分类问题的输出也可能是和输入的长度一致或者不定的(需要机器去自动指定输出的长度)。前者称为是Sequence Labeling,而后者可以称作是Seq2Seq。
2. 使用回归解决分类问题
假设我们依然使用MSE作为损失函数,并且以拟合的直线来划分两类数据,位于边界上方的是Class 2,位于边界下方的是Class 1。但如果在Class 1的数据基础上添加右下方的数据,就会造成决策边界下移,从而产生一些错分样本。具体如下图所示:
3. 分类的损失函数
这里采用的是和感知机相同的损失函数,也就是统计学习方法中的0-1损失函数,截图如下所示:
4. 朴素贝叶斯
假设有两个盒子Box 1和Box 2,假设从Box 1抽球的概率是 P ( B 1 ) = 2 3 P(B_1)=\frac{2}{3} P(B1)=32,从Box 2抽球的概率是 P ( B 2 ) = 1 3 P(B_2)=\frac{1}{3} P(B2)=31。在Box 1中总球数为5个,其中蓝球为4个,绿球为1个,所以 P ( B l u e ∣ B 1 ) = 4 / 5 P(Blue|B_1)=4/5 P(Blue∣B1)=4/5,而 P ( G r e e n ∣ B 1 ) = 1 / 5 P(Green|B_1)=1/5 P(Green∣B1)=1/5。在Box 2中总球数为5个,其中蓝球为4个,绿球为1个,所以 P ( B l u e ∣ B 1 ) = 4 / 5 P(Blue|B_1)=4/5 P(Blue∣B1)=4/5,而 P ( G r e e n ∣ B 1 ) = 1 / 5 P(Green|B_1)=1/5 P(Green∣B1)=1/5。
那么问题来了,假设现在已有一个球是蓝球,问它是从哪个盒子中拿出的、
P
(
B
1
∣
B
l
u
e
)
=
P
(
B
l
u
e
∣
B
1
)
∗
P
(
B
1
)
P
(
B
l
u
e
∣
B
1
)
∗
P
(
B
1
)
+
P
(
B
l
u
e
∣
B
2
)
∗
P
(
B
2
)
P(B_1|Blue)=\frac{P(Blue|B_1)*P(B_1)}{P(Blue|B_1)*P(B_1)+P(Blue|B_2)*P(B_2)}
P(B1∣Blue)=P(Blue∣B1)∗P(B1)+P(Blue∣B2)∗P(B2)P(Blue∣B1)∗P(B1)
我们将上述问题进行泛化,最终求解的是给定数据x,它属于类别
C
1
C_1
C1的概率。则公式如下所示:
P
(
C
1
∣
x
)
=
P
(
x
∣
C
1
)
∗
P
(
C
1
)
P
(
x
∣
C
1
)
∗
P
(
C
1
)
+
P
(
x
∣
C
2
)
∗
P
(
C
2
)
P(C_1|x)=\frac{P(x|C_1)*P(C_1)}{P(x|C_1)*P(C_1) + P(x|C_2)*P(C_2)}
P(C1∣x)=P(x∣C1)∗P(C1)+P(x∣C2)∗P(C2)P(x∣C1)∗P(C1)
其中
P
(
C
1
)
P(C_1)
P(C1)和
P
(
C
2
)
P(C_2)
P(C2)是通过类别个数的频数来计算的。
假设我们只考虑两个特征:
概
率
生
成
模
型
:
P
(
x
)
=
P
(
x
∣
C
1
)
∗
P
(
C
1
)
+
P
(
x
∣
C
2
)
∗
P
(
C
2
)
概率生成模型:P(x)=P(x|C_1)*P(C_1) + P(x|C_2)*P(C_2)
概率生成模型:P(x)=P(x∣C1)∗P(C1)+P(x∣C2)∗P(C2)
概率生成模型其实是先假设数据的概率分布(正态、伯努利、泊松),然后用概率公式去计算x所属于的类型
p
(
C
1
∣
x
)
p(C_1∣x)
p(C1∣x)
一般的,我们假设x的分布为高斯分布(最为常见的概率分布模型),为什么会往往选择高斯分布呢,中心极限定理表明n 个相互独立同分布的随机变量之和的分布近似于正态分布,n 愈大,此种近似成都愈好。
一维的概率分布一般是钟形曲线,而多维的分布是:
f
μ
,
∑
(
x
)
=
1
(
2
π
)
D
/
2
1
∣
∑
∣
1
/
2
e
x
p
{
−
1
2
(
x
−
μ
)
T
∑
−
1
(
x
−
μ
)
}
f_{\mu,\sum}(x)=\frac{1}{(2\pi)^{D/2}}\frac{1}{|\sum|^{1/2}}exp\{-\frac{1}{2}(x-\mu)^T \sum ^ { -1 } (x-\mu) \}
fμ,∑(x)=(2π)D/21∣∑∣1/21exp{−21(x−μ)T∑−1(x−μ)}
上面三幅图表示均值都为0,但是协方差分别为为 I I I, 0.6 I 0.6I 0.6I, 2 I 2I 2I
如何得到数据对应的均值和方差呢?我们可以通过已有的79个样本和极大似然分布得到。
任意的高斯分布(任意的均值向量和协方差矩阵)都能生成图上的样本点。由于数据是独立同分布的,所以最终的概率值为各个点的概率之积。
根据极大似然估计得到均值和方差:
两种类别数据对应的高斯分布参数:
高斯分布针对的是特定类别的分布,也就是条件概率
P
(
x
∣
C
1
)
P(x|C_1)
P(x∣C1):
在图1.1中,红色区域代表属于
C
1
C_1
C1(水系)的概率比较大,而蓝色区域代表属于
C
2
C_2
C2(普通)的概率比较大。
在图1.2中,红色区域代表属于
C
1
C_1
C1(水系),而蓝色区域代表属于
C
2
C_2
C2(普通)。
比较常见的方法是把两者的协方差矩阵设置成相同的。为什么这么设置呢?由于一个协方差矩阵的参数是
x
2
x^2
x2个,如果设置不同的话,就会造成参数过多。
协方差矩阵就是加权求和,如下所示:
共用协方差矩阵以后,决策曲线就变成了直线,分类准确率提高了很多:
为什么要选用高斯分布呢?假设x是由一组feature组成的。假设每一个特征都是独立的,而且都是一维高斯分布。此时协方差矩阵就变成了对角矩阵。除了假设是高斯模型以外,还可以假设是其它模型,如伯努利分布(特征是0或者1)。
如果特征都是相互独立的,则可使用朴素贝叶斯。
后验概率和sigmoid函数的关联如下所示:
5. 数学推导
遗留问题:能否直接找到w和b呢?