Computer Vision Coursework
- In the coursework report, you should answer them well according to your understanding. The problems are:
- What is the Gaussian Mixture Model (GMM) or Mixture of Gaussian(MoG) and how to solve GMM via Expectation Maximization(EM)? Further, why can the GMM or MoG be solved well by the EM algorithm? Please explain the reason.
- What about the difference between linear regression and logistic regression? If we want to solve real-world related tasks, how do we choose these two methods?
- There are many feature descriptors to represent the image, for example, HOG, SIFT, GIST, BOW, and so on. Please choose one feature descriptor to explain its definition and function. It is encouraged to analyze/explain the reason or advantage why you select the feature descriptor. If an example could be used to introduce it, it would be better.
1. 高斯混合模型(Gaussian Mixture Model, GMM)是什么?
高斯混合模型(GMM)是一种概率模型,它假设所有的数据点都是由多个具有未知参数的高斯分布(即正态分布)组成的混合体生成的。简单来说,GMM认为数据集是由若干个不同的高斯分布组成,每个分布对应数据中的一个“子群”或“聚类”。这些高斯分布的线性组合能够近似任意复杂的分布,从而在数据建模、聚类和密度估计中具有广泛的应用。
数学上,GMM 可以表示为:
其中:
- 是高斯成分的数量。
- 是第 个高斯成分的混合系数,满足 且 。
- 是均值为 ,协方差矩阵为 的高斯概率密度函数。
2. 如何使用期望最大化(EM)算法求解 GMM?
在 GMM 中,我们的目标是估计模型的参数,即每个高斯成分的均值 、协方差 以及混合系数 。然而,由于我们不知道每个数据点属于哪个高斯成分,这就引入了隐藏变量,使得直接最大化似然函数变得复杂。
EM 算法是一种迭代优化算法,特别适用于包含隐藏变量的模型。它通过在每次迭代中交替执行两个步骤来估计模型参数:
E 步(期望步):在给定当前参数估计的情况下,计算每个数据点属于每个高斯成分的后验概率。这实际上是计算隐藏变量的期望值。
对于每个数据点 和每个高斯成分 ,计算责任度(即后验概率):
M步(最大化步):在给定责任度的情况下,重新估计模型参数,使得期望对数似然函数最大化。
更新混合系数:
更新均值:
更新协方差矩阵:
其中:
- 是数据点的总数。
- 是对第 个成分的责任度总和。
通过反复执行 E 步和 M 步,EM算法会逐步提高似然函数的值,直到收敛到一个局部最大值。
3. 为什么 EM 算法能够很好地解决 GMM?请解释原因。
EM 算法之所以能够有效地求解 GMM,主要原因在于以下几个方面:
- 处理隐藏变量的能力:GMM 中的关键挑战是每个数据点的成分归属(即它来自哪个高斯分布)是未知的,即存在隐藏变量。EM 算法专为处理这类具有隐藏变量的模型而设计。它通过在 E 步中估计这些隐藏变量的期望值,将复杂的优化问题转化为更容易处理的形式。
- 将复杂的似然函数优化问题简化:直接最大化 GMM 的似然函数涉及到对数的求导,且由于混合模型的形式,导致计算复杂度高。 EM 算法通过引入责任度,将似然函数的优化分解为两个更简单的步骤,使得参数更新具有封闭解,计算更为简便。
- 单调递增的收敛性质:EM 算法保证每次迭代都会使似然函数的值不下降,即: 这种单调递增的性质确保了算法的稳定性,最终会收敛到一个局部最大值。
- 算法实现简单:EM 算法的步骤明确,更新公式具有直观的统计意义,容易实现和理解。这使得它在实践中被广泛应用于 GMM 的参数估计。
- 适用于任意数量的高斯成分:无论 GMM 中包含多少个高斯分布,EM 算法都能够以相同的方式处理,只需调整 K 的值。这使得它在处理复杂的数据分布时具有很高的灵活性。
综上所描述的:高斯混合模型(GMM)提供了一种强大的工具来建模复杂的数据分布,通过假设数据由多个高斯分布的混合生成。EM算法能够有效地估计 GMM 的参数。核心优势在于处理隐藏变量能力、简化复杂的优化问题、保证收敛以及实现上的简洁性。
1. 线性回归(Linear Regression)
1. 目的:
- 预测连续型变量。 线性回归用于预测一个连续的数值输出,即因变量(Y)。它试图找出自变量(X)和因变量之间的线性关系。
2. 数学模型:
- 公式:
- 解释: 其中, 是截距, 是回归系数, 是误差项。
3. 假设条件:
- 线性关系: 自变量和因变量之间存在线性关系。
- 正态分布: 误差项服从正态分布。
- 同方差性: 误差项的方差恒定。
- 独立性: 观测值相互独立。
4. 应用场景:
- 预测数值: 房价预测、销售额预测、温度变化等。
2. 逻辑回归(Logistic Regression)
1. 目的:
- 处理分类问题。 逻辑回归主要用于二分类问题,即预测因变量属于某个类别的概率。
2. 数学模型:
- 公式:
- 解释: 使用 Sigmoid 函数将输出映射到 0 到 1 之间的概率值。
3. 假设条件:
- 自变量与逻辑函数的线性关系: 自变量和因变量的对数几率之间存在线性关系。
- 独立性: 观测值相互独立。
- 多重共线性: 自变量之间无高度相关性。
4. 应用场景:
- 分类预测: 电子邮件垃圾分类、疾病诊断(患病或未患病)、客户流失预测等。
3. 如何在实际任务中选择
1. 根据目标变量的类型:
- 连续型变量: 如果目标是预测一个具体数值,使用线性回归。
- 分类变量: 如果目标是预测类别或事件发生的概率,使用逻辑回归。
2. 考虑数据分布和模型假设:
- 线性关系: 如果自变量和因变量之间存在线性关系,并满足线性回归的假设条件,选择线性回归。
- 概率和分类: 如果需要估计事件发生的概率或进行分类,逻辑回归更适合。
3. 模型的解释和应用:
- 线性回归: 易于解释回归系数,对变量的影响有直接的理解。
- 逻辑回归: 提供概率输出,可设置阈值进行分类决策。
4. 总结
- 线性回归适用于预测连续数值,强调变量之间的线性关系。
- 逻辑回归适用于分类问题,特别是二分类,强调事件发生的概率。
1. 线性回归 vs. 逻辑回归的区别
目标变量类型
线性回归: 用于预测连续型数值变量。
逻辑回归: 用于预测分类变量,通常是二元分类(如0或1)。
目的和应用场景
线性回归:
- 目的: 建立自变量和因变量之间的线性关系,预测数值结果。
- 应用: 房价预测、销售额预测、温度变化等需要具体数值的情况。
逻辑回归:
- 目的: 估计事件发生的概率,解决分类问题。
- 应用: 疾病诊断(患病或未患病)、客户流失预测、垃圾邮件分类等。
数学模型
线性回归:
- 公式:
- 解释: 直接拟合一个线性方程,预测因变量的具体数值。
逻辑回归:
- 公式:
- 解释: 使用 Sigmoid 函数,将线性组合映射到 0 到 1 之间的概率值。
假设条件
线性回归:
- 线性关系: 自变量和因变量之间是线性的。
- 同方差性: 误差项的方差恒定。
- 正态分布: 误差项服从正态分布。
- 独立性: 各观测值相互独立。
逻辑回归:
- 线性关系: 自变量和因变量的对数几率之间存在线性关系。
- 独立性: 各观测值相互独立。
- 无多重共线性: 自变量之间无高度相关性。
损失函数和优化目标
线性回归:
- 损失函数: 最小二乘法(最小化残差平方和)。
逻辑回归:
- 损失函数: 对数似然函数(最大化似然估计)。
输出结果
线性回归: 输出预测的连续数值。
逻辑回归: 输出事件发生的概率值,可根据阈值(如0.5)进行分类。
模型解释
线性回归: 回归系数表示自变量对因变量的直接线性影响,易于解释。
逻辑回归: 回归系数表示自变量对因变量对数几率的影响,解释较为复杂,需要理解对数几率。
适用的数据类型
线性回归: 自变量和因变量通常是连续型变量。
逻辑回归: 自变量可以是连续型或分类变量,因变量是分类变量。
2. 如何在实际任务中选择
根据目标变量的类型
选择线性回归: 当我们需要预测一个具体的数值结果,如销售额、温度、房价等。
选择逻辑回归: 当我们需要预测一个类别或事件发生的概率,如客户是否会流失、邮件是否是垃圾邮件。
考虑模型的假设和数据特征
线性关系: 如果自变量和因变量之间存在线性关系,且满足线性回归的假设条件,选择线性回归。
分类问题: 如果目标是分类,且数据满足逻辑回归的假设条件,选择逻辑回归。
模型解释和业务需求
线性回归: 如果需要对变量的影响进行直观、线性的解释,线性回归更合适。
逻辑回归: 如果需要估计概率,并根据概率进行决策(如风险评估),逻辑回归更适用。
综上所述:
- 线性回归适用于预测连续数值,强调自变量和因变量之间的线性关系。
- 逻辑回归适用于解决分类问题,特别是二分类,强调估计事件发生的概率。
SIFT 是一种用于检测和描述图像局部特征的算法。它由 David Lowe在1999年提出,能够有效地提取图像中的关键点并生成特征描述符,以用于图像匹配、物体识别和三维重建等计算机视觉任务。
定义和功能:
SIFT 算法主要包括以下四个步骤:
- 尺度空间极值检测:通过构建高斯金字塔,在不同尺度下对图像进行模糊处理,检测出潜在的尺度不变关键点。
- 关键点精确定位:对检测到的关键点进行精确定位,去除不稳定的点,如低对比度点和边缘响应点。
- 方向分配:根据关键点邻域的梯度方向分布,为每个关键点分配一个或多个主方向,从而实现对旋转的不变性。
- 关键点描述符生成:在关键点的邻域内,计算梯度方向和幅值,生成一个128维的特征向量,作为关键点的描述符。
选择 SIFT 的原因和优势:
- 尺度和旋转不变性:SIFT 特征对图像的尺度变化和旋转具有不变性,这使得它在处理不同视角和距离下拍摄的图像时,仍能有效地匹配关键点。
- 对光照和噪声的鲁棒性:SIFT 算法在一定程度上对光照变化、仿射变换和噪声具有抗干扰能力,提升了匹配的准确性。
- 丰富的特征信息:生成的 128 维特征描述符包含了关键点周围的梯度信息,具有很强的辨别能力,适用于复杂的视觉任务。
示例:
假设我们有两张同一物体的图像,一张是正面近距离拍摄,另一张是侧面远距离拍摄,并且光照条件有所不同。使用 SIFT 算法,我们可以在两张图像中检测到对应的关键点,并通过比较它们的特征描述符,成功地匹配出这些关键点。这样,即使图像在尺度、角度和光照上有差异,我们仍然能够确认它们拍摄的是同一物体。
公众号:AI悦创【二维码】

C:::
AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh
