音乐播放器
My Brain
 
文章 标签
8

Powered by Gridea | Theme: Fog
载入天数...
载入时分秒...

机器学习实战(五):概率估计

概率估计

一、分布预测分类

我们在KNNKNN算法中已经学习过了贝叶斯最优分类器:

P(X,Y),x labelx=argmaxyP(yx)\begin{aligned} &如果我们已知分布P(X,Y),我们可以预测x的标签为概率最高的那个标签~label_x=\arg\max_{y}P(y|x) \end{aligned}

如果我们可以根据训练集得到一个大致的分布P(X,Y),则可以利用贝叶斯最优分类器进行分类,对分布进行预测的学习分为两类:

P(X,Y)=P(XY)P(Y)P(YX)\begin{aligned} &①生成学习:预测P(X,Y)=P(X|Y)P(Y)\\ &②判别学习:直接预测P(Y|X) \end{aligned}

二、极大似然估计

Maximum Likelihood Estimation (MLE)

2.1 简单场景:掷硬币

我们投十次硬币,假设投掷结果为:D={H,T,T,H,H,H,T,T,T,T}D=\{H, T, T, H, H, H, T, T, T, T\},则我们一般会进行以下预测:

nH=4,nT=6,P(H)=θnHnH+nT=0.4n_H=4,n_T=6,P(H)=\theta\approx\frac{n_H}{n_H+n_T}=0.4

2.2 形式化定义

上述掷硬币的例子就是极大似然估计的过程,对于MLEMLE,一般分为两步:
对分布类型进行明确的建模假设
设置分布中所涉及的参数

对于掷硬币问题的分布,我们易知这是一个经典的二项分布,他有两个参数:抛硬币次数nn,某个事件(例如:硬币正面朝上)发生的概率θ\theta,我们不妨假设 P(H)=θ ~P(H)=\theta~,则有:

P(Dθ)=CnH+nTnHθnH(1θ)nT\begin{aligned} &P(D|\theta)=C^{n_H}_{n_H+n_T}\cdot \theta^{n_H}\cdot(1-\theta)^{n_T}\\ \end{aligned}

P(Dθ) P(D|\theta)~表示θ\theta为某个值时,抛硬币结果为DD的概率,比如D={H,T,T,H,H,H,T,T,T,T}D=\{H, T, T, H, H, H, T, T, T, T\}

MLEMLE的规则:对于固定的事件DD,找到一个θ\theta使得P(Dθ)P(D|\theta)最大:

θ^MLE=argmaxθ P(Dθ)=argmaxθ CnH+nTnHθnH(1θ)nT=argmaxθ (nHlnθ+nTln(1θ))\begin{aligned} &\hat{\theta}_{MLE}=\underset{\theta}{argmax}~P(D|\theta)=\underset{\theta}{argmax}~C^{n_H}_{n_H+n_T}\cdot \theta^{n_H}\cdot(1-\theta)^{n_T}=\underset{\theta}{argmax}~(n_H\ln\theta+n_T\ln(1-\theta)) \end{aligned}

我们对函数进行求导即可得到θ\theta的极大似然估计值:

f(θ)=nHlnθ+nTln(1θ)df(θ)dθ=nHθnT1θ=0θ=nHnH+nT,θ^MLE=nHnH+nT\begin{aligned} &令f(\theta)=n_H\ln\theta+n_T\ln(1-\theta)\\ &\frac{df(\theta)}{d\theta}=\frac{n_H}{\theta}-\frac{n_T}{1-\theta}=0\rightarrow \theta=\frac{n_H}{n_H+n_T},即\hat{\theta}_{MLE}=\frac{n_H}{n_H+n_T} \end{aligned}

可以发现极大似然估计的预测结果与我们的直观预测相同,这就是MLEMLE

三、先验估计

3.1 简单场景:掷硬币

我们仍可以用掷硬币的场景去理解先验估计:假设我们预感θ\theta接近0.50.5。但我们的样本量很小,所以我们对此估计并不确信,可以作如下处理:

θ^=nH+mnH+nT+2m\hat{\theta}=\frac{n_H+m}{n_H+n_T+2m}

