机器学习中神经网络,支持向量机以及贝叶斯分类器总结

2023-05-16

第五章神经网络

5.1神经元模型

神经网络中最基本的成分是神经元模型,即“简单单元”。
在“M-P神经元模型“中,神经元接受收到来自n个其他神经元传递过来的输入信号,这些输入信号经过带权重的连接进行传递,神经元接收到的总输入值将于神经元的阈值进行比较比较,然后通过”激活函数“处理以产生神经元的输出。

Alt text

激活函数有两种:阶跃函数和sigmoid函数。由于阶跃函数具有不连续、不光滑的不太好的性质,所以通常使用sigmoid函数。sigmoid函数可能把在较大的范围内变化的输入值挤压到(0,1)输出范围内,因此有时也称为“挤压函数”(squashing function).
Alt text

把许多个这样的神经元按一定的层次机构连接起来就得到了神经网络。

5.2感知机和神经网络

感知机(Perceptron)由两层神经元组成。如图5.3,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(thresold logic unit).
感知机能容易地解决逻辑与、或、非运算。

Alt text

需注意的是,感知机只有输出层神经元进行激活函数处理,机制拥有一层功能神经元,学习能力有限。上述与、或、非都是线性可分的问题。
Alt te![这里写图片描述

要解决非线性可分问题,需要使用多层功能神经元。下图用了两层简单的感知机就解决了异或问题。
Alt text

但是,更常见的是下图的层级结构。每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”。(multi-layer feedforward nrural networks).
Alt text

5.3误差逆传播算法(BP算法)

误差逆传播算法(error BackPropagation,简称BP)是迄今为止最成功的神经网络学习算法。现实任务中使用神经网络时,大多数使用BP算法进行训练。BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络。
BP算法:

Alt text

输入:d维特征向量
输出:l个输出值
隐层:假定使用q个隐层神经元
假定功能单元均使用Sigmoid函数
Alt text

对于每个训练样例,BP算法执行以下操作:先将输入示例提供给输入层神经元,然逐层将信号前传,直到产生输入层的结果;然后计算输入层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整,该迭代过程循环进行,直到达到某些停止条件为止。
需注意的是,BP算法的目标是要最小化训练集D上的累计误差
Alt text

上面所说的“标准BP算法”每次仅针对一个训练样例更新连接权和阈值。如果类似地推导出基于累积误差最小化的更新规则,就得到了累计误差逆传播(accumulated error backpropagation)算法。累积BP算法和标准BP算法都很常用。一般来说,标准BP算法每次更新只针对单个样例,参数更新的非常频繁,而且对不同样例进行更新的结果可能会出现“抵消”现象。故,为了达到同样的累积误差极小点,标准BP算法需要进行更多次数的迭代。累积BP算法直接针对累计误差最小化。它在读取整个训练集D一遍后才对参数进行更新,其参数更新的频率低得多。所以当训练集D比较大时,标准BP算法的效率更好。
由于其强大的表示能力,BP神经网络经常遭遇过拟合,其训练误差持续降低,当测试误差有可能上升。有两种策略可以缓解过拟合:
1. “早停”(early stopping):将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
2. “正则化”(regularization)其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分。

5.4全局最小和局部最小

我们常会谈到两种“最优”:“局部最小”(local minimum)和”全局最小”(global minimum).对Alt textAlt text,若存在Alt text>0使得

Alt text

都有 Alt text成立,则 Alt text为局部极小解;若对参数空间中的任意 Alt text都有 Alt text,则 Alt text为全局极小解。
显然,参数空间内梯度为零的点,只要其误差函数值小于邻点的误差函数值,就是局部极小点;可能存在多个局部极小值,但却只会存在一个全局极小值。在参数优化寻优过程中,我们需要找到全局最小。
Alt text

基于梯度的搜索是使用最广泛的参数寻优方法。在此类方法中,我们从某些初始解出发,迭代寻找最优参数值。每次迭代中,我们先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。
在现实任务中,人们常采用以下策略来试图“跳出”局部极小,从而进一步接近全局最小:
1. 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。
2. 使用“模拟退火”(simulated annealing)技术.模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小。在每步迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定。
3. 使用随机梯度下降。与标准梯度下降精确计算梯度不同,随机梯度下降法在计算时加入了随机因素。于是,即便陷入局部极小点,它计算的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索。

5.5其他常见神经网络

5.5.1RBF网络
RBF(Radial Basis Function,径向基函数)网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。假定输入为d维向量x,输出为实值。则RBF网络可表示为:

Alt text

其中q为隐层神经元个数, Alt textAlt text分别是第i个隐层神经元所对应的中心和权重。 Alt text是径向基函数。
Alt text

通常采用两步过程来训练RBF网络:第一步,确定神经元中心 Alt text,常用的方式包括随机采样、聚类等;第二步,利用BP算法等来确定参数 Alt textAlt text.
5.5.2ART网络
ART(Adaptive Resonance Theory)自适应谐振理论网络是竞争型学习的代表。
ART比较好地缓解了竞争型学习中的“可塑性-稳定性窘境”(stability plasticity dilemma),可塑性是指神经网络要有学习新知识的能力,而稳定性是指神经网络在学习新知识的同时要保持对旧知识的记忆。这就使得ART一个很重要的优点:可进行增量学习或在线学习。
5.5.3SOM网络
SOM(self-Organizing Map,自组织映射)网络是一种竞争学习型的无监督神经网络。
Alt text

5.5.4级联相关网络
级联相关网络有两个主要成分:“级联”和“相关”级联是指建立层次连接的层次结构。相关是指通过最大化新神经元的输出与网络误差之间的相关性来训练相关参数。
Alt text

与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目。且训练速度较快,但在数据较小时容易陷入过拟合。
5.5.5Elman网络
Elman网络:递归神经网络的代表
Alt text

网络可以有环形结构,可让使一些神经元的输出反馈回来最为输入
t 时刻网络的输出状态: 由 t 时刻的输入状态和 t-1时刻的网络状态共同决定
5.5.6Boltzmann机
![Alt text](https://img-blog.csdn.net/2018082209202950?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyNzk1MTcx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)</

5.6深度学习

Alt text

每个卷积层包含多个特征映射,每个特征映射是一个由多个神经元构成的“平面”,通过一种卷积滤波器提取输入的一种特征
采样层亦称“汇合层”,其作用是基于局部相关性原理进行亚采样,从而在减少数据量的同事保留有用信息
连接层就是传统神经网络对隐层与输出层的全连接.
从另一个角度来理解,深度学习可以理解为进行“特征学习(feature learning)”或“表示学习”(representation learning).

第六章支持向量机(Support Vector Machine)

6.1间隔与支持向量

支持向量机是一种经典的二分类模型,基本模型定义为特征空间中最大间隔的线性分类器,其学习的优化目标便是间隔最大化,因此支持向量机本身可以转化为一个凸二次规划求解的问题。
对于二分类学习,假设现在的数据是线性可分的,这时分类学习最基本的想法就是找到一个合适的超平面,该超平面能够将不同类别的样本分开,类似二维平面使用ax+by+c=0来表示,超平面实际上表示的就是高维的平面,如下图所示:

Alt text

对数据点进行划分时,易知:当超平面距离与它最近的数据点的间隔越大,分类的鲁棒性越好,即当新的数据点加入时,超平面对这些点的适应性最强,出错的可能性最小。因此需要让所选择的超平面能够最大化这个间隔Gap(如下图所示), 常用的间隔定义有两种,一种称之为函数间隔,一种为几何间隔,下面将分别介绍这两种间隔,并对SVM为什么会选用几何间隔做了一些阐述。
Alt text

6.1.1函数间隔Functional margin与几何间隔Geometrical margin

在超平面w*x+b=0确定的情况下,|w*x+b|能够表示点x到距离超平面的远近,而通过观察w*x+b的符号与类标记y的符号是否一致可判断分类是否正确,所以,可以用(y*(w*x+b))的正负性来判定或表示分类的正确性。于此,我们便引出了函数间隔(functional margin)的概念。
定义函数间隔(用Alt text表示)为:

Alt text

而超平面(w,b)关于T中所有样本点(xi,yi)的函数间隔最小值(其中,x是特征,y是结果标签,i表示第i个样本),便为超平面(w, b)关于训练数据集T的函数间隔:
Alt text

但这样定义的函数间隔有问题,即如果成比例的改变w和b(如将它们改成2w和2b),则函数间隔的值f(x)却变成了原来的2倍(虽然此时超平面没有改变),所以只有函数间隔还远远不够。
事实上,我们可以对法向量w加些约束条件,从而引出真正定义点到超平面的距离–几何间隔(geometrical margin)的概念。
假定对于一个点 x ,令其垂直投影到超平面上的对应点为 x0 ,w 是垂直于超平面的一个向量,为样本x到超平面的距离,如下图所示:
Alt text

根据平面几何知识,有
Alt text

其中||w||为w的二阶范数(范数是一个类似于模的表示长度的概念), Alt text是单位向量(一个向量除以它的模称之为单位向量). 又由于 是超平面上的点满足 ,代入超平面的方程 Alt text可得 Alt text,即 Alt text随即让此式 Alt text的两边同时乘以 Alt text再根据 Alt textAlt text即可算出:
Alt text

为了得到 Alt text,令 Alt text乘上对应的类别 y,即可得出几何间隔(用γ表示):
![Alt text](./1532833122987.png)<

从上述函数间隔和几何间隔的定义可以看出:几何间隔就是函数间隔除以||w||,而且函数间隔y*(wx+b) = y*f(x)实际上就是|f(x)|,只是人为定义的一个间隔度量,而几何间隔|f(x)|/||w||才是直观上的点到超平面的距离。
通过前面的分析可知:函数间隔不适合用来最大化间隔,因此这里我们要找的最大间隔指的是几何间隔,于是最大间隔分类器的目标函数定义为:
Alt text

一般地,我们令r^为1(这样做的目的是为了方便推导和目标函数的优化),从而上述目标函数转化为:
Alt text

显然为了最大化间隔,只需要最大化 Alt text,这就等价于最小化 Alt text。于是得到:
Alt text Alt text

Alt text

这就是支持向量机(Support Vector Machine,简称SVM)基本型。

6.2对偶问题

此外,由于这个问题的特殊结构,还可以通过拉格朗日对偶性(Lagrange Duality)变换到对偶变量 (dual variable) 的优化问题,即通过求解与原问题等价的对偶问题(dual problem)得到原始问题的最优解,这就是线性可分条件下支持向量机的对偶算法,这样做的优点在于:一者对偶问题往往更容易求解;二者可以自然的引入核函数,进而推广到非线性分类问题。
通过给每一个约束条件加上一个拉格朗日乘子(Lagrange multiplier),定义拉格朗日函数(通过拉格朗日函数将约束条件融合到目标函数里去,从而只用一个函数表达式便能清楚的表达出我们的问题):

Alt text

容易验证,当某个约束条件不满足时,例如 Alt text那么显然有 Alt text而当所有约束条件都满足时,则最优值为 Alt text
亦即最初要最小化的量。目标函数变成了:
Alt text

这里用 Alt text表示这个问题的最优值,且和最初的问题是等价的。如果直接求解,那么一上来便得面对w和b两个参数,而 Alt text又是不等式约束,这个求解过程不好做。不妨把最小和最大的位置交换一下,变成:
Alt text

换以后的新问题是原始问题的对偶问题,这个新问题的最优值用来表示。而且有≤,在满足某些条件的情况下,这两者相等,这个时候就可以通过求解对偶问题来间接地求解原始问题.
(1)首先固定,要让 L 关于 w 和 b 最小化,我们分别对w,b求偏导数,即令 ∂L/∂w 和 ∂L/∂b 等于零.
Alt text

代入到:
Alt text

得到:
Alt text

(2)求对α的极大,即是关于对偶问题的最优化问题。经过上面第一个步骤的求w和b,得到的拉格朗日函数式子已经没有了变量w,b,只有。从上面的式子得到:
Alt text

这样,求出了α。根据 Alt text即可求出w,然后通过 Alt text可求出b,最终得出分离超平面和分类决策函数。
接触α后,求出w和b即可得到模型
Alt text

上述过程需要满足KKT条件即
Alt text

6.3核函数

由于上述的超平面只能解决线性可分的问题,对于线性不可分的问题,例如:异或问题,我们需要使用核函数将其进行推广。一般地,解决线性不可分问题时,常常采用映射的方式,将低维原始空间映射到高维特征空间,使得数据集在高维空间中变得线性可分,从而再使用线性学习器分类。如果原始空间为有限维,即属性数有限,那么总是存在一个高维特征空间使得样本线性可分。若∅代表一个映射,则在特征空间中的划分函数变为:

Alt text

按照同样的方法,先写出新目标函数的拉格朗日函数,接着写出其对偶问题,求L关于w和b的极大,最后运用SOM求解α。可以得出:
(1)原对偶问题变为:
Alt text

(2)原分类函数变为:
Alt text

求解的过程中,只涉及到了高维特征空间中的内积运算,由于特征空间的维数可能会非常大,例如:若原始空间为二维,映射后的特征空间为5维,若原始空间为三维,映射后的特征空间将是19维,之后甚至可能出现无穷维,根本无法进行内积运算了,此时便引出了核函数(Kernel)的概念。
引入核函数后,原来的对偶问题与分类函数则变为:
(1)对偶问题:
Alt text

(2)分类函数:
Alt text

Alt text
由于核函数的构造十分困难,通常我们都是从一些常用的核函数中选择,下面列出了几种常用的核函数:
Alt text

软间隔与正则化

前面的讨论中,我们主要解决了两个问题:当数据线性可分时,直接使用最大间隔的超平面划分;当数据线性不可分时,则通过核函数将数据映射到高维特征空间,使之线性可分。然而在现实问题中,对于某些情形还是很难处理,例如数据中有噪声的情形,噪声数据(outlier)本身就偏离了正常位置,但是在前面的SVM模型中,我们要求所有的样本数据都必须满足约束,如果不要这些噪声数据还好,当加入这些outlier后导致划分超平面被挤歪了,如下图所示,对支持向量机的泛化性能造成很大的影响。
为了解决这一问题,我们需要允许某一些数据点不满足约束,即可以在一定程度上偏移超平面,同时使得不满足约束的数据点尽可能少,这便引出了“软间隔”支持向量机的概念
* 允许某些数据点不满足约束y(w’x+b)≥1;
* 同时又使得不满足约束的样本尽可能少。
于是优化目标变为:

Alt text

如同阶跃函数,0/1损失函数虽然表示效果最好,但是数学性质不佳。因此常用其它函数作为“替代损失函数”。
Alt text

采用hinge损失和“松弛变量”,则变成
Alt text

Alt text

Alt text

通过拉格朗日乘子法得到拉格朗日函数:
Alt text

分析方法和前面一样,转换为另一个问题之后,我们先让! Alt text针对 Alt text、b和 Alt text最小化:
Alt text

得到:
Alt text

把前后的结果对比一下:
Alt text

正规化问题
- 正规化可理解为“罚函数法”
- 通过对不希望的结果施以惩罚,使得优化过程趋向于希望目标
- 从贝叶斯估计的角度,则可认为是提供了模型的先验概率

6.5支持向量回归

示意图:

Alt text

- ε-不敏感损失函数
Alt text

- 支持向量回归
- 原始问题
Alt text

- 对偶问题
Alt text

- 预测
Alt text

核方法

表示定理:

Alt text

- 核线性判别分析:
- 学习目标
Alt text

- 分析后
Alt text

贝叶斯分类器

7.1贝叶斯决策论(Bayesian decision theory)

贝叶斯决策论考虑的问题是如何基于这些概率和误判损失来选择最优的类别标记。
假设Alt textAlt text是将真实标记为Alt text误分类为Alt text的损失。基于后验概率Alt text可获得将样本x分类为Alt text所产生的期望损失,即为“条件风险”。

Alt text

寻找一个判定准则h:X——Y以最小化总体风险
Alt text

产生了贝叶斯判断准则:最小化总体风险,只需在样本上选择那个能使条件风险 Alt text最小的类别标记。
Alt text

若损失函数λ取0-1损失,则有:
Alt text

即对于每个样本x,选择其后验概率P(c | x)最大所对应的类标,能使得总体风险函数最小,从而将原问题转化为估计后验概率P(c | x)。一般这里有两种策略来对后验概率进行估计:
1. 判别式模型:直接对 P(c | x)进行建模求解。例我们前面所介绍的决策树、神经网络、SVM都是属于判别式模型。
2. 生成式模型:通过先对联合分布P(x,c)建模,从而进一步求解 P(c | x)。
贝叶斯分类器就属于生成式模型,基于贝叶斯公式对后验概率P(c | x) 进行一项神奇的变换,
Alt text

对于给定的样本x,P(x)与类标无关,P(c)称为类先验概率,p(x | c )称为类条件概率。这时估计后验概率P(c | x)就变成为估计类先验概率和类条件概率的问题。对于先验概率和后验概率,
* 先验概率: 根据以往经验和分析得到的概率。
* 后验概率:后验概率是基于新的信息,修正原来的先验概率后所获得的更接近实际情况的概率估计。实际上先验概率就是在没有任何结果出来的情况下估计的概率,而后验概率则是在有一定依据后的重新估计,直观意义上后验概率就是条件概率。
对于类先验概率P(c),P(c)就是样本空间中各类样本所占的比例,根据大数定理(当样本足够多时,频率趋于稳定等于其概率),这样当训练样本充足时,p(c)可以使用各类出现的频率来代替。因此只剩下类条件概率p(x | c ),它表达的意思是在类别c中出现x的概率,它涉及到属性的联合概率问题,若只有一个离散属性还好,当属性多时采用频率估计起来就十分困难,因此这里一般采用极大似然法进行估计。

极大似然估计

极大似然估计(Maximum Likelihood Estimation,简称MLE),是一种根据数据采样来估计概率分布的经典方法。常用的策略是先假定总体具有某种确定的概率分布,再基于训练样本对概率分布的参数进行估计。运用到类条件概率p(x | c )中,假设p(x | c )服从一个参数为θ的分布,问题就变为根据已知的训练样本来估计θ。极大似然法的核心思想就是:估计出的参数使得已知样本出现的概率最大,即使得训练数据的似然最大。

Alt text

以,贝叶斯分类器的训练过程就是参数估计。总结最大似然法估计参数的过程,一般分为以下四个步骤:
* 1.写出似然函数;
* 2.对似然函数取对数,并整理;
* 3.求导数,令偏导数为0,得到似然方程组;
* 4.解似然方程组,得到所有参数即为所求。
假设样本属性都是连续值,p(x | c )服从一个多维高斯分布,则通过MLE计算出的参数刚好分别为:
Alt text

朴素贝叶斯分类器

原始的贝叶斯分类器最大的问题在于联合概率密度函数的估计,首先需要根据经验来假设联合概率分布,其次当属性很多时,训练样本往往覆盖不够,参数的估计会出现很大的偏差。为了避免这个问题,朴素贝叶斯分类器(naive Bayes classifier)采用了“属性条件独立性假设”,即样本数据的所有属性之间相互独立。这样类条件概率p(x | c) 可以改写为:

Alt text

由于对所有类别来说P(x)相同,因此基于贝叶斯判定准则为:
Alt text

这就是朴素贝叶斯分类器的表达式。
Alt text

相比原始贝叶斯分类器,朴素贝叶斯分类器基于单个的属性计算类条件概率更加容易操作,需要注意的是:若某个属性值在训练集中和某个类别没有一起出现过,这样会抹掉其它的属性信息,因为该样本的类条件概率被计算为0。因此在估计概率值时,常常用进行平滑(smoothing)处理,拉普拉斯修正(Laplacian correction)就是其中的一种经典方法,具体计算方法如下:
Alt text

朴素贝叶斯的主要优点有:
1. 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。
2. 对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。
3. 对缺失数据不太敏感,算法也比较简单,常用于文本分类。
朴素贝叶斯的主要缺点有:   
* 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。
* 需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
* 由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。
* 对输入数据的表达形式很敏感。

半朴素贝叶斯分类器(semi-naive Bayes classfiers)

在朴素的分类中,我们假定了各个属性之间的独立,这是为了计算方便,防止过多的属性之间的依赖导致的大量计算。这正是朴素的含义,虽然朴素贝叶斯的分类效果不错,但是属性之间毕竟是有关联的,某个属性依赖于另外的属性,于是就有了半朴素贝叶斯分类器。
为了计算量不至于太大,假定每个属性只依赖另外的一个。这样,更能准确描述真实情况。

Alt text

确定如何依赖
1.SOPDE方法。这种方法是假定所有的属性都依赖于共同的一个父属性。

2.TAN方法。每个属性依赖的另外的属性由最大带权生成树来确定.
(1)计算任意两个属性之间的条件互信息(conditional mutual information)Alt text
(2)构建完全图。以属性为结点构建完全图,任意两个结点之间的边权重重设为Alt text
(3)构建此完全图的最大带权生成树,挑选根变量,将边置为有向边
(4)加入类别结点y,增加从y到每个属性的有向边。

Alt text

AODE
AODE(Averaged One-Dependent Estimator)是一种基于集成学习机制、更为强大的独依赖分类器,与SPODE通过模型选择确定超父属性不同,AODE尝试将每个属性作为超父来构建SPODE。然后将这些具有足够训练数据支持的SPODE集成起来作为最终结果,即:
Alt text

其中Dxi在第i个属性上取值为xi的样本的集合,m′为阈值或者常数,显然AODE需要估计P(c,xi)和P(xj∣c,xi)于是
Alt text

其中Ni是第i个属性可能的取值数,Dc,xi是类别为c且在第i个属性上取值为xi的样本的集合,Dc,xi,xj是类别为c且在第i和第j个属性上取值分别为xi和xj的样本的集合。

贝叶斯网

贝叶斯网: 借助有向无环图来刻画属性之间的依赖关系,并使用条件概率表(Conditional Probability Table)来描述属性的联合概率分布。
一个贝叶斯网B由结构G和参数Θ两部分构成,即
网络结构G: 一个有向无环图,其每一个结点对应于一个属性,若两个属性有直接依赖关系,则它们由一条边连接起来。
参数Θ: 描述属性间的直接依赖关系,假设属性xi在G中的父节点集为πi,则Θ包含了每个属性的条件概率表θxi|πi=PB(xi|πi)。
结构
给定父节点集,贝叶斯网假设每个属性与它的非后裔属性独立,则这里写图片描述将属性x1,x2,…,xd的联合概率分布定义为

Alt text

贝叶斯网中三个变量之间的典型依赖关系:
Alt text

同父结构:x1已知,则x3⊥x4|x1;x1未知,则x3╨x4不成立。
V型结构:x4已知,则x1⊥x2|x4不成立;x4未知,则x1╨x2成立。
顺序结构:x已知,则y⊥z|x成立,但y╨z不成立。
其中,以V型结构为例,边际独立性的验证如下:
Alt text

学习
贝叶斯网学习的首要任务就是根据训练数据集找出结构最“恰当”的贝叶斯网。“评分搜索”是求解这一问题的常用办法:
定义一个评分函数用于评估贝叶斯网与训练数据的契合程度;
基于评分函数寻找结构最优的贝叶斯网。
常用评分函数通常基于信息论准则,其将学习问题看作一个数据压缩任务,学习的目标是找到一个能以最短编码长度描述训练数据的模型,其中编码的长度包括描述模型自身所需的字节长度和使用该模型描述数据所需的字节长度。
对于贝叶斯网学习而言,模型就为一个贝叶斯网,每个贝叶斯网描述了一个在训练数据上的概率分布,其自由一套编码机制。因此,我们只需选择综合编码长度最短的贝叶斯网。这就是“最小描述长度”准则。
给定训练集D={x1,x2,…,xm},贝叶斯网 B=<G,Θ>在D上的评分函数为:

其中,|B|是贝叶斯网的参数个数;f(θ)表示描述每个参数θ所需的字节数; Alt text表示贝叶斯网B的对然。
(θ)=1,AIC(Akaike Information Criterion)评分函数:AIC(B|D)=|B|−L(B|D)
f(θ)=1/2logm,BIC(Bayesian Information Criterion)评分函数:BIC(B|D)=logm2|B|−L(B|D)
若贝叶斯网的网络结构G固定,则评分函数第一项的值为固定值。此时,最小化评分函数就是对L(B|D)进行极大似然估计。
Alt text

其中p^(⋅)是D上的经验分布。
经验分布函数——设x1,x2,…,xn是总体X的一组容量为n的样本观测值,将它们从小到大的顺序重新排列为x∗1,x∗2,…,x∗n,对于任意实数x,定义函数
Alt text

推断
通过已知变量观测值来推测待查询变量的过程称为“推断”,其中已知变量观测值称为“证据”。在现实应用中,贝叶斯网的近似推断常使用吉布斯采样(Gibbs sampling)来完成。
令Q={Q1,Q2,…,Qn}表示带查询变量,E={E1,E2,…,Ek}为证据变量,已知取值为e={e1,e2,…,ek}。目标是计算后验概率P(Q=q|E=e),其中q={q1,q2,…,qn}是待查询变量的一组取值。

吉布斯采样算法:

Alt text

实质上,吉布斯采样是在贝叶斯网所有变量的联合状态与证据E=e一致的子空间中进行“随机漫步”。每一步仅依赖于前一步的状态,这是一个“马尔科夫链”(Markov chain)。在一定条件下,无论从什么初始状态开始,马尔科夫链第t步的状态分布在t→∞时必收敛于一个平稳分布;对于吉布斯采样而言,这个分布恰好为P(Q|E=e) 。但马尔科夫链通常需要很长时间才能趋于平稳分布,因此,吉布斯采样算法的收敛速度较慢。

注:若贝叶斯网中存在极端概率“0”或“1”,则不能保证马尔科夫链存在平稳分布,此时吉布斯采样会给出错误的估计结果。

EM算法

EM(Expectation-Maximization)算法是一种常用的估计参数隐变量的利器,也称为“期望最大算法”,是数据挖掘的十大经典算法之一。EM算法主要应用于训练集样本不完整即存在隐变量时的情形(例如某个属性值未知),通过其独特的“两步走”策略能较好地估计出隐变量的值。

8.1 EM算法思想
EM是一种迭代式的方法,它的基本思想就是:若样本服从的分布参数θ已知,则可以根据已观测到的训练样本推断出隐变量Z的期望值(E步),若Z的值已知则运用最大似然法估计出新的θ值(M步)。重复这个过程直到Z和θ值不再发生变化。
简单来讲:假设我们想估计A和B这两个参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

Alt text

EM算法流程
Alt text

2.2 Jensen不等式
  设f是定义域为实数的函数,如果对于所有的实数x,f(x)的二次导数大于等于0,那么f是凸函数。
  Jensen不等式表述如下:如果f是凸函数,X是随机变量,那么:E[f(X)]≥f(E[X])。当且仅当X是常量时,上式取等号。其中,E[x]表示x的数学期望。
  例如,图2中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。X的期望值就是a和b的中值了,图中可以看到E[f(X)]≥f(E[X])成立。
  注:
  1、Jensen不等式应用于凹函数时,不等号方向反向。当且仅当X是常量时,Jensen不等式等号成立。
  2、关于凸函数,百度百科中是这样解释的——“对于实数集上的凸函数,一般的判别方法是求它的二阶导数,如果其二阶导数在区间上非负,就称为凸函数(向下凸)”。关于函数的凹凸性,百度百科中是这样解释的——“中国数学界关于函数凹凸性定义和国外很多定义是反的。国内教材中的凹凸,是指曲线,而不是指函数,图像的凹凸与直观感受一致,却与函数的凹凸性相反。只要记住“函数的凹凸性与曲线的凹凸性相反”就不会把概念搞乱了”。关于凹凸性这里,确实解释不统一,暂时以函数的二阶导数大于零定义凸函数,此处不会过多影响EM算法的理解,只要能够确定何时E[f(X)]≥f(E[X])或者E[f(X)]≤f(E[X])就可以。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习中神经网络,支持向量机以及贝叶斯分类器总结 的相关文章

  • Python代码整洁之道勘误

    简介 本博文是对 lt Python代码整洁之道 gt 一书的一些错误进行矫正 这本书英文名字是 lt Clean Python Elegant Coding int Python gt 这本书的作者是Sunil Kapil 这本书错误非常
  • 自己动手写strcat函数

    char catstr char a char b char x 61 a while a 61 39 0 39 a 43 43 while b 61 39 0 39 a 61 b a 43 43 b 43 43 a 61 39 0 39
  • 为什么C++开发不需要安装STL库

    如果交叉编译工具链的路径已经添加到path变量中的话 xff0c 可以直接使用 v即可查看 xff0c 比如我的是arm linux gnueabihf g 43 43 那么直接arm linux gnueabihf g 43 43 v或者
  • 为什么要内存对齐

    为什么要内存对齐 xff1f 很多CPU是从对齐的地址开始加载数据 xff0c 外部总线从内存一次获取的数据往往不是1比特 xff0c 而是4比特或8比特或更多 xff0c 与数据总线带宽有关 比如有一个int数据类型 xff0c 其分配的
  • marlin2.0.x 固件相关配置文档说明

    主要目的 了解对应参数的作用 xff0c 以优化3D打印机的打印效果 具体分析 配置文件有两个 Configuration h 包含硬件核心 语言和控制器的设置 xff0c 以及最常见的功能和组件的设置 xff0c 主要配置的地方 Conf
  • c++容器--vector deque list set map stack queue特性及其选取准则

    1 vector xff08 连续的空间存储 可以使用 操作符 xff09 快速的访问随机的元素 xff0c 快速的在末尾插入元素 xff0c 但是在序列中间岁间的插入 xff0c 删除元素要慢 xff0c 而且如果一开始分配的空间不够的话
  • 网络、串口之应用层通讯协议编订

    一种二进制通信协议 消息长度 BYTES 结构描述Header4SyncBytes格式 xff1a 0x09 0x6f 0x01 0x01 xff0c 表示不同设备之间的交互Header4FullMessageLength数据总长度 xff
  • STM32基于串口接收缓存非空中断(RXNE)和空闲中断的串口转发功能

    STM32基于串口接收缓存非空中断 xff08 RXNE xff09 和空闲中断的串口转发功能 0 实验背景 本实验的目的是实现串口的双向转发 xff0c 即向串口1写入数据后 xff0c 串口2及时输出串口1收到的数据 xff1b 向串口
  • Ubuntu16.04 中 搭建Janus Server

    Ubuntu16 04 局域网中搭建Janus Server janus简介 Janus是WebRTC 服务器端的开源项目 xff0c 官方对其定义是一个WebRTC服务器端 xff0c 支持的功能比较丰富 xff0c 通过core模块来支
  • 堆栈溢出一般是由什么原因导致

    背景 全局变量存放在静态存储区 位置是固定的 局部变量在栈空间 栈地址是不固定的 栈 xff1a 就是那些由编译器在需要的时候分配 xff0c 在不需要的时候自动清楚的变量的存储区 里面的变量通常是局部变量 函数参数等 堆 xff1a 就是
  • 简单明了的蓝牙服务及UUID介绍

    什么是蓝牙 蓝牙 xff0c 是一种支持设备短距离通信 xff08 一般10m内 xff09 的无线电技术 xff0c 能在包括移动电话 PDA 无线耳机 笔记本电脑 相关外设等众多设备之间进行无线信息交换 利用 蓝牙 技术 xff0c 能
  • 深入详细理解矩阵 (矩阵的加减乘、转置、共轭、共轭转置)

    简介 矩阵 英文名Matrix 在数学名词中 xff0c 矩阵用来表示统计数据等方面的各种有关联的数据 这个定义很好地解释了Matrix代码制造世界的数学逻辑基础 矩阵是数学中最重要的基本概念之一 xff0c 是代数学的一个主要研究对象 x
  • 无线模块的参数介绍和选型要点

    01 通信频点 通信频点 xff1a 无线模块在工作的时候向外辐射出去的电波频率 xff1b 无线串口模块常用的频点大致可以分为170MHz 230MHz 315MHz 433MHz 490MHz 780MHz 868MHz 915MHz
  • 使用freertos如何确定分配堆栈空间大小

    前言 运行freertos系统的大部分都是资源有限的MCU xff0c 所以对于ram我们都要考虑尽量的节省 xff0c 避免资源浪费 xff0c 从而也可以针对项目选择性价比更好的mcu 关系分析 首先要配置freertos的堆 heap
  • windows从零搭建googletest之c++测试工程

    简介 googletest xff08 也称gtest xff09 是由Google测试技术团队开发的测试框架 为c c 43 43 代码提供了一套优秀的单元测试解决方案 本文介绍使用googletest在windows下从零搭建自己的单元
  • c++ 常用转换vector<uint8_t> 转string

    std span class token double colon punctuation span vector span class token operator lt span span class token keyword uin
  • c语言解析协议常用套路

    简介 协议定义username len value while 读取 2个switch case解析 读取value 代码示例 span class token keyword struct span span class token cl
  • c++模板 --- 模板的嵌套

    简介 明白类型是什么即可 xff0c 可以适当运用using语法起别名 简化代码 一 函数模板嵌套 span class token keyword template span span class token operator lt sp
  • DWA算法详解

    首先在V m V d的范围内采样速度 xff1a allowable v 61 generateWindow robotV robotModel

随机推荐

  • C++OpenCV实现YOLO算法对目标进行检测实战

    基本概念 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 加载darknet框架的YoloV4模型做目标检测 OpenCV DNN模块支持常见深度学习框架如TensorFlowCaffe Darknet等 对
  • 使用GooSeeker软件进行爬虫

    一 使用GooSeeker软件进行爬虫 xff0c 它是进行读取大量数据的 xff0c 都出来的数据是xml格式的 xff0c 可以通过office excel将xml格式转化成表格形式 1 爬虫取数据 xff1a 1 xff09 先要在网
  • 51单片机--堆栈

    堆栈的作用是用在调用子程序或中断程序时保护现场 xff0c 因为51单片机的寄存器是十分有限的 xff0c 而相对来说普通数据存储器更充足 xff0c 通过入栈将寄存器中的内容临时保存到堆栈中 xff08 普通数据存储器 xff09 xff
  • Git-命令行-使用 Tag 标记你的代码

    前言 正文开始之前 xff0c 我想我们需要弄明白几个问题 xff1a tag 是什么 xff1f 使用tag 的好处 xff1f tag 和 branch 的区别以及使用场景 xff1f tag 是什么 xff1f tag 翻译过来是标签
  • 光流Zoom In and Out开发记录

    简介 2018年7月 xff0c 合作伙伴提出了一个想法 使用光流算法估计相机前后移动 经典的光流算法 xff08 Lukas Kanade算法 xff09 适用于相机左右和上下移动 xff0c 但是在相机前后移动时 xff0c 虽然各个像
  • 关于电子设计大赛无人机题的学习笔记(2)飞控代码分析和高精度IMU传感器的使用

    飞控代码分析和高精度IMU传感器的使用 最近着急备赛很多文档只是处于零零散散状态没办法细节的整理出来专门放一份 xff0c 等比赛结束会统一整理 xff0c 现在只能先放一些研发过程中的技术文档上来了 目前我们的调试进度是 xff0c 稳定
  • 关于电子设计大赛无人机题的学习笔记(3)常用设备总线的使用方法(IIC)

    关于电子设计大赛无人机题的学习笔记 3 常用设备设备总线的使用方法 IIC xff09 1 吐槽及日志 首先 电赛因为疫情原因推迟了 xff0c emmm在我看来跟取消了差不了太多 xff0c 这一波小系列的学习记录暂时只能在第三篇就停止更
  • undefined reference to `pthread_create‘问题的解决 cmake新方法解决

    最近在写相机SDK xff0c 测试中出现了一个小问题undefined reference to 96 pthread create 39 其实是缺少库文件 网上大部分介绍使用 lpthread xff0c 但是这个是老版本了 xff0c
  • POST请求返回:401 Unauthorized

    Postman 做接口测试 xff0c 提交请求后 xff0c 模拟获取数据 xff0c 输入入参正确时 xff0c 却返回status 401 Unauthorized 原因 xff1a 是我的token有误 xff0c token是一串
  • Django从header请求头中的Authorization获取token验证数据

    前言 之前使用django开发api接口时 xff0c 约定是要每次请求都要带token这个参数 xff0c 这样很不方便 xff0c 最近学了vue xff0c 也使用了axios xff0c 发现在axios拦截器中可以设置每次请求头中
  • char类型的数字转int

    char的本质 xff1a char The char data type is a single 16 bit Unicode character It has a minimum value of 39 u0000 39 or 0 an
  • Android串口通信

    编前记 今天在刷博客 郭老师 的时候评论区看见有人在聊单片机的串口通信 xff0c 刚好之前做过一个项目通过NFC读取IC门禁卡片的项目所以拿出来分享 复习 一下 xff0c 先讲了解一下什么是串口通信 xff1a 串口通信 xff08 S
  • Studio One 5机架设置一键切换效果通道

    Studio One是当前主流的直播机架软件 xff0c 操作非常方便 xff0c 但是呢默认情况下 xff0c 要切换效果时 xff0c 只能手动关闭一个效果的后 xff0c 再开另一个效果 xff0c 切换效果有点不方便 现在孤狼分享S
  • VScode设置C/C++编译环境详解

    一 xff1a 下载安装C C 43 43 编译器 在windows下有很多集成的编译器 xff0c 我们只是需要使用gcc exe 编译而已 xff0c 所以我们可以随便下 xff0c 这里推荐使用 xff1a MinGW xff1a x
  • 2021校招_大华

    大华面试 xff1a 一面和二面 一面 xff1a 首先自我介绍 1 序列化的使用方式以及情景 2 Springboot的启动过程 3 Mysq中lB 43 树和B树索引区别 xff0c 聚簇索引和非聚簇索引区别 4 Spring中bean
  • 2021校招_海康威视

    2021届海康威视面试 一面 xff1a 1 https与http协议的区别 2 Spring的启动过程 3 Springboot相比较Spring的优点 4 Linux修改文件权限命令 5 项目中所用到的技术 6 Restful风格 7
  • 2021校招_满帮(运满满)

    一面 xff08 电话面 xff09 xff1a 25min 1 询问HashMap相关结构以及原理 2 红黑树的基本结构 xff0c 以及什么时候会LL xff08 左转 xff09 3 Spring如何解决循环依赖的 4 Redis缓存
  • 2021校招_思科

    思科给我发的太晚了 xff0c 十一月份才给我消息 思科一面凉凉 主要是针对你的简历 问到我的主要内容包括 xff1a 数据库设计 xff0c 是否使用到设计模式 xff0c 以及遇到问题如何解决 包括ngnix xff0c redis h
  • 音视频开发之音频基础知识

    音视频开发之音频基础知识 转自https blog jianchihu net av develop audio basis html 什么是声音 介质振动在听觉系统中产生的反应 是一种波 因为是一种波 xff0c 所以我们可以用频率 振幅
  • 机器学习中神经网络,支持向量机以及贝叶斯分类器总结

    第五章神经网络 5 1神经元模型 神经网络中最基本的成分是神经元模型 xff0c 即 简单单元 在 M P神经元模型 中 xff0c 神经元接受收到来自n个其他神经元传递过来的输入信号 xff0c 这些输入信号经过带权重的连接进行传递 xf