看了好多书籍和博客,讲先验后验、贝叶斯公式、两大学派、概率模型、或是逻辑回归,讲的一个比一个清楚 ,但是联系起来却理解不能
基本概念如下
- 先验概率:一个事件发生的概率 \[P(y)\]
- 后验概率:一个事件在另一个事件发生条件下的条件概率 \[P(y|x)\]
- 贝叶斯公式:联合概率公式直接能推导出来的,代表什么意义?不放在具体问题中代表不了任何意义 \[P(y|x) = \frac{{P(x|y)P(y)}}{{P(x)}}\]
拿一个实际的例子,如果用阴天预测是否下雨
- 先验概率:下雨的概率 \[P(rain)\]
- 后验概率:已经知道阴天,下雨的概率 \[P(rain|cloudy)\]
- 贝叶斯公式:表现了后验概率与先验概率的关系 \[P(rain|cloudy) = \frac{{P(cloudy|rain)P(rain)}}{{P(cloudy)}}\]
- 把注意力集中在分子,公式可以理解为:阴天会下雨的概率(后验概率),不仅跟下雨那天的确是阴天的概率(条件概率)有关,还跟下雨本身的概率(先验概率)有关,如果下雨本身概率很低(先验概率=0),即便下雨一定阴天(条件概率=1),那么下雨的概率还是会很低(后验概率=0) \[P(rain|cloudy) = \frac{{P(cloudy|rain)P(rain)}}{{P(cloudy)}}\]
- 把注意力集中在分母,公式可以理解为:阴天会下雨的概率(后验概率),不仅跟下雨并且是阴天的概率有关,还跟不下雨也是阴天的概率有关 \[P(rain|cloudy) = \frac{{P(cloudy|rain)P(rain)}}{{P(cloudy|rain)P(rain) + P)(cloudy|norain)P(norain)}}\]
- 似然函数:根据贝叶斯公式得出的先验概率与后验概率的关系参数 \[{P(cloudy|rain)}\] 由于已经知道是阴天了,忽略P(cloudy) \[P(rain|cloudy) \propto P(cloudy|rain)P(rain)\]
在很多文献中,将x与y分别描述为“因”和“果”,P(因)即为先验概率,P(因|果)即已经知道结果求原因的概率为后验概率,这里产生了第一个混淆点,在很多现实的例子里,“因”“果”是什么?因为阴天所以下雨?还是因为要下雨所以阴天?
在上面的例子里,显然只能解释为后者,即这天要下雨是“原因”,阴天是下雨的“结果”,下雨可能引发阴天,也可能引发不阴天。这个理解本身就很别扭。
在英文中,P(y)先验概率、P(y|x)后验概率、P(x|y)似然函数、P(x)分别的名称为:prior、posterior、likelihood、evidence,最后的P(x)连中文名称都没有,但我个人认为这个才是理解这些概念的关键。
先说说概率论两大学派,频率学派和贝叶斯学派,频率学派认为事件出现的概率是一定的,贝叶斯学派认为事件的概率也是存在分布的
- 频率学派:认为事件概率是确定的,所以重复实验解决一切问题,代表算法是最大似然估计MLE,这里常举的例子是硬币的例子,如果抛10次硬币,10次正面向上,则频率学派认为P(抛硬币正面向上)就为1.0。
- 贝叶斯学派:认为事件概率本身是有分布的,所以引入先验概率(分布)的概念,代表算法是最大后验概率估计MAP,如果认为硬币很可能是均匀的,如果抛10次硬币,10次正面向上,则贝叶斯学派认为P(抛硬币正面向上)是一个介于0.5-1.0之间的数。
这里是怎么跟上面的先验概率、后验概率、似然函数联系起来的呢,注意频率学派和贝叶斯学派都是参数估计的方法,所以要估计的不是正面或者反面向上,而是模型的参数,P(抛硬币正面向上)其实只是模型参数的一个表现。如果用“因果论”来解释,模型参数即为因,抛硬币结果为正面向上即为果。这里为了避免混淆,许多文献令模型参数为θ,区别于之前使用的y。
- 先验概率: \[P(\theta )\]
- 后验概率: \[P(\theta |x)\]
- 似然函数: \[P(x|\theta )\]
基于这样的定义,推导两个学派的估计方法
- 频率学派:使用最大似然估计,即 \[\mathop {\arg \max }\limits_\theta (P({x_1},{x_2},...,{x_{10}}|\theta ))\] 像硬币实验一样的独立重复实验可化简为 \[\mathop {\arg \max }\limits_\theta (\prod\limits_i {P({x_i}|\theta )} )\] 直观理解也很好理解,如果抛10次硬币都是正面向上,那么最可能的估计当然就是这枚硬币只有可能正面向上(说不定两面都是正面)
- 贝叶斯学派:使用最大后验概率估计,即 \[\mathop {\arg \max }\limits_\theta (P(\theta |{x_1},{x_2},...,{x_{10}})) \propto P({x_1},{x_2},...,{x_{10}}|\theta )P(\theta )\] 正好比最大似然估计多了一项P(θ),即对应先验分布,直观理解即硬币可能两面都是正面,也可能一面重一些,也可能是均匀的,各种情况的(先验)概率不同,各种情况下10次抛硬币结果都正面朝上的(条件)概率也不同
目前还比较顺利,但回到刚才阴天下雨的问题,在机器学习任务中,我们一般是希望通过阴天来判断是否会下雨,那么模型对应的(表现)就是P(rain|cloudy),这里用“因”到底应该对应模型参数?还是下雨?
接下来再看一个机器学习的典型模型——逻辑回归,在《统计学习方法》等文献中,逻辑回归模型如下(x为输入特征向量、θ为参数向量、y为预测结果) \[P(y = 1|x) = \frac{1}{{1 + {e^{ - \theta x}}}}\] \[P(y = 0|x) = 1 - P(y = 1) = \frac{1}{{1 + {e^{\theta x}}}}\] P(y=1|x)与P(y=0|x)是该模型对于后验概率的估计,可以化简为 \[P(y|x) = {(\frac{1}{{1 + {e^{ - \theta x}}}})^y}{(1 - \frac{1}{{1 + {e^{ - \theta x}}}})^{1 - y}}\] 然后是用最大似然估计推导逻辑回归参数估计的过程 \[\mathop {\max }\limits_\theta \prod\limits_i {{{(\frac{1}{{1 + {e^{ - \theta {x_i}}}}})}^{{y_i}}}{{(1 - \frac{1}{{1 + {e^{ - \theta {x_i}}}}})}^{1 - {y_i}}}} \]
这推导表面上顺利的不得了,大家都这么写,仔细想想不对啊!似然函数是P(a|b)的话,后验分布应该是P(b|a),两个怎么成了一回事?x、y、θ挤到一块,哪个是哪个?
所以个人认为用“因”“果”描述先验后验,不太合适。英文将P(x)描述为evidence,evidence有显性的意思在里面,如果用“显示的”“隐藏的”来描述,看是不是能顺畅点。
在阴天下雨模型中,我们知道今天是阴天,要推断的是是否要下雨,阴天是“显示的”,下雨是“隐藏的”,那么先验概率自然是P(下雨),后验概率则为P(下雨|阴天)。
在硬币模型中,我们知道10次抛硬币结果是正面,要推断的是抛硬币结果模型,抛硬币结果是“显”,模型是“隐”,那么先验分布为P(模型),后验分布为P(模型|10次抛硬币结果是正面)。
在逻辑回归模型中,模型的功能是根据输入x预测输出y,自然x是已知的,是“显”,y是要预测的,是“隐”,所以模型将决策函数假设为后验概率P(y|x)。但是在参数估计的过程中,输入的是训练数据,训练数据的x、y都是已知的,而模型参数θ才是未知的,所以x、y是“显”,θ是“隐”,所以此时的似然函数不是P(x|y),也不是P(θ|x),而是P(θ|x,y),这样,最大似然估计的式子就可以推导出来了!
回头看逻辑回归的模型,其实假设的也不是P(y|x),而是P(y|x,θ)。
所以其实预测和参数估计是两个过程,一个是概率过程,根据模型求概率(数据),一个是统计过程,根据数据(展现出来的概率)求模型,两个过程正好相反,这里是第二个混淆点。
举另一个实例,如果需要根据一个人是否咳嗽判断他是否有肺炎,那么“是否咳嗽”就是“显”,“是否有肺炎”就是“隐”;如果需要根据一个人是否有肺炎判断他平时是否咳嗽,那么“是否有肺炎”就是“显”,“是否咳嗽”就是“隐”,这哪有什么绝对的因果关系嘛。
菜鸡见解,还请大神多多斧正!
参考文献:
https://blog.csdn.net/u011508640/article/details/72815981
https://www.cnblogs.com/ldphoebe/p/5041813.html
https://blog.csdn.net/zjuPeco/article/details/77165974
https://www.zhihu.com/question/24261751
https://www.zhihu.com/question/27398304
原文地址:https://www.cnblogs.com/jhc888007/p/9815720.html