nn很大时,该处理对θ\theta的影响微不足道;但是当nn较小时,该处理可以使得θ\theta更接近我们的猜测。

3.2 形式化定义

假设θθ是根据分布P(θ)P(θ)得到的一个随机值,DD为一个事件,则有如下贝叶斯公式:

P(θD)=P(Dθ)P(θ)P(D)=P(D,θ)P(D)P(\theta|D)=\frac{P(D|\theta)P(\theta)}{P(D)}=\frac{P(D,\theta)}{P(D)}

P(θ)P(θ)是我们在看到数据之前θθ先验分布
P(Dθ)P(D|\theta)是对于给定的参数θ\theta,事件DD发生的可能性
P(θD)P(\theta|D)是我们观察数据后得到的θ\theta后验分布

我们常常利用BetaBeta分布得到θθ的先验分布:

P(θ)=θα1(1θ)β1B(α,β)(B(α,β)=Γ(α)Γ(β)Γ(α+β),P(θ))P(\theta)=\frac{\theta^{\alpha-1}(1-\theta)^{\beta-1}}{B(\alpha,\beta)}\\ (其中B(\alpha,\beta)=\frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)},其目的是对P(\theta)进行归一化)

P(θD)P(Dθ)P(θ)θnH+α1(1θ)nT+β1P(\theta|D)\propto P(D|\theta)P(\theta)\propto\theta^{n_H+\alpha-1}(1-\theta)^{n_T+\beta-1}

四、极大后验估计

在我们知道关于θ\theta的分布,可以利用极大后验估计得到θ\theta的估计值

MAPMAP规则:对于一个固定的事件DD,找到一个θ\theta,使得P(θD)P(\theta|D)最大:

θ^MAP=argmaxθ P(θD)=argmaxθ P(Dθ)P(θ)P(D)=argmaxθ P(Dθ)P(θ)           =argmaxθ (θnH+α1(1θ)nT+β1)=argmaxθ (nH+α1)lnθ+(nT+β1)ln(1θ)            =nH+α1nH+nT+α+β2\begin{aligned} &\hat\theta_{MAP}=\underset{\theta}{argmax}~P(\theta|D)=\underset{\theta}{argmax}~\frac{P(D|\theta)P(\theta)}{P(D)}=\underset{\theta}{argmax}~P(D|\theta)P(\theta)\\ &~~~~~~~~~~~=\underset{\theta}{argmax}~(\theta^{n_H+\alpha-1}(1-\theta)^{n_T+\beta-1})=\underset{\theta}{argmax}~(n_H+\alpha-1)\ln\theta+(n_T+\beta-1)\ln(1-\theta)\\ &~~~~~~~~~~~~=\frac{n_H+\alpha-1}{n_H+n_T+\alpha+\beta-2} \end{aligned}

nn\rightarrow\infty时,α1\alpha-1β2\beta-2nHn_HnTn_T相比可以忽略,即θ^MAPθ^MLE\hat\theta_{MAP}\rightarrow\hat\theta_{MLE}

五、总结

在监督学习中有一个数据集DD,我们运用它来训练模型,它有一个参数 θθ,利用这个模型我们希望对测试点xtx_t进行预测,则有如下方法:

MLE:P(yxt;θ) learning:θ^MLE=argmaxθP(Dθ),θMAP:P(yxt,θ) learning:θ^MAP=argmaxθP(θD)P(Dθ)P(θ)θTrue Bayesian:P(yxt,θ)=θP(yθ)P(θD)dθ,θ\begin{aligned} &MLE:P(y|x_t;\theta)~learning:\hat\theta_{MLE}=\arg\max_\theta P(D|\theta),此处的\theta为一个模型参数\\ &MAP:P(y|x_t,\theta)~learning:\hat\theta_{MAP}=\arg\max_\theta P(\theta|D)\propto P(D|\theta)P(\theta),此处的\theta为随机变量\\ &True~Bayesian:P(y|x_t,\theta)=\int_\theta P(y|\theta)P(\theta|D)d\theta,此处的\theta是考虑所有可能模型积分出来的 \end{aligned}