前言
吴恩达的视频里没提到概率生成模型,在李宏毅的作业2看到了,感觉挺有必要理解的,可以很自然而然地引出逻辑回归的模型。
参考:李宏毅机器学习中文课程 - 网易云课堂:分类:概率生成模型
一、问题描述
已知m组数据
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
m
)
x^{(1)}, x^{(2)}, ..., x^{(m)}
x(1),x(2),...,x(m),每组数据表示n个特征,可写为一个n维的向量
即:
(
x
(
i
)
)
T
=
(
x
1
(
i
)
,
.
.
.
,
x
n
(
i
)
)
(x^{(i)})^T = ( x^{(i)}_1, ..., x^{(i)}_n)
(x(i))T=(x1(i),...,xn(i))
且每组数据的真实值
y
(
i
)
y^{(i)}
y(i)只能为0或1
给定一个数据 x x x,预测 x x x对应的 y y y值。
二、解决方案
1. 贝叶斯公式求概率表达式
由题可知,我们根据真实值将 m m m组数据分为两类 C 0 C_0 C0和 C 1 C_1 C1,其中 C 0 C_0 C0代表真实值为 0 0 0的数据的集合,一共有 m 0 m_0 m0组, C 1 C_1 C1代表真实值为 1 1 1的数据的集合,一共有 m 1 m_1 m1组
那么给定数据 x x x,由贝叶斯公式, x x x出现在 C 0 C_0 C0的概率为
P ( C 0 ∣ x ) = P ( x ∣ C 0 ) P ( C 0 ) P ( x ∣ C 0 ) P ( C 0 ) + P ( x ∣ C 1 ) P ( C 1 ) P(C_0 | x) = \frac{P(x | C_0) P(C_0)} { P(x | C_0) P(C_0) + P(x | C_1) P(C_1) } P(C0∣x)=P(x∣C0)P(C0)+P(x∣C1)P(C1)P(x∣C0)P(C0)
P ( C 0 ∣ x ) = 1 1 + P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 0 ) P ( C 0 ) P(C_0 | x) = \frac{1} { 1 + \frac{P(x | C_1) P(C_1)}{P(x | C_0) P(C_0)} } P(C0∣x)=1+P(x∣C0)P(C0)P(x∣C1)P(C1)1
其中, P ( x ∣ C 0 ) P(x | C_0) P(x∣C0)代表给定集合 C 0 C_0 C0,出现数据为 x x x的概率,即
P ( x ∣ C 0 ) = f μ 0 , Σ 0 ( x ) P(x | C_0) = f_{\mu^0, \Sigma^0}(x) P(x∣C0)=fμ0,Σ0(x)
其中 μ 0 \mu^0 μ0 和 Σ 0 \Sigma^0 Σ0为 C 0 C_0 C0的均值和协方差矩阵,由 C 0 C_0 C0确定。
同理, P ( x ∣ C 1 ) = f μ 1 , Σ 1 ( x ) P(x | C_1) = f_{\mu^1, \Sigma^1}(x) P(x∣C1)=fμ1,Σ1(x)
而 P ( C 0 ) P(C_0) P(C0)代表随机取一组数据在 C 0 C_0 C0的概率,即 P ( C 0 ) = m 0 m 0 + m 1 P(C_0) = \frac{m_0}{m_0 + m_1} P(C0)=m0+m1m0
同理, P ( C 1 ) = m 1 m 0 + m 1 P(C_1) = \frac{m_1}{m_0 + m_1} P(C1)=m0+m1m1
2. 由数据集求概率密度函数
当数据足够大时,由中心极限定理, C 0 C_0 C0服从正态分布
f μ 0 , Σ 0 ( x ) = 1 ( 2 π ) n 2 ∣ Σ 0 ∣ 1 2 e x p ( − 1 2 ( x − μ 0 ) T ( Σ 0 ) − 1 ( x − μ 0 ) ) f_{\mu^0, \Sigma^0}(x) = \frac{1}{ (2\pi)^{\frac{n}{2}} |\Sigma^0|^{ \frac{1}{2}}} exp(-\frac{1}{2} (x - \mu^0)^T (\Sigma^0)^{-1} (x - \mu^0)) fμ0,Σ0(x)=(2π)2n∣Σ0∣211exp(−21(x−μ0)T(Σ0)−1(x−μ0))
由已有数据求 μ 0 \mu^0 μ0和 Σ 0 \Sigma^0 Σ0的最大似然估计为
μ 0 = 1 m 0 ∑ i : y ( i ) = 0 x ( i ) \mu^0 = \frac{1}{m_0} \sum_{i: y^{(i)} = 0} x^{(i)} μ0=m01i:y(i)=0∑x(i)
Σ 0 = 1 m 0 ∑ i : y ( i ) = 0 ( x ( i ) − μ 0 ) ( x ( i ) − μ 0 ) T \Sigma^0 = \frac{1}{m_0} \sum_{i: y^{(i)} = 0} (x^{(i)} - \mu^0) (x^{(i)} - \mu^0)^T Σ0=m01i:y(i)=0∑(x(i)−μ0)(x(i)−μ0)T
同理,由 C 1 C_1 C1确定的概率分布函数、均值、协方差矩阵为
f μ 1 , Σ 1 ( x ) = 1 ( 2 π ) n 2 ∣ Σ 1 ∣ 1 2 e x p ( − 1 2 ( x − μ 1 ) T ( Σ 1 ) − 1 ( x − μ 1 ) ) f_{\mu^1, \Sigma^1}(x) = \frac{1}{ (2\pi)^{\frac{n}{2}} |\Sigma^1|^{ \frac{1}{2}}} exp(-\frac{1}{2} (x - \mu^1)^T (\Sigma^1)^{-1} (x - \mu^1)) fμ1,Σ1(x)=(2π)2n∣Σ1∣211exp(−21(x−μ1)T(Σ1)−1(x−μ1))
μ 1 = 1 m 1 ∑ i : y ( i ) = 1 x ( i ) \mu^1 = \frac{1}{m_1} \sum_{i: y^{(i)} = 1} x^{(i)} μ1=m11i:y(i)=1∑x(i)
Σ 1 = 1 m 1 ∑ i : y ( i ) = 1 ( x ( i ) − μ 1 ) ( x ( i ) − μ 1 ) T \Sigma^1 = \frac{1}{m_1} \sum_{i: y^{(i)} = 1} (x^{(i)} - \mu^1) (x^{(i)} - \mu^1)^T Σ1=m11i:y(i)=1∑(x(i)−μ1)(x(i)−μ1)T
3. 公式整理
对1中表达式做变形,令
P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 0 ) P ( C 0 ) = e − z \frac{P(x | C_1) P(C_1)}{P(x | C_0) P(C_0)} = e^{-z} P(x∣C0)P(C0)P(x∣C1)P(C1)=e−z
得
P
(
C
0
∣
x
)
=
1
1
+
e
−
z
=
g
(
z
)
P(C_0 | x) = \frac{1} { 1 + e^{-z} } = g(z)
P(C0∣x)=1+e−z1=g(z)
z = − ln P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 0 ) P ( C 0 ) = ln P ( x ∣ C 0 ) P ( x ∣ C 1 ) + ln P ( C 0 ) P ( C 1 ) z = -\ln {\frac{P(x | C_1) P(C_1)}{P(x | C_0) P(C_0)} } = \ln {\frac{P(x | C_0) }{ P(x | C_1)} } + \ln { \frac{ P(C_0) }{ P(C_1) } } z=−lnP(x∣C0)P(C0)P(x∣C1)P(C1)=lnP(x∣C1)P(x∣C0)+lnP(C1)P(C0)
将2中概率分布函数代入到表达式中,得
z = ln ∣ Σ ∣ 1 ∣ Σ ∣ 0 − 1 2 ( x − μ 0 ) T ( Σ 0 ) − 1 ( x − μ 0 ) + 1 2 ( x − μ 1 ) T ( Σ 1 ) − 1 ( x − μ 1 ) ) + ln m 0 m 1 z = \ln{\frac{ |\Sigma|^1}{ | \Sigma|^0 } } - \frac{1}{2} (x - \mu^0)^T (\Sigma^0)^{-1} (x - \mu^0) + \frac{1}{2} (x - \mu^1)^T (\Sigma^1)^{-1} (x - \mu^1)) + \ln{ \frac{m_0}{m_1}} z=ln∣Σ∣0∣Σ∣1−21(x−μ0)T(Σ0)−1(x−μ0)+21(x−μ1)T(Σ1)−1(x−μ1))+lnm1m0
若将 Σ 0 \Sigma^0 Σ0和 Σ 1 \Sigma^1 Σ1等同为一个值 Σ \Sigma Σ(未考究),可继续化简得:
z = ( μ 0 − μ 1 ) T Σ − 1 x − 1 2 ( μ 0 ) T Σ − 1 μ 0 + 1 2 ( μ 1 ) T Σ − 1 μ 1 + ln m 0 m 1 z = (\mu^0 - \mu^1)^T \Sigma^{-1} x - \frac{1}{2} (\mu^0)^T \Sigma^{-1} \mu^0 + \frac{1}{2} (\mu^1)^T \Sigma^{-1} \mu^1 + \ln{ \frac{m_0}{m_1}} z=(μ0−μ1)TΣ−1x−21(μ0)TΣ−1μ0+21(μ1)TΣ−1μ1+lnm1m0
令 z = ω x + b z = \omega x + b z=ωx+b,则有
ω = ( μ 0 − μ 1 ) T Σ − 1 \omega = (\mu^0 - \mu^1)^T \Sigma^{-1} ω=(μ0−μ1)TΣ−1
b = − 1 2 ( μ 0 ) T Σ − 1 μ 0 + 1 2 ( μ 1 ) T Σ − 1 μ 1 + ln m 0 m 1 b = - \frac{1}{2} (\mu^0)^T \Sigma^{-1} \mu^0 + \frac{1}{2} (\mu^1)^T \Sigma^{-1} \mu^1 + \ln{ \frac{m_0}{m_1}} b=−21(μ0)TΣ−1μ0+21(μ1)TΣ−1μ1+lnm1m0
三、总结
既然预测 x x x在一个分类中的概率 P ( C 0 ∣ x ) P(C_0 | x) P(C0∣x),能被关于 x x x与某一向量的线性组合的函数,即 ω x + b \omega x+ b ωx+b, g ( ω x + b ) = 1 1 + e ω x + b g(\omega x + b) = \frac{1}{1+ e^{\omega x+ b}} g(ωx+b)=1+eωx+b1,我们不妨假设向量
θ T x = ω x + b \theta^T x = \omega x + b θTx=ωx+b
这就很好的解释了为什么要引入 g ( θ T x ) g(\theta^T x) g(θTx)作为逻辑回归的假设。
一文讲清楚线性回归(Linear Regression)、逻辑回归(Logistic Regression) | Andrew的个人博客 (andreww1219.github.io)