隐马尔可夫模型(六)——隐马尔可夫模型的评估问题(前向后向相结合算法)

简介:

重新回顾:

    前向变量αt(i):在时刻t,在已知模型μ=(A,B,π)的条件下,状态处于si,输出序列为O102...Ot,前向变量为αt(i)

    后向变量βt(i):在时刻t,在已知模型μ=(A,B,π)和状态处于si的条件下,输出序列为Ot+1Ot+2...OT,后向变量为βt(i)

公式推导:

    P(O,qt=si|μ) = P(O1O2...OT, qt=si|μ)

                         =P(O1O2...Ot, qt=si,Ot+1Ot+2...OT|μ)

                         =P(O1O2...Ot, qt=si|μ) * P(Ot+1Ot+2...OT|O1O2...Ot, qt=si,μ)

                         =P(O1O2...Ot, qt=si|μ) * P(Ot+1Ot+2...OT|qt=si,μ)

                         =αt(i) *  βt(i)

     P(O|μ)=

案例分析:

    

      分析:

        P(q4=s3|O,M) =  P(q4=s3, O|M)/P(O|M)

                            = P(O,q4=s3|M)/P(O|M)

                            = α4(3) *  β4(3)/  

     程序:

 

复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
        float a[3][3] = {{0.5,0.2,0.3},{0.3,0.5,0.2},{0.2,0.3,0.5}};
        float b[3][2] = {{0.5,0.5},{0.4,0.6},{0.7,0.3}};
        float result_b[8][3];
        float result_f[8][3];
        float result, result_t;
        int list[8] = {0,1,0,0,1,0,1,1};
        result_b[7][0] = 1;
        result_b[7][1] = 1;
        result_b[7][2] = 1;
        result_f[0][0] = 0.2 * 0.5;
        result_f[0][1] = 0.4 * 0.4;
        result_f[0][2] = 0.4 * 0.7;
        //Backward
        int i,j,k, count = 7;
        for (i=6; i>=0; i--)
        {
            for(j=0; j<=2; j++)
            {
                result_b[i][j] = 0;
                for(k=0; k<=2; k++)
                {
                   result_b[i][j] += result_b[i+1][k] * a[j][k] * b[k][list[count]];
                }
            }
            count -= 1;
        }
       for (i=0; i<=7; i++)
        {
            for(j=0; j<=2; j++)
            {
                printf("b[%d][%d]= %f\n",i+1,j+1, result_b[i][j]);

            }
        }
        printf("Backward:%f\n", result_b[0][0]*0.2*0.5+result_b[0][1]*0.4*0.4+result_b[0][2]*0.4*0.7);
        //Forward
        count = 1;
        for (i=1; i<=7; i++)
        {
            for(j=0; j<=2; j++)
            {
                result_f[i][j] = 0;
                for(k=0; k<=2; k++)
                {
                    result_f[i][j] += result_f[i-1][k] * a[k][j] * b[j][list[count]];
                }
            }
            count += 1;
        }
        for (i=0; i<=7; i++)
        {
            for(j=0; j<=2; j++)
            {
                printf("a[%d][%d]= %f\n", i+1, j+1, result_f[i][j]);
            }
        }
        result = result_f[7][0] + result_f[7][1] + result_f[7][2];
        printf("Forward: %f\n", result);
        
        result_t = 0;
        for (i=0; i<=2; i++)
        {
            result_t += result_f[3][i] * result_b[3][i];
        }
        printf("Result:%f\n", result_f[3][2]*result_b[3][2]/result_t);

        return 0;
}
复制代码

        运行结果 

                                  

 

 

 

 

                        

   

 


本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/archive/2012/12/05/2803182.html,如需转载请自行联系原作者


相关文章
|
29天前
|
机器学习/深度学习 人工智能 JSON
微软rStar2-Agent:新的GRPO-RoC算法让14B模型在复杂推理时超越了前沿大模型
Microsoft Research最新推出的rStar2-Agent在AIME24数学基准测试中以80.6%的准确率超越超大规模模型DeepSeek-R1,展现“思考更聪明”而非“更长”的AI推理新方向。
106 8
微软rStar2-Agent:新的GRPO-RoC算法让14B模型在复杂推理时超越了前沿大模型
|
16天前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
16天前
|
机器学习/深度学习 资源调度 算法
遗传算法模型深度解析与实战应用
摘要 遗传算法(GA)作为一种受生物进化启发的优化算法,在复杂问题求解中展现出独特优势。本文系统介绍了GA的核心理论、实现细节和应用经验。算法通过模拟自然选择机制,利用选择、交叉、变异三大操作在解空间中进行全局搜索。与梯度下降等传统方法相比,GA不依赖目标函数的连续性或可微性,特别适合处理离散优化、多目标优化等复杂问题。文中详细阐述了染色体编码、适应度函数设计、遗传操作实现等关键技术,并提供了Python代码实现示例。实践表明,GA的成功应用关键在于平衡探索与开发,通过精心调参维持种群多样性同时确保收敛效率
|
16天前
|
机器学习/深度学习 边缘计算 人工智能
粒子群算法模型深度解析与实战应用
蒋星熠Jaxonic是一位深耕智能优化算法领域多年的技术探索者,专注于粒子群优化(PSO)算法的研究与应用。他深入剖析了PSO的数学模型、核心公式及实现方法,并通过大量实践验证了其在神经网络优化、工程设计等复杂问题上的卓越性能。本文全面展示了PSO的理论基础、改进策略与前沿发展方向,为读者提供了一份详尽的技术指南。
粒子群算法模型深度解析与实战应用
|
16天前
|
机器学习/深度学习 运维 算法
基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)
基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)
|
2月前
|
传感器 算法 定位技术
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
|
16天前
|
机器学习/深度学习 存储 算法
基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)
基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习模型、算法与应用的全方位解析
深度学习,作为人工智能(AI)的一个重要分支,已经在多个领域产生了革命性的影响。从图像识别到自然语言处理,从语音识别到自动驾驶,深度学习无处不在。本篇博客将深入探讨深度学习的模型、算法及其在各个领域的应用。
473 3
|
4月前
|
算法
基于RMD算法模型的信号传输统计特性的matlab模拟仿真
本项目基于RMD(Random Midpoint Displacement)算法模型,使用MATLAB 2022A进行信号传输统计特性的模拟仿真。通过递归在区间中点加入随机位移,生成具有自相似性和长相关性的随机信号,实现了文中多个仿真图,并提供操作视频与中文注释代码。RMD模型生成的信号均值为零,方差无穷大,具备低误码率、强抗干扰能力及高传输效率等优势,为现代通信系统提供了新思路。
|
5月前
|
人工智能 自然语言处理 算法
算法及模型合规:刻不容缓的企业行动指南
随着AI技术迅猛发展,算法与模型成为企业数字化转型的核心。然而,国家密集出台多项法规,如《人工智能生成合成内容标识办法》等,并开展“清朗·整治AI技术滥用”专项行动,标志着AI监管进入严格阶段。算法备案从“可选项”变为“必选项”,未合规可能面临罚款甚至刑事责任。同时,多地提供备案奖励政策,合规既是规避风险的需要,也是把握政策红利和市场信任的机遇。企业需系统规划合规工作,从被动应对转向主动引领,以适应AI时代的挑战与机遇。

热门文章

最新文章