搜索

模式识别学习笔记(8)——隐马尔可夫模型

gecimao 发表于 2019-07-01 13:16 | 查看: | 回复:

  (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价值。平时,经常能接触到涉及的相关文章,一直没有仔细研究过,都是蜻蜓点水,因此,想花一点时间梳理下,加深理解,在此特别感谢 52nlp 对

  考虑下面交通灯的例子,一个序列可能是红-红/橙-绿-橙-红。这个序列可以画成一个状态机,不同的状态按照这个状态机互相交替,每一个状态都只依赖于前一个状态,如果当前的是绿灯,那么接下来就是橙灯,这是一个确定性系统,因此更容易理解和分析,只要这些状态转移都是已知的。但是在实际当中还存在许多不确定性系统。

  在日常生活当中,我们总是希望根据当前天气的情况来预测未来天气情况,和上面的交通灯的例子不同,我们不能依靠现有知识确定天气情况的转移,但是我们还是希望能得到一个天气的模式。一种办法就是假设这个模型的每个状态都只依赖于前一个的状态,这个假设被称为马尔科夫假设,这个假设可以极大简化这个问题。显然,这个假设也是一个非常糟糕的假设,导致很多重要的信息都丢失了。

  当涉及到天气的时候,马尔科夫假设描述为,假设如果我们知道之前一些天的天气信息,那么我们就能预测今天的天气。当然,这个例子也是有些不合实际的。但是,这样一个简化的系统可以有利于我们的分析,所以我们通常接受这样的假设,因为我们知道这样的系统能让我们获得一些有用的信息,尽管不是十分准确的。

  谈到HMM,首先简单介绍一下马尔可夫过程(Markov Process),它因俄罗斯数学家安德烈·马尔可夫而得名,代表数学中具有马尔可夫性质的离散随机过程。该过程中,每个状态的转移只依赖于之前的 n 个状态,这个过程被称为1个 n 阶的模型,其中 n 是影响转移状态的数目。最简单的马尔科夫过程就是一阶过程,每一个状态的转移只依赖于其之前的那一个状态。注意这和确定性系统不一样,因为这种转移是有概率的,而不是确定性的。

  马尔可夫链是随机变量X1, … ,Xn的一个数列。这些变量的范围,即他们所有可能取值的集合,被称为“状态空间”,而Xn的值则是在时间n的状态。如果Xn+1对于过去状态的条件概率分布仅是Xn的一个函数,则

  马尔可夫链的在很多应用中发挥了重要作用,例如,谷歌所使用的网页排序算法(PageRank)就是由马尔可夫链定义的。

  注意一个含有 N 个状态的一阶过程有 N2个状态转移。每一个转移的概率叫做状态转移概率(state transition probability),就是从一个状态转移到另一个状态的概率。这所有的 N2个概率可以用一个状态转移矩阵来表示,其表示形式如下:

  这个矩阵表示,如果昨天是晴天,那么今天有50%的可能是晴天,37.5%的概率是阴天,12.5%的概率会下雨,很明显,矩阵中每一行的和都是1。

  然而,当马尔科夫过程不够强大的时候,我们又该怎么办呢?在某些情况下,马尔科夫过程不足以描述我们希望发现的模式。

  例如,一个隐居的人可能不能直观的观察到天气的情况,但是民间传说告诉我们海藻的状态在某种概率上是和天气的情况相关的。在这种情况下我们有两个状态集合,一个可以观察到的状态集合(海藻的状态)和一个隐藏的状态(天气状况)。我们希望能找到一个算法可以根据海藻的状况和马尔科夫假设来预测天气的状况。

  一个更现实的例子是语音识别,我们听到的声音是声带、喉咙和一起其他的发音器官共同作用的结果。这些因素相互作用,共同决定了每一个单词的声音,而一个语音识别系统检测的声音(可以观察的状态)是人体内部各种物理变化(隐藏的状态、引申一个人真正想表达的意思)产生的。

  某些语音识别设备把内部的发音机制作为一个隐藏的状态序列,把最后的声音看成是一个和隐藏的状态序列十分相似的可以观察到的状态的序列。在这两个例子中,一个非常重要的地方是隐藏状态的数目和可以观察到的状态的数目可能是不一样的。在一个有3种状态的天气系统(sunny、cloudy、rainy)中,也许可以观察到4种潮湿程度的海藻(dry、dryish、damp、soggy)。在语音识别中,一个简单的发言也许只需要80个语素来描述,但是一个内部的发音机制可以产生不到80或者超过80种不同的声音。

  在上面的这些情况下,可以观察到的状态序列和隐藏的状态序列是概率相关的。于是我们可以将这种类型的过程建模为有一个隐藏的马尔科夫过程和一个与这个隐藏马尔科夫过程概率相关的并且可以观察到的状态集合。这就是本文重点介绍的隐马尔可夫模型。

  隐马尔可夫模型(Hidden Markov Model) 是一种统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析。下图是一个三个状态的隐马尔可夫模型状态转移图,其中x 表示隐含状态,y 表示可观察的输出,a 表示状态转换概率,b 表示输出概率。

  下图显示了天气的例子中隐藏的状态和可以观察到的状态之间的关系。我们假设隐藏的状态是一个简单的一阶马尔科夫过程,并且他们两两之间都可以相互转换。

  隐藏的状态和可观察到的状态之间有一种概率上的关系,也就是说某种隐藏状态 H 被认为是某个可以观察的状态 O1是有概率的,假设为 P(O1H)。如果可以观察的状态有3种,那么很显然P(O1H)+P(O2H)+ P(O3H) = 1。

  这样,我们也可以得到一个另一个矩阵,称为混淆矩阵(confusion matrix)。这个矩阵的内容是某个隐藏的状态被分别观察成几种不同的可以观察的状态的概率,在天气的例子中,这个矩阵如下图:

  上边的图示都强调了HMM的状态变迁。而下图则明确的表示出模型的演化,其中绿色的圆圈表示隐藏状态,紫色圆圈表示可观察到状态,箭头表示状态之间的依存概率,一个HMM可用一个5元组 { N, M, π,A,B} 表示,其中 N 表示隐藏状态的数量,我们要么知道确切的值,要么猜测该值,M 表示可观测状态的数量,可以通过训练集获得, π={πi} 为初始状态概率,A={aij} 为隐藏状态的转移矩阵Pr(xt(i)  xt-1(j)),B={bik} 表示某个时刻因隐藏状态而可观察的状态的概率,即混淆矩阵,Pr(ot(i)  xt(j))。在状态转移矩阵和混淆矩阵中的每个概率都是时间无关的,即当系统演化时,这些矩阵并不随时间改变。对于一个 N 和 M 固定的HMM来说,用 λ={ π, A, B} 表示HMM参数。

  在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。

  假设我们已经有一个特定的隐马尔科夫模型 λ和一个可观察状态序列集。我们也许想知道在所有可能的隐藏状态序列下,给定的可观察状态序列的概率。当给定如下一个隐藏状态序列:

  例如,我们也许有一个海藻的“Summer”模型和一个“Winter”模型,因为海藻在夏天和冬天的状态应该是不同的,我们希望根据一个可观察状态(海藻的潮湿与否)序列来判断现在是夏天还是冬天。

  我们可以使用前向算法来计算在某个特定的HMM下一个可观察状态序列的概率,然后据此找到最可能的模型。

  这种类型的应用通常出现在语音设别中,通常我们会使用很多HMM,每一个针对一个特别的单词。一个可观察状态的序列是从一个可以听到的单词向前得到的,然后这个单词就可以通过找到满足这个可观察状态序列的最大概率的HMM来识别。

  给定一个HMM,我们想计算出某个可观察序列的概率。考虑天气的例子,我们知道一个描述天气和海藻状态的HMM,而且我们还有一个海藻状态的序列。假设这个状态中的某三天是(dry,damp,soggy),在这三天中的每一天,天气都可能是晴朗,多云或者下雨,我们可以用下图来描述观察序列和隐藏序列:

  在这个图中的每一列表示天气的状态可能,并且每个状态都指向相邻的列的每个状态,每个状态转换在状态转移矩阵中都有一个概率。每一列的下面是当天的可观察的海藻的状态,在每种状态下出现这种可观察状态的概率是由混淆矩阵给出的。

  很显然,这种计算的效率非常低,尤其是当模型中的状态非常多或者序列很长的时候。事实上,我们可以利用概率不随时间变化这个假设来降低时间的开销。

  我们可以考虑给定HMM的情况下,递归的计算一个可观察序列的概率。我们可以首先定义一个部分概率,表示达到某个中间状态的概率。接下来我们将看到这些部分概率是如何 在time=1 和 time = n (n 1) 的时候计算的。

  我们可以通过计算到达某个状态的所有路径的概率和来计算到达某个中间状态的概率。比如说,t=2时刻,cloudy的概率用三条路径的概率之和来表示:

  我们用 αt(j) 来表示在 t 时刻是状态 j 的概率,αt(j)=Pr(观察状态 隐藏状态 j ) x Pr(t 时刻到达状态 j 的所有路径)。

  最后一个观察状态的部分概率就表示了整个序列最后达到某个状态的所有可能的路径的概率和,比如说在这个例子中,最后一列的部分状态是通过下列路径计算得到的:

  因为最后一列的部分概率是所有可能的路径的概率和,所以就是这个观察序列在给定HMM下的概率了。

  当 t=1 的时候,没有路径到某个状态,所以这里是初始概率,Pr(状态 j t=0) = π(状态 j ),这样我们就可以计算 t=1 时候的部分概率为:

  因为在初始的时候,状态 j 的概率不仅和这个状态本身相关,还和观察状态有关,所以这里用到了混淆矩阵的值,k1表示第一个观察状态,bjk1表示隐藏状态是 j,但是观察成 k1的概率。

  还是看计算部分概率的公式是:αt(j) = Pr(观察状态 隐藏状态 j) x Pr(t 时刻到达状态 j 的所有路径)。 这个公式的左边是从混淆矩阵中已知的,我只需要计算右边部分,很显然右边是所有路径的和:

  需要计算的路径数是和观察序列的长度的平方相关的,但是 t 时刻的部分概率已经计算过了之前的所有路径,所以在 t+1 时刻只需要根据 t 时刻的概率来计算就可以了:

  这里简单解释下,bjk(t+1)就是在 t+1 时刻的第 j 个隐藏状态被认为是当前的观察状态的概率,后面一部分是所有t时刻的隐藏状态到 t+1 时候的隐藏状态j的转移的概率的和。这样我们每一步的计算都可以利用上一步的结果,节省了很多时间。

  我们可以比较穷举和递归算法的复杂度。假设有一个HMM,其中有 n 个隐藏状态,我们有一个长度为 T 的观察序列。

  很显然穷举算法的时间开销是和 T 指数相关的,即 NT,而如果采用递归算法,由于我们每一步都可以利用上一步的结果,所以是和 T 线性相关的,即复杂度是 N2T。

  这里我们的目的是在某个给定的HMM下,计算出某个可观察序列的概率。我们通过先计算部分概率的方式递归的计算整个序列的所有路径的概率,大大节省了时间。在 t=1 的时候,使用了初始概率和混淆矩阵的概率,而在t时刻的概率则可以利用 t-1 时刻的结果。

  这样我们就可以用递归的方式来计算所有可能的路径的概率和,最后,所有的部分概率的计算公式为

  使用天气的例子,计算 t=2 时刻的 cloudy 状态的概率方法如图:

  我们使用前向算法在给定的一个HMM下计算某个可观察序列的概率。前向算法主要采用的是递归的思想,利用之前的计算结果。有了这个算法,我们就可以在一堆HMM中,找到一个最满足当前的可观察序列的模型(前向算法计算出来的概率最大)。

  和上面一个问题相似的并且更有趣的是根据可观察序列找到隐藏序列。在很多情况下,我们对隐藏状态更有兴趣,因为其包含了一些不能被直接观察到的有价值的信息。比如说在海藻和天气的例子中,一个隐居的人只能看到海藻的状态,但是他想知道天气的状态。这时候我们就可以使用Viterbi 算法来根据可观察序列得到最优可能的隐藏状态的序列,当然前提是已经有一个HMM。

  另一个广泛使用Viterbi 算法的领域是自然语言处理中的词性标注。句子中的单词是可以观察到的,词性是隐藏的状态。通过根据语句的上下文找到一句话中的单词序列的最有可能的隐藏状态序列,我们就可以得到一个单词的词性(可能性最大)。这样我们就可以用这种信息来完成其他一些工作。

  通常我们都有一个特定的HMM,然后根据一个可观察状态序列去找到最可能生成这个可观察状态序列的隐藏状态序列。

  通过计算所有可能的隐藏序列的概率,我们可以找到一个可能性最大的隐藏序列,这个可能性最大的隐藏序列最大化了 Pr(观察序列 隐藏状态集)。比如说,对于上图中的可观察序列 (dry damp soggy),最可能的隐藏序列就是下面这些概率中最大的:

  这个方法是可行的,但是计算代价很高。和前向算法一样,我们可以利用转移概率在时间上的不变性来降低计算的复杂度。

  在给定了一个可观察序列和HMM的情况下,我们可以考虑递归的来寻找最可能的隐藏序列。我们可以先定义一个部分概率 δ,即到达某个中间状态的概率。接下来我们将讨论如何计算 t=1 和 t=n (n1) 的部分概率。

  注意这里的部分概率和前向算法中的部分概率是不一样的,这里的部分概率表示的是在t时刻最可能到达某个状态的一条路径的概率,而不是所有概率之和。

  对于每一个中间状态和终止状态 (t=3) 都有一个最可能的路径。比如说,在 t=3 时刻的三个状态都有一个如下的最可能的路径:

  我们可以称这些路径为部分最优路径。这些部分最优路径都有一个概率,也就是部分概率 δ。和前向算法中的部分概率不一样,这里的概率只是一个最可能路径的概率,而不是所有路径的概率和。

  我们可以用 δ(i, t) 来表示在t时刻,到状态i的所有可能的序列(路径)中概率最大的序列的概率,部分最优路径就是达到这个最大概率的路径,对于每一个时刻的每一个状态都有这样一个概率和部分最优路径。

  最后,我们通过计算 t=T 时刻的每一个状态的最大概率和部分最优路径,选择其中概率最大的状态和它的部分最优路径来得到全局的最优路径。

  当 t=1 时刻的时候,到达某个状态最大可能的路径还不存在,但是我们可以直接使用在 t=1 时刻某个状态的概率和这个状态到可观察序列 k1的转移概率:

  我们可以计算所有到状态 X 的路径的概率,找到其中最可能的路径,也就是局部最优路径。注意到这里,到达X的路径必然会经过 t-1 时刻的 A、B 和 C,所以我们可以利用之前的结果。达到X的最可能的路径就是下面三个之一:

  我们需要做的就是找到以 AX、BX 和 CX 结尾的路径中概率最大的那个。

  根据一阶马尔科夫的假设,一个状态的发生之和之前的一个状态有关系,所以X在某个序列的最后发生的概率只依赖于其之前的一个状态:

  有个了这个公式,我们就可以利用t-1时刻的结果和状态转移矩阵和混淆矩阵的数据:

  将上面这个表达式推广一下,就可以得到 t 时刻可观察状态为 kt的第 i 个状态的最大部分概率的计算公式:

  其中 aji表示从状态 j 转移到状态 i 的概率,bikt表示状态i被观察成 kt的概率。

  在每一个中间状态和结束状态都有一个部分最优概率 δ(i, t)。但是我们的目的是找到最可能的隐藏状态序列,所以我们需要一个方法去记住部分最优路径的每一个节点。

  考虑到要计算 t 时刻的部分概率,我们只需要知道 t-1 时刻的部分概率,所以我们只需要记录那个导致了 t 时刻最大部分概率的的状态,也就是说,在任意时刻,系统都必须处在一个能在下一时刻产生最大部分概率的状态。如下图所示:

  我们可以利用一个后向指针 φ 来记录导致某个状态最大局部概率的前一个状态,即

  这里 argmax 表示能最大化后面公式的j值,同样可以发现这个公式和 t-1 时刻的部分概率和转移概率有关,因为后向指针只是为了找到“我从哪里来”,这个问题和可观察状态没有关系,所以这里不需要再乘上混淆矩阵因子。全局的行为如下图所示:

  这里就是一个从左往右翻译的过程,通过前面的翻译结果得到后面的结果,起始点是初始向量 π。

  但在序列某个地方有噪声干扰的时候,某些方法可能会和正确答案相差的较远。但是Viterbi算法会查看整个序列来决定最可能的终止状态,然后通过后向指针来找到之前的状态,这对忽略孤立的噪声非常有用。

  Viterbi算法提供了一个根据可观察序列计算隐藏序列的很高效的方法,它利用递归来降低计算复杂度,并且使用之前全部的序列来做判断,可以很好的容忍噪声。

  在计算的过程中,这个算法计算每一个时刻每一个状态的部分概率,并且使用一个后向指针来记录达到当前状态的最大可能的上一个状态。最后,最可能的终止状态就是隐藏序列的最后一个状态,然后通过后向指针来查找整个序列的全部状态。

  在很多实际的情况下,HMM不能被直接的判断,这就变成了一个学习问题,因为对于给定的可观察状态序列 O 来说,没有任何一种方法可以精确地找到一组最优的HMM参数λ使 P(O λ) 最大,于是人们寻求使其局部最优的解决办法,而前向后向算法(也称为Baum-Welch算法)就成了HMM学习问题的一个近似的解决方法。

  前向后向算法首先对于HMM的参数进行一个初始的估计,但这个很可能是一个错误的猜测,然后通过对于给定的数据评估这些参数的的有效性并减少它们所引起的错误来更新HMM参数,使得和给定的训练数据的误差变小,这其实是机器学习中的梯度下降的思想。

  对于网格中的每一个状态,前向后向算法既计算到达此状态的“前向”概率,又计算生成此模型最终状态的“后向”概率,这些概率都可以通过前面的介绍利用递归进行高效计算。可以通过利用近似的HMM模型参数来提高这些中间概率从而进行调整,而这些调整又形成了前向后向算法迭代的基础。

  另外,前向后向算法是EM 算法的一个特例,它避免了EM 算法的暴力计算,而采用动态规划思想来解决问题,Jelinek 在其书《Statistical Methods for Speech Recognition》中对前向后向算法与EM 算法的关系进行了详细描述,有兴趣的读者可以参考这本书。

  类似于上面讲到的前向算法,我们也可以定义后向变量 βt(i) 来计算给定当前隐藏状态 i 时,部分观察序列 ot+1,ot+2,…,oT的概率,即:

  与前向算法类似,我们也可以通过迭代算法有效计算 βt(i),计算公式如下:

  首先我们需要定义两个辅助变量,这两个变量可以用前文介绍过的前向变量和后向变量进行定义。

  第二个变量定义为后验概率,也就是在给定观察状态序列和HMM的情况下,t 时状态 i 的概率,即

  因此,下式为在任意时刻状态 i 的期望,也就是从状态 i 转移到观察状态 o 的期望

  下面介绍前向后向算法的参数学习过程,在学习的过程中,不断更新HMM的参数,从而使得 P(O λ) 最大。我们假设初始的HMM参数为  λ={ π,A, B},首先计算前向变量 α 和后向变量 β,再根据刚刚介绍的公式计算期望 ξ 和 ζ,最后,根据下面的3个重估计公式更新HMM参数。

  模型的一个最大似然估计。不过需要注意的是,前向后向算法所得的这个最大似然估计是一个局部最优解。

  本文是《统计学习方法》第10章的笔记,用一段167行的Python代码实现了隐马模型观测序列的生成、前向后向算法、Baum-Welch无监督训练、维特比算法。公式与代码相互对照,循序渐进。HMM算是个...博文来自:飘过的春风

  马尔科夫链马尔科夫链,因安德烈.马尔科夫(A.A.Markov,1856-1922)得名,是指数学中具有马尔科夫性质的离散事件随机过程。每个状态的转移只依赖于之前的n个状态,这个过程被称为1个n阶的模...博文来自:无关风月

  模式识别:自己建立模型刻画已有的特征,样本是用于估计模型中的参数。模式识别的落脚点是感知。 是已经有了一个供模仿用的标本(已经知道结果特征),通过计算机不停地计算、建模,以更准确 eg...博文来自:dexterod的博客

  先上一张图看看:模式识别:自己建立模型刻画已有的特征,样本是用于估计模型中的参数。模式识别的落脚点是感知模式识别是70年代和80年代非常流行的一个术语。它强调的是如何让一个计算机程序去做一些看起来很“...博文来自:土豆洋芋山药蛋的博客

  马尔可夫链(MarkovChain,MC)是概率论和数理统计中具有马尔可夫性质(Markovproperty)且存在于离散的指数集(indexset)和状态空间(statespace)内的随机过程(s...博文来自:u011898542的博客

  “随机过程随机过,实变函数学十遍,微机原理闹危机,汇编语言不会编”1.唯一让我彻底蒙圈的课程这些课程真的太难了,大学里无数人为此伤透了脑筋,挂科率杠杠的。我当初也是的,特别是随机过程这门课,上完了一学...博文来自:This is bill的专属博客

  摘要:麻省理工学院的一个三人研究团队已经开发出一种机器学习模型,他们通过帮助我们更好地理解发现模式,从而让人类更好地理解大数据。它的创造者称之为BayesianCaseModel。这项研究是基于这样的...博文来自:yiwanxingchena的专栏

  版权声明:本文为博主原创文章,未经博主允许不得转载。马尔可夫过程:马尔可夫过程按照其...博文来自:果乐果香

  转自:白宁超1 马尔可夫个人简介安德烈·马尔可夫,俄罗斯人,物理-数学博士,圣彼得堡科学院院士,彼得堡数学学派的代表人...博文来自:zdy0_2004的专栏

  马尔可夫链(MarkovChain)是什么鬼 它是随机过程中的一种过程,一个统计模型,到底是哪一种过程呢?好像一两句话也说不清楚,还是先看个例子吧。 先说说我们村智商为0的王二狗,人傻不拉几的,见人就...博文来自:果乐果香

  马尔可夫链算法原理与实现@(ML)[machinelearining]马尔可夫链算法原理与实现一概述二基本流程1得到语句2句子出现的概率3马尔可夫假设4计算条件概率5结果(一)概述参考自《数学之美》第...博文来自:jediael_lu的专栏

  作者:红猴子链接:来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注...博文来自:u014333083的专栏

  引言:我们现在准备做的就是给定一个由不同的单词组成的句子,由这个句子产生一些随机的可以读的英语文本。马尔可夫链可以比较好的完成这个任务!描述:该算法把每个短语分割为两个部分:一部分是由多个词构...博文来自:CSDN

  随时间慢慢减少学习率来加快学习算法在使用mini-batch梯度下降法时,mini-batch数量不大,大概64或者128个样本,在迭代过程中会有噪音(蓝色线),下降朝向最小值,但是不会精确地收敛,所...博文来自:bestrivern的博客

  经过上几节的学习,相信大家对HMM都有了比较深的了解,这一节我们通过几个实际例子(丢骰子问题、中文分词问题及股票预测问题)来进一步讲解HMM1.丢骰子问题具体代码参见:Dice_01.py丢骰子问题描...博文来自:tostq的专栏

  马尔可夫链概述马尔可夫链因安德烈·马尔可夫(AndreyMarkov,1856-1922)得名,是数学中具有马尔可夫性质的离散时间随机过程。该过程中,在给定当前知识或信息的情况下,过去(即当期以前的历...博文来自:专注于数据挖掘算法研究和应用

  --------七月在线机器学习笔记目录带拒绝的采样分析对某概率分布函数进行采样的意义用采样改造EM算法本身马尔科夫连模型概率转移矩阵马尔科夫随机过程的平稳分布马尔科夫随机过程与采样细致平稳条件设定接...博文来自:SunChao3555的博客

  大数据文摘作品编译:Niki、张南星、ShanLIU、Aileen这篇文章让小白也能读懂什么是人们常说的MarkovChainMonteCarlo。在过去几个月里,我在数据科学的世界里反复遇到一个词:...博文来自:Python达人

  特征值与特征向量我们知道,矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个变换的过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一个向量或某些向量只发生伸缩变...博文来自:小9的专栏

  什么是转移概率矩阵(TransitionProbabilityMatrix)转移概率矩阵:矩阵各元素都是非负的,并且各行元素之和等于1,各元素用概率表示,在一定条件下是互相转移的,故称为转移概率矩...博文来自:jiayoudangdang的博客

  相关文章:数据挖掘领域十大经典算法之—C4.5算法(超详细附代码)数据挖掘领域十大经典算法之—K-Means算法(超详细附代码)数据挖掘领域十大经典算法之—Apriori算法数据挖掘领域十大经典算法之...博文来自:fuqiuai的博客

  1马尔可夫个人简介安德烈·马尔可夫,俄罗斯人,物理-数学博士,圣彼得堡科学院院士,彼得堡数学学派的代表人物,以数论和概率论方面的工作著称,他的主要著作有《概率演算》等。1878年,荣获金质奖章,190...博文来自:的博客

  1甜在心馒头店公司楼下有家馒头店:每天早上六点到十点营业,生意挺好,就是发愁一个事情,应该准备多少个馒头才能既不浪费又能充分供应?老板统计了一周每日卖出的馒头(为了方便计算和讲解,缩小了数据):均值为...博文来自:马同学

  使用有限状态机识别地址,关键要解决两个问题,即通过一些有效的地址建立状态机,以及给定一个有限状态机后,地址字串的匹配算法。好在这两个问题都有现成的算法。有了关于地址的有限状态机后,我们就可又用它分析网...博文来自:Ella.ting的专栏

  期望、方差、协方差及相关系数的基本运算总结了概率统计中期望、方差、协方差和相关系数的定义、性质和基本运算规则。...博文来自:Sonnet

  一、概述1、定义:规划中变量部分或全部定义成整数是,称为整数规划。2、分类:纯整数规划和混合整数规划。3、特点:(1)原线性规划有最优解,当自变量限制为整数后:      a、原最优解全是整数,那最优...博文来自:eric_e的博客

  非常纠结,在网上搜马尔可夫出来的都是隐马尔科夫模型可是我查到的文献提到的都是Markovchain,是马尔可夫链。我参考隐马尔可夫模型介绍中的马尔可夫过程自己实现了一个马尔可夫链,按我自己的理解做的,...博文来自:panda0熊猫的博客

  1.基本概念支持向量机(SupportVectorMachine,SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学习算法,在引入了...博文来自:努力奋斗的小墨鱼专栏

  马尔科夫链随机过程之所以如此重要,在于其平稳分布(stationarydistribution),也即对它而言,它存在一个平稳分布。1.记号的说明q(i,j)==q(ji)==q(i→j) 表示一个...博文来自:RainVictor1的博客

  原文链接:什么是MCMC,什么时候使用它?MCMC只是一个从分布抽样的算法。这只是众多算法之一。这个术语代表...博文来自:大数据部落

  lyounger的回答作者:lyounger链接:来源:知乎著作权归作者所有。商业转载请联...博文来自:小布丁的读书笔记

  Hash,一般翻译做“散列”,也有直接音译为哈希的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,...博文来自:何涛(点滴汇聚终成大海)

  转自:散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,...博文来自:史迪阳的博客

  介绍MD4是一种信息摘要算法,由麻省理工学院教RonaldRivest于1990年开发完成,算法根据输入的数值计算128位的摘要信息,用于检测信息的完整性。该算法影响了后来其他的密码算法的设计,如MD...博文来自:吃喝玩乐我最擅长

  在我们使用Mat类型的对象的时候,有时会想直接获取比如第一行的数据、最后一列的数据等等。Mat数据结构提供了这样的接口给我们使用,接口列表如下://!returnsanewmatrixheaderfo...博文来自:xbcReal的博客

  1:随机过程的平稳的理解平稳其实是一类东西的定义,我们一般还要说,到多少阶平稳。先说1阶的平稳。每一个时刻,都是一个随机变量。一个随机变量,会对应一个概率分布。比如t0时刻那个随机变量的概率分布为f_...博文来自:征丶舤

  请较,如何在EXCEL,VBA中, 用函数,查找一个字符串,并返回所在行的值?论坛

  隐马尔可夫模型(HiddenMarkovModel,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程;是序列数据处理和统计学习的重要模型。其难点是从可观察的参数中确定该过程的隐含参数,...博文来自:whiteinblue的专栏

  (马尔可夫与马尔科夫都可以,所以也别纠结)马尔可夫模型(MarkovModel)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域。经过长期发展,尤其是在...博文来自:iamsongyu的博客

  人工智能是大家公认的热点和未来趋势,目前对人工智能感兴趣的学生不在少数。一方面人工智能现在已经上升到国家发展战略层面,高校和专业的人工智能培训机构为应对人才缺口,开始着手培养人工智能人才;另一方面,人...博文来自:programmer_feng的博客

  原文地址:马尔可夫过程作者:浩如烟海马尔可夫过程马尔可夫过程一类重要的随机过程,它的原始模型马尔可夫链,由俄国数学家Α.Α.马尔可夫于1907年提出。编辑摘要 马尔可夫过程人们在实际中常遇到具有下述特...博文来自:xinm1001的博客

  前言在上一篇博文中,我简单地介绍了隐马尔科夫模型HMM,并且重点介绍了HMM的三个问题中的第一个,即概率计算问题。首先回顾一下这三个问题都是什么以及解决每个问题的主流算法:概率计算问题即模型评价问题—...博文来自:njustzj001的专栏

  1.马尔科夫决策过程(MDPs)简介马尔科夫决策过程是对强化学习(RL)问题的数学描述。几乎所有的RL问题都能通过MDPs来描述:最优控制问题可以用MDPs来描述; 部分观测环境可以转化成POMDPs...博文来自:DeepOscar的博客

  jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...博文来自:Websites

本文链接:http://windsorflowers.net/diguixiangliang/305.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部