What you will learn
- Introduce the participants to the definition of Machine Learning and its advantages for data processing
- Explain the importance of data in Machine Learning. Present the different types of data and how to explore the data to extract meaningful information.
- Discover the basics of the Python programming language and the main libraries used in the field of Machine Learning for data processing and visualization.
- Define the different categories of Machine Learning models and present some main models with practical examples.
- Introduce the participants to the field of Deep Learning and how it differs from Machine Learning.
- Understand how a neural network learns and what it needs to learn well.
- Learn to tune your neural network and use the right techniques to solve common problems that occur in real applications to ensure better performance.
- Dive into the world of Convolutional Neural Networks (CNN) and how they are used for image classification, object detection, image segmentation, and image generation.
- Introduction to Recurrent Neural Networks and its various applications.
- Discover Tensorflow/Keras, one of the most used Python libraries for Deep Learning and learn how to use it to train your own neural network.
- Several use cases and examples will be presented all along the course for a better understanding of real applications.
Syllabus
Chapter 1: Introduction to Machine Learning
- What is Machine Learning?
- Advantages of Machine Learning
- Types of Machine Learning models
Chapter 2: Data is the key
- Data types
- Exploratory Data Analysis
- Data visualization
- Correlation Analysis and Feature selection
Chapter 3: Introduction to Python for data processing
- Introduction to Python
- Math, Numpy, Matplotlib, Pandas, …
Chapter 4: Introduction to main Machine Learning models
- Machine Learning pipeline
- Linear regression
- Decision Tree
- Random Forest
- k-nearest neighbors
- K-means clustering
- Model validation and evaluation metrics
- Examples of the main Machine Learning models using Python
Chapter 5: Introduction to Neural Networks
- Differences between Machine Learning and Deep Learning
- What is a Neural Network? and how does it learn?
Chapter 6: Convolutional Neural Networks
- Introduction to convolutional neural networks
- Structure and advantages of a convolutional neural network
Chapter 7: Training a Neural Network
- Preparing the dataset and its annotation
- Convergence and overfitting: Is my network learning well?
Chapter 8: Training tips and tricks
- Training techniques: Common problems during the training and how to solve them
Chapter 9: Deep Learning with Python
- Introduction to OpenCV, Tensorflow and Keras
- MLP model training
- CNN model training
Chapter 10: Convolutional Neural Network for Object Detection
- From Classification to Object Detection: an overview
- Example with Python
Chapter 11: Convolutional Neural Network for Segmentation
- From Classification to Segmentation: an overview
- Example with Python
Chapter 12: Introduction to Generative Adversarial Networks
- Introduction to GANs
- Example with Python
Chapter 13: Introduction to Recurrent Neural Networks
- Recurrent Neural Network
- LSTM
- Attention Mechanism
- Example with Python
Prerequisites
- Basic knowledge in mathematics and algebra
- Basic level in English
- A PC and notebook
Target learners
- Anyone wishing to start an early career in Machine Learning or Deep Learning
Duration
100 hours in 6 months
Professor in charge
Prof. Karim Tout
Senior Computer Vision / Machine Learning Engineer at Uqudo. Karim received an engineering degree and a master degree in electrical and system control in 2014, followed by a PhD degree in Computer Vision in 2018. Karim worked for four years as an Industrial Postdoctoral Researcher on Computer Vision and Machine/Deep Learning projects. After that, Karim occupied the position of Lead Machine Learning Engineer at Cetim Grand Est managing a team of data engineers before joining Uqudo in 2022. Karim specializes in Computer Vision, Machine Learning, Deep Learning and Image Processing applied to industrial applications.