---
# System prepended metadata

title: Untitled

---

## Implementation

此人參考這篇論文:[Evaluate the Malignancy of Pulmonary Nodules Using the 3D Deep Leaky Noisy-or Network](https://arxiv.org/abs/1711.08324)寫的，並有提供[colab](https://colab.research.google.com/github/s-mostafa-a/Luna16/blob/master/notebooks/Sample_of_training_process_with_google_colab.ipynb)

但主要因為此code是end to end去預測肺癌機率，對我們而言不能直接套用，不過仍然可以將[model](https://github.com/s-mostafa-a/Luna16/blob/master/model/net.py)拉出來當作其中一個候選模型。 (有detection+classification，結構相同)

論文中有提供detection model的FROC curve. (但仍然要注意到data set是不一樣的!)

![](https://i.imgur.com/LrxpjjI.png)

## Important points

- Data set is **LUNA(2016) + DB(2017)**
    - Difference to ours: We have to check the size of the nodules!!  This paper **neglects small** (<6mm) **nodules**, and validates its results(FROC) on DBA(which has mainly large nodules)
- Model
    - Include detection + **classification!!** (both 3D CNN)
    1. 第一塊：3D region proposal network for **nodule detection**, which outputs all suspicious nodules for a subject.
    2. 第二塊：Selects the top five nodules based on the detection confidence, evaluates their cancer probabilities and combines them with a leaky noisy-or gate to obtain the **probability of lung cancer** for the subject.
    
    ![](https://i.imgur.com/PhG3TTS.png)

    
    - 3D RPN with backbone of modified U-net: [https://github.com/s-mostafa-a/Luna16/tree/master/model](https://github.com/s-mostafa-a/Luna16/tree/master/model)
- GPU memory not enough: How they deal with it?
    - They **split lung scans into several parts**,(208*208*208*1 per part) processing them separately.
- Training techniques
    - [Data Augmentation](https://github.com/s-mostafa-a/Luna16/blob/master/notebooks/Augmentor.ipynb) (Combat **OVERFITTING**!):
    
    ![](https://i.imgur.com/Rzj0H4n.png)

    
- Training method
    
    [train.py](https://github.com/s-mostafa-a/Luna16/blob/master/main/train.py)
    
    1. Transfer the weights from the trained detector and train the classifier in the standard mode.
    2. Train the classifier with gradient clipping, then freeze the BN parameters.
    3. Train the network for classification and detection alternately with gradient clipping and the stored BN parameters. This training scheme corresponds to **A → B → E**