系列文章目录
第一章 【机器学习】初识机器学习
第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)
第三章 【机器学习】【监督学习】- 支持向量机 (SVM)
第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)
第五章【机器学习】【监督学习】- 决策树 (Decision Trees)
第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)
第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)
第八章【机器学习】【监督学习】-卷积神经网络 (CNN)
第九章【机器学习】【监督学习】-循环神经网络 (RNN)
第十章【机器学习】【监督学习】-线性回归
第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)
第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)
十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)
十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)
十五、【机器学习】【监督学习】- 神经网络回归
十六、【机器学习】【监督学习】- 支持向量回归 (SVR)
十七、【机器学习】【非监督学习】- K-均值 (K-Means)
十八、【机器学习】【非监督学习】- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)十九、【机器学习】【非监督学习】- 层次聚类 (Hierarchical Clustering)二十、【机器学习】【非监督学习】- 均值漂移 (Mean Shift)
二十一、【机器学习】【非监督学习】- 谱聚类 (Spectral Clustering)
目录
系列文章目录
一、非监督学习
(一)、定义
(二)、训练流程
(三)、基本算法分类
二、 隐马尔可夫模型 (Hidden Markov Models, HMMs)
(一)、定义
(二)、基本概念
(三)、训练过程
(四)、特点
(五)、适用场景
(六)、扩展
三、总结
一、非监督学习
(一)、定义
非监督学习是一种机器学习方法,它处理的是没有标签的数据集。与监督学习不同,非监督学习算法不需要知道数据的正确分类或目标值。它的目标是通过数据内部的结构和模式来推断出有意义的信息,如数据的分布、聚类、降维或异常检测等。
(二)、训练流程
非监督学习的训练流程通常包含以下几个步骤:
-
数据准备:收集和预处理数据,可能包括数据清洗、缺失值处理、数据标准化或归一化等。
-
模型选择:根据问题的性质选择合适的非监督学习算法。
-
参数初始化:初始化模型的参数,这一步对于某些算法至关重要,如K-means聚类。
-
模型训练:使用无标签数据训练模型,寻找数据中的结构或模式。这一过程可能涉及到迭代优化,直到满足某个停止准则,如收敛或达到预定的迭代次数。
-
结果评估:评估模型的结果,这通常比监督学习更具有挑战性,因为没有明确的“正确答案”。评估可能基于内在指标(如聚类的紧凑度和分离度)或外在指标(如与已知分类的比较)。
-
应用模型:使用训练好的模型对新数据进行分析或预测,如对新数据进行聚类或降维。
(三)、基本算法分类
非监督学习算法可以大致分为以下几类:
-
聚类算法:用于将数据点分组到不同的簇中,常见的算法有K-means、层次聚类、DBSCAN、Gaussian Mixture Models等。
-
降维算法:用于减少数据的维度,同时尽可能保留数据的结构信息,常见的算法有PCA(主成分分析)、t-SNE(t-分布随机邻域嵌入)、自编码器等。
-
关联规则学习:用于发现数据集中项之间的关系,如Apriori算法和Eclat算法。
-
异常检测算法:用于识别数据集中的异常点或离群点,如Isolation Forest、Local Outlier Factor等。
-
自组织映射(SOM):一种神经网络模型,用于数据可视化和聚类,可以将高维数据映射到低维空间中。
-
生成模型:如变分自编码器(VAE)和生成对抗网络(GAN),它们可以生成类似训练数据的新样本。
非监督学习在很多场景中都有广泛应用,如客户细分、图像识别、自然语言处理、生物信息学和推荐系统等。由于其灵活性和在处理大量未标注数据时的优势,非监督学习是数据科学和人工智能领域的重要组成部分。
二、 隐马尔可夫模型 (Hidden Markov Models, HMMs)
(一)、定义
隐马尔可夫模型是一种统计模型,用于描述一个含有未知参数的马尔可夫过程。在HMM中,系统被假设为一个马尔可夫过程,但这个过程的状态是不可见的或者说隐藏的,我们只能观察到由这些隐藏状态产生的输出或符号序列。HMM的主要目标是基于观测序列来推断隐藏状态序列,或者根据观测序列来学习模型的参数。
(二)、基本概念
HMM包含以下几个关键概念:
-
状态空间:指所有可能的隐藏状态集合,通常标记为S={s1, s2, ..., sN}。
-
观测空间:指所有可能的观测符号集合,通常标记为V={v1, v2, ..., vM}。
-
初始概率向量π:描述每个隐藏状态在序列开始时出现的概率。
-
状态转移矩阵A:描述了从一个隐藏状态转移到另一个隐藏状态的概率。
-
观测概率矩阵B:也称为发射矩阵,描述了在给定隐藏状态下产生特定观测的概率。
(三)、训练过程
隐马尔可夫模型的训练过程通常涉及解决三个经典问题:评估、解码和学习。这些问题是通过不同的算法来解决的,分别是前向后向算法、维特比算法和Baum-Welch算法。下面我们详细探讨这些算法:
评估问题 (Likelihood Calculation)
- 前向后向算法:这个算法用于计算在给定模型参数下观测序列的概率。前向算法通过递归地计算观测序列直到某时刻t的所有可能路径的概率总和,而后向算法则是从序列的末尾向前计算。这两个算法的结果可以用于评估观测序列的似然性,以及在学习问题中计算期望值。
解码问题 (State Sequence Decoding)
- 维特比算法:这是一种动态规划算法,用于找到最有可能产生观测序列的隐藏状态序列。维特比算法在每个时刻t计算出最大概率状态,并保存下来,最终回溯这些状态来得到完整的状态序列。
学习问题 (Parameter Learning)
- Baum-Welch算法:这是EM算法的一种应用,用于在没有确切知道状态序列的情况下学习HMM的参数(包括初始状态概率、状态转移概率和观测概率)。Baum-Welch算法是一个迭代过程,它通过以下两个步骤不断更新模型参数,直到收敛:
- E-step (期望步):使用当前的参数估计,通过前向后向算法计算出每个状态的期望频率以及状态对的期望频率。
- M-step (最大化步):根据E-step计算出的期望值,更新模型参数以最大化观测序列的对数似然性。
1.初始化:首先,随机初始化HMM的参数,包括初始状态概率π、状态转移矩阵A和观测概率矩阵B。
2.迭代训练:接下来,使用Baum-Welch算法迭代更新模型参数:
- 在每一轮迭代中,先执行E-step,使用当前的模型参数和前向后向算法计算每个状态和状态对的期望频率。
- 然后执行M-step,基于这些期望频率更新模型参数。
- 重复这个过程,直到参数收敛(即参数的变化小于某个阈值)或达到预设的最大迭代次数。
3.评估与解码:在训练完成后,可以使用前向后向算法来评估新的观测序列的似然性,以及使用维特比算法来解码最有可能的状态序列。
(四)、特点
- 概率框架:HMM提供了一个概率框架来处理不确定性和随机性。
- 顺序依赖性:HMM能够建模序列数据中的状态顺序依赖性。
- 隐含状态:HMM特别适合处理那些有未观察状态影响观测结果的情况。
(五)、适用场景
HMM广泛应用于多个领域,包括:
- 语音识别:建模声音波形与发音状态之间的关系。
- 自然语言处理:词性标注、命名实体识别等。
- 生物信息学:DNA序列分析,蛋白质结构预测。
- 时间序列分析:金融市场预测,气象学等。
(六)、扩展
HMM有多种变体和扩展,例如:
- 耦合HMMs:多个HMM相互作用,用于多通道或多序列数据。
- 层次HMMs:允许状态嵌套,用于处理具有层次结构的数据。
- 连续观测HMMs:当观测不是离散符号而是连续值时,使用高斯混合模型等来建模观测概率。
- 部分可观测马尔科夫决策过程(POMDP):HMM的一个扩展,加入了决策和奖励机制,适用于需要决策制定的场景。
三、总结
通过以上训练过程,HMM能够学习到能够最好地解释观测数据的参数设置,从而可以用于识别模式、预测未来状态或解码隐藏状态序列。这种训练方法在处理序列数据和时间序列分析中特别有效,尤其是在语音识别、自然语言处理和生物信息学等领域。