This repository contains a collection of small projects implementing various machine learning models from scratch, along with deep learning applications using PyTorch. Each project demonstrates fundamental concepts and provides hands-on experience in model development, training, and evaluation.
1. Convolutional Neural Network (CNN) - MNIST Classification
This project implements a custom dataset loader and data processing pipeline for the MNIST dataset using PyTorch. The key components include:
Custom Dataset Class: Loads and preprocesses images and labels from numpy files.
Transformations: Applies optional transformations during loading.
Data Loaders: Splits the dataset into training, validation, and testing sets, enabling efficient batch processing and shuffling.
Training & Validation: Supports training and evaluation of a CNN model for MNIST digit classification.
2. Decision Tree Model - XGBoost Implementation from Scratch
This project implements a Decision Tree model with XGBoost principles from scratch:
Tree Construction: Builds decision trees using information gain and Gini impurity.
Boosting Mechanism: Implements gradient boosting to improve accuracy.
Custom Loss Functions: Supports different loss functions for optimization.
3. Linear and Logistic Regression from Scratch
This project implements fundamental regression models from scratch:
Linear Regression: Uses gradient descent and closed-form solutions to optimize the cost function.
Logistic Regression: Implements sigmoid activation and cross-entropy loss for binary classification.
Optimization Techniques: Includes batch gradient descent and stochastic gradient descent.
4. Multimodal Deep Learning - MNIST Dataset
A deep learning approach using multimodal inputs:
Custom Dataset Class: Handles image data loading and preprocessing.
Neural Network Architecture: Combines different feature inputs for classification.
Training & Validation: Supports training a multimodal deep learning model.
5. Support Vector Machine (SVM) from Scratch
This project implements an SVM model from scratch:
Mathematical Foundations: Uses optimization techniques to find the maximum margin hyperplane.
Kernel Trick: Supports linear and non-linear kernel functions.
Gradient Descent Optimization: Implements optimization techniques for training.