| Literature DB >> 33390662 |
Xiang Yu1, Siyuan Lu1, Lili Guo2, Shui-Hua Wang3,4,5, Yu-Dong Zhang1,6,7.
Abstract
The widely spreading COVID-19 has caused thousands of hundreds of mortalities over the world in the past few months. Early diagnosis of the virus is of great significance for both of infected patients and doctors providing treatments. Chest Computerized tomography (CT) screening is one of the most straightforward techniques to detect pneumonia which was caused by the virus and thus to make the diagnosis. To facilitate the process of diagnosing COVID-19, we therefore developed a graph convolutional neural network ResGNet-C under ResGNet framework to automatically classify lung CT images into normal and confirmed pneumonia caused by COVID-19. In ResGNet-C, two by-products named NNet-C, ResNet101-C that showed high performance on detection of COVID-19 are simultaneously generated as well. Our best model ResGNet-C achieved an averaged accuracy at 0.9662 with an averaged sensitivity at 0.9733 and an averaged specificity at 0.9591 using five cross-validations on the dataset, which is comprised of 296 CT images. To our best knowledge, this is the first attempt at integrating graph knowledge into the COVID-19 classification task. Graphs are constructed according to the Euclidean distance between features extracted by our proposed ResNet101-C and then are encoded with the features to give the prediction results of CT images. Besides the high-performance system, which surpassed all state-of-the-art methods, our proposed graph construction method is simple, transferrable yet quite helpful for improving the performance of classifiers, as can be justified by the experimental results.Entities:
Keywords: COVID-19; Deep learning; Graph neural network; Pneumonia; ResGNet-C
Year: 2020 PMID: 33390662 PMCID: PMC7772101 DOI: 10.1016/j.neucom.2020.07.144
Source DB: PubMed Journal: Neurocomputing ISSN: 0925-2312 Impact factor: 5.719
Fig. 1Graph construction.
Fig. 2Acquisition of three models.
Fig. 3Architecture of ResNet101-C (Residual block denotes previous layers before FC1000 in the original ResNet101. FC1000, FC128 and FC2 are fully connected layers with output sizes of 1000, 128 and 2 respectively. Dropout layer drops part of connections between FC1000 and FC128 during the training session to prevent overfitting.).
Fig. 4Architecture of NNet-C.
Fig. 5ResGNet-C.
Fig. 6Batch acquisition.
Fig. 7Data flow of train set in three models.
Variable allocation in optimal k and N for knn algorithm.
| Variable name | Meaning |
|---|---|
| Number of neighbours considered | |
| A constant denotes the increment stride of | |
| The variable that stores the best | |
| Batch size | |
| A constant value denotes the increment stride of | |
| The variable that stores the best | |
| A variable that stores the highest accuracy on the test set so far. |
Hyperparameters of ResNet101-C and NNet-C.
| Parameter | Value |
|---|---|
| Maximum training epoch | 40 |
| Initial learning rate | 10-4 |
| Batch size | 8 |
| Learning rate drop period | 5 |
| Learning rate drop rate | 0.5 |
| Optimization method | SGDM |
| Shuffle of the train set | Each epoch |
Hyperparameters of GNN.
| Parameter | Value |
|---|---|
| Lower bound | 16 |
| Upper bound | 32 |
| Stride | 16 |
| Lower bound | 3 |
| Upper bound k | |
| Stride | 4 |
| Maximum training epoch | 40 |
| Initial learning rate | 10-4 |
| Learning rate drop period | 5 |
| Learning rate drop rate | 0.5 |
| Optimization method | SGDM |
| Shuffle of the train set | Each epoch |
Fig. 8Sample of images.
Composition of training and test set of each trial.
| Set | COVID-19 | Healthy | Total |
|---|---|---|---|
| Training | 118(119) | 118(119) | 236(238) |
| Test | 30(29) | 30(29) | 60(58) |
| Total | 148 | 148 | 296 |
a(b) represents the number of images may vary from a to b.
Performance of ResGNet-C when batch size N = 16, k = 3, 7, 11.
| Specificity | Sensitivity | F1 | Precision | Accuracy | |
|---|---|---|---|---|---|
| 3 | 0.9248 ± 0.0959 | 0.9555 ± 0.0524 | |||
| 7 | 0.8864 ± 0.1625 | 0.9655 ± 0.0771 | 0.9315 ± 0.0624 | 0.9112 ± 0.1130 | 0.9260 ± 0.0751 |
| 11 | 0.9393 ± 0.0375 | 0.9437 ± 0.0342 | 0.9559 ± 0.0160 |
Performance of ResGNet-C when batch size N = 32 and k = 3, 7, 11, 15, 19, 23, 27.
| Specificity | Sensitivity | F1 | Precision | Accuracy | |
|---|---|---|---|---|---|
| 3 | 0.9467 ± 0.0691 | 0.9115 ± 0.1133 | 0.9255 ± 0.0633 | 0.9501 ± 0.0626 | 0.9291 ± 0.0571 |
| 7 | 0.9733 ± 0.0365 | ||||
| 11 | 0.9462 ± 0.0301 | 0.9448 ± 0.1234 | 0.9420 ± 0.0570 | 0.9496 ± 0.0282 | 0.9455 ± 0.0467 |
| 15 | 0.9126 ± 0.0732 | 0.9586 ± 0.0925 | 0.9360 ± 0.0374 | 0.9229 ± 0.0606 | 0.9356 ± 0.0349 |
| 19 | 0.9260 ± 0.0499 | 0.9241 ± 0.1696 | 0.9180 ± 0.0859 | 0.9327 ± 0.0442 | 0.9251 ± 0.0656 |
| 23 | 0.9120 ± 0.0196 | 0.9517 ± 0.1079 | 0.9307 ± 0.0653 | 0.9141 ± 0.0242 | 0.9318 ± 0.0589 |
| 27 | 0.9186 ± 0.0201 | 0.9610 ± 0.0093 | 0.9250 ± 0.0171 | 0.9593 ± 0.0101 |
Fig. 9Error bar of choices of best k and N.
Fig. 10The simplified Receiver Operating Characteristic curves of models.
Performance of three proposed models.
| Model | Specificity | Sensitivity | F1 | Precision | Accuracy |
|---|---|---|---|---|---|
| NNet-C (Ours) | 0.8575 ± 0.1186 | 0.8044 ± 0.0949 | 0.8262 ± 0.0648 | 0.8592 ± 0.0916 | 0.8309 ± 0.0659 |
| ResNet101-C (Ours) | 0.8584 ± 0.0354 | 0.9107 ± 0.0347 | 0.9703 ± 0.0407 | 0.9159 ± 0.0326 | |
| ResGNet-C (Ours) | 0.9591 ± 0.0446 |
Fig. 11Comparison of three proposed models.
Comparison with SOTA methods.
| Model | Specificity | Sensitivity | F1 | Precision | Accuracy |
|---|---|---|---|---|---|
| K-ELM | 0.5682 | 0.6136 | 0.5952 | 0.5909 | 0.5814 |
| ELM-BA | 0.5500 ± 0.0258 | 0.7636 ± 0.0244 | 0.6997 ± 0.0244 | 0.6568 ± 0.0192 | 0.6156 ± 0.0225 |
| Wang | 0. 6700 | 0.7400 | – | – | 0.7310 |
| Li | 0.9000 | 0.9600 | – | – | 0.9600 |
| Mangal | – | – | – | 0.9050 | |
| ResGNet-C (Ours) | 0.9733 ± 0.0365 |
| Algorithm 1. Proposed ResGNet Framework |
|---|
| Step 1: Load pre-trained networks trained on ImageNet; |
| Step 2: Replace top layers with new top layers for the classification task; |
| Step 3: Train modified pre-trained network on the target dataset with predefined hyperparameters; |
| Step 4: Generate features through activation layers in the fine-tuned network; |
| Step 5: Divide the features into batches; |
| Step 6: Find top |
| Step 7: Combine features with graph representation by multiplying features with the normalized adjacency matrix |
| Step 8: Train GNN in ResGNet with the combined features and update parameters. |
| Algorithm 2. Implementation of ResNet101-C |
|---|
| Step 1: Load ResNet101 trained on ImageNet; |
| Step 2: Remove the top layers above FC1000 layer; |
| Step 3: Add a dropout layer as new top layers; |
| Step 4: Add FC128 and FC2 as new top layers; |
| Step 5: Add the softmax layer and classification layer for output, which gives ResNet101-C; |
| Step 6: Training ResNet101-C with the training set of COVID-19. |
| |
| Step A: shuffle images in the train set |
| Step B: divide train set into batches |
| Step C: train ResNet101-C with each batch |
| Algorithm 3. Training process of ResGNet-C |
|---|
| Step 1: Generate training features through ResNet101-C; |
| Step 2: |
| |
| Step A: Construct relation graph in each batch of features; |
| Step B: Combine features with graph; |
| Step C: forward combined features to GNN; |
| Step D: backwards the errors to update weights in GNN; |
| |
| |
| Step 3: Save and store the weights of ResGNet-C. |
| Algorithm 4. Testing process of ResGNet-C |
|---|
| Step 1: Load trained ResGNet-C; |
| Step 2: Generate testing features through ResNet101-C; |
| Step 3: Divide images in the test set into |
| Step 4: Get the predicted categories for images in the test set. |
| |
| Step A: Construct graph for each batch of features; |
| Step B: Combine features with the graph; |
| Step C: forward combined features to GNN; |
| Step D: Get the predicted categories of each batch; |
| |
| Step 5: Calculate the accuracy by comparing the predicted categories to real categories. |
| Algorithm 5. Choice of optimal |
|---|
| Criterion: |
| Objective Function: See equation (29). |
| Search domain: See equations (30) and (31). |
| Procedures: |
| Step 0: Variable Allocation |
| See |
| Step 1: Initialization |
| Initialize |
| |
| Initialize |
| |
| Initialize variable |
| Set the increment stride of |
| Step 2: Retrain |
| Train GNN with |
| Step 3: Update |
| |
| |
| |
| e |
| Step 4: Update |
| |
| |
| Then go back to Step 2; |
| |
| Go to Step 5; |
| |
| Step 5: Update |
| |
| |
| Then go back to Step 2; |
| |
| Go to Step 6; |
| |
| Step 6: Output |