This README documents my internship project focused on implementing an image classification model using Convolutional Neural Networks (CNNs) and Artificial Neural Networks (ANNs). The project leverages the CIFAR-10 dataset, a standard dataset for image recognition tasks, to classify images into one of ten categories.
The primary objective of this project was to:
Understand the basic and advanced concepts of Machine Learning (ML) and Deep Learning (DL).
Implement image classification models using CNN and ANN architectures.
Explore the performance of different models on real-world datasets.
Machine Learning Basics Supervised learning techniques. Data preprocessing, feature scaling, and dataset partitioning.
Deep Learning Fundamentals Understanding Neural Networks and their architectures. Backpropagation and optimization techniques like Adam and SGD. Overfitting, underfitting, and regularization methods
**The CIFAR-10 dataset consists of:**
60,000 images categorized into 10 classes, each with 6,000 images.
Image dimensions of 32x32 pixels with RGB channels.
Classes include airplanes, cars, birds, cats, deer, dogs, frogs, horses, ships, and trucks.
**Programming Language:** Python
**Libraries:** TensorFlow, NumPy, Matplotlib, Pillow, Streamlit
**CNN Architecture**
Input Layer: Accepts 32x32 RGB images.
Convolutional Layers: Extracts spatial features using filters.
Pooling Layers: Reduces feature dimensionality.
Fully Connected Layers: Maps extracted features to output categories.
Activation Function: ReLU for hidden layers, Softmax for output.
**ANN Architecture**
Input Layer: Accepts flattened image data (3072 features).
Hidden Layers: Multiple dense layers with ReLU activation.
Output Layer: Softmax activation for classification.
Successfully classified images into ten distinct categories with significant accuracy.
Compared the performance of CNNs and ANNs, highlighting the advantages of using CNN for image data.
Learned advanced concepts of DL such as dropout, batch normalization, and learning rate scheduling.
Balancing between model complexity and training time.
Preventing overfitting on the dataset using techniques like dropout.
Optimizing hyperparameters for better accuracy.
Achieved X% accuracy using the CNN model.
Achieved Y% accuracy using the ANN model.
git clone https://github.com/username/project-repo.git
Install the required libraries:
pip install tensorflow keras numpy matplotlib scikit-learn
Import Libraries
import tensorflow as tf
from tensorflow.keras import layers, models
model = models.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Flatten(),
layers.Dense(64, activation='relu'),
layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.summary()
CIFAR-10 Dataset: CIFAR-10 Official Website
TensorFlow Documentation: TensorFlow
Keras Documentation: Keras
This internship project served as a stepping stone into the fascinating world of Machine Learning and Deep Learning. By implementing image classification models using CNNs and ANNs, I gained valuable hands-on experience and a deeper understanding of the principles underlying artificial intelligence.