16

LSTM-FCN for cardiology

 4 years ago
source link: https://towardsdatascience.com/lstm-fcn-for-cardiology-22af6bbfc27b?gi=ab27fec49df4
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

LSTM-FCN for cardiology

Long Short Term Memory with Fully Convolutional Network (LSTM-FCN) is an enhancement of FCN, which have been shown to achieve the state-of-the-art performance on the task of classifying time series sequences

Mar 11 ·5min read

vIBRrib.jpg!web

ECG (source: https://i.ytimg.com/vi/HWzACHkCi3U/maxresdefault.jpg )

We will work on the application of the algorithm on a database containing electrocardiograms (ECG) of 2 different types, and see if this new model can help detect patients at a high risk of sudden death.

LSTM-FCN architecture

fI7NfqN.png!web

LSTM-FCN architecture (source: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8141873 )

This algorithm consists of 2 parts: a LSTM block and a FCN part with 3 convolution layers.

LSTM part

Long short-term memory recurrent neural networks are an improvement over the general recurrent neural networks,which possess a vanishing gradient problem. LSTM RNNs address the vanishing gradient problem commonly found in ordinary recurrent neural networks by incorporating gating functions into their state dynamics. For more information about LSTM networks, you can read this great article by Christopher Olah.

In addition to the LSTM block, this part also includes a dimension shuffle. Meanwhile the fully convolutional block views the time series as a univariate time series with multiple time steps, the LSTM block in the proposed architecture receives the input time series as a multivariate time series with a single time step. This is accomplished by the dimension shuffle layer, which transposes the temporal dimension of the time series. A univariate time series of length N, after transformation, will be viewed as a multivariate time series (having N variables) with a single time step. Dimension shuffle improves the efficiency of this model by requiring an order of magnitude less time to train.

FCN part

We use Temporal Convolutional Networks as a feature extraction module in a Fully Convolutional Network (FCN) branch, which means that we apply a set of 1D filters on each of these layers (filter sizes of 128, 256,and 128 respectively) that capture how the input signals evolve over the course of an action. A basic convolution block consists of a convolution layer, followed by batch normalization (for improving the speed, performance, and stability of the network), followed by an activation function, which is here a Rectified Linear Unit (ReLU). If you want more information about convolution layer and CNN models, take a look at my article aboutCNN achitecture.

Finally, global average pooling is applied after the final convolution block. It is used to reduce the number of parameters in the model prior to classification.

The output of the global pooling layer and the LSTM block is concatenated and passed onto a softmax classification layer.

Data set

YvyQzuz.png!web

ECG recordings from patients at a high risk of sudden death and healthy control subjects

Our data set is divided into 2 parts: one part for model training and another part for testing. The training will be on 23 sequences, and the test on 1189, these sequences are electrocardiograms (ECGs). An ECG is a test that checks how your heart is functioning by measuring the electrical activity of the heart. We have 2 different categories of ECG: one corresponding to patients at a high risk of sudden death, and another for healthy subjects.

This data set is named TwoLeadECG and is part of the UCR data sets, you can download it from here .

Baseline

The algorithm that serves as a reference for judging the results of the LSTM-FCN model is k-Nearest Neighbors (k-NN). The choice of this algorithm comes from the fact that it is an algorithm that is both simple and effective for the classification of time series.

The general idea behind k-NN applied to temporal data is quite simple, we will look at the k nearest neighbors (What a surprise !) of each sequence and see which class constitutes the majority of these sequences, in order to deduce the class of the new sequence. To know the nearest neighbors, we use the dynamic time warping algorithm that allows to measure the similarity (or distance) between two time series.

We test with various values of k (number of nearest neighbors) ranging from 1 to 10, we find ourselves with an accuracy on the test data set which varies between 0.70 and 0.93, this last value being reached for k = 1

FBf6V3A.png!web

LSTM-FCN Model

Code

LSTM-FCN function

Results

MJFFfyy.png!web

FRF73iy.png!web

As we can see on the model loss graph, the loss function curves (training and validation) are gradually decreasing and converging towards the same point, indicating that learning has gone well and that there has been neither over-fitting nor under-fitting.

Regarding model accuracy graph, it confirms the good learning of the model and especially shows that the model gives very good results. Thus, when we apply the model on the test data set we have a accuracy of 100%, our model manages to perfectly classify the different electrocardiograms.

A performance that goes beyond the results we have seen with k-NN, and can even be considered better than cardiologists’ since we get 100% accuracy !


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK