【22-23春学期】AI第四次作业

这是一个抛硬币的例子,H表示正面向上,T表示反面向上,参数θ表示正面朝上的概率。硬币有两个,A和B,硬币是有偏的。本次实验总共做了5组,每组随机选一个硬币,连续抛10次。如果知道每次抛的是哪个硬币,那么计算参数θ就非常简单了,如上图所示。

如果不知道每次抛的是哪个硬币呢?那么,我们就需要用EM算法,基本步骤为:1、给θA和θB一个初始值;2、(E-step)估计每组实验是硬币A的概率(本组实验是硬币B的概率=1-本组实验是硬币A的概率)。分别计算每组实验中,选择A硬币且正面朝上次数的期望值,选择B硬币且正面朝上次数的期望值;3、(M-step)利用第三步求得的期望值重新计算θA和θB;4、当迭代到一定次数,或者算法收敛到一定精度,结束算法,否则,回到第2步。

1.K均值聚类是一种无监督机器学习算法,用于将数据集划分成不同的群组(cluster),使每个数据点都属于其中一个群组。具体来说,该算法将数据集中的所有点分为K个簇(cluster),使得同一簇中的点与其他簇中的点之间距离最小。

K均值聚类的执行过程大致如下:

1. 首先需要选择需要聚类的数据集以及簇数K。
2. 随机选择K个初始质心。
3. 对于每一个数据点,计算它与各个质心之间的距离,并将其归到距离最近的质心所在的簇中。
4. 对于每个簇,重新计算该簇内所有数据点的平均值,并将平均值作为新质心。
5. 重复执行第3和第4步,直到质心不再发生变化或达到预设迭代次数为止。

K均值聚类算法的优缺点:

优点:
- K均值聚类算法实现简单、易于理解、易于实现。
- 算法收敛速度快,适用于处理大规模数据集。
- 在处理有明显分割结构且问题易于转换为欧几里得距离度量问题的数据上表现出色。

缺点:
- 需要预先设定簇数K,这对结果具有较大影响。
- 对于密集或重叠数据集效果不佳。
- 由于在每次迭代中都需要计算距离,所以算法时间复杂度较高。

总之,K均值聚类是一种快速、简单和通用的聚类算法,尤其适合应用在大规模数据集上。

2.K均值聚类是一种无监督学习方法,它属于生成式模型。生成式模型指的是通过学习样本数据的特征分布来建立模型,从而为给定特征生成新的样本数据。在K均值聚类算法中,通过对数据集进行聚类操作,在训练过程中没有考虑任何标签信息,而是根据数据自身的特点,将样本划分为不同的簇。因此,K均值聚类被视为一种生成式模型。

3.KNN和K-means是两种不同的机器学习算法。

1. KNN(K-最近邻):它是一种监督学习方法,用于分类和回归问题。对于给定的实例,KNN通过测量该实例与训练数据集中其他实例之间的距离,来确定其最接近的k个训练实例,并基于这些邻居值来对该实例进行分类或回归预测。

2. K-means:它是一种无监督学习方法,用于将数据聚类成不同的组。在这个算法中,我们定义一个初始的簇质心集合,并将所有数据点分配到最接近的质心中。然后更新质心位置并重新分配数据,直到达到收敛条件为止。

虽然这两个算法名称相似,但它们解决的问题和使用方式都有很大不同。KNN用于分类和回归问题,而K-means用于聚类问题。

4.主成分分析(PCA)是一种常用的数据降维算法,可用于将高维数据转化为低维数据,并最大程度地保留原始数据的信息。这个过程会找出原始数据中的主要变量(即主成分),并将其组合成一个新的坐标系,使得在此坐标系下数据点的方差最大化。PCA的目标是在信息损失最小的情况下减少数据集的维度。

PCA可以应用于许多不同领域,例如图像处理、自然语言处理和金融学等领域。在图像处理中,PCA可以用于人脸识别和图像压缩等任务。在自然语言处理中,PCA可以用于文本分类和人名实体识别等任务。在金融学中,PCA可以用于资产组合优化和风险管理等任务。

需要注意的是,在使用PCA时需要进行标准化或归一化处理以保证每个特征对结果影响相同,并且需要选择合适的主成分数量以达到最优结果。

