机器学习笔记——概率生成模型

174 阅读2分钟

前言

吴恩达的视频里没提到概率生成模型,在李宏毅的作业2看到了,感觉挺有必要理解的,可以很自然而然地引出逻辑回归的模型。

参考:李宏毅机器学习中文课程 - 网易云课堂:分类:概率生成模型

一、问题描述

已知m组数据x(1),x(2),...,x(m)x^{(1)}, x^{(2)}, ..., x^{(m)},每组数据表示n个特征,可写为一个n维的向量
即:(x(i))T=(x1(i),...,xn(i))(x^{(i)})^T = ( x^{(i)}_1, ..., x^{(i)}_n)
且每组数据的真实值y(i)y^{(i)}只能为0或1

给定一个数据xx,预测xx对应的yy值。

二、解决方案

1. 贝叶斯公式求概率表达式

由题可知,我们根据真实值将mm组数据分为两类C0C_0和C1C_1,其中C0C_0代表真实值为00的数据的集合,一共有m0m_0组,C1C_1代表真实值为11的数据的集合,一共有m1m_1组

那么给定数据xx,由贝叶斯公式,xx出现在C0C_0的概率为

P(C0∣x)=P(x∣C0)P(C0)P(x∣C0)P(C0)+P(x∣C1)P(C1) 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)=11+P(x∣C1)P(C1)P(x∣C0)P(C0) P(C_0 | x) = \frac{1} { 1 + \frac{P(x | C_1) P(C_1)}{P(x | C_0) P(C_0)} }

其中,P(x∣C0)P(x | C_0)代表给定集合C0C_0,出现数据为xx的概率,即

P(x∣C0)=fμ0,Σ0(x)P(x | C_0) = f_{\mu^0, \Sigma^0}(x)

其中μ0\mu^0 和 Σ0\Sigma^0为C0C_0的均值和协方差矩阵,由C0C_0确定。

同理,P(x∣C1)=fμ1,Σ1(x)P(x | C_1) = f_{\mu^1, \Sigma^1}(x)

而P(C0)P(C_0)代表随机取一组数据在C0C_0的概率,即P(C0)=m0m0+m1P(C_0) = \frac{m_0}{m_0 + m_1}

同理,P(C1)=m1m0+m1P(C_1) = \frac{m_1}{m_0 + m_1}

2. 由数据集求概率密度函数

当数据足够大时,由中心极限定理,C0C_0服从正态分布

fμ0,Σ0(x)=1(2π)n2∣Σ0∣12exp(−12(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))

由已有数据求μ0\mu^0和 Σ0\Sigma^0的最大似然估计为

μ0=1m0∑i:y(i)=0x(i)\mu^0 = \frac{1}{m_0} \sum_{i: y^{(i)} = 0} x^{(i)}

Σ0=1m0∑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

同理,由C1C_1确定的概率分布函数、均值、协方差矩阵为

fμ1,Σ1(x)=1(2π)n2∣Σ1∣12exp(−12(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))

μ1=1m1∑i:y(i)=1x(i)\mu^1 = \frac{1}{m_1} \sum_{i: y^{(i)} = 1} x^{(i)}

Σ1=1m1∑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

3. 公式整理

对1中表达式做变形,令

P(x∣C1)P(C1)P(x∣C0)P(C0)=e−z \frac{P(x | C_1) P(C_1)}{P(x | C_0) P(C_0)} = e^{-z}

得 P(C0∣x)=11+e−z=g(z) P(C_0 | x) = \frac{1} { 1 + e^{-z} } = g(z)

z=−ln⁡P(x∣C1)P(C1)P(x∣C0)P(C0)=ln⁡P(x∣C0)P(x∣C1)+ln⁡P(C0)P(C1) 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) } }

将2中概率分布函数代入到表达式中,得

z=ln⁡∣Σ∣1∣Σ∣0−12(x−μ0)T(Σ0)−1(x−μ0)+12(x−μ1)T(Σ1)−1(x−μ1))+ln⁡m0m1 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}}

若将Σ0\Sigma^0和Σ1\Sigma^1等同为一个值Σ\Sigma(未考究),可继续化简得:

z=(μ0−μ1)TΣ−1x−12(μ0)TΣ−1μ0+12(μ1)TΣ−1μ1+ln⁡m0m1 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=ωx+b z = \omega x + b,则有

ω=(μ0−μ1)TΣ−1 \omega = (\mu^0 - \mu^1)^T \Sigma^{-1}

b=−12(μ0)TΣ−1μ0+12(μ1)TΣ−1μ1+ln⁡m0m1b = - \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}}

三、总结

既然预测xx在一个分类中的概率P(C0∣x)P(C_0 | x),能被关于xx与某一向量的线性组合的函数,即ωx+b\omega x+ b,g(ωx+b)=11+eωx+bg(\omega x + b) = \frac{1}{1+ e^{\omega x+ b}},我们不妨假设向量

θTx=ωx+b\theta^T x = \omega x + b

这就很好的解释了为什么要引入g(θTx)g(\theta^T x)作为逻辑回归的假设。

一文讲清楚线性回归(Linear Regression)、逻辑回归(Logistic Regression) | Andrew的个人博客 (andreww1219.github.io)