Bayes

贝叶斯估计与惩罚

有惩罚的损失函数:

是超参数,自己定义。越大,惩罚越大,原来的约束条件越小,模型越简单;反之,原来训练集的约束条件越大,模型越复杂。

是对模型复杂度的描述。这个是为了防止在参数很少的时候训练导致过拟合(就是这个模型只适用于这一些少量的参数,对于大量的其他没有训练的参数反而不适用)

如:对于cubic smoothing spline(这个就是)的最小二乘法:

后面的也可以称作正则化项,对抗过拟合

对实验结果的修正

对于一些实验次数非常少的实验,结果可能偏差较大,导致得出的结论过拟合或者不准确。那么可以根据先验概率(经验)进行修正。实验次数越少修正越大

如:掷硬币:

先验(prior):

  • 第一种算法:
  • 第二种算法:

是投出的次数,是投出的次数。而是修正值。

分类器

通过求和把项消除掉

参数的个数

假设输入,那么所有的的可能性有种。

假设有,那么一共有数据量过大

Naive Bayes 朴素贝叶斯

进行假设:所有的特征都是相互独立的。(这个假设太强,实际中并不可能出现这种情况。但是可以用来简单模拟)

那么有。这时如果有个参数,那么只需要计算次(分别是两种情况,其他的每一个变量只需要计算一次即可,不需要考虑相关性)

训练Naive Bayes

对于所有的标签,分析计算

对于多输入的向量:对每一个,计算

然后对进行分类:$$ 目标函数:

如果假设不成立,强行使用也可以。但是如果有两个特征强相关,极端一点假设,那么会过度关注于,因为这一项可以看成是平方了。

还有就是样本不够的时候会出现某一些的情况,导致整个模型不可用

所以要引入先验的修正,从MLE变成MAP

MLE计算:

个特征,对应第个类别,第个训练样本

Bayesian Net 贝叶斯网络

概率模型图

是一种有向无环图(DAG)

graph TB
Z-->Y
X-->Y

表示受到影响,也受到影响,但是相互独立,不相关

那么就可以化简成

然后就可以计算(CPD)联合概率密度分布:

Y=1Y=0
X=1,Z=1
X=1,Z=0
X=0,Z=1
X=0,Z=0

然后对上表的进行估计

如:

graph TB
StormClouds-->Lighting-->Thunder
StormClouds-->Rain-->WindSurf
Lighting-->WindSurf

上述图表中,可以简单认为给定的所有直接父节点情况下,和所有非子代节点的节点都独立。

(假设上面的单词使用首字母进行表示)

即,可以认为,,以及,等

D-separate
graph TB
X-->Y-->Z
M-->N
M-->P
A-->B
C-->B

这个时候,有三种情况:

  1. 第一种原来是条件不独立,给定之后变成条件独立
  2. 第二种原来条件不独立,给定后条件独立
  3. 第三种原来条件独立,给定之后条件不独立

可以认为,两者之间如果有一条通路,那么就算是条件独立。但是注意第三种,给定之后不是将通路打断,而是把断掉的通路合成

Markov Blanket

马尔科夫毯

:一个点的所有的直接父节点,子节点,联合父节点(直接子节点的直接父节点)组成的一部分

那么给定之后,条件独立

CDP 联合概率分布

计算完所有的CDP之后就可以通过这个表进行计算所有需要的条件概率。

如:

T=1T=0
L=1
L=0

计算

然后

注意,给定的观测值越少,计算量就越多。

所以要转换成采样或者变分来做。

  • 采样

    使用Monte Carlo方法进行采样。但是有个问题,需要样本量极大

  • 变分

    使用Gaussian Distribution进行逼近

    其中是使用高斯分布逼近的结果。

    所以将这个问题变成了优化问题

对于连续随机变量

  1. 离散化:,其中意味着

  2. 对参数建模

    使用Sigmoid函数进行分析:

    ,然后求解

隐变量

假设存在隐变量(虽然存在于模型中,但是没有任何观测数据),使用MLE:

估计下界:

取最小值时,等式成立,即

使用Expectation Maximization(MLE)进行估计

对隐变量存在的模型进行估计:

是迭代求解,可以在线计算,时间复杂度不高 对于,正常使用全概率公式链式法则加上贝叶斯网格的先验进行优化计算即可

EM算法

EM算法,Exception Maximization Algorithm。

E-step:根据计算隐变量的分布

M-step:根据计算所得隐变量的分布计算更新

例子:

graph TB
Flu-->Sinus-->Headache
Allergy-->Sinus-->Nose

假设可观测值:,隐变量

E-step: Calculate for each training example,

M-step: update all relevant parameters. For example:

example

graph TB
Y-->X1
Y-->X2
Y-->X3
Y-->X4
YX1X2X3X4
10011
00100
00010
?0110
?0101

EM算法的实现过程:

E-step:

M-step:

theta_{ij|m}=\hat P(X_i=j|Y=m)=\frac{\sum_kP(y(k)=m|x_1(k),\cdots,x_N(k))\delta(x_i(k)=j)}{\sum_kP(y(k)=m|x_1(k),\cdots,x_N(k))}$$