精华内容
下载资源
问答
  • 文章目录线性高斯时间序列模型基于高斯过程的非线性自回归模型状态转移函数基于高斯过程状态空间模型观测函数基于高斯过程状态空间模型状态转移函数和观测函数都基于高斯过程状态空间模型状态转移函数基于高斯...

    线性高斯时间序列模型

    在这里插入图片描述

    基于高斯过程的非线性自回归模型

    在这里插入图片描述

    状态转移函数基于高斯过程的状态空间模型

    在这里插入图片描述

    观测函数基于高斯过程的状态空间模型

    在这里插入图片描述

    状态转移函数和观测函数都基于高斯过程的状态空间模型

    在这里插入图片描述

    状态转移函数基于高斯过程的非1阶马尔科夫状态空间模型

    在这里插入图片描述

    隐变量基于高斯过程的高斯隐变量模型

    在这里插入图片描述

    展开全文
  • 提出了一种使用状态空间模型(SSM)的新颖语音转换(VC)方法。 SVC从未在VC中显示过,它具有显式建模频谱参数轨迹的优势。 因此,它将优于传统的基于高斯混合模型(GMM)的方法,在该方法中,在逐帧过程中执行转换...
  • 针对高斯预估模型存在的缺点,引入了动态变化的泄漏强度,并通过夹角系数的方式将风速和放射性气体自身的扩散速度合成,得到对气体扩散起到关键作用的合成扩散速度,进而更好地模拟了放射性气体扩散过程中在不同时段...
  • 原文链接:...它们与状态空间高斯混合模型相关,因为它们旨在估计引起观测的状态。状态是未知或“隐藏”的,并且HMM试图估计状态,类似于无监督聚类过程。视频:在R语言建立隐马尔可夫HMM模型知乎视...

    原文链接:

    http://tecdat.cn/?p=17592tecdat.cn

    最近,我们使用隐马尔可夫模型开发了一种解决方案,并被要求解释这个方案。

    HMM用于建模数据序列,无论是从连续概率分布还是从离散概率分布得出的。它们与状态空间和高斯混合模型相关,因为它们旨在估计引起观测的状态。状态是未知或“隐藏”的,并且HMM试图估计状态,类似于无监督聚类过程。

    视频:在R语言建立隐马尔可夫HMM模型

    知乎视频www.zhihu.com

    例子

    在介绍HMM背后的基本理论之前,这里有一个示例,它将帮助您理解核心概念。有两个骰子和一罐软糖。B掷骰子,如果总数大于4,他会拿几颗软糖再掷一次。如果总数等于2,则他拿几把软糖,然后将骰子交给A。现在该轮到A掷骰子了。如果她的掷骰大于4,她会吃一些软糖,但是她不喜欢黑色的其他颜色(两极分化的看法),因此我们希望B会比A多。他们这样做直到罐子空了。

    现在假设A和B在不同的房间里,我们看不到谁在掷骰子。取而代之的是,我们只知道后来吃了多少软糖。我们不知道颜色,仅是从罐子中取出的软糖的最终数量。我们怎么知道谁掷骰子?HMM。

    在此示例中,状态是掷骰子的人,A或B。观察结果是该回合中吃了多少软糖。如果该值小于4,骰子的掷骰和通过骰子的条件就是转移概率。由于我们组成了这个示例,我们可以准确地计算出转移概率,即1/12。没有条件说转移概率必须相同,例如A掷骰子2时可以将骰子移交给他,例如,概率为1/36。

    模拟

    首先,我们将模拟该示例。B平均要吃12颗软糖,而A则需要4颗。


    1. # 设置

    2. simulate <- function(N, dice.val = 6, jbns, switch.val = 4){

    3. #模拟变量

    4. #可以只使用一个骰子样本

    5. #不同的机制,例如只丢1个骰子,或任何其他概率分布

    6. b<- sample(1:dice.val, N, replace = T) + sample(1:dice.val, N, replace = T)

    7. a <- sample(1:dice.val, N, replace = T) + sample(1:dice.val, N, replace = T)

    8. bob.jbns <- rpois(N, jbns[1])

    9. alice.jbns <- rpois(N, jbns[2])

    10. # 状态

    11. draws <- data.frame(state = rep(NA, N), obs = rep(NA, N),

    12. # 返回结果

    13. return(cbind(roll = 1:N, draws))

    14. # 模拟场景

    15. draws <- simulate(N, jbns = c(12, 4), switch.val = 4)

    16. # 观察结果

    17. ggplot(draws, aes(x = roll, y = obs)) + geom_line()

    2f0e998e56a490592f4920c03cc1ae98.png

    如您所见,仅检查一系列计数来确定谁掷骰子是困难的。我们将拟合HMM。由于我们正在处理计数数据,因此观察值是从泊松分布中得出的。


    1. fit.hmm <- function(draws){

    2. # HMM

    3. mod <- fit(obs ~ 1, data = draws, nstates = 2, family = poisson()

    4. # 通过估计后验来预测状态

    5. est.states <- posterior(fit.mod)

    6. head(est.states)

    7. # 结果

    8. hmm.post.df <- melt(est.states, measure.vars =

    9. # 输出表格

    10. print(table(draws[,c("state", "est.state.labels")]))

    1. ## iteration 0 logLik: -346.2084

    2. ## iteration 5 logLik: -274.2033

    3. ## converged at iteration 7 with logLik: -274.2033

    4. ## est.state.labels

    5. ## state alice bob

    6. ## a 49 2

    7. ## b 3 46

    模型迅速收敛。使用后验概率,我们估计过程处于哪个状态,即谁拥有骰子,A或B。要具体回答该问题,我们需要更多地了解该过程。在这种情况下,我们知道A只喜欢黑软糖。否则,我们只能说该过程处于状态1或2。下图显示了HMM很好地拟合了数据并估计了隐藏状态。


    1. # 绘图输出

    2. g0 <- (ggplot(model.output$draws, aes(x = roll, y = obs)) + geom_line() +

    3. theme(axis.ticks = element_blank(), axis.title.y = element_blank())) %>% ggplotGrob

    4. g1 <- (ggplot(model.output$draws, aes(x = roll, y = state, fill = state, col = state)) +

    5. g0$widths <- g1$widths

    6. return(grid.arrange(g0, g1

    7. plot.hmm.output(hmm1)

    460766ecf7d4ef589426276849eac66d.png

    令人印象深刻的是,该模型拟合数据和滤除噪声以估计状态的良好程度。公平地说,可以通过忽略时间分量并使用EM算法来估计状态。但是,由于我们知道数据形成一个序列,因为观察下一次发生的概率取决于前一个即(P(X_t | X_ {t-1})),其中(X_t )是软糖的数量。

    考虑到我们构造的问题,这可能是一个相对简单的案例。如果转移概率大得多怎么办?


    1. simulate(100, jbns = c(12, 4), switch.val = 7)

    1. ## iteration 0 logLik: -354.2707

    2. ## iteration 5 logLik: -282.4679

    3. ## iteration 10 logLik: -282.3879

    4. ## iteration 15 logLik: -282.3764

    5. ## iteration 20 logLik: -282.3748

    6. ## iteration 25 logLik: -282.3745

    7. ## converged at iteration 30 with logLik: -282.3745

    8. ## est.state.labels

    9. ## state alice bob

    10. ## alice 54 2

    11. ## bob 5 39
    plot(hmm2)

    f955621a26850ab0866f02002dcd4c4a.png

    这有很多噪音数据,但是HMM仍然做得很好。性能的提高部分归因于我们对从罐中取出的软糖数量的选择。分布越明显,模型就越容易拾取转移。公平地讲,我们可以计算中位数,并将所有低于中位数的值都归为一个状态,而将所有高于中位数的值归为另一状态,您可以从结果中看到它们做得很好。这是因为转移概率非常高,并且预计我们会从每个状态观察到相似数量的观察结果。当转移概率不同时,我们会看到HMM表现更好。

    如果观察结果来自相同的分布,即A和B吃了相同数量的软糖怎么办?


    1. hmm3 <- fit.hmm(draws)

    2. plot(hmm3)

    36da9efb596a59cf3da8fd321ab7d0ee.png

    不太好,但这是可以预期的。如果从中得出观察结果的分布之间没有差异,则可能也只有1个状态。

    实际如何估算状态?

    首先,状态数量及其分布方式本质上是未知的。利用对系统建模的知识,用户可以选择合理数量的状态。在我们的示例中,我们知道有两种状态使事情变得容易。可能知道确切的状态数,但这并不常见。再次通过系统知识来假设观察结果通常是合理的,这通常是合理的。

    从这里开始,使用 Baum-Welch算法 来估计参数,这是EM算法的一种变体,它利用了观测序列和Markov属性。除了估计状态的参数外,还需要估计转移概率。Baum-Welch算法首先对数据进行正向传递,然后进行反向传递。然后更新状态转移概率。然后重复此过程,直到收敛为止。

    在现实世界

    在现实世界中,HMM通常用于

    • 股票市场预测,无论市场处于牛市还是熊市
    • 估计NLP中的词性
    • 生物测序
    • 序列分类

    仅举几例。只要有观察序列,就可以使用HMM,这对于离散情况也适用。


    f9df4e903215434cff720b5952440375.png

    最受欢迎的见解

    1.用R语言模拟混合制排队随机服务排队系统

    2.R语言中使用排队论预测等待时间

    3.R语言中实现马尔可夫链蒙特卡罗MCMC模型

    4.R语言中的马尔科夫机制转换(Markov regime switching)模型

    5.matlab贝叶斯隐马尔可夫hmm模型

    6.用R语言模拟混合制排队随机服务排队系统

    7.Python基于粒子群优化的投资组合优化

    8.R语言马尔可夫转换模型研究交通伤亡人数事故预测

    9.用机器学习识别不断变化的股市状况——隐马尔可夫模型的应用

    展开全文
  • R语言中的隐马尔可夫HMM模型实例

    千次阅读 2020-04-10 22:39:53
    HMM用于建模数据序列,无论是从连续概率分布还是从离散概率分布得出的。它们与状态空间高斯混合模型相关,因为它们旨在估计引起观测的状态。状态是未知或“隐藏”的,并且HMM试图估计状态,类似于无监督聚类过程

    原文链接:http://tecdat.cn/?p=17592 

    最近,我们使用隐马尔可夫模型开发了一种解决方案,并被要求解释这个方案。

    HMM用于建模数据序列,无论是从连续概率分布还是从离散概率分布得出的。它们与状态空间和高斯混合模型相关,因为它们旨在估计引起观测的状态。状态是未知或“隐藏”的,并且HMM试图估计状态,类似于无监督聚类过程。

    视频:R语言中的隐马尔可夫HMM模型实例

    例子

    在介绍HMM背后的基本理论之前,这里有一个示例,它将帮助您理解核心概念。有两个骰子和一罐软糖。B掷骰子,如果总数大于4,他会拿几颗软糖再掷一次。如果总数等于2,则他拿几把软糖,然后将骰子交给A。现在该轮到A掷骰子了。如果她的掷骰大于4,她会吃一些软糖,但是她不喜欢黑色的其他颜色(两极分化的看法),因此我们希望B会比A多。他们这样做直到罐子空了。

    现在假设A和B在不同的房间里,我们看不到谁在掷骰子。取而代之的是,我们只知道后来吃了多少软糖。我们不知道颜色,仅是从罐子中取出的软糖的最终数量。我们怎么知道谁掷骰子?HMM。

    在此示例中,状态是掷骰子的人,A或B。观察结果是该回合中吃了多少软糖。如果该值小于4,骰子的掷骰和通过骰子的条件就是转移概率。由于我们组成了这个示例,我们可以准确地计算出转移概率,即1/12。没有条件说转移概率必须相同,例如A掷骰子2时可以将骰子移交给他,例如,概率为1/36。

    模拟

    首先,我们将模拟该示例。B平均要吃12颗软糖,而A则需要4颗。

    # 设置
    simulate <- function(N, dice.val = 6, jbns, switch.val = 4){
    
      #模拟变量
        #可以只使用一个骰子样本
        #不同的机制,例如只丢1个骰子,或任何其他概率分布
      
        b<- sample(1:dice.val, N, replace = T) + sample(1:dice.val, N, replace = T)
        a <- sample(1:dice.val, N, replace = T) + sample(1:dice.val, N, replace = T)
        bob.jbns <- rpois(N, jbns[1])
        alice.jbns <- rpois(N, jbns[2])
    
        # 状态 
        draws <- data.frame(state = rep(NA, N), obs = rep(NA, N), 
    
    
    
    
    
        # 返回结果
        return(cbind(roll = 1:N, draws))
    
    
    # 模拟场景
    
    
    draws <- simulate(N, jbns = c(12, 4), switch.val = 4)
    
    # 观察结果
    
    ggplot(draws, aes(x = roll, y = obs)) + geom_line()

     

    如您所见,仅检查一系列计数来确定谁掷骰子是困难的。我们将拟合HMM。由于我们正在处理计数数据,因此观察值是从泊松分布中得出的。

     

    fit.hmm <- function(draws){
    
      # HMM 
      mod <- fit(obs ~ 1, data = draws, nstates = 2, family = poisson()
    
    
    
      # 通过估计后验来预测状态
      est.states <- posterior(fit.mod)
      head(est.states)
    
      # 结果
     
      hmm.post.df <- melt(est.states, measure.vars = 
    
    
      # 输出表格
      print(table(draws[,c("state", "est.state.labels")]))
    
    

     

    ## iteration 0 logLik: -346.2084 
    ## iteration 5 logLik: -274.2033 
    ## converged at iteration 7 with logLik: -274.2033 
    ##        est.state.labels
    ## state   alice bob
    ##   a     49   2
    ##   b      3  46

     

    模型迅速收敛。使用后验概率,我们估计过程处于哪个状态,即谁拥有骰子,A或B。要具体回答该问题,我们需要更多地了解该过程。在这种情况下,我们知道A只喜欢黑软糖。否则,我们只能说该过程处于状态1或2。下图显示了HMM很好地拟合了数据并估计了隐藏状态。

     

    # 绘图输出
    
    
        g0 <- (ggplot(model.output$draws, aes(x = roll, y = obs)) + geom_line() +
            theme(axis.ticks = element_blank(), axis.title.y = element_blank())) %>% ggplotGrob
        g1 <- (ggplot(model.output$draws, aes(x = roll, y = state, fill = state, col = state)) + 
          
    
    
        g0$widths <- g1$widths
        return(grid.arrange(g0, g1
    
    
    plot.hmm.output(hmm1)

     

    令人印象深刻的是,该模型拟合数据和滤除噪声以估计状态的良好程度。公平地说,可以通过忽略时间分量并使用EM算法来估计状态。但是,由于我们知道数据形成一个序列,因为观察下一次发生的概率取决于前一个即\(P(X_t | X_ {t-1})\),其中\(X_t \ )是软糖的数量。

    考虑到我们构造的问题,这可能是一个相对简单的案例。如果转移概率大得多怎么办?

     

    
     simulate(100, jbns = c(12, 4), switch.val = 7)
    
    

     

    ## iteration 0 logLik: -354.2707 
    ## iteration 5 logLik: -282.4679 
    ## iteration 10 logLik: -282.3879 
    ## iteration 15 logLik: -282.3764 
    ## iteration 20 logLik: -282.3748 
    ## iteration 25 logLik: -282.3745 
    ## converged at iteration 30 with logLik: -282.3745 
    ##        est.state.labels
    ## state   alice bob
    ##   alice    54   2
    ##   bob       5  39

     

    plot(hmm2)

    这有很多噪音数据,但是HMM仍然做得很好。性能的提高部分归因于我们对从罐中取出的软糖数量的选择。分布越明显,模型就越容易拾取转移。公平地讲,我们可以计算中位数,并将所有低于中位数的值都归为一个状态,而将所有高于中位数的值归为另一状态,您可以从结果中看到它们做得很好。这是因为转移概率非常高,并且预计我们会从每个状态观察到相似数量的观察结果。当转移概率不同时,我们会看到HMM表现更好。

    如果观察结果来自相同的分布,即A和B吃了相同数量的软糖怎么办?

     

    hmm3 <- fit.hmm(draws)
    plot(hmm3)

    不太好,但这是可以预期的。如果从中得出观察结果的分布之间没有差异,则可能也只有1个状态。

    实际如何估算状态?

    首先,状态数量及其分布方式本质上是未知的。利用对系统建模的知识,用户可以选择合理数量的状态。在我们的示例中,我们知道有两种状态使事情变得容易。可能知道确切的状态数,但这并不常见。再次通过系统知识来假设观察结果通常是合理的,这通常是合理的。

    从这里开始,使用 Baum-Welch算法 来估计参数,这是EM算法的一种变体,它利用了观测序列和Markov属性。除了估计状态的参数外,还需要估计转移概率。Baum-Welch算法首先对数据进行正向传递,然后进行反向传递。然后更新状态转移概率。然后重复此过程,直到收敛为止。

    在现实世界

    在现实世界中,HMM通常用于

    • 股票市场预测,无论市场处于牛市还是熊市 
    • 估计NLP中的词性
    • 生物测序
    • 序列分类

    仅举几例。只要有观察序列,就可以使用HMM,这对于离散情况也适用。

     


    最受欢迎的见解

    1.用R语言模拟混合制排队随机服务排队系统

    2.R语言中使用排队论预测等待时间

    3.R语言中实现马尔可夫链蒙特卡罗MCMC模型

    4.R语言中的马尔科夫机制转换(Markov regime switching)模型

    5.matlab贝叶斯隐马尔可夫hmm模型

    6.用R语言模拟混合制排队随机服务排队系统

    7.Python基于粒子群优化的投资组合优化

    8.R语言马尔可夫转换模型研究交通伤亡人数事故预测

    9.用机器学习识别不断变化的股市状况——隐马尔可夫模型的应用

    展开全文
  • 最近,我们使用隐...它们与状态空间高斯混合模型相关,因为它们旨在估计引起观测的状态。状态是未知或“隐藏”的,并且HMM试图估计状态,类似于无监督聚类过程。 视频:R语言中的隐马尔可夫HMM模型实例 ...

    原文链接:http://tecdat.cn/?p=17592 

    最近,我们使用隐马尔可夫模型开发了一种解决方案,并被要求解释这个方案。

    HMM用于建模数据序列,无论是从连续概率分布还是从离散概率分布得出的。它们与状态空间和高斯混合模型相关,因为它们旨在估计引起观测的状态。状态是未知或“隐藏”的,并且HMM试图估计状态,类似于无监督聚类过程。

    视频:R语言中的隐马尔可夫HMM模型实例

     

    展开全文
  • Hyperactive主要是一个超参数优化工具包,旨在简化模型选择和调整过程。 您可以使用任何机器学习或深度学习软件包,而无需学习新语法。 Hyperactive具有两个特性,因此在模型优化中具有很高的通用性: 您可以在...

空空如也

空空如也

1 2 3 4 5 6
收藏数 104
精华内容 41
热门标签
关键字:

高斯过程状态空间模型