5.LDA(Linear Discriminant Analysis)和PCA(Principal Component Analysis)都是常见的数据降维技术,但它们的应用场景略有不同。

PCA旨在将高维数据转化为低维数据,并最大程度地保留原始数据的信息。这个过程会找出原始数据中的主要变量(即主成分),并将其组合成一个新的坐标系,使得在此坐标系下数据点的方差最大化。PCA主要是用于减少特征数量和去除冗余信息,而不关心特征之间是否区分度高。

LDA则是一种监督学习算法,它旨在找到将类别可分性最大化的线性变换。LDA可以帮助识别哪些特征对于区分不同类别的样本更加重要,并且它可以确保在降维后仍然能够尽可能保存样本之间的类别信息。因此,LDA适用于分类问题。

总体来说,PCA和LDA都是常见的降维算法,在不同领域有着广泛应用。如果只是想减少特征数量或去除冗余信息,使用PCA更加合适;如果需要考虑到分类问题,则使用LDA更加合适。

6.奇异值分解(Singular Value Decomposition,简称SVD )是一种矩阵分解的方法,可以将一个矩阵分解为三个矩阵的乘积
奇异值分解有很多应用,其中之一是在降维方面。通过对原始数据进行SVD分解,并选取最重要的特征向量子集来表示原始数据,就能完成数据降维。同时,在图像压缩、语音处理和推荐系统中也都有广泛应用。
另外需要注意的一点是,在某些情况下,由于计算复杂度和内存限制等问题,无法直接对特别大的矩阵进行SVD分解。因此,在实践中常常会使用基于随机采样的方法,如随机SVD、迭代SVD等来近似求解SVD。

7.特征人脸方法(Eigenface Method)是一种利用主成分分析(PCA)的技术,用于识别人脸图像。该方法基于假设:即所有的人脸图像都可以表示为少数几个共同的部分加上一些不同的细节。根据这个假设,我们可以对所有的人脸图像进行主成分分析,找到它们共同的基本特征,也就是称为“特征脸”的那些图像。

具体来说,特征人脸方法从训练集中学习所有可能的人脸特征,并使用PCA找到一个最小化重构误差的低维度表示方式。这个表示方式通过将每个人脸投影到一个称为“特征空间”的子空间中来实现。

在测试时,首先将被识别人脸与训练集中每个已知面孔进行比较,并计算它们在特征空间中投影点之间的距离。然后选择距离最小的那张面孔作为被识别人脸的身份。

虽然特征人脸方法已经成功地应用于人脸识别领域,但它仍然存在一些局限性。例如,在变换光照和面部表情方面的适应性并不是很好,而且在大规模人脸库中的匹配效率相对较低。因此,在实际应用中,还需要考虑其他方法来提高识别准确率和效率。

8.潜在语义分析(Latent Semantic Analysis,LSA)是一种自然语言处理技术,用于将文本数据转换为高维向量空间,并在该空间中计算不同文本之间的相似性。该技术的基本思想是,将文本数据表示为单词的矩阵形式,通过奇异值分解(Singular Value Decomposition,SVD)对该矩阵进行降维处理,得到潜在语义空间(Latent Semantic Space),进而计算文本之间的相似性。

具体来说,LSA首先构建一个由文档和单词组成的矩阵,其中每个元素代表某个单词在某个文档中出现的频率或权重。然后对该矩阵进行SVD分解,得到三个矩阵:一个左奇异矩阵、一个由奇异值组成的对角矩阵和一个右奇异矩阵。其中对角矩阵描述了潜在语义空间的基本方向。

通过降维可以减少存储和计算开销。在潜在语义空间中,每个文档被表示为一个向量,并根据这些向量之间的差异计算它们之间的相似性。因此,与传统方法相比,在LSA中文本可以用一个向量表示,这种表示方式可以更好地描述文档的主题和含义。

LSA在信息检索、自然语言处理、计算机视觉等领域中有着广泛应用,它不仅能够进行文本分类和聚类,还能够进行关键字提取、文档摘要、信息检索和推荐等任务。但是在实际应用过程中,需要注意SVD分解可能会导致信息的损失,并且对于大规模的数据集,计算SVD分解可能会非常耗时。

9.期望最大化算法(Expectation Maximization,EM)是一种求解含有隐变量的概率模型参数的迭代算法。EM算法通过迭代更新模型参数的方式,使得给定观测数据的对数似然函数最大化。它通常用于无监督学习或者半监督学习任务中。

在EM算法中,假设我们有一些隐变量,这些隐变量与观测数据有关,且概率分布已知。我们希望利用观测数据来更新模型的参数。基本思路是先假设当前参数,计算隐变量的后验概率分布;然后再通过最大化完整数据(包括观测数据和隐变量)对数似然函数来更新模型参数。

具体而言,EM算法分为两步:

1. E步:求解隐变量的后验概率分布。根据当前模型参数和观测数据,计算每个样本在不同分类下的概率分布,并将这些分布作为每个样本对应分类的权重。这个步骤得到了样本权重。

2. M步:最大化完整数据对数似然函数以更新模型参数。使用样本权重重新估计模型参数值。

不断迭代E步和M步直到收敛。

需要注意到,在使用EM算法时,需要选择合适的模型类别、初始参数和停止条件以及注意算法是否会陷入局部极大值。

10.K-means算法可以被看作是基于期望最大化算法(Expectation-Maximization, EM)的一种特殊情况,但并不能说K-means是最简单的EM算法。

EM算法通常用于处理参数估计问题,即给定数据和模型,通过估计模型参数来解决未知数据的分类或者回归问题。在EM算法中,E步骤计算每个样本属于每个类别的概率分布,M步骤则更新模型参数。

K-means也需要进行E步骤和M步骤的迭代过程,但与传统的EM算法不同的是,K-means主要是用于聚类问题,并且其假设了簇的数量已经确定。因此,在K-means中,E步骤计算每个样本应该归属于哪一个簇,并根据这些簇重新计算各个簇的中心位置;M步骤则将重新计算得到的中心位置赋值给对应的簇。

总体而言,K-means是一种比较简单、高效、易用的聚类方法,在处理大规模数据时具有较好的性能表现。但从EM算法角度来看,K-means只是其中一种比较特殊的情况,并不能代表EM算法最简单或者最基础的形式。

11.用java实现了HMM算法,完成了大作业。现在回想起来,就隐隐约约记得有一大堆公式。最近,我看到一篇很好的文章,对EM算法的计算有了进一步的了解

文章中有个例子,能让人快速了解EM算法的使用方法,下图是例子的示意图,图b是EM算法的实例,图a是让我们预热的。

 

这是一个抛硬币的例子,H表示正面向上,T表示反面向上,参数θ表示正面朝上的概率。硬币有两个,A和B,硬币是有偏的。本次实验总共做了5组,每组随机选一个硬币,连续抛10次。如果知道每次抛的是哪个硬币,那么计算参数θ就非常简单了,如上图所示。

如果不知道每次抛的是哪个硬币呢?那么,我们就需要用EM算法,基本步骤为:1、给θA和θB一个初始值;2、(E-step)估计每组实验是硬币A的概率(本组实验是硬币B的概率=1-本组实验是硬币A的概率)。分别计算每组实验中,选择A硬币且正面朝上次数的期望值,选择B硬币且正面朝上次数的期望值;3、(M-step)利用第三步求得的期望值重新计算θA和θB;4、当迭代到一定次数,或者算法收敛到一定精度,结束算法,否则,回到第2步。

稍微解释一下上图的计算过程。初始值θA=0.6,θB=0.5。

图中的0.45是怎么得来的呢?由两个硬币的初始值0.6和0.5,容易得出投掷出5正5反的概率是pA=C(10,5)*(0.6^5)*(0.4^5),pB=C(10,5)*(0.5^5)*(0.5^5), pA/(pA+pB)=0.449, 0.45就是0.449近似而来的,表示第一组实验选择的硬币是A的概率为0.45。图中的2.2H,2.2T是怎么得来的呢? 0.449 * 5H = 2.2H ,0.449 * 5T = 2.2T ,表示第一组实验选择A硬币且正面朝上次数的期望值是2.2。其他的值依次类推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值