Heart Murmur Classification Using a 1-Dimensional Inception Time Convolutional Neural Network

Bjørn-Jostein Singstad1, Lars Bongo2, Markus Johnsen3, Johan Ravn3, Henrik Schirmer4
1Simula Research Laboratory, 2The Arctic University of Norway, 3Medsensio, 4Department of Cardiology, Akershus University Hospital


Background: Murmurs from the heart are caused by turbulent blood flow in cardiac structures, which might be a sign of congenital heart diseases that represents an important mortality factor affecting ∼1% of all newborns. A phonocardiogram (PCG) is a recording of heart and lung sounds, but these sounds can be hard to reliably interpret by medical doctors. Our team, Simulab, aim to identify the presence, absence, or unclear cases of murmurs from PCGs using machine learning.

Methods: We trained and tested a 1-dimensional convolutional neural network on a dataset of PCGs from a pediatric population of 1568 individuals. Recordings from 942 individuals were used for training, 149 for validation and 477 for testing. The PCGs were recorded from four locations on the torso, representing the pulmonary, aortic, mitral and tricuspid valves. One signal from each location was used as input to the classifier. In cases where some of the signals were missing, these signals were replaced by a vector of zeros. Some patients had multiple recordings from the same auscultation location, and in these cases, one of the signals was randomly selected and the rest were excluded. Some signals were labeled with Phc, indicating that the location of acquisition is unknown, and these signals were also excluded. All signals were resampled to 500Hz and zero-padded or truncated to be equally long as the longest signal in the training set.

Results: The model was trained for 50 epochs with a batch size of 15, using Adam optimizer and weighted categorical cross-entropy as loss function. The weights were inversely proportional to the prevalence of the 3 classes in the training set. The learning rate started at 0.001 and was reduced by a factor of 10 for each 10th epoch. Table 1 shows the model performance on the training and validation set