深度学习500问——Chapter02:机器学习基础(5)

简介: 深度学习500问——Chapter02:机器学习基础(5)

2.14 贝叶斯分类器

2.14.1 图解极大似然估计

极大似然估计的原理,用一张图片来说明,如下图所示:

例:有两个外形完全相同的箱子,1号箱有99只白球,1只黑球;2号箱子有1只白球,99只黑球。在一次实验中,取出的是黑球,请问从哪个箱子中取出的?

一般的根据经验想法,会猜测这只黑球最像是从2号箱取出,此时描述的“最像”就有“最大似然”的意思,这种想法常称为“最大似然原理”。

2.14.2 极大似然估计原理

总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

极大似然估计是建立在极大似然原理的基础上的一个统计方法。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

image.png

2.14.3 贝叶斯分类器基本原理

贝叶斯决策论通过相关概率已知的情况下利用误判损失来选择最优的类别分类。


image.png

为了求解条件概率,基于不同假设提出了不同的方法,以下将介绍朴素贝叶斯分类器和半朴素贝叶斯分类器。

2.14.4  朴素贝叶斯分类器


image.png

image.png

2.14.5 举例理解朴素贝叶斯分类器

使用经典的西瓜训练集如下:

编号 色泽 根蒂 敲声 纹理 脐部 触感 密度 含糖率 好瓜
1 青绿 蜷缩 浊响 清晰 凹陷 硬滑 0.697 0.460
2 乌黑 蜷缩 沉闷 清晰 凹陷 硬滑 0.774 0.376
3 乌黑 蜷缩 浊响 清晰 凹陷 硬滑 0.634 0.264
4 青绿 蜷缩 沉闷 清晰 凹陷 硬滑 0.608 0.318
5 浅白 蜷缩 浊响 清晰 凹陷 硬滑 0.556 0.215
6 青绿 稍蜷 浊响 清晰 稍凹 软粘 0.403 0.237
7 乌黑 稍蜷 浊响 稍糊 稍凹 软粘 0.481 0.149
8 乌黑 稍蜷 浊响 清晰 稍凹 硬滑 0.437 0.211
9 乌黑 稍蜷 沉闷 稍糊 稍凹 硬滑 0.666 0.091
10 青绿 硬挺 清脆 清晰 平坦 软粘 0.243 0.267
11 浅白 硬挺 清脆 模糊 平坦 硬滑 0.245 0.057
12 浅白 蜷缩 浊响 模糊 平坦 软粘 0.343 0.099
13 青绿 稍蜷 浊响 稍糊 凹陷 硬滑 0.639 0.161
14 浅白 稍蜷 沉闷 稍糊 凹陷 硬滑 0.657 0.198
15 乌黑 稍蜷 浊响 清晰 稍凹 软粘 0.360 0.370
16 浅白 蜷缩 浊响 模糊 平坦 硬滑 0.593 0.042
17 青绿 蜷缩 沉闷 稍糊 稍凹 硬滑 0.719 0.103

对下面的测试例“测1”进行 分类:

编号 色泽 根蒂 敲声 纹理 脐部 触感 密度 含糖率 好瓜
测1 青绿 蜷缩 浊响 清晰 凹陷 硬滑 0.697 0.460

首先,估计类先验概率P(cj),有:

然后,为每个属性估计条件概率(这里,对于连续属性,假定它们服从正态分布):

于是有:

由于0.063>6.80×1050.063>6.80×10−5,因此,朴素贝叶斯分类器将测试样本“测1”判别为“好瓜”。

2.14.6 半朴素贝叶斯分类器

朴素贝叶斯采用了“属性条件独立性假设”,半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息。独依赖估计(One-Dependence Estimator,简称ODE)是半朴素贝叶斯分类器最常用的一种策略。

顾名思义,独依赖是假设每个属性在类别之外最多依赖一个其他属性,即:

image.png

2.15 EM 算法

2.15.1 EM算法基本思想

最大期望算法(Expectation-Maximization algorithm, EM),是一类通过迭代进行极大似然估计的优化算法,通常作为牛顿迭代法的替代,用于对包含隐变量或缺失数据的概率模型进行参数估计。

最大期望算法基本思想是经过两个步骤交替进行计算:

第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;

第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。

M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

2.15.2 EM算法推导

对于 个样本观察数据 ,现在想找出样本的模型参数 ,其极大化模型分布的对数似然函数为:

