This document provides an overview of machine learning and deep learning techniques. It defines machine learning as a field that gives computers the ability to learn without being explicitly programmed. It also describes different machine learning algorithms including supervised learning techniques like classification and regression, and unsupervised learning techniques like clustering. Deep learning techniques using neural networks for applications such as computer vision and natural language processing are also overviewed. Resources for implementing machine learning and deep learning in Python are provided.
3. What is Machine Learning (ML)?
❖ “Machine learning is a field of computer science that
gives computers the ability to learn without being
explicitly programmed.” (Wikipedia)
12. Demo: Using PPO to train AI policies
An agent tries to reach a target (the pink sphere), learning to walk, run, turn, use its momentum
to recover from minor hits, and how to stand up from the ground when it is knocked over.
https://blog.openai.com/openai-baselines-ppo/
13. and more
OpenAI + Dota 2 DeepMind + Starcraft 2
For more info, please see:
https://blog.openai.com/dota-2/
https://deepmind.com/blog/deepmind-and-blizzard-open-starcraft-ii-ai-research-environment/
18. Unsupervised Learning algorithms
❖ K-means clustering
❖ Partitions data into k distinct clusters based on distance to the centroid of a cluster.
❖ Principal Component Analysis (PCA) [also part of Dimensionality Reduction methods]
❖ Convert a set of observations of possibly correlated variables into a set of values of
linearly uncorrelated variables called principal components.
❖ Gaussian Mixture Models (GMM)
❖ Models clusters as a mixture of multivariate normal density components.
❖ Self-organizing Maps (SOM)
❖ Uses neural networks that learn the topology and distribution of the data.
❖ Hidden Markov Models (HMM)
❖ Uses observed data to recover the sequence of states.
http://scikit-learn.org/stable/modules/clustering.html#clustering
https://fr.mathworks.com/discovery/unsupervised-learning.html
Implementations:
19. Comparison of clustering algorithms
http://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_comparison.html
20. What is Dimensionality Reduction?
Example of how PCA works
https://lvdmaaten.github.io/drtoolbox/ (33 MATLAB implementations)
http://scikit-learn.org/stable/modules/decomposition.html#decompositions
24. Classification vs Regression
Classification: for categorical response values, where the data can be separated into specific “classes”
Regression: for continuous-response values
25. Supervised Learning algorithms
❖ Common classification algorithms include:
❖ Support vector machines (SVM)
❖ Neural networks
❖ Naïve Bayes classifier
❖ Decision trees
❖ Discriminant analysis
❖ Nearest neighbors (kNN)
❖ Common regression algorithms include:
❖ Linear regression
❖ Nonlinear regression
❖ Generalized linear models
❖ Decision trees
❖ Neural networks
http://scikit-learn.org/stable/supervised_learning.html#supervised-learning
https://fr.mathworks.com/discovery/supervised-learning.html
27. Ensemble methods
❖ The goal of ensemble methods is to combine the predictions of several base estimators built
with a given learning algorithm in order to improve generalizability / robustness over a
single estimator.
Two families of ensemble methods are usually
distinguished:
In averaging methods, the driving principle is
to build several estimators independently and
then to average their predictions.
Examples: Bagging methods, Forests of
randomized trees, …
By contrast, in boosting methods, base
estimators are built sequentially and one tries
to reduce the bias of the combined estimator.
Examples: AdaBoost, Gradient Tree Boosting,
…
38. How do I know what architecture to use?
❖ Don’t be a hero.
❖ Take whatever works best.
❖ Download a pretrained model.
❖ Add/delete some parts of it.
❖ Finetune it on your application.