zoukankan      html  css  js  c++  java
  • 验证基于逻辑回归的隐马尔可夫模型的心音信号切分算法(literature study)

    这篇文章展示的是基于逻辑回归的隐马尔可夫模型(Logistic regression based hidden semi-Markovmodel (HSMM))心音信号切分方法。
    参考文章可以到文末查看,这仅仅用于学习交流,如有侵权,马上删除。

    简介

    心音信号的切分是自动分析的第一步。
    精确定位S1和S2的前提是先定位收缩区和舒张区。
    除了S1和S2外,还可能存在S3(third heart sound),S4心音(fourth heart sound),收缩期射血卡嗒音(systolic ejection click),心缩中期敲击声(mid-systolic click),舒张的声音或二尖瓣开瓣音(diastolic sound or opening snap),如果还存在心脏杂音,那么在有噪声的情况下对于S1和S2的定位就很难。

    四类心音切分方法:

    • Envelope-based methods
    • Feature-based methods
    • Machine learning approaches
    • Hidden Markov model (HMM)-based methods

    实验方法

    心音数据

    如下图,心音数据训练集和测试集的划分。对数据进行了一些人工处理,作者在进行人工标志时把是在分辨不出来的去掉了,如Training-a中17个去掉了,还把每个数据库中每一个样本的最小,最大和中位数都给出了,另外统计了每个数据库中实际使用的有多少次心跳。


    FIG1

    评估方法

    使用{x1, x2, … , xi, … , xN}表示标注的4个心音状态的位置。
    一个容忍参数 δ 用于决定TP(true positive),FP(false positive)和FN(false negative)。
    对于当前心音信号状态应该出现在区间xiδstateonsetsxi+δ,不应该出现在区间
    xi+δstateonsetsxi+1δ。N1和N2用来表示落在这两个区间的数量。

    • TP,如果N1>0, TP=TP+1,表示在一个期望的区域出现一个期待望的结果。
    • FP,如果N1>0FP=FP+1,表示在期望的区间有超过一个被切分发生;如果N2>0FP=FP+N2表示在不期待的区间有错误的切分发生。
    • FN,如果N1=0, FN=FN+1,表示在期望的区间缺失了一个切分状态。

    The metrics of sensitivity (Se, or recall), positive predictivity (P+, or precision), accuracy (Acc) and F1 measure are defined as

    Se=TPTP+FN×100%

    P+=TPTP+FP×100%

    Acc=TPTP+FP+FN×100%

    F1=2×Se×P+Se+P+×100%

    依靠ECG给PCG做标注

    如果采集了ECG,使用ECG是很容易确定心音不同的状态。虽然数据库a同时给出了ECG信号,但是ECG的R peak and end T wave是没有给出来。为了确定这两个地方的位置,对于R peak 和 end T wave,作者分别使用了4中不同的方法去确定。确定这两个位置之后,在通过他们与PCG中S1和S2的关系去给每个样本做标记。


    ECG

    HSMM-based heart sound segmentation algorithm

    A standard HMM (i.e. H = (A, B,Pi)) plus a probability model of the time remaining in each heart sound state, i.e. H = (A, B,Pi, p).
    A is the transmission matrix of the four heart sound states;
    B is the observation distribution matrix;
    Pi is the initial heart sound state distribution;
    p is the probability density function of the time expected to remain in each heart sound state.

    该方法的好处:
    (1) it uses a logistic regression derived observation function for B matrix to replace the Gaussian distribution function;
    (2) it extends the Viterbi algorithm to predict the possible state durations beyond the beginning and end of the heart sound signal, to give the state durations at the boundary points; and
    (3) it uses a combination of four envelope features(homomorphic envelope, Hilbert envelope, wavelet envelope and power spectral density envelope) of the heart sounds for the model inputs.

    初始化输入
    (1) The transmission probabilities in matrix A are initialized to 0.
    (2) The initial state distribution probabilities in matrix were set to be equal to 0.25 for all four states.
    (3) The matrix B and p were trained by running the modified Viterbi algorithm over the training data.The four envelope feature were calculated and normalized(by subtracting the mean and dividing by the standard deviation of each recording), and then down-sampled to 50Hz by a poly phase anti-aliasing filter.
    (4)these envelope feature vectors and the corresponding reference annotation of the four heart sound states were inputed into the HSMM model for training.

    result

    训练组的结果评估


    FIG3

    测试组的结果评估


    FIG4

    忍耐度对F1的影响


    FIG5

    讨论

    the HSMM-based algorithm utilized the inherent probabilistic estimation of the duration-dependent Markov model,
    as well as combined the logistic regression for emission probability estimation and a modified Viterbi algorithm.

    Figure 3 shows several successful examples of automatic heart sound segmentation.


    FIG6

    Figure 4 shows typical errors.

    FIG7

    不足
    (1)无法手动辨别的数据没有用于实验的评估。
    (2)没有和其他算法做对比,因为在这篇文章之前没有研究人员使用这个database。
    (3)存在检测错误的情况,尤其是在 long heart cycles and irregular sinus rhythm。

    参考

    Liu, Chengyu, David Springer, and Gari D. Clifford. “Performance of an open-source heart sound segmentation algorithm on eight independent databases.” Physiological measurement 38.8 (2017): 1730.

  • 相关阅读:
    Ubuntu虚拟机磁盘空间不足的解决
    eclipse启动报错 JVM terminated. Exit code=1
    Ubuntu16.04 安装eclipse
    HDU 1710 Binary Tree Traversals(二叉树)
    Ubuntu16.04 搭建伪分布式Hadoop环境
    HDU 1560 DNA sequence(IDA*)
    Go的函数
    Go的包
    Go语言开发环境搭建
    go的循环
  • 原文地址:https://www.cnblogs.com/siucaan/p/9623227.html
Copyright © 2011-2022 走看看