image.png

如果得到的观察数据有未观察到的隐含数据 ,极大化模型分布的对数似然函数则为:

由于上式不能直接求出 ,采用缩放技巧:


image.png

image.png

2.15.3 图解EM算法

考虑上一节中的(a)式,表达式中存在隐变量,直接找到参数估计比较困难,通过EM算法迭代求解下界的最大值到收敛为止。


image.png

image.png

2.15.4 EM算法流程


image.png

image.png

2.16.1 图解为什么会产生维数灾难

假如数据集包含10张照片,照片中包含三角形和圆两种形状。现在来设计一个分类器进行训练,让这个分类器对其他的照片进行正确分类(假设三角形和圆的总数是无限大),简单的,我们用一个特征进行分类:

图2.21.1.a

从上图可看到,如果仅仅只有一个特征进行分类,三角形和圆几乎是均匀分布在这条线段上,很难将10张照片线性分类。那么,增加一个特征后的情况会怎么样:

图2.21.1.b

增加一个特征后,我们发现仍然无法找到一条直线将猫和狗分开。所以,考虑需要再增加一个特征:

图2.21.1.c

此时,可以找到一个平面将三角形和圆分开。

现在计算一下不同特征数是样本的密度:

(1)一个特征时,假设特征空间时长度为5的线段,则样本密度为10÷5=2

(2)两个特征时,特征空间大小为5×5=25,样本密度为

(3)三个特征时,特征空间大小是 ,样本密度为

以此类推,如果继续增加特征数量,样本密度会越来越稀疏,此时,更容易找到一个超平面将训练样本分开。当特征数量增长至无限大时,样本密度就变得非常稀疏。

下面看一下将高维空间的分类结果映射到低维空间时,会出现什么情况?

图2.21.1.e

上图是将三维特征空间映射到二维特征空间后的结果。尽管在高维特征空间时训练样本线性可分,但是映射到低维空间后,结果正好相反。事实上,增加特征数量使得高维空间线性可分,相当于在低维空间内训练一个复杂的非线性分类器。不过,这个非线性分类器太过“聪明”,仅仅学到了一些特例。如果将其用来辨别那些未曾出现在训练样本中的测试样本时,通常结果不太理想,会造成过拟合问题。

图2.21.1.f

上图所示的只采用2个特征的线性分类器分错了一些训练样本,准确率似乎没有图2.21.1.e的高,但是,采用2个特征的线性分类器的泛化能力比采用3个特征的线性分类器要强。因为,采用2个特征的线性分类器学习到的不只是特例,而是一个整体趋势,对于那些未曾出现过的样本也可以比较好地辨别开来。换句话说,通过减少特征数量,可以避免出现过拟合问题,从而避免“维数灾难”。

上图从另一个角度诠释了“维数灾难”。假设只有一个特征时,特征的值域是0到1,每一个三角形和圆的特征值都是唯一的。如果我们希望训练样本覆盖特征值值域的20%,那么就需要三角形和圆总数的20%。我们增加一个特征后,为了继续覆盖特征值值域的20%就需要三角形和圆总数的45%(0.4522≈0.2)。继续增加一个特征后,需要三角形和圆总数的58%(0.5833≈0.2)。随着特征数量的增加,为了覆盖特征值值域的20%,就需要更多的训练样本。如果没有足够的训练样本,就可能会出现过拟合问题。

通过上述例子,我们可以看到特征数量越多,训练样本就会越稀疏,分类器的参数估计就会越不准确,更加容易出现过拟合问题。“维数灾难”的另一个影响是训练样本的稀疏性并不是均匀分布的。处于中心位置的训练样本比四周的训练样本更加稀疏。

假设有一个二维特征空间,如上图所示的矩形,在矩形内部有一个内切的圆形。由于越接近圆心的样本越稀疏,因此,相比于圆形内的样本,那些位于矩形四角的样本更加难以分类。当维数变大时,特征超空间的容量不变,但单位圆的容量会趋于0,在高维空间中,大多数训练数据驻留在特征超空间的角落。散落在角落的数据要比处于中心的数据难于分类。

2.16.2 怎样避免维数灾难

有待完善!!!

解决维度灾难问题:

主成分分析法PCA,线性判别法LDA

奇异值分解简化数据、拉普拉斯特征映射

Lassio缩减系数法、小波分析法、

2.16.3 聚类和降维有什么区别和联系

聚类用于寻找数据内在的分布结构,既可以作为一个单独的过程,比如异常检测等等。也可作为分类等其他学习任务的前驱过程。聚类是标准的无监督学习。

1)在一些推荐系统中需要确定新用户的类型,但定义“用户类型”却可能不太容易,此时往往可先对原有的用户数据进行聚类,根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,用于判断新用户的类型。

2)而降维是为了缓解维数灾难的一个重要方法,就是通过某种数学变换将原始高维属性空间转变为一个低维“子空间”。其基于的假设就是,虽然人们平时观测到的数据样本虽然是高维的,但是实际上真正与学习任务相关的是个低纬度的分布。从而通过最主要的几个特征维度就可以实现对数据的描述,对于后续的分类很有帮助。比如对于Kaggle(数据分析竞赛平台之一)上的泰坦尼克号生还问题。通过给定一个乘客的许多特征如年龄、姓名、性别、票价等,来判断其是否能在海滩中生还。这就需要首先进行特征筛选,从而能够找出主要的特征,让学习到的模型有更好的泛化性。

聚类和降维都可以作为分类等问题的预处理步骤。

但是他们虽然都能实现对数据的约减。但是二者适用的对象不同,聚类针对的是数据点,而降维则是对于数据的特征。另外它们有着很多种实现方法。聚类中常用的有K-means、层次聚类、基于密度的聚类等;降维中常用的则PCA、Isomap、LLE等。

2.16.4 有哪些聚类算法优劣衡量标准

不同聚类算法有不同的优劣和不同的适用条件。可从以下方面进行衡量判断:

1、算法的处理能力:处理大的数据集的能力,即算法复杂度;处理数据噪声的能力;处理任意形状,包括有间隙的嵌套的数据的能力;

2、算法是否需要预设条件:是否需要预先知道聚类个数,是否需要用户给出领域知识;

3、算法的数据输入属性:算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;算法处理有很多属性数据的能力,也就是对数据维数是否敏感,对数据的类型有无要求。

2.16.5 聚类和分类有什么区别

聚类(Clustering)

聚类,简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起。一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此聚类通常并不需要使用训练数据进行学习,在机器学习中属于无监督学习。

分类(Classification)

分类,对于一个分类器,通常需要你告诉它“这个东西被分为某某类”。一般情况下,一个分类器会从它得到的训练集中进行学习,从而具备对未知数据进行分类的能力,在机器学习中属于监督学习。

2.16.6 不同聚类算法特点性能比较

算法名称 可伸缩性 适合的数据类型 高维性 异常数据抗干扰性 聚类形状 算法效率
WAVECLUSTER 很高 数值型 很高 较高 任意形状 很高
ROCK 很高 混合型 很高 很高 任意形状 一般
BIRCH 较高 数值型 较低 较低 球形 很高
CURE 较高 数值型 一般 很高 任意形状 较高
K-PROTOTYPES 一般 混合型 较低 较低 任意形状 一般
DENCLUE 较低 数值型 较高 一般 任意形状 较高
OPTIGRID 一般 数值型 较高 一般 任意形状 一般
CLIQUE 较高 数值型 较高 较高 任意形状 较低
DBSCAN 一般 数值型 较低 较高 任意形状 一般
CLARANS 较低 数值型 较低 较高 球形 较低

2.16.7 四种常见的聚类方法之比较

聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。

主要的聚类算法可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法。

下面主要对k-means聚类算法、凝聚型层次聚类算法、神经网络聚类算法之SOM,以及模糊聚类的FCM算法通过通用测试数据集进行聚类效果的比较和分析。

2.16.8 k-means聚类算法

k-means是划分方法中较经典的聚类算法之一。由于该算法的效率高,所以在对大规模数据进行聚类时被广泛应用。目前,许多算法均围绕着该算法进行扩展和改进。 k-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。

k-means算法的处理过程如下:首先,随机地 选择k个对象,每个对象初始地代表了一个簇的平均值或中心;对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;然后重新计算每个簇的平均值。 这个过程不断重复,直到准则函数收敛。通常,采用平方误差准则,其定义如下:


image.png

算法流程

输入:包含n个对象的数据和簇的数目k;

输出:n个对象到k个簇,使平方误差准则最小。

步骤:

