自动驾驶(六十)---------隐马尔可夫模型

         之前有介绍过贝叶斯网络,隐马尔可夫模型是一种动态贝叶斯网络,是一种时序的概率模型,描述由一个隐的马尔科夫链随机生成的不可观察的隐状态序列,在每一个隐状态下随机产生观察值构成一个可观测的随机序列,在语音识别、自然语言处理等领域有广泛应用。

        之所以要介绍隐马尔可夫模型,是因为自动驾驶中,时序是很重要但又没有得到足够重视的部分,无论是在预测、决策、控制中,上下文的连贯性应该是很自然的事,但是在目前比较流行的有限状态机中,时序是很难实现的,只能是设计很多中间状态,这无疑加重的系统的复杂性,如果能有效的考虑时序性,就能避免上面出现的问题。           

1. 结构信息:

        隐马尔可夫模型中的变量可以分为两组,第一组是状态变量{y1,y2,...,yn},其中yi∈y表示第i时刻的系统状态,通常假定状态变量是隐藏的、不可被观测的,因此状态变量也被称为隐变量。第二组是观测变量{x1,x2,..,xn},其中xi∈x 表示第i时刻的观测值,如下图所示:

                                           

       模型的图结构看起来有点类似于我们熟知的RNN模型,图中的箭头表示变量之间的依赖关系。在任意时刻,观测变量的取值仅依赖于状态变量,与其他状态变量和观测变量的取值无关。同时,t时刻的状态仅依赖于t−1时刻的状态,与其余状态无关,这就是所谓的马尔可夫链,基于上述的依赖关系,我们得到所有变量的联合概率分布为:

                           

2. 三要素:

      隐马尔可夫模型是由初始状态向量π、状态转移概率矩阵A和观测概率矩阵φ决定。初始状态向量:模型在初始时刻各状态出现的概率;状态转移概率矩阵:模型在各个状态间转换的概率;观测概率矩阵:模型根据当前状态获得各个观测值的概率;hmm就是考虑了观测概率,同时也考虑了状态之间的关系(即状态转移概率),相当于混合概率模型中考虑了混合系数间的关联。

3. 举例:

      一个世外高人也不能看天,就看出未来天气,但是民间流传一种说法:水藻状态与未来的天气有关系,我们能不能帮这个高人设计一种方法,通过水藻状态、关系假设、当下天气状态等知识..来预测天气呢?

      天气状态包括:晴天、多云、雨天,海藻湿润情况:干、稍干、潮湿、湿润。使用隐马尔科夫模型对过程建模,初始状态:当下天气,状态转移概率矩阵:由当下天气推测未来天气的概率,观测概率矩阵:由当下水藻的状态,推测未来天气,这也是隐马尔可夫模型的关键,观察到的状态序列与预测的状态有隐藏的概率关系。

          

       如图:有当下的天气观测值,当下的水藻观测值,天气的转移矩阵,和水藻状态和天气状态的关系,就可以预测未来的天气。当然我们并没有相关的数据,天气的转移矩阵和隐藏的观测矩阵,所以例子就举到这,整个过程我想已经解释清楚了,希望高人不要介意。

4.应用:

      上面已经介绍完了HMM,那到底HMM有什么应用呢?主要有以下几个方面:

      1. 给定一个确定的隐马尔科夫模型(参数λ={A,B,π}确定)和观察序列O,计算在该参数下观察序列的输出概率 。​由于观测序列的产生于隐状态是相关的,所以需要从隐状态的转移概率入手,通过发射概率间接的转化到观察序列。一般情况下该观测序列对应的隐状态序列有多个,把所有隐状态可能的序列结合观察序列求概率,再求和。

      2. 学习问题,已知观察序列O,估计模型参数λ={A,B,π},使得在该模型下观测序列的概率最大。假设在不知道模型参数的情况下,而我们有大量的观察序列,那么这些大量的观察序列一定不是偶然是这样,而不是那样的。从概率的角度来讲,是这样,而不是那样的原因就是,是这样的概率大于是那样的概率。如果有大量的观察序列,那么其中必然隐藏了模型的信息。

      3. 预测问题,已知模型的参数λ={A,B,π}和观察序列O,求解一条使得该观测序列概率最大的隐状态序列 。这样概率计算类似,只需要求最大的即可。

5. MDP

      马尔科夫决策过程(MDP),上面介绍了HMM,那这个模型如何应用到自动驾驶中呢?这就是MDP,他也是强化学习的基础。

     https://blog.csdn.net/liweibin1994/article/details/79076917

6. POMDP

发布了66 篇原创文章 · 获赞 115 · 访问量 82万+

猜你喜欢

转载自blog.csdn.net/zhouyy858/article/details/103738630