Outline a brief description of your project.
Table of Contents
To build a CNN based model which can accurately detect melanoma. Melanoma is a type of cancer that can be deadly if not detected early. It accounts for 75% of skin cancer deaths. A solution that can evaluate images and alert dermatologists about the presence of melanoma has the potential to reduce a lot of manual effort needed in diagnosis.
Following are the conclusions from different models tried and experimented on the dataset:
- Model is overfitting and this can be observed from
- the huge gap between accuracies of train and validation sets
- training loss going towards zero or nullifying but validation loss keeps increasing inversely
- Model is not overfitting but the accuracy has dropped
- model validation curve in both accuracy and loss plot is fluctuating
- Model is not overfitting but the accuracy has dropped and compared to data augmentation model accuracy and loss curves are aligned
We can see train dataset is imbalanced and
- class seborrheic keratosis has lowest samples i.e., 58
- classes pigmented benign keratosis, melanoma, basal cell carcinom, nevus dominating the data in terms of proportion
- after rebalancing with augmentor package, the accuracy has been increased
- there is no overfitting happening
- train vs validation curves are smoother and not highly fluctuating like earlier models
Model | epochs | Comments |
---|---|---|
Initial Model | 20 | Model is overfitting |
Model with Data Augmentation | 20 | Accuracy is low, overfitting is controlled |
Model with Dropout | 20 | no overfitting, but plot curves are not smooth and fluctuating and less accuracy |
Model with Class rebalance + Dropout | 50 | accuracy improved, no overfitting and curves are smoother |
- Python - v3.9.12
- tensorflow - v2.8.0
- keras - v2.8.0
Please refer requirements.txt file, for other optional libraries installed for this CNN exploration
- Project is developed as per requirements of assignment.
- Tensorflow - loading images and processing them
- Stackoverflow - Generating class distribution dictionary
Created by @Vinay26k - feel free to contact me!