因为看一篇题为 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问题的高复杂度,才出现了前向、后向算法,而那些算法的目的只是在多项式复杂度内进行求解。

传说中的Markov"不过如此”的更多相关文章

  1. Block Markov Coding & Decoding

    Block Markov coding在一系列block上进行.在除了第一个和最后一个block上,都发送一个新消息.但是,每个block上发送的码字不仅取决于新的信息,也跟之前的一个或多个block ...

  2. [综]隐马尔可夫模型Hidden Markov Model (HMM)

    http://www.zhihu.com/question/20962240 Yang Eninala杜克大学 生物化学博士 线性代数 收录于 编辑推荐 •2216 人赞同 ×××××11月22日已更 ...

  3. Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫。 马尔可夫链,的原理attilax总结

    Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫. 马尔可夫链,的原理attilax总结 1. 马尔可夫过程1 1.1. 马尔科夫的应用 生成一篇"看起来像文章的 ...

  4. Superpixel Based RGB-D Image Segmentation Using Markov Random Field——阅读笔记

    1.基本信息 题目:使用马尔科夫场实现基于超像素的RGB-D图像分割: 作者所属:Ferdowsi University of Mashhad(Iron) 发表:2015 International ...

  5. PRML读书会第十三章 Sequential Data(Hidden Markov Models,HMM)

    主讲人 张巍 (新浪微博: @张巍_ISCAS) 软件所-张巍<zh3f@qq.com> 19:01:27 我们开始吧,十三章是关于序列数据,现实中很多数据是有前后关系的,例如语音或者DN ...

  6. PRML读书会第十一章 Sampling Methods(MCMC, Markov Chain Monte Carlo,细致平稳条件,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hamiltonian MCMC)

    主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:05:00  今天的主要内容:Markov Chain Monte Carlo,M ...

  7. 隐马尔可夫模型(Hidden Markov Model,HMM)

    介绍 崔晓源 翻译 我们通常都习惯寻找一个事物在一段时间里的变化规律.在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等.一个最适用的例子就是天气的预测. 首 ...

  8. Markov Random Fields

    We have seen that directed graphical models specify a factorization of the joint distribution over a ...

  9. (转)Markov Chain Monte Carlo

    Nice R Code Punning code better since 2013 RSS Blog Archives Guides Modules About Markov Chain Monte ...

随机推荐

  1. android APP是否需要缓存?+简单架构

    问题的由来 昨天,当我写完我的第一篇博客之后,我便百无聊赖的玩起了手机!当我打开Google自带的一些app的时候,发现他们直接叫我连接网络,并没有缓存上次从网络获取的数据.这就让我感到很奇怪!于是我 ...

  2. 【学习笔记】Mac OS X系统介绍

    一.Dock *相当于Windows的快速启动栏,用来存放常用软件的图标 *单击软件图标即可打开相应的软件 *右击软件图标还有其他菜单选项:比如退出软件 *图标下边的黑点代表程序正在运行中,并没有完全 ...

  3. python基础:自定义函数

    一.背景 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下 ...

  4. java静态代码块、初始化块和构造方法的执行顺序

    分析:当执行new Child()时,它首先去看父类里面有没有静态代码块,如果有,它先去执行父类里面静态代码块里面的内容,当父类的静态代码块里面的内容执行完毕之后,接着去执行子类(自己这个类)里面的静 ...

  5. echarts标准饼图(一)——基本配置demo

    echarts标准饼图解读共分为四部分, 一.基本配置demo 二.标题(title)配置 三.提示框(tooltip)配置 四.图例(legend)配置 五.系列列表(series )配置 下面是一 ...

  6. 卸载Linux内置的AMP软件

    卸载Linux内置的AMP软件 在安装Linux软件的LAMP环境时,必须有一个前提:必须要完全卸载掉系统内置的AMP软件. 1.卸载httpd软件(Apache) 如果在卸载软件时出现依赖关系,我们 ...

  7. 反射-Reflect

    1.得到一份Class(同一个类在JVM中只有一份字节码) 三种方式:类名.class, Class.forName("全限定名");, 对象.getClass(); 基本类型 i ...

  8. SilverLight命名空间详解-新手入门

    1.核心命名空间 1.xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"是silverlight的核 ...

  9. C++虐恋:MBCS安装失败导致的四天误工

    情况描述:接收远程队友的C++代码,基于vc120工具集(VS2013),而我的机器上是VS2015,需要安装VS2013(只选MFC,除主程序与MFC外其余的组件全部卸掉).然后开始编译,提示 MS ...

  10. <解说linux下proc文件系统>

    proc文件系统的作用是访问系统内核信息 proc不是一个真实的文件系统,它不占系统的外存空间,只是以文件的形式为用户访问linux内核数据提供接口,因为系统内核总是动态的变化,所以我们所捕捉到的也只 ...