This repository contains the assignments, lab notebooks, exams, and the final Reinforcement Learning project for the Machine Learning course at the University of Genoa (Università degli Studi di Genova). The project includes implementations of various machine learning algorithms using standard libraries such as numpy, scipy, matplotlib, and tensorflow/keras.
The project has been organized into logical directories to separate the different types of assignments:
ml/
├── notebooks/
│ ├── labs/ # Weekly laboratory exercises
│ │ ├── machine_learning/ # Machine Learning Algorithms
│ │ │ ├── Lab0_DataGeneration.ipynb # Intro to generating & handling synthetic datasets
│ │ │ ├── Lab1_KNN.ipynb # K-Nearest Neighbors (KNN)
│ │ │ ├── Lab2_RLS.ipynb # Regularized Least Squares (RLS)
│ │ │ ├── Lab3_LogisticRegression.ipynb # Logistic Regression classification
│ │ │ ├── Lab4_KRLS.ipynb # Kernel Regularized Least Squares (KRLS)
│ │ │ ├── Lab5_NN.ipynb # Introduction to Neural Networks
│ │ │ ├── Lab6_OMP.ipynb # Orthogonal Matching Pursuit (OMP)
│ │ │ └── Lab7_KMeans.ipynb # Unsupervised learning with K-Means
│ │ ├── deep_learning/ # Deep Learning Assignments
│ │ │ ├── Lab1_MLP_and_DNN.ipynb # Multilayer Perceptron & DNNs
│ │ │ ├── Lab2_CNN_Hands_On.ipynb # Convolutional Neural Networks
│ │ │ ├── Lab3_RNN_and_Transformers.ipynb # Recurrent NNs & Transformers
│ │ │ └── Lab4_GANs_for_Images.ipynb # Generative Adversarial Networks
│ │ └── reinforcement_learning/ # Reinforcement Learning Assignments
│ │ ├── Lab1_TicTacToe.ipynb # Tic-Tac-Toe
│ │ ├── Lab2_MonteCarlo.ipynb # Monte Carlo methods
│ │ ├── Lab3_MonteCarlo_Pseudocode.ipynb # Monte Carlo pseudocode/theory
│ │ └── Lab4_MultiArmBandit.ipynb # Multi-Armed Bandit problems
│ ├── exams/ # Mid-term examinations and practical tasks
│ │ ├── MidTerm1.ipynb
│ │ ├── MidTerm2.ipynb
│ │ └── datasets/ # Synthetic evaluation datasets
│ └── final_project/ # Final Reinforcement Learning project
│ ├── recycling_robot.ipynb # RL Simulation & Agent Training
│ └── recycling_robot_presentation.pptx # Project Presentation
├── requirements.txt # Project dependencies
└── README.md
To run these notebooks locally, ensure you have Python installed. It is highly recommended to use a virtual environment.
-
Clone the repository:
git clone https://github.com/sinahatami/ml.git cd ml -
Install the required dependencies:
pip install -r requirements.txt
-
Launch Jupyter Notebook or Jupyter Lab:
jupyter notebook
- Python - The programming language used.
- Jupyter Notebook - Web-based interactive computing platform.
- NumPy - The fundamental package for scientific computing with Python.
- SciPy - Fundamental library for scientific computing.
- Matplotlib - Comprehensive library for creating static, animated, and interactive visualizations.
- TensorFlow / Keras - Open source machine learning framework.
This project is for educational purposes as part of the Machine Learning course at the University of Genoa.