(1) 任意选择k个对象作为初始的簇中心;

(2) 根据簇中对象的平均值,将每个对象(重新)赋予最类似的簇;  

(3) 更新簇的平均值,即计算每个簇中对象的平均值;   

(4) 重复步骤(2)、(3)直到簇中心不再变化;

2.16.9 层次聚类算法

根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。

凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。

算法流程:

注:以采用最小距离的凝聚层次聚类算法为例:

(1)将每个对象看作一类,计算两两之间的最小距离;

(2)将距离最小的两个类合并成一个新类;

(3)重新计算新类与所有类之间的距离;

(4)重复(2)、(3),直到所有类最后合并成一类。

2.16.10 SOM聚类算法

SOM神经网络[11]是由芬兰神经网络专家Kohonen教授提出的,该算法假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间(n维)到输出平面(2维)的降维映射,其映射具有拓扑特征保持性质,与实际的大脑处理有很强的理论联系。

SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。 学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。

算法流程:

(1) 网络初始化,对输出层每个节点权重赋初值;

(2) 从输入样本中随机选取输入向量并且归一化,找到与输入向量距离最小的权重向量;

(3) 定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢;

(4) 提供新样本、进行训练;

(5) 收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。

2.16.11 FCM聚类算法

1965年美国加州大学柏克莱分校的扎德教授第一次提出了‘集合’的概念。经过十多年的发展,模糊集合理论渐渐被应用到各个实际应用方面。为克服非此即彼的分类缺点,出现了以模糊集合论为数学基础的聚类分析。用模糊数学的方法进行聚类分析,就是模糊聚类分析[12]。

FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。该聚类算法是传统硬聚类算法的一种改进。


image.png

目前被广泛使用的聚类准则是取类内加权误差平方和的极小值。即:


image.png

其中 为聚类中心, 为加权指数,

算法流程

(1) 标准化数据矩阵;  

(2) 建立模糊相似矩阵,初始化隶属矩阵;  

(3) 算法开始迭代,直到目标函数收敛到极小值;  

(4) 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。

2.16.12  四种聚类算法试验

选取专门用于测试分类、聚类算法的国际通用的UCI数据库中的IRIS数据集,IRIS数据集包含150个样本数据,分别取自三种不同 的莺尾属植物setosa、versicolor和virginica的花朵样本,每个数据含有4个属性,即萼片长度、萼片宽度、花瓣长度、花瓣宽度,单位为cm。 在数据集上执行不同的聚类算法,可以得到不同精度的聚类结果。基于前面描述的各算法原理及流程,可初步得如下聚类结果。

聚类方法 聚错样本数 运行时间/s 平均准确率/(%)
K-means 17 0.146001 89
层次聚类 51 0.128744 66
SOM 22 5.267283 86
FCM 12 0.470417 92

(1) 聚错样本数:总的聚错的样本数,即各类中聚错的样本数的和;

(2) 运行时间:即聚类整个过程所耗费的时间,单位为s;

(3) 平均准确度:设原有数据集有k个类,用c_i表示第i类,n_i为c_i中样本的个数,m_i为聚类正确的个数,则m_i/n_i为第i类中的精度,则平均精度为:avg=\frac{1}{k}\sum_{i=1}^{k}\frac{m_{i}}{n_{i}}。

参考文献

[1] Goodfellow I, Bengio Y, Courville A. Deep learning[M]. MIT press, 2016.

[2] 周志华. 机器学习[M].清华大学出版社, 2016.

[3] Michael A. Nielsen. "Neural Networks and Deep Learning", Determination Press, 2015.

[4] Suryansh S. Gradient Descent: All You Need to Know, 2018.

[5] 刘建平. 梯度下降小结,EM算法的推导, 2018

[6] 杨小兵.聚类分析中若干关键技术的研究[D]. 杭州:浙江大学, 2005.

[7] XU Rui, Donald Wunsch 1 1. survey of clustering algorithm[J].IEEE.Transactions on Neural Networks, 2005, 16(3):645-67 8.

[8] YI Hong, SAM K. Learning assignment order of instances for the constrained k-means clustering algorithm[J].IEEE Transactions on Systems, Man, and Cybernetics, Part B:Cybernetics,2009,39 (2):568-574.

[9] 贺玲, 吴玲达, 蔡益朝.数据挖掘中的聚类算法综述[J].计算机应用研究, 2007, 24(1):10-13.

