An Ensemble Deep Learning Approach to Classify Scoliosis and Healthy Subjects In Python and Keras
Adolescent idiopathic scoliosis
(Image source Wikimedia Commons)
Adolescent idiopathic scoliosis (AIS) is a three-dimensional deformity of the spine, which is characterized by deformation of vertebral column curvatures on the sagittal, frontal and transverse plane. X-ray are used to diagnose AIS, as they allow to detect vertebral rotation and to compute Cobb angle, needed for AIS classification. X-rays, however, carry health risk from repetitive exposure to ionizing radiation and cannot aid the physician to detect postural changes associated to AIS.
Recently, Video-Raster-Stereography (VRS) has been proposed as an objective non-invasive method for instrumented three-dimensional (3D) back shape analysis and reconstruction of spinal curvatures and deformities without radiation exposure.
The main drawback with the application of VRS to clinical practice like in AIS screening, is represented by the lack of a codified system to analyze and interpret the whole number of parameters derived from any single acquisition.
A narrative review performed by Chen et al. in 2021 , describes the application of ML in clinical practice procedures regarding scoliosis in various medical phases. In particular, the authors emphasized that an accurate diagnosis with ML can help surgeons avoid misjudgment.
Ensemble Deep Learning
(Image source Medium article)
Deep learning neural networks are
They offer increased
flexibility and can
scale in proportion to the amount of training data available. A downside of this flexibility is that they learn via a
stochastic training algorithm which means that they are sensitive to the specifics of the training data and may find a
different set of weights each time they are trained, which in turn produce different predictions.
Generally, this is referred to as neural networks having a
high variance and it can be frustrating when trying to develop a final model to use for making predictions.
A successful approach to reducing the variance of neural network models is to
train multiple models instead of a single model and to
combine the predictions from these models. This is called
ensemble learning and not only
reduces the variance of predictions but also can
result in predictions that are better than any single model. 
Ensemble modeling is the process by which a machine learning model combines distinct base models to generate generalized predictions using a combination of the predictive power of each of its components. Each base model differs with respect to the variable elements i.e. training data used and algorithm/model architecture. Each of these may capture only a few aspects or learn effectively from only a part of the training data, due to its specific tuning. Ensemble modeling provides us with the opportunity to combine all such models to acquire a single superior model which is based on learnings from most or all parts of the training dataset. Averaging of predictions also help eradicate the issue of individual models fixating on local minima.
In this project we constructed and trained an
Ensemble Neural Network to classify scoliosis and healthy subjects. The model predicts the probability that a subject suffers from
AIS basd on the
VRS data. The Ensemble Neural Network is implemented using the Keras, and it is averaging the prediction of
16 multi-layer perceptron (MLP) neural networks.
Each neural network is made of
two hidden (Dense)
layers and each layer is composed of
64 neurones. The Ensemble Neural Network performs quite well achieving a
balanced accuracy over 86%.
We leveraged the data constituted by the Video-Raster-Stereography (VRS) measures of subjects who have undergone a clinical check and have been diagnosticated as healthy/AIS. Acquisition of data was performed through VRS by the Formetric™4D system (Diers International GmbH, Schlangenbad, Germany) for the research work by Colombo T et al. 2021 on Supervised and unsupervised learning to classify scoliosis and healthy subjects based on non-invasive rasterstereography analysis.
ensemble.py: contains the implementation of the Ensemble Deep Learning Model.
train_ensemble.py: trains the ensemble deep learning algorithm model on a dataset composed of 272 scoliotic subjects and 192 healthy subjects, and saves the weights and parameters of the model under the selected directory (in this case, the trained ensemble model is saved under
model) in the project folder. Then, it loads the model and assesses the quality of predictions using the
Install Python (>=3.6):
sudo apt-get update sudo apt-get install python3.6
Clone this repository:
git clone https://github.com/wiguider/Ensemble-Deep-Learning-to-Classify-Scoliosis-and-Healthy-Subjects.git
Install the requirements:
pip install -r requirements.txt