机器学习之极大似然估计详解
文章目录
- 前言
- 极大似然原理
- 极大似然估计
- 极大似然估计的应用及推导
- 推导
- 联合概率是什么
- 求极大似然估计值$\hat\theta$的一般步骤
前言
极大似然估计在机器学习中很多模型都会用到,理解了极大似然估计对后面学习机器学习有很大帮助。
极大似然估计听着很高冷,光看名字就让需要数学不好的同学望而却步。其实说了就是根据统计结果,反推什么情况下最可能发生这个结果。
再简单的说就是:根据统计结果反推事件发生的概率。
再简单了说就是现有方程:
f=ax+byf = ax + byf=ax+by 已知f, x, y 的值已知,反推参数a,b的值。
没有办法再简单了。
举个例子吧,我们看到一对父子长得很像,我们可以说他们一定是亲生父子,有依据但是不科学。如果要从科学的 角度去判断他们是不是亲生父子,我们需要对他们进行多方面的考查,比如说肤色,眼睛,鼻子,酒窝,气质等等,然后考查得差不多了,就可以说他们有90%的概率存在父子关系(当然你也可以觍(tian)着脸挣钱拉着这两个陌生人去医院做亲子鉴定)
前面是我们盲目地去猜,后面就是有科学依据的,那这科学依据是什么呢?
就是这里我们所要说的极大似然估计
极大似然估计是求估计的一种方法,它最早由高斯提出,接下来费歇在1912年报文章中重新提出,并且证明了这个方法的一些性质。
由于极大似然估计的最优性,作为参数估计的一种常用方法,已经在众多的领域中广泛得到应用。例如系统辨识,语音处理,图像处理及模型识别等等等等。
它是建立在极大似然估计原理的基础上的一个统计方法,并且所得到的极大似然估计具有良好的性质。如相合性,有效性,不变性等。
从某种意义上来说没有比极大似然估计更好的参数估计了。
极大似然原理
极大似然原理的直观想法是:一个随机试验如有若干个可能的结果A,B,C,。。。。,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现的概率P(A)P(A)P(A)较大。极大似然原理的直观想法我们用下面例子说明:设甲箱中有99个白球,1个黑球;乙箱中有1个白球,99个黑球
现随机取出一箱,再从抽取的一箱中随机取出一球,结果是黑球,这一黑球从乙箱抽取的概率比从甲箱抽取的概率大得多,这里我们自然更多地相信这个黑球是取自自乙箱的。一般来说,事件A发生的概率与某一未知参数θ\thetaθ有关,θ\thetaθ取值不同,则事件A发生的概率P(A∣θ)P(A|\theta)P(A∣θ)也不同,当我们在一次试验中事件A发生了,则认为此时的θ\thetaθ值应是t的一切可能取值中使P(A∣θ)P(A|\theta)P(A∣θ)达到最大的那一个,极大似然估计就是要选取这样的t值作为参数t的估计值,使所选取的样本在被选的总体中出现的可能性为最大。
极大似然估计
极大似然估计只是一种概率论在统计学的应用,它是参数估计的方法之一,说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。
当然极大似然估计只是一种粗略的数学期望,要知道它的误差大小还要做区间估计。
极大似然估计的应用及推导
ok,说完了原理,来说下它在机器学习中的应用及推导。
例子还是举上面黑箱中白球和黑球的问题。现在有一黑箱,只知道里面有白球,黑球,红球,多少未知但是足够大,比例也未知。我们想知道黑箱里各种球的分类情况。我们一次从黑箱中取出10个球,记下三种球的个数,之后放回,重复100次。
OK,现在分析一下这个问题。
网上好多博客都是取黑箱统计球的问题来分析极大似然估计,之所以用这个例子因为很经典啊,它是现实中各种问题的抽象。
那么抽象的是什么呢?
抽象的是黑箱事件。黑箱,即我们只能从外面看这个箱子,箱子里面是有什么我们知道(白球,红球,黑球),但是有多少不知道。
现实中有很多这样的例子,比如说估计流水线上次品率的问题,估计池塘里鱼的分类的问题等等
独立同分布
通过抽取和放回确定这是独立同公布事件(每次抽取互不影响),并且是应用了统计学的方法
样本集
于是我们知道抽取的结果就是样本集,记为D,其中:
D=x1,x2,x3,⋯ ,x100⎵100D = {\begin{matrix} \underbrace{x_1, x_2, x_3, \cdots , x_{100} } \\100\end{matrix}} D=x1,x2,x3,⋯,x100100
x1x_1x1~x100x_{100}x100为100次抽样的结果
联合概率
因为我们是根据统计结果来估计概率的,参数θ\thetaθ和样本D互相影响,我们可以可以把它们看成两个互相影响的事件,于是似然函数可以看成联合概率。
于是联合概率P(D∣θ)P(D|\theta)P(D∣θ)称为相对于样本空间D={x1,x2,x3,⋯ ,xn}D = \{x_1, x_2, x_3, \cdots, x_n\}D={x1,x2,x3,⋯,xn}关于的θ\thetaθ的似然函数:
l(θ)=P(D∣θ)=P(x1,x2,x3,⋯ ,x100∣θ)=∏i=1100P(xi∣θ)\begin{aligned} l(\theta) &= P(D|\theta) \\ &= P(x_1, x_2, x_3, \cdots, x_{100}|\theta) \\ &= \prod_{i=1}^{100} P(x_i | \theta) \end{aligned}l(θ)=P(D∣θ)=P(x1,x2,x3,⋯,x100∣θ)=i=1∏100P(xi∣θ)
统计的次数越多,越接近真实情况。我们就用这个非常接近的统计结果,作为真实的情况。
所以如果θ^\hat\thetaθ^是参数空间中能使似然函数l(θ)l(\theta)l(θ)最大的θ\thetaθ值,则θ^\hat\thetaθ^是最可能的参数值,那么θ^\hat\thetaθ^就是θ\thetaθ的极大似然估计值。它是样本集的函数,于是我们所要估计的参数向量θ^\hat\thetaθ^为:
θ^=d(x1,x2,x3,⋯ ,x100)=d(D)\begin{aligned} \hat\theta &= d(x_1, x_2, x_3, \cdots, x_{100}) \\ &= d(D) \end{aligned}θ^=d(x1,x2,x3,⋯,x100)=d(D)
θ^(x1,x2,x3,⋯ ,xn)\hat\theta(x_1, x_2, x_3, \cdots, x_n)θ^(x1,x2,x3,⋯,xn)就称为极大似然函数的估计值,即极大似然估计,记作:
θ^=argmaxθl(θ)=argmaxθ∏i=1nP(xi∣θ)\begin{aligned} \hat\theta &= \mathop {argmax} \limits_{\theta} l(\theta) \\ &= \mathop {argmax} \limits_{\theta} \prod_{i=1}^{n} P(x_{i} | \theta) \end{aligned}θ^=θargmaxl(θ)=θargmaxi=1∏nP(xi∣θ)
注意:
θ\thetaθ是一个向量,θ⃗=[θ1,θ2,θ3,…,θn]\vec{\theta} = [\theta_1, \theta_2, \theta3, \ldots, \theta_n]θ=[θ1,θ2,θ3,…,θn]
推导
求极大似然估计值,就需要求下似然函数的导数,导数的极值点就是似然函数的最大值。
由于求导数极值点的时候我们只关心x的取值,帮可以对似然函数取对数后再求导。
问:为什么极值点就是最大值点呢?
在概率统计的导数没有其他数学方程式那么复杂的曲线走位,一般是只有一个极值点的。就像中国人的身高都集中在170,牛的体重都集中在900公斤。。。。。啊?一般?怎么不是全部?不敢说那么绝对,敢情你举出一个例外的。
问:为什么要求导的时候要取对数?
似然函数是连乘的形式,求导的时候不好求。取对数后就变成了加了,而且还不改变它的单调性。
问:对一个函数取对数后它的单调性与原函数为什么是一样的?
对数函数是单调递增的。这就好像是"+1"(正1)前面加一个加号还是正1,"-1"前面加上一个正号还是负1
对似然函数取对数:
ln∂L(θ)∂θ=∑i=1nlnP(xi∣θ)\ln \frac{\partial L(\theta)}{\partial \theta} = \sum_{i=1}^{n} \ln P(x_{i} | \theta) ln∂θ∂L(θ)=i=1∑nlnP(xi∣θ)
令h(θ)=ln∂L(θ)∂θh(\theta) = \ln \frac{\partial L(\theta)}{\partial \theta}h(θ)=ln∂θ∂L(θ),于是有:
h(θ)=∑i=1nlnP(xi∣θ)h(\theta)= \sum_{i=1}^{n} \ln P(x_{i} | \theta) h(θ)=i=1∑nlnP(xi∣θ)
变成连加以后是不是好算多了?
好了现在我们只需要知道联合概率函数P(xi∣θ)P(x_i | \theta)P(xi∣θ)是什么就可以了。
联合概率是什么
这个要看事件服从什么分布了,像上面的黑箱取球的问题肯定是服从线性分布啊,于是就有:
P(xi∣θ⃗)=θ1×x1+θ2×x2+θ3×x3P(x_i | \vec\theta) = \theta_1 \times x_1 + \theta_2 \times x_2 + \theta_3 \times x_3P(xi∣θ)=θ1×x1+θ2×x2+θ3×x3
θ⃗=[θ1,θ2,θ3,⋯ ,θn]\vec\theta = [\theta_1, \theta_2, \theta_3, \cdots, \theta_n]θ=[θ1,θ2,θ3,⋯,θn] 这里默认θ\thetaθ就是向量θ⃗\vec\thetaθ,好多地方懒省事儿都把θ⃗\vec\thetaθ写成θ\thetaθ了,不过如果是标量θ\thetaθ的话肯定会写成θi\theta_iθi的。
不过一般我们不研究呈线性分布的,自然界中,机器学习中绝大部分情况P(xi∣θ)P(x_i | \theta)P(xi∣θ)都是呈正态分布的(也叫高斯分布),这里我们只讨论下正态分布的情况,当然P(xi∣θ)P(x_i | \theta)P(xi∣θ)也有呈0-1分布,二项分布,几何分布,指数分布,泊松分布等,这里不做研究。
我们都知道样本服从正态分布时P的概率:
f(x)=12πσ⋅e−(x−μ)22σ2f(x) = \frac{1}{\sqrt{2\pi}\sigma} \cdot e^{-\frac{(x - \mu)^2}{2\sigma^2}} f(x)=2πσ1⋅e−2σ2(x−μ)2
其中
μ\muμ为数学期望(平均值)
σ\sigmaσ为方差
于是有
h(θ)=ln∑i=1nlnP(xi∣θ)=(∑i=1nlnP(xi∣θ))′=(∑i=1nln12πσ⋅e−(x−μ)22σ2)′=∑i=1nln12πσ+∑i=1n−(x−μ)22σ2=−n2ln(2πσ2)−12σ2∑i=1n(x−μ)2\begin{aligned} h(\theta) &= \ln \sum_{i=1}^{n} \ln P(x_{i} | \theta) \\ &= (\sum_{i=1}^{n} \ln P(x_{i} | \theta))' \\ &= (\sum_{i=1}^{n} \ln \frac{1}{\sqrt{2\pi}\sigma} \cdot e^{-\frac{(x - \mu)^2}{2\sigma^2}})' \\ &= \sum_{i=1}^{n} \ln \frac{1}{\sqrt{2\pi}\sigma} + \sum_{i=1}^{n} {-\frac{(x - \mu)^2}{2\sigma^2}} \\ &= -\frac{n}{2}\ln(2\pi\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^{n} {(x - \mu)^2} \end{aligned}h(θ)=lni=1∑nlnP(xi∣θ)=(i=1∑nlnP(xi∣θ))′=(i=1∑nln2πσ1⋅e−2σ2(x−μ)2)′=i=1∑nln2πσ1+i=1∑n−2σ2(x−μ)2=−2nln(2πσ2)−2σ21i=1∑n(x−μ)2
要求似然函数L(X)L(X)L(X)的最大值,只需要求h(θ)h(\theta)h(θ)的极值即可。即令:
−n2ln(2πσ2)−12σ2∑i=1n(x−μ)2=0-\frac{n}{2}\ln(2\pi\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^{n} {(x - \mu)^2} = 0 −2nln(2πσ2)−2σ21i=1∑n(x−μ)2=0
根据前面黑箱取球的例子,nnn为样本数即前面我们取了100次球,xxx为样本,即10个球里有几个白球,几个红球,几个黑球。n,xn, xn,x都是已知的,未知的只有σ,μ\sigma, \muσ,μ。故对σ,μ\sigma, \muσ,μ求偏导:
{h(x)dμ=0+1σ2∑i=1n(xi−μ)=0h(x)dσ=nσ−1σ3⋅∑i=1n(xi−μ)2=0\begin{cases} \frac{h(x)}{d\mu} = 0 + \frac{1}{\sigma^2}\sum_{i=1}^{n} (x_i - \mu) = 0 \\ \\ \frac{h(x)}{d\sigma} = \frac{n}{\sigma} - \frac{1}{\sigma^3} \cdot \sum_{i=1}^{n}(x_i - \mu)^2 = 0 \end{cases}⎩⎪⎨⎪⎧dμh(x)=0+σ21∑i=1n(xi−μ)=0dσh(x)=σn−σ31⋅∑i=1n(xi−μ)2=0
其中:
n2ln(2πσ2)\frac{n}{2}\ln(2\pi\sigma^2)2nln(2πσ2)对μ\muμ求偏导的结果为000
化简以后为:
{1σ2∑i=1n(xi−μ)=0n−1σ2⋅∑i=1n(xi−μ)2=0\begin{cases} \frac{1}{\sigma^2}\sum_{i=1}^{n} (x_i - \mu) = 0 \\ \\ n - \frac{1}{\sigma^2} \cdot \sum_{i=1}^{n}(x_i - \mu)^2 = 0 \end{cases}⎩⎪⎨⎪⎧σ21∑i=1n(xi−μ)=0n−σ21⋅∑i=1n(xi−μ)2=0
再化简:
{∑i=1n(xi)−nμ=01σ2⋅∑i=1n(xi−μ)2=n\begin{cases} \sum_{i=1}^{n} (x_i )- n\mu = 0 \\ \\ \frac{1}{\sigma^2} \cdot \sum_{i=1}^{n}(x_i - \mu)^2 = n \end{cases}⎩⎪⎨⎪⎧∑i=1n(xi)−nμ=0σ21⋅∑i=1n(xi−μ)2=n
最终有:
{μ=1n∑i=1n(xi)σ2=1n∑i=1n(xi−μ)2\begin{cases} \mu = \frac{1}{n} \sum_{i=1}^{n} (x_i )\\ \\ \sigma^2 = \frac{1}{n} \sum_{i=1}^{n}(x_i - \mu)^2 \end{cases}⎩⎪⎨⎪⎧μ=n1∑i=1n(xi)σ2=n1∑i=1n(xi−μ)2
有没有发现哪儿有不对的地方?
这个μ,σ\mu, \sigmaμ,σ怎么好像回到了数学期望μ\muμ和方差σ\sigmaσ定义的的地方了呢?
再次回到上面黑箱摸球的统计实验,在实验中
xix_ixi为样本,nnn为样本数
推导结果里的μ\muμ并不是定义的数学期望的μ\muμ,而是极大似然估计的μ\muμ。σ2\sigma^2σ2也不是方差的定义,而是极大似然估计的σ2\sigma^2σ2
推导的最终结果的意思是:在统计样本里我们可以近似地认为:
样本的平均值μ\muμ就是实际的平均值
样本的方差σ2\sigma^2σ2就是实际的方差
OK,至此推导结束,总结一下
求极大似然估计值θ^\hat\thetaθ^的一般步骤
- 写出似然函数
- 对似然函数对对数,并简化整理
- 求导
- 解似然方程
注意,如果假设的条件概率模型正确,则通常能获得较好的结果.但是如果假设模型出现偏差,将导致非常差的估计结果。
这样的话怎么办呢?
机器学习也是这方面的考虑,在对模型进行训练的时候会把统计结果留出一小部分来,用剩下的大部分的数据对模型进行训练,来验证我们所做的模型是否正确。如果效果不好的话那就换模型吧。
机器学习之极大似然估计详解相关推荐
- 极大似然估计详解,写的太好了!
极大似然估计 以前多次接触过极大似然估计,但一直都不太明白到底什么原理,最近在看贝叶斯分类,对极大似然估计有了新的认识,总结如下: 贝叶斯决策 首先来看贝叶斯分类,我们都知道经典的贝叶斯公式: 其中: ...
- 贝叶斯公式和极大似然估计详解
文章目录 一.贝叶斯决策 二.极大似然估计的引出 三.极大似然估计 四.极大似然函数的求解 一.贝叶斯决策 首先来看贝叶斯分类,我们都知道经典的贝叶斯公式: 我们来看一个直观的例子:已知:在夏季,某公 ...
- 【机器学习基本理论】详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解
[机器学习基本理论]详解最大似然估计(MLE).最大后验概率估计(MAP),以及贝叶斯公式的理解 https://mp.weixin.qq.com/s/6H0gmMWvTExySMraroLVlQ 最 ...
- R语言机器学习之caret包详解(一)
R语言机器学习caret包trainControl函数详解 R语言机器学习之caret包详解(一) 简介 数据预处理 各种数据变换 近零方差变量 创建虚拟变量 重抽样技术 k折交叉验证 留一交叉验证 ...
- 【机器学习基本理论】详解最大后验概率估计(MAP)的理解
[机器学习基本理论]详解最大后验概率估计(MAP)的理解 https://mp.weixin.qq.com/s/dQxN46wEbFrpvV369uOHdA 最大似然估计(Maximum likeli ...
- 基于spark mllib_Spark高级分析指南 | 机器学习和分析流程详解(下)
- 点击上方"中国统计网"订阅我吧!- 我们在Spark高级分析指南 | 机器学习和分析流程详解(上)快速介绍了一下不同的高级分析应用和用力,从推荐到回归.但这只是实际高级分析过程 ...
- 孙子兵法之36计详解
孙子兵法之36计详解 第一套 胜战计 第一计 瞒天过海 备周而意怠,常见则不疑,阴在阳之内,不在阳之对.太阳,太阴. 译:认为准备万分周到,就容易松劲:平时看惯了的,就往往不在怀疑了,秘计隐藏在暴露的 ...
- 参数估计之点估计(矩估计,最大似然估计) 详解+例题
统计学 参数估计之点估计(矩估计,最大似然估计) 详解含推导 1.何为点估计 在了解点估计之前,我们先介绍一下估计量与估计值的概念 1.1估计量与估计值 参数估计 就是用样本统计量去估计总体的参数,如 ...
- 机器学习之线性回归原理详解、公式推导(手推)、简单实例
目录 1. 原理详解 1.1. 线性回归 1.2. 回归系数 2. 公式推导 2.1. 单元线性回归 2.2. 多元线性回归 3. 简单实例 3.1. 实例1:一元线性回归 实例2: 多元线性回归 3 ...
最新文章
- 无监督学习与有监督学习的本质区别是什么_人工智能中的无监督学习
- Android EditText的设置
- [转]gtest使用
- 奥鹏计算机基础18秋在线作业答案,18秋华师《计算机基础》在线作业1(标准答案).doc...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十八:SDRAM模块① — 单字读写...
- oracle入库的速度能到多少_倒车入库别练复杂了,其实就这两点
- 6款帮助 滚动视差jquery插件
- android 读取txt转为utf-8乱码,彻底解决android读取txt乱码终极方案
- ASP.Net学习笔记007--ASP.Net Input版自增
- ES6学习(二)—变量的解构赋值
- SparkStreaming与kafka的结合
- 垃圾收集(GC)中如何确定哪些内存是垃圾
- RHEL6基础三十七之系统时间修正、GRUB背景图片修改
- PHP令人困惑的strtotime
- 小红书数据分析工具丨借助数据教你分分钟锁定优质达人
- 抖音的计算机技术优势,抖音系统的四大优势是什么?
- 关于怎么解决org.apache.ibatis.binding.BindingException: Mapper method attempted to return null from a met
- android surfaceview 背景颜色,android – 设置Surface View的背景颜色
- kafka跨库同步mysql表_canal实时同步mysql表数据到Kafka
- Pika使用入门(一)【介绍】