[10] 孙吉贵, 刘杰, 赵连宇.聚类算法研究[J].软件学报, 2008, 19(1):48-61.

[11] 孔英会, 苑津莎, 张铁峰等.基于数据流管理技术的配变负荷分类方法研究.中国国际供电会议, CICED2006.

[12] 马晓艳, 唐雁.层次聚类算法研究[J].计算机科学, 2008, 34(7):34-36.

[13] FISHER R A. Iris Plants Database https://www.ics.uci.edu/vmlearn/MLRepository.html, Authorized license.

[14] Quinlan J R. Induction of decision trees[J]. Machine learning, 1986, 1(1): 81-106.

[15] Breiman L. Random forests[J]. Machine learning, 2001, 45(1): 5-32.

目录
相关文章
|
1月前
|
机器学习/深度学习 存储 算法
深度学习500问——Chapter02:机器学习基础(4)
深度学习500问——Chapter02:机器学习基础(4)
34 0
|
10天前
|
机器学习/深度学习 运维 监控
TensorFlow分布式训练:加速深度学习模型训练
【4月更文挑战第17天】TensorFlow分布式训练加速深度学习模型训练,通过数据并行和模型并行利用多机器资源,减少训练时间。优化策略包括配置计算资源、优化数据划分和减少通信开销。实际应用需关注调试监控、系统稳定性和容错性,以应对分布式训练挑战。
|
11天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
16 0
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
|
1月前
|
机器学习/深度学习 算法 数据可视化
深度学习500问——Chapter02:机器学习基础(3)
深度学习500问——Chapter02:机器学习基础(3)
47 0
|
4天前
|
机器学习/深度学习 存储 边缘计算
深度学习在图像识别中的应用与挑战
【4月更文挑战第23天】 随着人工智能技术的飞速发展,深度学习作为其重要分支之一,在图像识别领域取得了显著的成果。本文将探讨深度学习在图像识别中的应用,分析其优势和面临的挑战,并展望未来的发展趋势。
|
1天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
【4月更文挑战第26天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的核心动力。尤其是在图像识别任务中,深度神经网络凭借其卓越的特征提取和学习能力,不断刷新着分类、检测及分割等领域的准确率纪录。然而,尽管取得了显著成就,深度学习模型在实际应用中仍面临着数据偏差、计算资源消耗巨大和模型可解释性差等问题。本文将深入探讨深度学习在图像识别中的应用现状,分析其面临的主要挑战,并展望可能的解决方案。
|
1天前
|
机器学习/深度学习 人工智能 物联网
深度学习在图像识别中的应用与挑战
阿里社区聚焦科技前沿,汇聚开发者探索云计算、大数据、AI和物联网创新。通过阿里云,开发者轻松获取计算资源,实践AI与IoT应用。社区举办相关比赛,推动技术发展,尤其在金融行业,深入讨论AI应用与挑战,助力金融科技革新。同时,深度学习在图像识别取得突破,但面对数据质量、模型优化、可解释性和安全隐私等问题,开发者持续寻求解决方案。
11 3
|
2天前
|
机器学习/深度学习 运维 监控
深度学习在图像识别中的应用与挑战
【4月更文挑战第25天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的核心动力。本文旨在探讨深度学习技术在图像识别任务中的创新应用及其面临的主要挑战。我们将首先回顾深度学习的基本原理和关键技术,随后通过实际案例分析其在图像分类、目标检测及语义分割等方面的应用效果。最后,文中将讨论当前技术瓶颈,如数据不平衡、模型泛化能力以及计算资源限制等,并提出可能的解决方案。
|
2天前
|
机器学习/深度学习 自动驾驶 算法
探索基于深度学习的图像识别在自动驾驶中的应用
【4月更文挑战第25天】 随着人工智能技术的飞速发展,深度学习已成为推动自动驾驶领域革新的核心力量。本文旨在深入探讨深度学习技术在图像识别领域的最新进展及其在自动驾驶系统中的实际应用。通过分析卷积神经网络(CNN)和递归神经网络(RNN)等先进算法,我们揭示了如何有效提升自动驾驶汽车在复杂环境中的视觉感知能力。文中还将讨论深度学习模型在处理实时数据时所面临的挑战,以及为解决这些挑战而采取的创新方法。

热门文章

最新文章