HMM-隐马尔可夫模型 ################## * Hidden Markov Model * 是一种统计模型,用于描述一个含有隐含未知参数的马尔可夫过程。 * 在隐马尔可夫模型中,系统的状态是不可见的,而我们只能观察到由这些隐藏状态生成的可观测的数据序列。 * 其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。 * 该模型假设系统中的状态具有马尔可夫性质,即下一个状态仅依赖于当前状态,并且观测到的数据仅依赖于当前状态。 因此,HMM 可以用来建模许多具有时间序列特征的现实问题,例如语音识别、自然语言处理、生物信息学等。 HMM 包括状态转移概率、观测概率以及初始状态概率这三个要素。 基本概念 ======== * 状态(States): HMM 中的狀態可以是离散的也可以是连续的。离散状态指的是状态的数量是有限的,例如天气晴朗、阴天或下雨。连续状态指的是状态的数量是无限的,例如温度或湿度。 * 观测(Observations): 与状态相对应的是观测,它是我们能够直接观察到的数据。每个状态都有一个关联的观测概率分布,用来描述在特定状态下观测到某个数据的可能性。在天气预测的例子中,观测可以是“晴”、“阴”或“雨”。 * 转移概率(Transition Probabilities): 转移概率指的是从一个状态转移到另一个状态的概率。例如,从晴朗天气转移到阴天天气的概率。 * 发射/观测概率(Emission Probabilities): 描述在特定状态下观测到某个数据的概率。这些概率通常表示为发射矩阵,其中的每个元素表示在特定状态下观测到某个数据的概率。例如,在晴朗天气下观察到太阳的概率。 * 初始状态概率(Initial State Probabilities): 描述系统在初始时刻处于每个状态的概率。这些概率可以根据先验知识或数据进行估计。 通用 ==== 应用:: 1. 语音识别:HMM 可以用来识别语音中的音素序列 2. 自然语言处理:HMM 可以用来识别词性序列 3. 生物信息学:HMM 可以用来识别基因序列中的蛋白质编码区域 4. 金融:HMM 可以用来预测股票价格走势 优点:: HMM 是一种简单而有效的模型。 HMM 可以很容易地扩展到多维数据。 HMM 已经被广泛应用于各种领域。 缺点:: HMM 对噪声敏感。 HMM 的训练过程可能很复杂。 HMM 的假设可能不适用于所有问题。 示例-今天是晴天,明天的天气是多云的概率 ====================================== 转移概率矩阵:: 晴天 多云 雨天 晴天 0.7 0.2 0.1 多云 0.3 0.4 0.3 雨天 0.2 0.3 0.5 # 表示如果今天是晴天, 明天是晴天的概率是 0.7, 明天是多云的概率是 0.2, 明天是雨天的概率是 0.1 观测概率矩阵:: 晴 多云 雨 晴天 0.6 0.3 0.1 多云 0.3 0.4 0.3 雨天 0.1 0.2 0.7 # 表示如果今天是晴天, 观测到晴天的概率是 0.6, 观测到多云的概率是 0.3, 观测到雨的概率是 0.1 初始状态概率:: 晴天 0.6 多云 0.3 雨天 0.1 那么:今天是晴天,明天的天气是多云的概率是多少:: 1. 计算在今天是晴天的情况下,明天各种天气的概率分布: (根据状态转移概率矩阵和初始状态概率) P(明天是晴天|今天是晴天) = 0.7 * 0.6 = 0.42 P(明天是多云|今天是晴天) = 0.2 * 0.6 = 0.12 P(明天是雨天|今天是晴天) = 0.1 * 0.6 = 0.06 2. 计算观测概率,即在各种天气状态下观测到多云的概率: (根据观测概率矩阵) P(观测到多云|明天是晴天) = 0.3 P(观测到多云|明天是多云) = 0.4 P(观测到多云|明天是雨天) = 0.2 3. 将这些概率加权求和,得到明天观测到多云的总概率: P(今天是晴天,明天是多云,观测到多云) = P(明天是晴天|今天是晴天) * P(观测到多云|明天是晴天) + P(明天是多云|今天是晴天) * P(观测到多云|明天是多云) + P(明天是雨天|今天是晴天) * P(观测到多云|明天是雨天) = 0.42 * 0.3 + 0.12 * 0.4 + 0.06 * 0.2 = 0.126 + 0.048 + 0.012 = 0.186