鱼的机器学习

机器学习-概率论基础

2021-03-21  本文已影响0人  升不上三段的大鱼

机器学习中常见的概率论定义以及概率密度估计。

1. 定义

随机变量(random variable:随机取值的变量,可以是离散的或者是连续的。

概率分布(probability distribution):每一个随机变量可能取到的状态的可能性。
对于离散变量,概率分布可以用概率质量函数P(probability mass function, PMF)描述,满足条件:

对于连续变量,概率密度函数p(probability density function,PDF)满足:

联合概率密度(joint probability distribution):多个随机变量的分布,p(x,y)表示X=x,Y=y,同时发生的概率。

边缘概率分布(marginal probability distribution):已知一组联合概率分布,求其中一个变量的概率分布,可以通过求和法则计算。

求和法则(sum rule)

条件概率(conditional probability):当某一事件发生时,另一事件发生的概率,p(y|x)=\frac{p(x,y)}{p(x)}

链式法则/乘法法则:任何多维随机变量的联合概率分布都可以分解为只有一个变量的条件概率相乘:
p(x_1,x_2,\cdots,x_n)=p(x_1)\prod_{i=2}^np(x_i|x_1\cdots x_{i-1})

相互独立(independent):联合概率分布可以表示为乘积的形式,p(x,y)=p(x)p(y)

条件独立(conditional independent):某一条件下的概率分布可以写成乘积形式p(x,y|z)=p(x|z)p(y|z)

贝叶斯规则(Bayes’ rule)p(x|y)=\frac{p(x)p(y|x)}{p(y}
可以通过条件概率公式推导得到:
p(y|x) = \frac{p(x,y)}{p(x)}=\frac{p(x|y)p(y)}{p(x)}
重写一下就是贝叶斯规则的形式。

2. 参数概估计

假设数据分布符合某种已知分布(比如高斯),想要估计数据的概率密度分布,需要得知适合的参数。

参数估计中,常用的方法有最大似然估计和贝叶斯估计。

虽然参数估计很好用,但是需要选择合适的分布进行估计,现实中数据样本的总体概率往往是未知的。

3. 非参数估计

非参数估计不使用假设的分布,直接从数据估计概率分布。常见的非参数估计方法有:直方图,核密度估计和K近邻估计。

直方图

将数据x划分为宽度为\Delta i,计算落在每个区域i中观测值的数目n_i。为了转化为归一化的概率密度,只需要将观测值的总数N除以区域的宽度\Delta i
p_i = \frac{n_i}{N \Delta i}
直方图可以提供一个直观的形象,但是只适合低维的情况,当维数较高时,直方图所需空间将指数增加。

直方图密度估计,划分区域越小得到的估计越光滑。

核密度估计

假设数据的D维上的概率密度为p(x),假设一个R的空间里包括了样本x, 在这个空间里概率密度为P = \int_R p(x) dx
假设空间R内有很多样本点,落在R空间内的概率近似于频率P=\frac{K}{N}, 其中KR内的样本点,N为样本点的总数。

假设空间R足够小,在R内的概率密度在该区域内近似为恒定,近似于落在R内的概率与空间R的体积V的乘积:
P= \int_R p(x) dx = p(x) \int_Rdx=p(x) V
结合上面的公式可以得到:
p(x) = \frac{K}{N \cdot V}

注意到上面两个假设是相互矛盾的,如果我们固定V,利用样本数据来得到K的值,那么这就是核密度估计;如果我们固定K,用样本数据来决定V的值,那么就是K近邻方法
可以证明,当N趋于无穷时,K近邻密度估计量和核密度估计量都收敛于真实概率密度,前提是VN适当收缩,K随着N增长。

对于核密度估计,首先,我们将区域R设为一个小超立方体,其中心是我们希望确定概率密度的点x。如果一个样本点与中心点的距离小于二分之一的立方体边长h,就说明它在区域R内,这个关系可以写成,这个核函数被称为Parzen window:
k(u)=\begin{cases} 1,if |u_i|<= \frac{1}{2} \\ 0, otherwise \end{cases}

区域R内的样本点的数量K为:
K=\sum_{n=1}^N k(\frac{x-x_n}{h})
因此可以得到概率估计:
p(x)=\frac{1}{N} \sum_{n=1}^N \frac{1}{V} k(\frac{x-x_n}{h}), V=h^D

核密度估计,h与光滑程度有关

也可以使用一个更加光滑的核函数来估计,一般来说会选择高斯,得到的核密度模型如下,这里的h是标准差:
p(x) = \frac{1}{N} \sum_{n=1}^N \frac{1}{\sqrt{2 \pi h^2}} exp{-\frac{||x-x_n||^2}{2h^2}}

对于任意核函数,只要满足以下条件,就可以用于参数估计
\begin{equation}{ k(u) >=0, \quad \int k(u) du =1} \end{equation}

K近邻方法

K近邻方法选择固定区域内的样本值K,并使用数据来估计区域的体积V

假设一个以点x为中心的小球型空间,增大它的半径增大直到包含了K个数据点,然后将这时的体积V作为空间体积,估计密度p(x)=\frac{K}{NV}

K近邻密度估计,K与光滑程度有关

除了非参数估计,K近邻方法还可以用来分类。

假设N个数据点,对于某个分类C_k,有N_k个数据点。如果想对一个新的数据点x进行分类,我们可以对以x为中心画一个包括K个点的球形空间。假设这个球形空间的体积为V,包含了属于C_k类的K_k个点,根据公式可以得到属于C_k类的概率:
p(x|C_k)=\frac{K_k}{N_kV}
先验概率也可以得到:p(C_k)=\frac{N_k}{N}
根据贝叶斯规则可以得到
p(C_k|x)=\frac{p(x|C_k)p(C_k)}{p(x)}=\frac{K_k}{K}
如果想要减小分类误差,就需要增大后验概率,也就是增大\frac{K_k}{K}
对于一个未分类的点x,给他的分类是K个最近的邻居里对应数量最多的那个类。同样的,K值的大小也会影响分类边界的光滑程度。

K近邻用于分类

如目前为止所讨论的,K最近邻方法和核密度估计器都需要存储整个训练数据集,如果数据集很大,则会导致昂贵的计算。 通过构造基于树的搜索结构,可以有效地找到近邻而无需对数据集进行详尽搜索,从而可以抵消这种影响。 然而,这些非参数方法仍然受到限制。 另一方面,简单的参数模型在其可以表示的分布形式方面受到很大限制。 因此,我们依旧需要找到一个密度模型,该模型非常灵活,但是可以独立于训练集的大小来控制模型的复杂性。

Reference
Bishop, Pattern Recognition and Machine Learning, Chapter 2.5
Goodfellow, Deep Learning

上一篇下一篇

猜你喜欢

热点阅读