52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: ECG ×AI: 机器/深度学习的ECG应用入门(8) [打印本页]

作者: Aiwiscal    时间: 2018-6-10 13:21
标题: ECG ×AI: 机器/深度学习的ECG应用入门(8)
本帖最后由 Aiwiscal 于 2018-6-11 03:53 编辑

再次强调:以下内容仅供小白食用,大佬请绕行!!!

                  觉得好请点赞,github给颗星~~~~



RNN:长短时记忆网络(LSTM)的应用1.引言

前面的教程中说了有关1维卷积神经网络(CNN)在ECG算法中的应用,目前也有众多论文在该方面有所探讨。为什么在图像领域表现出色的CNN能够适用于ECG信号?原因我们前面也进行了一些分析,其实感性地说起来,就是ECG信号与2维图像存在诸多相似之处,使得CNN可以顺利从2维图像迁移到1维信号。那现在我们要思考一些两者的不同之处。

不知道大家有没有注意,在2维图像中,两个坐标往往被称为“空间”坐标,而在1维ECG信号中,唯一的坐标往往是“时间”坐标。在CNN的应用中,我们忽略两者的不同,仅关注两者相似的地方,即“局部相关性”和“平移不变性”,从而成功迁移CNN。但“时间”与“空间”概念终究是不同的,1维ECG信号,说到底,还是一个时间序列。时间序列中往往存在着复杂的因果关系,也是隐藏规律的所在。接触过深度学习领域的人都应该知道,处理时间序列,那就是循环神经网络(RNN)的长项了。理论上,RNN应该也可以处理1维ECG信号。但是,朴素的RNN有一个致命的问题:长程依赖问题。随后提出的RNN变种——长短时记忆网络(LSTM)可以良好的解决这个问题,因此成为了RNN应用的主要选择。

2. RNN(LSTM)的应用模式

RNN的基本与展开结构如下图:

[attach]206[/attach]

X0~Xt是我们所要输入的时间序列,h0~ht分别是各时刻的隐层状态。与CNN这种前馈网络不同,对于RNN来说,系统的输出会保留在网络里, 和系统下一刻的输入一起共同决定下一刻的输出。这种特性也使得RNN在处理语义方面非常突出,因为此刻的语义往往依赖于复杂的上文内容。但是,这样的简单RNN存在长程依赖问题,即最近输入的信息对结果影响是最大的,而最开始输入的信息已经被网络“遗忘”,很难再对结果产生较大影响。而后提出的LSTM引入了“输入门,输出门,遗忘门”的概念,可以解决这个问题,成为了RNN应用的主流,以下为朴素RNN与LSTM的比较:

RNN:

[attach]207[/attach]


LSTM:


[attach]208[/attach]


可以看到,LSTM的结构比朴素RNN复杂了不少。这里对RNN以及LSTM的原理不做讨论,有兴趣的可自行查阅 http://colah.github.io/posts/2015-08-Understanding-LSTMs/。而RNN(LSTM)的基本应用模式也可以分为以下几种,有“一对多”,“多对一”,两种“多对多”:

[attach]209[/attach]



对于我们的ECG应用,我们采用最后一种方式,每个数据点是每个时刻的输入,把握每个时刻的网络输出。但是,我们最终输出的应该是目标信号的类别,而不是一个序列,所以得到每个时刻的网络输出组成的序列后,再送入一个全连接层,全连接层的输出就是One-hot类型的类别编码:

[attach]210[/attach]

RNN系列网络的训练是BP算法的变种BPTT,同样我们在这里也不做过多展开。



3. 示例:LSTM的ECG分类

这里我们的数据依然来源于我们在前面截取的心拍,基于TensorFlow深度学习框架。除了所用的网络有所不同,其他流程与前面教程中所述的CNN基本相同。可参考代码:https://github.com/Aiwiscal/ECG- ... ication-DL_ULSTM.py 及所附注释。该代码中所用LSTM为单隐层,时间步数为250(与心拍长度一致),分4类。与前面的CNN一样,采用Adam方法训练。算法的评估方法也与前面教程相同,可自行查看代码输出。

4.小结

这一节讲述了LSTM在ECG识别中的应用。因为基本框架未变,只是换了网络结构,所以这一篇没有太多的讲解,只是把大概思路说了一下。对RNN(LSTM)感兴趣的可自行查阅相关资料。


*代码下载:https://github.com/Aiwiscal/ECG- ... ication-DL_ULSTM.py

*推荐阅读:http://colah.github.io/posts/2015-08-Understanding-LSTMs/


喜欢请点赞,github给颗星~~~~

https://github.com/Aiwiscal



作者: 老猫    时间: 2018-9-6 11:58
这帖子好啊,必须点赞啊
作者: river_chen    时间: 2019-10-9 02:53
大神!!!学习了。





欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2