Skip to content

Gaspardooo/Neural_networks_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neural Networks & Signal Processing (From Scratch)

Overview

This repository contains a full implementation of Artificial Neural Networks (ANN) and Image Processing algorithms built entirely from scratch using Python and NumPy. This project bypasses high-level frameworks to demonstrate a deep, foundational understanding of backpropagation, gradient descent optimization, and convolutional math.

Technical Highlights & Achievements

1. Custom Gradient Descent & Optimization

  • Adaptive Learning Rate: Implemented a custom optimization function (training_opt) that dynamically reduces the learning rate when entropy oscillates, preventing divergence and escaping local minima.
  • Loss Function: Implementation of Categorical Cross-Entropy to handle complex classification tasks.

2. Architectural Study & Hyperparameter Tuning

  • Bottleneck Analysis: Conducted empirical studies proving that placing layers with fewer neurons towards the end of the network improves convergence stability.
  • Neuron Distribution: Demonstrated that distributing neurons across multiple layers yields better optimization landscapes than a single massive layer.

3. Multi-Class Non-Linear Classification

  • Upgraded the binary classifier to a K-class model using Softmax activation.
  • Successfully resolved highly non-linear classification problems (up to 6 distinct, intertwined classes).

4. Computer Vision & Convolutions

  • 1D & 2D Convolutions: Manual mathematical implementation of convolution operations without external computer vision libraries.
  • Kernel Engineering: Application of custom feature extraction kernels, including Gaussian blur, Edge detection, Sharpening, and Embossing.

Tech Stack

  • Python 3
  • NumPy (Core matrix operations, forward/backward passes)
  • Matplotlib (Decision boundary visualization, loss curves)
  • PIL / Pillow (Image data handling)

Repository Structure

  • Exercice_1.py: Binary classification. Contains the core MLP architecture and adaptive learning rate logic.
  • Exercice_2.py: Multi-class classification. Extends the logic to multiple classes with advanced architectures.
  • Exercice_3.py: Signal and Image processing. Contains 1D/2D convolution algorithms and applies mathematical filters to images.

About

Building Neural Networks and Image Processing filters from scratch using Python & NumPy. Focus on custom optimization, backpropagation math, and convolutions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages