Skip to content

Bahna-Darius/Deep-Learning

Repository files navigation

Deep Learning Techniques Exploration

Overview

This repository is a collection of projects where I have explored and implemented various Deep Learning techniques. The goal was to understand and practice different types of neural networks and other related architectures. Each section contains the code, explanations, and results of the models I've built and trained.

Table of Contents

Artificial Neural Networks (ANN)

In this section, I've implemented a basic Artificial Neural Network. The model is trained on [Churn_Modelling.csv] to classify/predict [Customers of a bank who are willing to leave].

Key learning points:

  • Understanding the basic building blocks of neural networks.
  • Learning about activation functions, forward propagation, and backpropagation.

Code and details

AutoEncoders

AutoEncoders are a type of neural network used to learn efficient codings of unlabeled data. Here, I've experimented with both basic and variational AutoEncoders.

Key learning points:

  • Understanding the concept of dimensionality reduction.
  • Exploring different architectures like vanilla and variational AutoEncoders.

Code and details

Boltzmann Machines

Boltzmann Machines are used for learning probability distributions over inputs. I implemented a Restricted Boltzmann Machine (RBM) to explore its potential.

Key learning points:

  • Understanding the theory behind probabilistic graphical models.
  • Implementing a simple RBM and understanding its applications in feature extraction.

Code and details

Convolutional Neural Networks (CNN)

CNNs are widely used for image processing tasks. I've used CNNs to classify [Images of cats and dogs 10,000 images in the dataset file].

Key learning points:

  • Learning about convolutional layers, pooling layers, and fully connected layers.
  • Understanding how CNNs are used for image classification tasks.

Code and details

Recurrent Neural Networks (RNN)

RNNs are powerful for sequence-based data like time series or natural language. I experimented with basic RNNs, LSTM, and GRU cells.

Key learning points:

  • Understanding how RNNs maintain context with sequential data.
  • Implementing LSTM and GRU cells to solve sequence prediction problems.

Code and details

Self-Organizing Maps (SOM)

Self-Organizing Maps are a type of unsupervised learning, mainly used for dimensionality reduction and clustering.

Key learning points:

  • Learning the basics of SOMs and how they organize data into a meaningful pattern.
  • Implementing a SOM and visualizing its clustering capabilities.

Code and details

License

This project is licensed under the Personal License.

Installation

To run any of the notebooks in this repository, follow these steps:

  • Install the required dependencies using pip install -r requirements.txt.

Usage

Each folder contains a Jupyter Notebook that explains the implementation in detail. You can run the notebooks locally or use Google Colab by clicking on the provided links in each section.

Conclusion

This project is a hands-on exploration of various Deep Learning techniques. Through these exercises, I've gained a solid foundation in different types of neural networks and their applications.

Contact

If you have any questions or suggestions, feel free to contact me:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors