Skip to content

joemcmullin/Convolutional-CIFAR_10-Neural-Network

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

CIFAR-10 Convolutional Neural Network

Introduction to Convolutional Neural Networks

Convolutional Neural Networks (CNNs) are a class of deep learning algorithms that are particularly effective for analyzing visual data. Unlike traditional neural networks, CNNs use a specialized architecture that is designed to take advantage of the 2D structure of input data, such as images.

Key Features of CNNs:

  • Convolutional Layers: These layers apply a series of filters (kernels) to the input image to create feature maps. Each filter detects different features such as edges, textures, and patterns.
  • Pooling Layers: These layers reduce the spatial dimensions of the feature maps, which helps to reduce the number of parameters and computational cost. Pooling also helps in making the detection of features invariant to scale and orientation changes.
  • Fully Connected Layers: After several convolutional and pooling layers, the network may include fully connected layers that are similar to those in traditional neural networks. These layers perform the final classification based on the extracted features.

Neural Network Architecture Visualization

This section includes code to visualize the neural network architecture. The diagram helps to understand the structure and connectivity of different layers in the network.

Description

CNNs vs. Traditional Neural Networks:

  • Spatial Hierarchy: CNNs maintain the spatial hierarchy of the image by using local connections and pooling, whereas traditional neural networks treat the input data as a flat vector.
  • Parameter Sharing: CNNs use parameter sharing (same weights for different parts of the input) in convolutional layers, reducing the number of parameters and improving generalization.
  • Better Performance on Visual Data: Due to their specialized architecture, CNNs significantly outperform traditional neural networks on tasks involving visual data, such as image classification, object detection, and image segmentation.

Project Overview

This repository contains code to build, train, and visualize a Convolutional Neural Network (CNN) using the CIFAR-10 dataset. The project covers data loading, exploration, CNN model definition, training, evaluation, and visualization.

Viewing Combined Dataset Summary

Create and display a combined summary of the dataset to understand the distribution of classes in both training and test sets.

Description

CNN Model Definition

Define the architecture of the Convolutional Neural Network (CNN). The model includes multiple convolutional layers to extract features from images, pooling layers to reduce dimensionality, and dense layers for classification.

Description

Training Process

Create an animation to visualize the training process. This animation shows how the accuracy changes over epochs for both training and validation sets.

Description

Confusion Matrix

Compute and visualize the confusion matrix to evaluate the model's performance. The confusion matrix provides insights into the types of errors the model is making.

Description

Requirements

Before running the code using the source Juypter Notebook file in the code, ensure you have the following packages installed:

  • TensorFlow
  • Keras
  • Matplotlib
  • NumPy
  • Pandas
  • Scikit-learn
  • Seaborn
  • Graphviz
  • IPython

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published