fbadine's picture
Update README.md
2aa36ca verified
|
raw
history blame
5.86 kB
metadata
library_name: keras
tags:
  - image-classification
  - spam-detectio
metrics:
  - accuracy
base_model:
  - keras-io/VGG19

Image Spam Detection with VGG19

This is a model for detecting spam in images using transfer learning, with a VGG19 base model fine-tuned on the Image Spam Hunter Dataset.


Model Description

This model is built for binary classification, detecting whether an image is spam or not. The VGG19 architecture was used as the base model for transfer learning, leveraging pre-trained weights from ImageNet. The final layers were customised to include a GlobalAveragePooling layer, followed by fully connected layers, and a softmax activation for classification.

  • Base Model: VGG19
  • Task: Binary classification (Spam / Not Spam)
  • Framework: Keras (TensorFlow backend)

Training and Evaluation Data

Dataset

The model was trained and evaluated on the Image Spam Hunter Dataset, a publicly available dataset that contains spam and non-spam images:

  • Training set: 1731 images
  • Validation set: 1385 images

You can find more about the dataset here.


Training Procedure

Preprocessing

  • Images were resized to 256x256.
  • Normalisation was applied to scale pixel values between 0 and 1.

Optimizer

  • Optimizer: Adam
  • Learning Rate: 0.001

Training Parameters

  • Batch Size: 128
  • Epochs: 50

Loss Function

  • Binary Cross-Entropy Loss

Augmentations

  • Random augmentation using Keras CV RandAugment layer.

Training Metrics

Below is a summary of the model's performance over the training process:

FN FP TN TP accuracy loss val_FN val_FP val_TN val_TP val_accuracy val_loss
187 140 499 559 0.763899 1.93435 19 2 169 156 0.939306 0.378412
16 35 604 730 0.963177 0.242954 6 3 168 169 0.973988 0.186523
29 19 620 717 0.965343 0.174301 3 12 159 172 0.956647 0.149353
17 26 613 729 0.968953 0.116907 3 7 164 172 0.971098 0.0973678
14 17 622 732 0.977617 0.0807728 2 12 159 173 0.959538 0.0991694
13 18 621 733 0.977617 0.0713564 3 6 165 172 0.973988 0.0604228
10 17 622 736 0.980505 0.0604733 3 5 166 172 0.976879 0.0584633
9 13 626 737 0.984116 0.0478682 4 4 167 171 0.976879 0.0745383
5 13 626 741 0.987004 0.0376507 3 7 164 172 0.971098 0.0773135
7 6 633 739 0.990614 0.0248621 3 2 169 172 0.985549 0.0628484
7 10 629 739 0.987726 0.0298408 2 2 169 173 0.988439 0.0531744
4 10 629 742 0.989892 0.0242986 3 2 169 172 0.985549 0.0675473
6 7 632 740 0.990614 0.0326418 2 3 168 173 0.985549 0.0671533
6 9 630 740 0.98917 0.0279278 2 5 166 173 0.979769 0.06897
7 7 632 739 0.989892 0.0244297 2 3 168 173 0.985549 0.0550619
5 4 635 741 0.993502 0.0228877 3 2 169 172 0.985549 0.0558347
4 10 629 742 0.989892 0.0277857 4 0 171 171 0.988439 0.0401906
2 7 632 744 0.993502 0.0193213 9 1 170 166 0.971098 0.0959367
7 3 636 739 0.99278 0.0151094 4 6 165 171 0.971098 0.0873069
7 3 636 739 0.99278 0.017344 1 6 165 174 0.979769 0.0964724
5 4 635 741 0.993502 0.024251 1 4 167 174 0.985549 0.0580115
3 9 630 743 0.991336 0.0207464 1 3 168 174 0.988439 0.0510422
2 6 633 744 0.994224 0.0122992 1 1 170 174 0.99422 0.0439666
3 2 637 743 0.99639 0.0105987 4 2 169 171 0.982659 0.0502425
3 6 633 743 0.993502 0.0164827 6 1 170 169 0.979769 0.0865423
5 7 632 741 0.991336 0.0245302 6 3 168 169 0.973988 0.0918282
9 8 631 737 0.987726 0.0296158 5 1 170 170 0.982659 0.0991676

Model Plot

The model architecture can be visualised in the image below:

Model Image


Validation Accuracy

The final validation accuracy achieved by the model was 98%.


How to Use the Model

Loading the Model

To load this model in your application, use the following:

from tensorflow.keras.models import load_model
model = load_model("path/to/saved_model")