• 传说中的Markov"不过如此”


      因为看一篇题为 Passive Measurement of Interference in WiFi Network with Application in Misbehavior Detection的文章,学习了马尔科夫模型。之前一直主观觉得马尔科夫模型太难,看过之后其实不过如此,恰恰相反,这个模型本身还简化了原本复杂的概率网络。《模式识别》对马尔科夫和隐马尔可夫介绍得非常详尽易懂。马尔科夫模型是一个非常useful的工具。

    几个重要概念:

    马尔可夫假设:在一个随着时间观测到的对象序列中,T时刻观测到某对象的概率只和T-1时观测到的对象有关系。

    马尔科夫模型的表示:

      S:状态转换图中的状态集合

      A:状态转移概率矩阵,aij表示从状态i迁移到状态j的概率

      B:bij表示在状态i上观测到对象vj的概率

      p:初始状态上观测到各值的概率,是一个向量

    马尔科夫的三个核心问题:

      估值问题(evaluation): 已知markov模型,和序列V,求观测到该序列的概率

      解码问题(decoding):已知模型和t时刻观测到的Vt,求最可能观测到的序列

      学习问题(Learning):已知状态集合S和观测序列V,求模型的各参数A,B,p

    下面是evaluation代码(解码过程类似),前向算法

    %% HMM model: A, B, initialstate, finalstate, 
    %state transition propability
    A=[1    0   0   0; 
       0.2  0.3 0.1 0.4;
       0.2  0.5 0.2 0.1;
       0.8  0.1 0.0 0.1
       ];
    %b_jkv(t): v(t)'s occupation probability when the current state is w_j in time t
    B=[1    0   0   0   0;
       0    0.3 0.4 0.1 0.2;
       0    0.1 0.1 0.7 0.1;
       0    0.5 0.2 0.1 0.2
        ];
    
    final_state=1; %the final state
    init_state=2; %the initial state
    
    
    %% observed sequence
    V=[2,4,3,1]; %visable sequence, v1 is the empty visable symbol.
    % # of states
    c=size(A);
    % # of time slots
    T=length(V);
    
    %% HMM forward algorithm : for evaluation problem of HMM: give a HMM model, calculate P(V)
    a=zeros(c, T);
    for t=1:T
            for j=1:c
                if t==1
                    a(j, t)=1*A(init_state, j)*B(j, V(t));
                else
                    sum=0;
                    for i=1:c
                        sum=sum+a(i, t-1)*A(i, j);
                    end
                    a(j, t) = B(j, V(t))*sum;
                end
            end
    end
    a(1, T)

    学习问题:在MATLAB中集成了hmmestimate等函数,可以完成各种问题的解决。

    summary: markov其实大致分为两部分,一部分是理解状态图中的概率迁移,以及markov假设;一部分是具体实现,由于markov问题的高复杂度,才出现了前向、后向算法,而那些算法的目的只是在多项式复杂度内进行求解。

  • 相关阅读:
    QQ恢复解散后的群聊或删除后的好友的方法
    微软双屏手机Surface Duo曝新料
    利用Travis CI+GitHub实现持续集成和自动部署
    利用echarts展示旅行足迹
    03_K近邻算法
    02_感知机算法
    《面试官之你说我听》:简明的图解Redis RDB持久化、AOF持久化
    【绝对有收获】看看?必须告诉你为什么要使用MQ消息中间件(图解版)
    推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)
    利用window.performance.timing进行性能分析
  • 原文地址:https://www.cnblogs.com/zhchngzng/p/3384282.html
Copyright © 2020-2023  润新知