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.
- Artificial Neural Networks (ANN)
- AutoEncoders
- Boltzmann Machines
- Convolutional Neural Networks (CNN)
- Recurrent Neural Networks (RNN)
- Self-Organizing Maps (SOM)
- Installation
- Usage
- Conclusion
- Contact
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.
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.
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.
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.
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.
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.
This project is licensed under the Personal License.
To run any of the notebooks in this repository, follow these steps:
- Install the required dependencies using
pip install -r requirements.txt.
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.
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.
If you have any questions or suggestions, feel free to contact me:
- Email: emanuelbahna@gmail.com
- LinkedIn: Bahna-Darius
- GitHub: Bahna-Darius