<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>沙克 &#187; Computer Vision</title>
	<atom:link href="http://www.suzker.cn/tag/computer-vision/feed" rel="self" type="application/rss+xml" />
	<link>http://www.suzker.cn</link>
	<description>可怜之人必有可恨之处</description>
	<lastBuildDate>Sun, 31 Jul 2011 15:40:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>HMM中的维特比解码(Viterbi Agorithm)</title>
		<link>http://www.suzker.cn/computervision/viterbi-algorithm-for-hmm.html</link>
		<comments>http://www.suzker.cn/computervision/viterbi-algorithm-for-hmm.html#comments</comments>
		<pubDate>Fri, 27 Aug 2010 03:40:14 +0000</pubDate>
		<dc:creator>Suz</dc:creator>
				<category><![CDATA[计算机视觉]]></category>
		<category><![CDATA[AGORITHM]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[HMM]]></category>
		<category><![CDATA[VITERBI]]></category>
		<category><![CDATA[基础知识]]></category>

		<guid isPermaLink="false">http://www.suzker.cn/?p=393</guid>
		<description><![CDATA[本文讨论了HMM中另一种基本算法，维特比算法。以下为部分摘要，点击阅读更多：

...在之前的文章中，已经分别介绍了隐马科夫模型（HMM）的概况以及HMM中广泛应用的一种解决估值问题的算法：前向法(Forward Algorithm)。在本文将介绍解决HMM另外一个问题，解码问题，的算法：维特比算法(Viterbi Agorithm)，也属于HMM中的一个基本算法，而且算法本身很像Forward的这个概念，理解起来相对容易。...

...可以说viterbi算法至此完成了两个任务：1、利用递归方法避开了重复运算提高了效率。2、在结果中找出了“局部最优解”，并将这些最优解拼成一个完整的解。...

...我们需要特别注意到，当前我们面临的问题被称为解码问题，也称为寻找最优解问题。对于最优解，还分为全局最优解与局部最优解(Partial best paths)。上面提到的穷举法就属于全局最优解，因为它已经在全局范围内枚举了所有可能，一个不漏。而刚刚提到的维特比算法则属于寻找局部最优解的方法。... <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.suzker.cn/computervision/viterbi-algorithm-for-hmm.html">HMM中的维特比解码(Viterbi Agorithm)</a></span>]]></description>
			<content:encoded><![CDATA[<blockquote><p>在之前的文章中，已经分别介绍了<a href="http://www.suzker.cn/computervision/the-hmm-model.html" target="_blank">隐马科夫模型（HMM）</a>的概况以及HMM中广泛应用的一种解决估值问题的算法：<a href="http://www.suzker.cn/computervision/forward-agorithm-for-hmm.html" target="_blank">前向法(Forward Algorithm)</a>。在本文将介绍解决HMM另外一个问题 &#8211; 解码问题 &#8211; 的算法：维特比算法(Viterbi Agorithm)，也属于HMM中的一个基本算法，而且算法本身很像Forward的这个概念，理解起来相对容易。</p>
<p>本文目录：</p>
<ul>
<li>Page 1: 前文提要</li>
<li>Page 2: 一般算法与高效维的特比算法</li>
<li>Page 3: 实例与伪代码</li>
<li>Page 4: 参考资料</li>
</ul>
</blockquote>
<blockquote>
<p style="text-align: right;"><em>Last Modified：2010/12/25 16:57 All rights reserved.</em></p>
</blockquote>
<h2>前文提要：</h2>
<p>在之前的HMM文章中提到，HMM模型将涉及到3个问题：</p>
<ol>
<li>给定一个观察到得序列O，及参数<img title="\lambda" src="http://s.wordpress.com/latex.php?latex=%5Clambda&amp;bg=ffffff&amp;fg=000000&amp;s=0" alt="\lambda" />，求出<img title="P(O|\lambda)" src="http://s.wordpress.com/latex.php?latex=P%28O%7C%5Clambda%29&amp;bg=ffffff&amp;fg=000000&amp;s=0" alt="P(O|\lambda)" />，即发生这种观察序列的可能性。对应上面例子中，即是我给定一个最终确定了的水果序列S，求我选到这样的水果的可能性。</li>
<li><span style="color: #0000ff;">给定一个观察到的序列O，及参数<img title="\lambda" src="http://s.wordpress.com/latex.php?latex=%5Clambda&amp;bg=ffffff&amp;fg=000000&amp;s=0" alt="\lambda" />，求出最有可能产生这种序列的状态序列S。对应上面例子中，即我给定一个最终确定了的水果序列S，求我最可能的选水果筐路径。</span></li>
<li>同样给定一个观察得到的序列O，求如何调整参数<img title="\lambda" src="http://s.wordpress.com/latex.php?latex=%5Clambda&amp;bg=ffffff&amp;fg=000000&amp;s=0" alt="\lambda" />，使<img title="P(O|\lambda)" src="http://s.wordpress.com/latex.php?latex=P%28O%7C%5Clambda%29&amp;bg=ffffff&amp;fg=000000&amp;s=0" alt="P(O|\lambda)" />最大。</li>
</ol>
<p>对于问题1，我们已经讨论过Forward Algorithm并成功高效地解决了这个问题。接下来我们将讨论解决平时称为“解码问题”的问题二的解决方法。</p>
<p>在问题二中，对应选水果的例子，我们需要解决的问题是，当我们知道最后选出来的水果序列，以及框选水果(Emission Matrix)、框转框(Transition Matrix)这两个概率，求可能选出这种水果序列的框路径。</p>
<p>* 在讨论这个问题之前，可以先复习一下之前的前向法，因为整体思路跟前向法类似。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suzker.cn/computervision/viterbi-algorithm-for-hmm.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HMM中的前向法(Forward Agorithm)</title>
		<link>http://www.suzker.cn/computervision/forward-agorithm-for-hmm.html</link>
		<comments>http://www.suzker.cn/computervision/forward-agorithm-for-hmm.html#comments</comments>
		<pubDate>Fri, 09 Jul 2010 09:55:15 +0000</pubDate>
		<dc:creator>Suz</dc:creator>
				<category><![CDATA[计算机视觉]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[Forward Agorithm]]></category>
		<category><![CDATA[HMM]]></category>
		<category><![CDATA[基础知识]]></category>

		<guid isPermaLink="false">http://www.suzker.cn/?p=209</guid>
		<description><![CDATA[本文主要介绍隐马科夫模型(HMM)中的一个重要算法：前向法(Foward Algorithm)。将普通算法与前向法优化算法对比，详细分析其实现过程。以下是摘要，点击阅读更多：

...各位应该不难想象，最普通最直接的计算[latex]P(O&#124;\lambda)[/latex]的方法就是枚举所有可能的隐状态序列(S)，然后用Transition Matrix与Emission Matrix的数据，对每一个隐状态序列S求我们的目标观察序列O的一个概率。...

...我们在面对一种所谓的可以简化计算、加速计算的方法面前，应该首先考虑到底这种算法是如何简化？在哪一步发生了奇妙的变化？为什么这样可行？...

...记得在上一页提到的普通穷举算法中，对于所有的可能隐状态路径计算，其实都有很大部分的重复。比如，我要分别算(S1 > S2 > S1 > S3 > S2)这个路径与(S1 > S2 > S1 > S3 > S4)这个路径的概率时候，这两个路径的t<=4的那些状态(S1 > S2 > S1 > S3 >..)其实是相同的。我们的加速算法，切入点就是这里，去掉重复的地方使速度变快，复杂度降低。... <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.suzker.cn/computervision/forward-agorithm-for-hmm.html">HMM中的前向法(Forward Agorithm)</a></span>]]></description>
			<content:encoded><![CDATA[<blockquote><p>在假期的前几天颓废了好一阵之后，终于重新拾起未完成的事情。根据计划是按照HMM -&gt; MEM -&gt; CRF -&gt; hCRF 这个伟大目标前进的。HMM已经在之前写了一个<a href="http://www.suzker.cn/computervision/the-hmm-model.html" target="_blank">文章</a>(惊喜地发现在google里面搜“HMM模型”，它出现在了第一页 <img src='http://www.suzker.cn/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )，这里写的是HMM中，解决第一个问题，即估值问题的一个快速算法 &#8211; 前向法(Forward Agorithm)。过几天还会陆续完全弄懂、写好Viterbi与Baum-Welch算法。</p>
<p>本文目录：</p>
<ul>
<li>Page 1: 前文提要</li>
<li>Page 2: 普通的穷举算法</li>
<li>Page 3: 可行的替代算法 &#8211; 前向法</li>
<li>Page 4: 参考书目</li>
</ul>
</blockquote>
<blockquote style="text-align: right;"><address><span style="color: #888888;">Last Modified：2010/08/29 23:40 All rights reserved.</span></address>
</blockquote>
<h2>前文提要：</h2>
<p>在之前的HMM文章中提到，HMM模型将涉及到3个问题：</p>
<ol>
<li><span style="color: #0000ff;">给定一个观察到得序列O，及参数<img src='http://s.wordpress.com/latex.php?latex=%5Clambda&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda' title='\lambda' class='latex' />，求出<img src='http://s.wordpress.com/latex.php?latex=P%28O%7C%5Clambda%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='P(O|\lambda)' title='P(O|\lambda)' class='latex' />，即发生这种观察序列的可能性。对应上面例子中，即是我给定一个最终确定了的水果序列S，求我选到这样的水果的可能性。</span></li>
<li>给定一个观察到的序列O，及参数<img src='http://s.wordpress.com/latex.php?latex=%5Clambda&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda' title='\lambda' class='latex' />，求出最有可能产生这种序列的状态序列S。对应上面例子中，即我给定一个最终确定了的水果序列S，求我最可能的选水果筐路径。</li>
<li>同样给定一个观察得到的序列O，求如何调整参数<img src='http://s.wordpress.com/latex.php?latex=%5Clambda&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda' title='\lambda' class='latex' />，使<img src='http://s.wordpress.com/latex.php?latex=P%28O%7C%5Clambda%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='P(O|\lambda)' title='P(O|\lambda)' class='latex' />最大。</li>
</ol>
<p>这里讨论的将会是第一个问题，即所谓的估值问题。</p>
<p>再次，在问题一中我们的目标是求出可见序列O在参数集<img src='http://s.wordpress.com/latex.php?latex=%5Clambda&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda' title='\lambda' class='latex' />(包含Transition Matrix、Emission Matrix、N、M、Pi)中的发生概率，即求<img src='http://s.wordpress.com/latex.php?latex=P%28O%7C%5Clambda%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='P(O|\lambda)' title='P(O|\lambda)' class='latex' />，请着眼于这个概率，以下将以<img src='http://s.wordpress.com/latex.php?latex=P%28O%7C%5Clambda%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='P(O|\lambda)' title='P(O|\lambda)' class='latex' />作为主角。</p>
<p><span style="color: #ff0000;"><strong>(请留意换页&#8230; Next Page »)</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.suzker.cn/computervision/forward-agorithm-for-hmm.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>隐马科夫(HMM)模型</title>
		<link>http://www.suzker.cn/computervision/the-hmm-model.html</link>
		<comments>http://www.suzker.cn/computervision/the-hmm-model.html#comments</comments>
		<pubDate>Sun, 16 May 2010 06:30:01 +0000</pubDate>
		<dc:creator>Suz</dc:creator>
				<category><![CDATA[计算机视觉]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Hidden-state variable]]></category>
		<category><![CDATA[HMM]]></category>
		<category><![CDATA[Multi-Class]]></category>
		<category><![CDATA[Multi-Instance]]></category>
		<category><![CDATA[基础知识]]></category>

		<guid isPermaLink="false">http://www.suzker.cn/?p=24</guid>
		<description><![CDATA[本文介绍非常基础、通用的一个分类模型：隐马科夫模型（HMM），尽量以平实的语言，分别通过实例、图片来说明HMM的过程，并简述了HMM的三个问题和解决方法。以下为文章摘要，点击阅读更多：

...隐马科夫(HMM)模型全称：Hidden Markov model，是一种统计学的模型，是马科夫链与无法观察的状态的结合。在这里，我假设看这篇文章的人已经对马科夫过程(Markov Process)有了初步的认识，对概率论有过初步的学习。...

...那么这个HMM模型，隐马模型到底“隐”在哪里呢？其实解释起来也不难，这里...t-1, t, t+1...各个时刻的x状态是一个随机过程，试想一下，你总不能确定一个随机过程中的每个状态吧？所以，上图的x状态对于我们来说，在没有到达t时间之前，他仍然是未知的，隐藏的（Hidden）。这些x被称为“unobserved state”。...

...HMM过程是，我从任意一个筐开始选水果，我去到那一个框那里，随机拿起里面的一个水果，然后把这个水果记录下来，然后再随机地去另外一个筐里面选水果，不断地重复这个过程，知道我选够了L个水果，我就停止。... <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.suzker.cn/computervision/the-hmm-model.html">隐马科夫(HMM)模型</a></span>]]></description>
			<content:encoded><![CDATA[<blockquote><p>HMM已经有很多人研究过了，而我要研究它的目的只是为了那个让我我纠结多天的Hidden-state Variable。说起这个Hidden-state Variable，真是惭愧，应该是我很笨或者很懒的问题，从JMLMIL理论开始，我就一直开始搞不懂Hidden-state Variable究竟是怎么样来的，虽然我知道它的物理意义和怎么使用。可能很多人看论文都会有这样的感觉吧，即使当你清楚了某个东西的框架，也认同这个框架，但是当你细细深入并打算实现的时候，才会发现现实跟框架是有很多差距的啊！</p>
<p>不好意思，扯远了。我从JMLMIL开始追寻这个Hidden-state variable，到HCRF，到CRF，到HMM。而如今对HMM的理解算是对这个Hidden-state Variable的理解的一个开始吧。当我完全搞懂这个Hidden的东西之后，我会详细的把这些东西都串起来。现在，先看看HMM吧。</p></blockquote>
<p>隐马科夫(HMM)模型全称：Hidden Markov model，是一种统计学的模型，是马科夫链与无法观察的状态的结合。在这里，我假设看这篇文章的人已经对马科夫过程(<a href="http://en.wikipedia.org/wiki/Markov_process" target="_blank">Markov Process</a>)有了初步的认识，对概率论有过初步的学习。</p>
<p>用一句话描述马科夫过程，就是后一个事件发生的概率只与当前时间发生的概率相关。在下面的图里面，我们可以清楚看到”马科夫过程”这一属性，注箭头意x(t-1), x(t), x(t+1)之间的的指向，就用这个箭头表示他们之间的关系，这个箭头是单向的，对于t这一个时间的状态x(t)，只有t-1时刻的状态x(t-1)指向它，说明影响t时刻的状态x(t)的，只有t-1时刻的状态x(t-1)。</p>
<div id="attachment_74" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.suzker.cn/wp-content/uploads/2010/05/500px-Hmm_temporal_bayesian_net.svg_.png"><img class="size-full wp-image-74" title="500px-Hmm_temporal_bayesian_net.svg" src="http://www.suzker.cn/wp-content/uploads/2010/05/500px-Hmm_temporal_bayesian_net.svg_.png" alt="Hmm temporal bayesian net" width="500" height="128" /></a><p class="wp-caption-text">Hmm temporal bayesian net</p></div>
<p>那么这个HMM模型，隐马模型到底“隐”在哪里呢？其实解释起来也不难，这里&#8230;t-1, t, t+1&#8230;各个时刻的x状态是一个随机过程，试想一下，你总不能确定一个随机过程中的每个状态吧？所以，上图的x状态对于我们来说，在没有到达t时间之前，他仍然是未知的，隐藏的（Hidden）。这些x被称为“unobserved state”。</p>
<p><strong><span style="color: #ff0000;">Turn to the next page for more.</span></strong></p>
<p><span id="more-24"></span></p>
<p>了解了这个“隐”的概念之后，我们可以深入HMM的一个整体结构和过程了。</p>
<p>为了更好理解，我引用一个实例来说明HMM的结构和过程。</p>
<p>假设我们有5个筐装着很多不同水果，水果的种类有6种（下图中用不同颜色的图案表示）。</p>
<div id="attachment_25" class="wp-caption aligncenter" style="width: 275px"><a rel="attachment wp-att-25" href="http://www.suzker.cn/computervision/the-hmm-model.html/attachment/hmm_1"><img class="size-medium wp-image-25" title="hmm_1" src="http://www.suzker.cn/wp-content/uploads/2010/05/hmm_1-265x300.png" alt="HMM模型的实例_1" width="265" height="300" /></a><p class="wp-caption-text">HMM模型的实例_01</p></div>
<p>HMM过程是，我从任意一个筐开始选水果，我去到那一个框那里，随机拿起里面的一个水果，然后把这个水果记录下来，然后再随机地去另外一个筐里面选水果，不断地重复这个过程，知道我选够了L个水果，我就停止。</p>
<p>在我选水果的过程中，我将遵循以下准则：</p>
<ul>
<li>我从某一个框选完水果后移到另外一个框的概率用一个 Transition-probabilty Matrix来表示。</li>
</ul>
<ul>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="97" valign="top">筐     |     筐</td>
<td width="94" valign="top">1</td>
<td width="94" valign="top">2</td>
<td width="94" valign="top">3</td>
<td width="94" valign="top">4</td>
<td width="94" valign="top">5</td>
</tr>
<tr>
<td width="97" valign="top">1</td>
<td width="94" valign="top">0.5</td>
<td width="94" valign="top">0.1</td>
<td width="94" valign="top">0.2</td>
<td width="94" valign="top">0.2</td>
<td width="94" valign="top">0</td>
</tr>
<tr>
<td width="97" valign="top">2</td>
<td width="94" valign="top">0.3</td>
<td width="94" valign="top">0.4</td>
<td width="94" valign="top">0.1</td>
<td width="94" valign="top">0.1</td>
<td width="94" valign="top">0.1</td>
</tr>
<tr>
<td width="97" valign="top">3</td>
<td width="94" valign="top">0.1</td>
<td width="94" valign="top">0.5</td>
<td width="94" valign="top">0.1</td>
<td width="94" valign="top">0</td>
<td width="94" valign="top">0.3</td>
</tr>
<tr>
<td width="97" valign="top">4</td>
<td width="94" valign="top">0.3</td>
<td width="94" valign="top">0.3</td>
<td width="94" valign="top">0.2</td>
<td width="94" valign="top">0.1</td>
<td width="94" valign="top">0.1</td>
</tr>
<tr>
<td width="97" valign="top">5</td>
<td width="94" valign="top">0</td>
<td width="94" valign="top">0.1</td>
<td width="94" valign="top">0.2</td>
<td width="94" valign="top">0.1</td>
<td width="94" valign="top">0.6</td>
</tr>
</tbody>
</table>
<li>而我从第i个框中选6仲水果中的概率也用一定的概率分布表示，称为这个框中水果的概率分布(Emission-probability Matrix)。（以下概率值省略）</li>
</ul>
<ul>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="83" valign="top">筐   |   水果</td>
<td width="81" valign="top">1</td>
<td width="81" valign="top">2</td>
<td width="81" valign="top">3</td>
<td width="81" valign="top">4</td>
<td width="81" valign="top">5</td>
<td width="78" valign="top">6</td>
</tr>
<tr>
<td width="83" valign="top">1</td>
<td width="81" valign="top">&#8230;</td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="78" valign="top"></td>
</tr>
<tr>
<td width="83" valign="top">2</td>
<td width="81" valign="top"></td>
<td width="81" valign="top">&#8230;</td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="78" valign="top"></td>
</tr>
<tr>
<td width="83" valign="top">3</td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top">&#8230;.</td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="78" valign="top"></td>
</tr>
<tr>
<td width="83" valign="top">4</td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top">&#8230;</td>
<td width="81" valign="top"></td>
<td width="78" valign="top"></td>
</tr>
<tr>
<td width="83" valign="top">5</td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top"></td>
<td width="81" valign="top">&#8230;</td>
<td width="78" valign="top">&#8230;.</td>
</tr>
</tbody>
</table>
<li>我们还必须牢记一点，因为下一次转移到哪一个框是不确定的，所以当我还没选够水果的之前，你还是不会准确得知我的路径的。我选的水果你也将不会准确得知。</li>
</ul>
<p>实例的一个结果是这样的： 我选完水果之后，发现我的路径是[筐2&gt;筐1&gt;筐1&gt;筐5&gt;筐2&gt;筐3&gt;筐4]，即我选了7个水果，L=7。而我最终选出来的水果依次是[f2, f1, f3, f5, f5, f2, f4]。</p>
<p>之前已经假设过大家已经了解了一点Markov process和随机过程，所以这里你们应该会很自然地想到其实这个HMM就是这两个过程的结合：</p>
<p style="text-align: center;"><span style="text-decoration: underline;">[Markov process：选框] &gt; [普通随机过程：选水果]；</span></p>
<p style="text-align: left;">假设我们的模型参数是 lambda(N, M, pi, A, B);</p>
<ul>
<li>L: 将会观察的长度。对应上面例子中的我将要选取的水果个数。</li>
<li>N: 状态数目。对应上面例子中，水果筐的个数。</li>
<li>M:每个状态可能的观察值数。对应上面例子中，水果的种类。</li>
<li>pi: 初始状态空间的分布。对应上面例子中，哪个水果筐将会成为我选的第一个筐的概率。</li>
<li>A: 代表状态转移矩阵(Transition-probability matrix)。对应上面例子中，我从某个筐移到另外一个筐的概率。</li>
<li>B: 代表观察值的概率分布(Emission-probability matrix)。对应上面例子中，某个筐中，水果的分布概率。</li>
</ul>
<p>状态的序列标记为S。对应上面例子中，我最终选筐的移动路径[筐2&gt;筐1&gt;筐1&gt;筐5&gt;筐2&gt;筐3&gt;筐4]。</p>
<p>观察到的序列标记为O。对应上面例子中，我最终选出来的水果序列[f2&gt; f1&gt; f3&gt; f5&gt; f5&gt; f2&gt; f4]。</p>
<p>HMM将涉及以下三个问题：</p>
<ol>
<li>给定一个观察到得序列O，及参数lambda，求出P(O|lambda)，即发生这种观察序列的可能性。对应上面例子中，即是我给定一个最终确定了的水果序列S，求我选到这样的水果的可能性。</li>
<li>给定一个观察到的序列O，及参数lambda，求出最有可能产生这种序列的状态序列S。对应上面例子中，即我给定一个最终确定了的水果序列S，求我最可能的选水果筐路径。</li>
<li>同样给定一个观察得到的序列O，求如何调整参数lambda，使P(O|lambda)最大。</li>
</ol>
<p>由于涉及具体算法和论证，这里不再详述这三个问题的解决算法。只简单地标出：</p>
<ol>
<li>问题一的一种有效解决算法是前向法(<a href="http://en.wikipedia.org/wiki/Forward_algorithm" target="_blank">forward algorithm</a>)，是一种<a href="http://en.wikipedia.org/wiki/Dynamic_programming" target="_blank">动态规划</a>的方法，用来减少程序运算的复杂度。</li>
<li>问题二的一种有效解决算法是维特比算法(<a href="http://en.wikipedia.org/wiki/Viterbi_algorithm" target="_blank">Viterbi algorithm</a>)，也是一种动态的规划方法，用来找出最可能的状态路径。</li>
<li>问题三的一种有效解决算法是<a href="http://en.wikipedia.org/wiki/Baum-Welch_algorithm" target="_blank">Baum-Welch</a>算法，通过给定一个O，不断估算一个适合的lambda参数，使发生这个O的概率P(O|lambda)最大。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.suzker.cn/computervision/the-hmm-model.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

