Ravjot Singh

Becoming Human: Artificial Intelligence Magazine

Are you curious about how different neural networks stack up against each other? In this blog, we dive into an exciting comparison between Artificial Neural Networks (ANN) and Convolutional Neural Networks (CNN) using the popular CIFAR-10 dataset. We’ll break down the key concepts, architectural differences, and real-world applications of ANNs and CNNs. Join us as we uncover which model reigns supreme for image classification tasks and why. Let’s get started!

Dataset Overview

The CIFAR-10 dataset is a widely-used dataset for machine learning and computer vision tasks. It consists of 60,000 32×32 color images in 10 different classes, with 50,000 training images and 10,000 test images. The classes are airplanes, cars, birds, cats, deer, dogs, frogs, horses, ships, and trucks. This blog explores the performance of Artificial Neural Networks (ANN) and Convolutional Neural Networks (CNN) on the CIFAR-10 dataset.

Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com
Sample dataset

What is ANN?

Artificial Neural Networks (ANN) are computational models inspired by the human brain. They consist of interconnected groups of artificial neurons (nodes) that process information using a connectionist approach. ANNs are used for a variety of tasks, including classification, regression, and pattern recognition.

Principles of ANN

  • Layers: ANNs consist of input, hidden, and output layers.
  • Neurons: Each layer has multiple neurons that process inputs and produce outputs.
  • Activation Functions: Functions like ReLU or Sigmoid introduce non-linearity, enabling the network to learn complex patterns.
  • Backpropagation: The learning process involves adjusting weights based on the error gradient.
Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com

ANN Architecture

ANN = models.Sequential([
layers.Flatten(input_shape=(32, 32, 3)),
layers.Dense(3000, activation='relu'),
layers.Dense(1000, activation='relu'),
layers.Dense(10, activation='sigmoid')
])
ANN.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=['accuracy'

What is CNN?

Convolutional Neural Networks (CNN) are specialized ANNs designed for processing structured grid data, like images. They are particularly effective for tasks involving spatial hierarchies, such as image classification and object detection.

Principles of CNN

  • Convolutional Layers: These layers apply convolutional filters to the input to extract features.
  • Pooling Layers: Pooling layers reduce the spatial dimensions, retaining important information while reducing computational load.
  • Fully Connected Layers: After convolutional and pooling layers, fully connected layers are used to make final predictions.
Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com

CNN Architecture

CNN = models.Sequential([
layers.Conv2D(input_shape=(32, 32, 3), filters=32, kernel_size=(3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(filters=64, kernel_size=(3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Flatten(),
layers.Dense(2000, activation='relu'),
layers.Dense(1000, activation='relu'),
layers.Dense(10, activation='softmax')
])
CNN.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=['accuracy'])

Training and Evaluation

Both models were trained for 10 epochs on the CIFAR-10 dataset. The ANN model uses dense layers and is simpler, while the CNN model uses convolutional and pooling layers, making it more complex and suitable for image data.

ANN.fit(X_train, y_train, epochs=10)
ANN.evaluate(X_test, y_test)

CNN.fit(X_train, y_train, epochs=10)
CNN.evaluate(X_test, y_test)

Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com
Training ANN Model
Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com
Training CNN Model

Results Comparison

The evaluation results for both models show the accuracy and loss on the test data.

ANN Evaluation

  • Accuracy: 0.4960
  • Loss: 1.4678
Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com
Test Data Evaluation for ANN Model

CNN Evaluation

  • Accuracy: 0.7032
  • Loss: 0.8321
Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com
Test Data Evaluation for CNN Model

The CNN significantly outperforms the ANN in terms of accuracy and loss.

Confusion Matrices and Classification Reports

To further analyze the models’ performance, confusion matrices and classification reports were generated.

ANN Confusion Matrix and Report

y_pred_ann = ANN.predict(X_test)
y_pred_labels_ann = [np.argmax(i) for i in y_pred_ann]
plot_confusion_matrix(y_test, y_pred_labels_ann, "Confusion Matrix for ANN")
print("Classification Report for ANN:")
print(classification_report(y_test, y_pred_labels_ann))
Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com

CNN Confusion Matrix and Report

y_pred_cnn = CNN.predict(X_test)
y_pred_labels_cnn = [np.argmax(i) for i in y_pred_cnn]
plot_confusion_matrix(y_test, y_pred_labels_cnn, "Confusion Matrix for CNN")
print("Classification Report for CNN:")
print(classification_report(y_test, y_pred_labels_cnn))
Comparing ANN and CNN on CIFAR-10: A Comprehensive Analysis | by Ravjot Singh | Jul, 2024 - image 1*TmZdlak7DM_hrwAFWf2jvA on https://aiquantumintelligence.com

Conclusion

The CNN model outperforms the ANN model on the CIFAR-10 dataset due to its ability to capture spatial hierarchies and local patterns in the image data. While ANNs are powerful for general tasks, CNNs are specifically designed for image-related tasks, making them more effective for this application.

In summary, for image classification tasks like those in the CIFAR-10 dataset, CNNs offer a significant performance advantage over ANNs due to their specialized architecture tailored for processing visual data.



Source link