基于HMM和BP神经网络的睡眠分期算法

基于HMM和BP神经网络的睡眠分期算法

由于在做睡眠监测设备,最近研究了一下睡眠分期的相关…在知网上查到了很多的论文,对其中一篇论文做了一个复现并进行了些许的改进,弄了一个睡眠分期算法,将成果写成博客方便日后查看。首先,在讲述算法模型前,先科普一下睡眠分期的一个相关研究。

睡眠分期的相关研究

睡眠过程中,脑电图发生各种不同变化,这些变化随着睡眠的深度而不同。根据脑电图的不同特征,又将睡眠分为两种状态:非眼球快速运动睡眠(又称正相睡眠、慢波睡眠、同步睡眠、安静睡眠、NREM睡眠)和眼球快速运动睡眠(又称异相睡眠、快波睡眠、去同步化睡眠、活跃睡眠、REM睡眠,还称雷姆期现象),二者以是否有眼球阵发性快速运动及不同的脑电波特征相区别。

图为一个睡眠周期内大致的睡眠分期

在一个睡眠周期内,睡眠状态的变化大致如下:

睡眠分期算法的训练数据来自于在Google dataset中搜到的DREAMS主题数据库中,关于20位健康人员的一晚上的睡眠数据,通过HRV(心率变异性)等原理来进行特征的筛选。

睡眠分期算法模型

数据类型

数据包含两个部分,一部分为来自20名健康受试者的20个全夜多导睡眠图文件,采样的频率为200HZ,也就是说每秒产生200个数据,另一部分为专家根据美国睡眠医学会标准,以30秒为时间段切分,通过人工标注所处睡眠阶段的注释文件。

20名测试者的信息为4男16女,年龄层在20-65岁,有一定的代表性。经过对数据进行预处理、分类训练,得到一个睡眠质量分析的模型,经过多次实验,我们采用了HMM隐马尔可夫模型与反馈神经网络相结合的混合算法应用到了睡眠分期的分类计算中,经过交叉验证,模型的准确率可以达到85%以上。

整体搭建流程

整体思路

首先通过数据中的多导睡眠图进行心率、呼吸率的提取,通过HMM隐马尔可夫模型提取出心率变异的特征向量,训练出各个睡眠时期相对应的隐马尔可夫模型,,然后再将计算结果作为向量输入到反馈神经网络中进行第二次的分类,利用反馈神经网络的强大的区分识别能理提高准确率。经过交叉验证,对于识别的准确率可以达到85%左右。

接下来会分别介绍HMM和BP神经网络

隐马尔可夫模型(HMM)

统计模型的一种,用来描述一个含有隐含未知参数的马尔可夫过程。

HMM基本模型可以用上图来表示,其中y1,y2,y3表示可以观察到的状态,x1,x2,x3表示无法观测到的状态,b为隐藏状态与各个观测状态之间的关系,a为各个隐藏状态之间的相关概率。

HMM模型的建立主要由以下三个参数组成:

  1. 状态转移概率:模型在各个状态之间转换的概率
  2. 状态转移矩阵:表示在模型中,已知当前状态,根据当前状态推测出的各个观测值的概率矩阵
  3. 初始状态概率:模型在初始时刻各个状态出现的概率。
  4. 隐藏状态的集合
  5. 观测状态的集合

这样,确定了参数之后,就可以通过使用x = [S,K,Π,A,B]来表示HMM模型

代码部分截图

BP神经网络

​ 人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果。作为一种智能信息处理系统,人工神经网络实现其功能的核心是算法。BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法,它的基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方差为最小。

​ 基本BP算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行,而调整权值和阈值则从输出到输入的方向进行。正向传播时,输入信号通过隐含层作用于输出节点,经过非线性变换,产生输出信号,若实际输出与期望输出不相符,则转入误差的反向传播过程。误差反传是将输出误差通过隐含层向输入层逐层反传,并将误差分摊给各层所有单元,以从各层获得的误差信号作为调整各单元权值的依据。通过调整输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。(百度百科)

流程

  1. 工作信号正向传递的子过程

  2. 误差信号反响传递的子过程

    在BP神经网络的训练过程中,输入层为样本训练的输入矩阵,输入信号经过处理之后将结果传递给输出层,只有相邻的神经元之间才可以传递信号。输出层将输出结果和预期结果进行对比,如果两个结果的误差未达到预期大小,就会进入反响传递,根据预测误差值的大小来调整整个网络节点之间的权重,知道最后接近期望输出。

混合模型的建立

在单一使用HMM模型进行训练时,由于嵌入式硬件的条件限制,所以只能使用心率进行特征筛选,所以模型的准确率只有65%,在经过BP神经网络的结合之后,准确率达到了85%以上,这也证明了BP神经网络模型对HMM分期的结果进行再分类是有效的。

主要是由于HMM忽略了各个特征之间的不同之处,在进行模型参数计算和模型匹配的时候,都是通过收敛计算和概率计算的方式来进行模型参数和匹配模型,这样再计算的过程中就很容易产生意想不到的计算误差。而BP神经网络可以将其纠正到正确的睡眠状态之中,从而提高睡眠分期计算的准确率。

全部评论

相关推荐

我见java多妩媚:大外包
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务