文章目录
- 第三章:线性模型
- 一、线性回归模型
- 1.1、线性回归模型
- 1.2、求解线性回归模型(时刻要分清维度)
- 1.3、多输出线性回归模型
- 二、线性分类模型
- 2.1、判别函数
- 2.2、概率判别模型
- 2.3、概率生成模型
第三章:线性模型
一、线性回归模型
1.1、线性回归模型
训练数据包含𝑁个输入数据 ( x 1 , x 2 , … … x N ) (\mathbf{x_1},\mathbf{x_2},……\mathbf{x_N}) (x1,x2,……xN)以及对应函数值 ( t 1 , t 2 … … t N ) (t_1,t_2……t_N) (t1,t2……tN),回归任务是对一个新的输入 x \mathbf{x} x预测对应的目标值
最简单的线性回归模型形式如下(以下均是针对具有D个元素的单一向量
x
\mathbf{x}
x进行分析):
y
(
x
,
w
)
=
w
0
+
w
1
x
1
+
⋯
⋅
w
D
x
D
=
w
T
x
y(\mathbf{x},\mathbf{w})=w_{0}+w_{1}x_{1}+\dots\cdot w_{D}x_{D}=\mathbf{w^T}\mathbf{x}
y(x,w)=w0+w1x1+⋯⋅wDxD=wTx
其中
w
=
(
w
0
,
w
1
,
⋯
,
w
D
)
T
\mathbf{w}= (w_{0},w_{1},\cdots ,w_{D})^{T}
w=(w0,w1,⋯,wD)T,
x
=
(
1
,
x
1
,
⋯
,
x
D
)
T
\mathbf{x}= (1,x_{1},\cdots ,x_{D})^{T}
x=(1,x1,⋯,xD)T
但输入线性组合限制了模型能力,所以要引入非线性基函数对输入进行变换:
y
(
x
,
w
)
=
∑
j
=
0
M
−
1
w
j
ϕ
j
(
x
)
=
w
T
ϕ
(
x
)
y({\bf x},{\bf w})=\sum_{j=0}^{M-1}w_{j}\phi_{j}({\bf x})={\bf w}^{\mathrm{T}}\phi({\bf x})
y(x,w)=j=0∑M−1wjϕj(x)=wTϕ(x)
其中
w
=
(
w
0
,
w
1
,
⋯
,
w
M
−
1
)
T
w= (w_{0},w_{1},\cdots ,w_{M-1})^{T}
w=(w0,w1,⋯,wM−1)T,
ϕ
=
(
ϕ
0
,
ϕ
1
,
⋯
,
ϕ
M
−
1
)
T
,
ϕ
0
(
x
)
=
1
\phi = (\phi _{0},\phi _{1},\cdots ,\phi _{M-1})^{T} , \phi _{0} (x)=1
ϕ=(ϕ0,ϕ1,⋯,ϕM−1)T,ϕ0(x)=1
可以看出, ϕ \mathbf{\phi} ϕ共有 M M M个,把一个 x \mathbf{x} x中的D维数据转化到了M维,因而 w w w也只需要 M M M个(结合下面实例理解)。
常见的基函数有:
基函数 ϕ j ( x ) \phi _{j}(\mathbf{x}) ϕj(x)可以看作是对原始数据的特征提取或变换过程
此图可理解成 ϕ 1 = x 1 2 \phi_1=x_1^2 ϕ1=x12 , ϕ 2 = x 2 2 \phi_2=x_2^2 ϕ2=x22 ……,通过三个 ϕ \phi ϕ把二维 x \mathbf{x} x变成了三维。
1.2、求解线性回归模型(时刻要分清维度)
训练数据包含𝑁个输入数据 ( x 1 , x 2 , … … x N ) (\mathbf{x_1},\mathbf{x_2},……\mathbf{x_N}) (x1,x2,……xN)以及对应函数值 ( t 1 , t 2 … … t N ) (t_1,t_2……t_N) (t1,t2……tN),模型为线性回归模型 y ( x , w ) = w T ϕ ( x ) y(\mathbf{x},\mathbf{w})=\mathbf{w}^T \phi(\mathbf{x}) y(x,w)=wTϕ(x)
其中:
∑
n
=
1
N
{
t
n
−
w
T
ϕ
(
x
n
)
}
ϕ
(
x
n
)
T
=
0
\sum_{n=1}^{N}\{t_{n}-\mathbf{w}^{\mathsf{T}}\phi(\mathbf{x_{n}})\}\phi(\mathbf{x_{n}})^{\mathsf{T}}=0
∑n=1N{tn−wTϕ(xn)}ϕ(xn)T=0可以先拆成:
∑
n
=
1
N
t
n
ϕ
(
x
n
)
T
=
\sum_{n=1}^{N}t_{n}\phi(\mathbf{x_{n}})^{\mathsf{T}}=
∑n=1Ntnϕ(xn)T=
∑
n
=
1
N
w
T
ϕ
(
x
n
)
ϕ
(
x
n
)
T
\sum_{n=1}^{N}\mathbf{w}^{\mathsf{T}}\phi(\mathbf{x_{n}})\phi(\mathbf{x_{n}})^{\mathsf{T}}
∑n=1NwTϕ(xn)ϕ(xn)T是用之后用矩阵代替连加号 , 即可得到结果,记住答案即可。
不过解析式有时很难得到;数据量大时,数据矩阵操作计算量大,可以不使用最大似然估计,而是:
1.3、多输出线性回归模型
输出结果不是一个单独的 t t t值,而是一个向量 t = ( t 1 , t 2 , ⋯ t K ) T \mathbf{t}=(t_1,t_2,\cdots t_K)^T t=(t1,t2,⋯tK)T
- 思路一:对𝒕的每一个元素成分使用不同的基函数组,进行𝐾个独立的单输出回归
- 思路二:对𝒕的所有元素成分使用相同的基函数组,进行联合回归
思路一过于冗杂,所以采用思路二。
与单输出大体相同,只是由向量 w w w变成了矩阵 W W W
其中输出数据组织为一个𝑁×𝐾维矩阵 T T T,其第 n n n行是 t n T t_n^T tnT
二、线性分类模型
有三种方法可被用来解决分类问题 : 最简单的方法是构造一个判别函数,它直接将每个向量x分配给一个特定的类。然而,一种更强大的方法是在推理阶段对条件概率分布 p ( C k ∣ x ) p(C_k|x) p(Ck∣x)进行建模,然后随后使用这个分布来做出最优决策.有两种不同的方法来确定条件概率 p ( C k ∣ x ) p(C_k|x) p(Ck∣x)。一种技术是直接对它们进行建模,例如,通过将它们表示为参数模型,然后使用一个训练集来优化参数,最终得到 p ( C k ∣ x ) p(C_k|x) p(Ck∣x),此为概率判别模型。另一种是概率生成模型,我们将由 p ( x ∣ C k ) p(x|C_k) p(x∣Ck)给出的类条件密度,以及类的先验概率 p ( C k ) p(C_k) p(Ck)进行建模,得到 P ( C k , x ) P(C_k,x) P(Ck,x)即联合概率分布密度,之后由贝叶斯公式 p ( C k ∣ x ) = P ( C k , x ) P ( x ) p(C_k|x)=\frac{P(C_k,x)}{P(x)} p(Ck∣x)=P(x)P(Ck,x)得出结果。
2.1、判别函数
判别函数的功能是将输入特征向量 x x x分配到 K K K个类别中的某一类 C K C_K CK,它将输入空间分为不同的决策区域,每个区域是一个类别,决策区域的边界称为决策边界(decision boundary)或决策平面(decision surface).
-
对于二分类问题:
最简单的方法是使用线性函数: y ( x ) = w T x + w 0 y(\mathbf{x})=\mathbf{w}^T\mathbf{x}+w_0 y(x)=wTx+w0,其中 w \mathbf{w} w为权重, w 0 w_0 w0为偏差
x 的类别 = { c 1 , 若 y ( x ) ⩾ 0 c 2 , 若 y ( x ) < 0 x的类别= \begin{cases}c_{1},若y(\mathbf{x})\geqslant0\\c_{2},若y(\mathbf{x})<0\end{cases} x的类别={c1,若y(x)⩾0c2,若y(x)<0
其中决策边界的性质:
-
w \mathbf{w} w是决策平面的法向,即 w \mathbf{w} w垂直于决策平面内的任意向量
-
任意向量 x \mathbf{x} x到决策平面的有符号垂直距离 r r r为
r = y ( x ) ∣ ∣ w ∣ ∣ = w T x + w 0 ∣ ∣ w ∣ ∣ r=\frac{y({\bf x})}{||\mathbf{w}||}=\frac{\mathbf{w}^{\mathrm{T}}{\bf x}+w_{0}}{||\mathbf{w}||} r=∣∣w∣∣y(x)=∣∣w∣∣wTx+w0
证明如下所示:
-
x = x ⊥ + r w ∥ ∣ w ∣ ∣ w T x + w 0 = w T x ⊥ + w 0 + r w T w ∥ ∣ w ∣ ∣ y ( x ) = 0 + r w T w ∣ ∣ w ∣ ∣ \begin{array}{c}{{\mathbf{x}=\mathbf{x}_{\perp}+r{\frac{\mathbf{w}}{\||\mathbf{w}||}}}}\\ {{\mathbf{w}^{\mathrm{T}}\mathbf{x}+w_{0}=\mathbf{w}^{\mathrm{T}}\mathbf{x}_{\perp}+w_{0}+r{\frac{\mathbf{w}^{\mathrm{T}}\mathbf{w}}{\||\mathbf{w}||}}}}\\y(\mathbf{x})=\mathbf{0}+r{\frac{\mathbf{w}^{\mathsf{T}}\mathbf{w}}{||\mathbf{w}||}} \end{array} x=x⊥+r∥∣w∣∣wwTx+w0=wTx⊥+w0+r∥∣w∣∣wTwy(x)=0+r∣∣w∣∣wTw
-
对于多分类问题
- 分类K个类别:(通过构建多个二分类器完成多分类)
one-vs-rest表示的是属于 C 1 C_1 C1的概率和不属于 C 1 C_1 C1的概率,最终看属于C几的概率最大
one-vs-one表示的是属于 C 1 C_1 C1的概率和属于 C 2 C_2 C2的概率,属于 C 1 C_1 C1的概率和属于 C 3 C_3 C3的概率等等,最后看归属C几的数目最多
参考one-vs-one和one-vs-rest简单理解 - herb.dr的文章 - 知乎
- K类判别式法,包含K个线性函数:
y k ( x ) = w k T x + w k 0 , k = 1 , ⋯ K y_{k} (\mathbf{x})= \mathbf{w}_{k}^{T} \mathbf{x}+ w_{k0} ,k=1, \cdots K yk(x)=wkTx+wk0,k=1,⋯K
x 的类别为 C k , 如果 ∀ j ≠ k , y k ( x ) > y j ( x ) \mathbf{x}的类别为 C_{k} ,如果 \forall j \neq k, y_{k} (\mathbf{x})> y_{j} (\mathbf{x}) x的类别为Ck,如果∀j=k,yk(x)>yj(x)
C k 和 C j 类之间的决策边界 : y k ( x ) = y j ( x ) 或 ( w k − w j ) T x + ( w k 0 − w j 0 ) = 0 C_{k} 和C_j类之间的决策边界: y_{k} (x)= y_{j} (x)或 (\mathbf{w}_{k}-\mathbf{w}_{j})^{T} x+( w_{k0} - w_{j0} )=0 Ck和Cj类之间的决策边界:yk(x)=yj(x)或(wk−wj)Tx+(wk0−wj0)=0
其中,𝐾类判别式方法的决策区域是单连通和凸的,证明如下:
-
判别函数学习法(为了求出参数而服务):
-
最小平方和误差
其中 t n \mathbf{t_n} tn采取独热编码,若 x n \mathbf{x_n} xn的类别是 C k \mathbf{C_k} Ck,则 x n \mathbf{x_n} xn的第k个元素是1,其余为0
可以看出,和前面多输出模型结果相同。
-
Fisher线性判别式
判别方法:二分类器 y = w T x + w 0 y=\mathbf{w}^T \mathbf{x}+w_0 y=wTx+w0,可以看做 y = w T x y=\mathbf{w}^T \mathbf{x} y=wTx当 y > = − w 0 , x y>=-w_0,\mathbf{x} y>=−w0,x类别为 C 1 C_1 C1,否则为 C 2 C_2 C2
主要思想是:选择投影方向,使投影后两类相隔尽可能远,而同一类内部的样本又尽可能的聚集。
主要使用参数定义如下:
Fisher准则 J ( w ) = ( m 2 − m 1 ) 2 s 1 2 + s 2 2 = w T S B w w T S W w J ( w ) = 类间距 类内距 J(\mathbf{w})=\frac{\left(\mathrm{m}_2-\mathrm{m}_1\right)^2}{s_1^2+s_2^2}=\frac{\mathbf{w}^{\mathrm{T}} \boldsymbol{S}_{\mathrm{B}} \mathbf{w}}{\mathbf{w}^{\mathrm{T}} \boldsymbol{S}_{\mathrm{W}} \mathbf{w}} \quad J(\mathbf{w})=\frac{\text { 类间距 }}{\text { 类内距 }} J(w)=s12+s22(m2−m1)2=wTSWwwTSBwJ(w)= 类内距 类间距
其中:
S B = ( m 2 − m 1 ) ( m 2 − m 1 ) T \boldsymbol{S}_{\mathrm{B}}=\left(\mathbf{m}_2-\mathbf{m}_1\right)\left(\mathbf{m}_2-\mathbf{m}_1\right)^{\mathrm{T}} \quad SB=(m2−m1)(m2−m1)T
S W = ∑ n ∈ C 1 ( x n − m 1 ) ( x n − m 1 ) T + ∑ n ∈ C 2 ( x n − m 2 ) ( x n − m 2 ) T \boldsymbol{S}_{\mathrm{W}}=\sum_{n \in C_1}\left(\mathbf{x}_n-\mathbf{m}_1\right)\left(\mathbf{x}_n-\mathbf{m}_1\right)^{\mathrm{T}}+\sum_{n \in C_2}\left(\mathbf{x}_n-\mathbf{m}_2\right)\left(\mathbf{x}_n-\mathbf{m}_2\right)^{\mathrm{T}} SW=n∈C1∑(xn−m1)(xn−m1)T+n∈C2∑(xn−m2)(xn−m2)T
之后进行优化 w ∗ = a r g m a x J ( w ) \mathbf{w}^*=arg max J(\mathbf{w}) w∗=argmaxJ(w)
可得结果 w ∝ S w − 1 ( m 2 − m 1 ) \mathbf{w} \propto \mathbf{S}_w^{-1}(\mathbf{m_2}-\mathbf{m_1}) w∝Sw−1(m2−m1)
具体证明可见Fisher线性判别算法原理及实现 MATLAB_fisher算法_寂静的以的博客-CSDN博客,这里记结果即可
-
感知机算法(参考自一文读懂感知机算法 - yuquan的文章 - 知乎)
假设样本线性可分,感知机学习的目标就是求能将正负样本完全分开的分离超平面,即要寻找w,b(因为wx+b=0确定了分离超平面)。因此我们需要确定一个学习策略,即定义损失函数,并通过训练样本使其最小化。
损失函数的一个自然选择是误分类点的总数,但是,通过这种方式定义的损失函数对参数w,b来说不是连续可导函数,不易于优化。所有感知机采取的是误分类点到超平面S的总距离。损失函数的推导如下:
-
2.2、概率判别模型
对于二分类情况,在相当一般的假设条件下,类别
C
1
,
C
2
C_1,C_2
C1,C2的后验概率可以写成作用在特征向量
ϕ
\phi
ϕ的线性函数上的 logistic-sigmoid 函数的形式,即:
p
(
C
1
∣
ϕ
)
=
y
(
x
)
=
σ
(
w
T
ϕ
)
p(C_1|\phi)=y(x)=\sigma(w^T\phi)
p(C1∣ϕ)=y(x)=σ(wTϕ)
p ( C 2 ∣ ϕ ) = 1 − p ( C 1 ∣ ϕ ) p(C_2|\phi)=1-p(C_1|\phi) p(C2∣ϕ)=1−p(C1∣ϕ)
其中
σ
(
a
)
\sigma(a)
σ(a)是 logistic- sigmoid 函数,这个模型被称为 logistic回归.
σ
(
a
)
=
1
1
+
exp
(
−
a
)
,
d
σ
d
a
=
σ
(
1
−
σ
)
\sigma(\mathrm a)=\dfrac{1}{1+\exp(-a)},\dfrac{d\sigma}{da}=\sigma(1-\sigma)
σ(a)=1+exp(−a)1,dadσ=σ(1−σ)
之后进行最大似然估计:
给定𝑁个数据样本集 ( ϕ n , t n ) ∣ t n ∈ { 0 , 1 } , ϕ n = ϕ ( x n ) , n = 1 , 2 , … , N {(\pmb{\phi}_{n},t_{n})|t_{n}\in\{0,1\},\pmb{\phi}_{n}=\pmb{\phi}(\mathbf{x}_{n}),n=1,2,\ldots,N} (ϕn,tn)∣tn∈{0,1},ϕn=ϕ(xn),n=1,2,…,N其中 t n = 1 t_n=1 tn=1表示 C 1 C_1 C1
似然函数为:
p
(
t
∣
w
)
=
∏
n
=
1
N
y
n
t
n
{
1
−
y
n
}
1
−
t
n
p(\mathbf{t}|\mathbf{w})=\prod_{n=1}^N y_n^{t_n}\{1-y_n\}^{1-t_n}
p(t∣w)=n=1∏Nyntn{1−yn}1−tn
其中
t
=
(
t
1
,
…
,
t
N
)
T
y
n
=
p
(
C
1
∣
ϕ
n
)
=
σ
(
w
T
ϕ
n
)
\quad\mathbf{t}=(t_1,\ldots,t_N)^{\mathcal{T}}\quad y_n=p(C_1|\boldsymbol{\phi}_n)=\sigma(\mathbf{w}^{\mathcal{T}}\boldsymbol{\phi}_n)
t=(t1,…,tN)Tyn=p(C1∣ϕn)=σ(wTϕn)
之后进行优化:
E
(
w
)
=
−
l
n
p
(
t
∣
w
)
=
−
∑
n
=
1
N
{
t
n
l
n
y
n
+
(
1
−
t
n
)
l
n
(
1
−
y
n
)
}
E(\mathbf{w})=-\mathrm{ln}p(\mathbf{t}|\mathbf{w})=-\sum_{n=1}^{N}\{t_{n}\mathrm{ln}y_{n}+(1-t_{n})\mathrm{ln}(1-y_{n})\}
E(w)=−lnp(t∣w)=−n=1∑N{tnlnyn+(1−tn)ln(1−yn)}
优化目标为:
w
∗
=
arg
m
i
n
E
(
w
)
\mathbf w^*=\arg\:\mathrm{min}\:E(\mathbf w)
w∗=argminE(w)
要求的是极值(不是零点),采用牛顿迭代法: x k + 1 = x k − f ′ ( x k ) f ′ ′ ( x k ) x_{k+1}=x_k-\dfrac{f'\left(x_k\right)}{f''\left(x_k\right)} xk+1=xk−f′′(xk)f′(xk),
即 w ( n e w ) = w ( o l d ) − H − 1 ∇ E ( w ) \mathbf{w}^{(\mathrm{new})}=\mathbf{w}^{(\mathrm{old})}-\mathbf{H}^{-1}\nabla E(\mathbf{w}) w(new)=w(old)−H−1∇E(w)
计算可得:
∇ E ( w ) = ∑ n = 1 N ( y n − t n ) ϕ n = Φ T ( y − t ) \nabla E(\mathbf w)=\sum\limits_{n=1}^N(y_n-t_n)\:\boldsymbol\phi_n=\boldsymbol\Phi^{\mathrm T}(\mathbf y-\mathbf t) ∇E(w)=n=1∑N(yn−tn)ϕn=ΦT(y−t), H = ∇ ∇ E ( w ) = ∑ n = 1 N y n ( 1 − y n ) ϕ n ϕ n T = Φ T R Φ \mathbf{H}=\nabla\nabla E(\mathbf{w})=\sum\limits_{n=1}^{N}y_n(1-y_n)\:\boldsymbol{\phi}_n\boldsymbol{\phi}_n^{\text{T}}=\boldsymbol{\Phi}^{\text{T}}\mathbf{R}\boldsymbol{\Phi} H=∇∇E(w)=n=1∑Nyn(1−yn)ϕnϕnT=ΦTRΦ
其中矩阵 ϕ \boldsymbol \phi ϕ,第n行为 ϕ n T \phi_n^T ϕnT, R \mathbf R R为N*N对角矩阵, R n n = y n ( 1 − y n ) R_{nn}=y_n(1-y_n) Rnn=yn(1−yn)
ALL IN ALL:
w
(new)
=
w
(old)
−
(
Φ
TR
Φ
)
−
1
Φ
T
(
y
−
t
)
=
(
Φ
T
R
Φ
)
−
1
Φ
T
R
z
z
=
Φ
w
(old)
−
R
−
1
(
y
−
t
)
\begin{array}{l}\mathbf{w}^{\text{(new)}}=\mathbf{w}^{\text{(old)}}-\left(\boldsymbol{\Phi}^{\text{TR}}\boldsymbol{\Phi}\right)^{-1}\boldsymbol{\Phi}^{\text{T}}(y-t)=\left(\boldsymbol{\Phi}^{\text{T}}\mathbf{R}\boldsymbol{\Phi}\right)^{-1}\boldsymbol{\Phi}^{\text{T}}\mathbf{R}\mathbf{z}\\ \mathbf{z}=\boldsymbol{\Phi}\mathbf{w}^{\text{(old)}}-\mathbf{R}^{-1}(y-t)\end{array}
w(new)=w(old)−(ΦTRΦ)−1ΦT(y−t)=(ΦTRΦ)−1ΦTRzz=Φw(old)−R−1(y−t)
对于多分类的情况:
p
(
C
k
∣
ϕ
)
=
y
k
(
ϕ
)
=
exp
(
a
k
)
∑
j
exp
(
a
j
)
a
k
=
w
k
T
ϕ
p(C_k|\phi)=y_k(\phi)=\dfrac{\exp(a_k)}{\sum_j\exp(a_j)}\quad\quad a_k=\mathbf{w}_k^T\phi
p(Ck∣ϕ)=yk(ϕ)=∑jexp(aj)exp(ak)ak=wkTϕ
2.3、概率生成模型
我们对类条件密度
p
(
x
∣
C
k
)
p(x|C_k)
p(x∣Ck)以及类先验
p
(
C
k
)
p(C_k)
p(Ck)进行建模,然后利用它们通过贝叶斯定理计算后验概率
p
(
C
k
∣
x
)
p(C_k|x)
p(Ck∣x).
p
(
C
1
∣
x
)
=
p
(
x
∣
C
1
)
p
(
C
1
)
p
(
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|\mathbf{x})=\dfrac{p(\mathbf{x}|C_1)p(C_1)}{p(\mathbf{x})}=\dfrac{p(\mathbf{x}|C_1)p(C_1)}{p(\mathbf{x}|C_1)p(C_1)+p(\mathbf{x}|C_2)p(C_2)}
p(C1∣x)=p(x)p(x∣C1)p(C1)=p(x∣C1)p(C1)+p(x∣C2)p(C2)p(x∣C1)p(C1)
此时
p
(
x
∣
C
1
)
,
p
(
C
1
)
p(\mathbf{x}|C_1),p(C_1)
p(x∣C1),p(C1)这些都是未知的,我们换一种形式来表示这个式子:
=
1
1
+
exp
(
−
a
)
=
σ
(
a
)
=\frac{1}{1+\exp(-a)}=\sigma(\mathrm{a})
=1+exp(−a)1=σ(a)
其中:
a
=
ln
p
(
x
∣
C
1
)
p
(
C
1
)
p
(
x
∣
C
2
)
p
(
C
2
)
a=\ln\dfrac{p(\mathbf{x}|C_1)p(C_1)}{p(\mathbf{x}|C_2)p(C_2)}
a=lnp(x∣C2)p(C2)p(x∣C1)p(C1)
同理,对于多分类问题:
p
(
C
k
∣
x
)
=
p
(
x
∣
C
k
)
p
(
C
k
)
∑
j
p
(
x
∣
C
j
)
p
(
C
j
)
=
exp
(
a
k
)
∑
j
exp
(
a
j
)
a
k
=
ln
p
(
x
∣
C
k
)
p
(
C
k
)
p(C_k|\mathbf{x})=\dfrac{p(\mathbf{x}|C_k)p(C_k)}{\sum_j p(\mathbf{x}|C_j)p(C_j)}=\dfrac{\exp(a_k)}{\sum_j\exp(a_j)}\quad\quad a_k=\ln p(\mathbf{x}|C_k)p(C_k)
p(Ck∣x)=∑jp(x∣Cj)p(Cj)p(x∣Ck)p(Ck)=∑jexp(aj)exp(ak)ak=lnp(x∣Ck)p(Ck)
此时
a
a
a只是便于后续运算所需的符号,其内部的变量仍需我们求解出来之后,再得到
p
(
C
1
∣
x
)
p(C_1|\mathbf{x})
p(C1∣x)的结果。
p ( x ∣ C 1 ) p(\mathbf{x}|C_1) p(x∣C1)
通常我们可以将先验分布选为一些熵比较高的分布例如均匀分布或高斯分布,然后通过对数据的不断观测,减小后验概率的熵从而使其集中在比较可能的参数配置上。
对于连续输入特征:
输入为连续特征,设类条件密度服从高维高斯分布,所有类具有相同协方差矩阵,则:
p
(
x
∣
C
k
)
=
1
(
2
π
)
D
/
2
1
∣
Σ
∣
1
/
2
exp
{
−
1
2
(
x
−
μ
k
)
T
Σ
−
1
(
x
−
μ
k
)
}
p(\mathbf{x}|C_k)=\dfrac{1}{(2\pi)^{D/2}}\dfrac{1}{|\Sigma|^{1/2}}\exp\left\{-\dfrac{1}{2}\left(\mathbf{x}-\boldsymbol{\mu}_k\right)^{\text{T}}\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu}_k)\right\}
p(x∣Ck)=(2π)D/21∣Σ∣1/21exp{−21(x−μk)TΣ−1(x−μk)}
(这个东西就是我们假设出来的一个先验分布)
此时,我们之前用的
a
a
a就可以表示成
a
=
ln
p
(
x
∣
C
1
)
p
(
C
1
)
p
(
x
∣
C
2
)
p
(
C
2
)
=
w
T
x
+
w
0
a=\ln\dfrac{p(\mathbf{x}|C_1)p(C_1)}{p(\mathbf{x}|C_2)p(C_2)}=\mathbf{w^T}\mathbf{x}+w_0
a=lnp(x∣C2)p(C2)p(x∣C1)p(C1)=wTx+w0
其中:
w
=
Σ
−
1
(
μ
1
−
μ
2
)
\mathbf{w}=\boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2)
w=Σ−1(μ1−μ2),,
w
0
=
−
1
2
μ
1
T
Σ
−
1
μ
1
+
1
2
μ
2
T
Σ
−
1
μ
2
+
ln
p
(
C
1
)
p
(
C
2
)
w_0=-\frac{1}{2}\boldsymbol{\mu}_1^{\text{T}}\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_1+\frac{1}{2}\boldsymbol{\mu}_2^{\text{T}}\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_2+\ln\frac{p(C_1)}{p(C_2)}
w0=−21μ1TΣ−1μ1+21μ2TΣ−1μ2+lnp(C2)p(C1)
推导过程如下:
同理,对于多分类问题:
a
k
=
ln
p
(
x
∣
C
k
)
p
(
C
k
)
=
w
k
T
x
+
w
k
0
a_k=\ln p(\mathbf{x}|C_k)p(C_k)=\mathbf{w}_k^\mathbf{T}\mathbf{x}+w_{k0}
ak=lnp(x∣Ck)p(Ck)=wkTx+wk0
其中:
w
k
=
Σ
−
1
μ
k
\mathbf{w}_k=\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_k
wk=Σ−1μk,,
w
k
0
=
−
1
2
μ
k
T
Σ
−
1
μ
k
+
ln
p
(
C
k
)
w_{k0}=-\dfrac{1}{2}\boldsymbol{\mu}_k^{\text{T}}\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_k+\ln p(C_k)
wk0=−21μkTΣ−1μk+lnp(Ck)
一旦我们为类条件密度 p ( x ∣ C k ) p(x|C_k) p(x∣Ck)指定了参数泛函数形式,我们就可以使用最大似然来确定参数的值,以及先验类概率 p ( C k ) p(C_k) p(Ck)。这需要一个包含对x的观测值及其相应的类标签的数据集。
给定N个数据样本集
{
(
x
n
,
t
n
)
∣
t
n
∈
{
0
,
1
}
,
n
=
1
,
2
,
…
,
N
}
\{(\mathbf{x}_{n},t_{n})|t_{n}\in\{0,1\},n=1,2,\ldots,N\}
{(xn,tn)∣tn∈{0,1},n=1,2,…,N},
t
n
=
1
t_n=1
tn=1表示
C
1
C_1
C1;先验概率
p
(
C
1
)
=
π
,
p
(
C
2
)
=
1
−
π
p(C_1)=\pi\:,\:\:p(C_2)=1-\pi
p(C1)=π,p(C2)=1−π,则似然函数为
p
(
t
∣
π
,
μ
1
,
μ
2
,
Σ
)
=
∏
n
=
1
N
[
π
N
(
x
n
∣
μ
1
,
Σ
)
]
t
n
[
(
1
−
π
)
N
(
x
n
∣
μ
2
,
Σ
)
]
1
−
t
n
p(t|\pi,\boldsymbol{\mu}_1,\boldsymbol{\mu}_2,\boldsymbol{\Sigma})=\prod_{n=1}^N\:[\pi\mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_1,\boldsymbol{\Sigma})]^{t_n}[(1-\boldsymbol{\pi})\mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_2,\boldsymbol{\Sigma})]^{1-t_n}
p(t∣π,μ1,μ2,Σ)=n=1∏N[πN(xn∣μ1,Σ)]tn[(1−π)N(xn∣μ2,Σ)]1−tn
之后我们逐个求偏导,就可得到参数值:
π
=
1
N
∑
n
=
1
N
t
n
=
N
1
N
=
N
1
N
1
+
N
2
μ
1
=
1
N
1
∑
n
=
1
N
t
n
x
n
a
n
d
s
o
o
n
\pi=\dfrac{1}{N}\sum\limits_{n=1}^N t_n=\dfrac{N_1}{N}=\dfrac{N_1}{N_1+N_2}\\ \mu_1=\dfrac{1}{N_1}\sum_{n=1}^N t_n x_n\\ and so on
π=N1n=1∑Ntn=NN1=N1+N2N1μ1=N11n=1∑Ntnxnandsoon
参考:
《Pattern Recognition and Machine Learning》
老师上课的PPT