This repository contains four distinct lab projects, each focusing on different aspects of neural networks and machine learning techniques.
- Objective: Introduction to the Perceptron algorithm and its application on synthetic data.
- Components:
- Implementation of the Perceptron algorithm.
- Time and space complexity analysis.
- Synthetic data generation and visualization.
- Performance evaluation through multiple experiments under varying conditions.
- Objective: Solving classification problems using Fully Connected Neural Networks (FCNN).
- Components:
- Data generation for binary and multi-class classification tasks.
- Model creation with Keras and Scikit-learn.
- Training and evaluation of models.
- Visualization of decision boundaries for classification tasks.
- Objective: Construction and training of Convolutional Neural Networks (CNNs) for digit classification.
- Components:
- Loading and preprocessing of the MNIST dataset.
- Implementation of three CNN architectures of varying complexity.
- Training, evaluation, and visualization of model performance.
- Saving and loading trained models for future use.
- Objective: Applying various types of deep neural networks on real-world data.
- Components:
- Use of Dense Neural Network, Convolutional Neural Network (CNN), and Long Short-Term Memory (LSTM).
- Utilization of Keras Embedding Layer and GloVe for word embedding.
- Evaluation of the performance of various models (LSTM, GRU, RNN + CNN) using different word embedding techniques (GloVe, Word2Vec, FastText, TF-IDF).