gpt4 book ai didi

machine-learning - 分类 HMM 陀螺仪数据 Jahmm 无法学习模型

转载 作者:行者123 更新时间:2023-11-30 09:09:42 25 4
gpt4 key购买 nike

我正在使用来自 Android 可穿戴设备的加速度计和陀螺仪的传感器数据来训练在 JaHMM 中实现的 HMM。

使用加速度计数据训练的 HMM 输出精细的学习状态,并且具有某种程度上可接受的错误率。

两个 HMM 的初始化如下:

    Hmm<ObservationVector> hmm = new Hmm<>(2, new OpdfMultiGaussianFactory(3));

hmm.setPi(0, 0.5);
hmm.setPi(1, 0.5);

hmm.setOpdf(0, new OpdfMultiGaussian(
new double[]{0,0,0},
new double[][] {{0.1,0,0},
{0,0.1,0},
{0,0,0.1}
}));
hmm.setOpdf(1, new OpdfMultiGaussian(
new double[]{0,0,0},
new double[][] {{0.1,0,0},
{0,0.1,0},
{0,0,0.1}
}));


hmm.setAij(0, 0, 0.5);
hmm.setAij(0, 1, 0.5);

hmm.setAij(1, 0, 0.5);
hmm.setAij(1, 1, 0.5);

使用加速度计数据训练的 HMM 的输出:

HMM with 2 state(s)

State 0 Pi: 0.5000000000000188 Aij: 0.5 0.5 Opdf: Multi-variate Gaussian distribution --- Mean: [ 0.036 -0.051 0.075 ]

State 1 Pi: 0.5000000000000188 Aij: 0.5 0.5 Opdf: Multi-variate Gaussian distribution --- Mean: [ 0.036 -0.051 0.075 ]

但是,无论我尝试了多少次训练迭代(500 次迭代),使用陀螺仪数据训练的 HMM 似乎都无法了解 HMM 的状态。例如学习到的状态概率只是 NaN

使用陀螺仪数据训练的 HMM 的输出:

HMM with 2 state(s)

State 0 Pi: NaN Aij: ? ? Opdf: Multi-variate Gaussian distribution --- Mean: [ ? ? ? ]

State 1 Pi: NaN Aij: ? ? Opdf: Multi-variate Gaussian distribution --- Mean: [ ? ? ? ]

造成这种行为的原因是什么?在数据可用于 HMM 之前,我是否需要执行预处理或标准化步骤?HMM 中的状态数量是否不足?我尝试了五个状态,但得到了相同的结果。

可以在此处查看加速度计训练文件的片段: https://gist.github.com/Gudui/91d2c6b2452f1ea6a5c925b1eed9b40c

可以在此处查看陀螺仪训练文件的片段: https://gist.github.com/Gudui/987cc1c1a7c0311a03988b818e7cbbcb

对于这两个训练文件,每一行代表一个训练序列。

该库可在此处获取:https://github.com/tanjiti/jahmm

提前致谢!

最佳答案

详细阐述我的评论,我建议:

  1. 使用高斯 pdf 的随机初始化,即不是将均值向量初始化为 [0,0,0],并将协方差矩阵初始化为单位矩阵的 0.1 倍,就像您现在所做的那样,根据您的数据使用一些随机值或一些经验平均值和协方差。
  2. 美白您的数据,即确保每个坐标的均值和单位方差为零(甚至使用 PCA 使坐标不相关。

关于machine-learning - 分类 HMM 陀螺仪数据 Jahmm 无法学习模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42881956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com