Réseaux de neurones et Deep Learning#
Les premiers modèles de deep learning sont des réseaux de neurones. Il n’est pas inutile de coder le sien au moins une fois même s’il n’utilise pas de GPU, même s’il sera probablement beaucoup plus lent. TensorFlow est sans doute le framework le plus utilisé, pytorch est le plus didactique. Il n’est pas facile de passer de l’un à l’autre ou de convertir ses modèles d’un à l’autre même s’il y a quelques avancées sur le sujet : Deep Learning Model Convertors.
Notebooks
Tutorials et anti-sèches
Companion Jupyter notebooks for the book « Deep Learning with Python » (avec keras)
pytorch tutorials (officiel)
pytorch tutorials (tout en moins de 30 lignes), l’exemple pytorch basics
Code
Implementing a Neural Network from Scratch in Python - An Introduction, notebook
A Neural Network in 11 lines of Python (Part 1), A Neural Network in 13 lines of Python (Part 2 - Gradient Descent)
nimblenet : implémentation de différents algorithmes de back propagation avec numpy)
Comparaison de librairies de deep learning
Descente de gradient
Lectures
Artificial Intelligence, Revealed (1) : article de blog et vidéos expliquant les différents concepts du deep learning
Artificial Intelligence, Revealed (2) : quelques reprises de l’article précédent et une idée du future (en 2016)
Interaction Networks for Learning about Objects, Relations and Physics
Scaling Memory-Augmented Neural Networks with Sparse Reads and Writes
Adversarially Learned Inference et l’implémentation de la méthode présentée dans l’article avec pytorch : ali-pytorch.
Livres
Deep Learning de entre autres Yoshua Bengio
Vidéos
Vocabulaire
deep learning glossary : termes employés pour le deep learning
Core Layers : différents traitement pour compenser les défauts des réseaux de neurones lors de l’apprentissage.
MNIST
La base MNIST est le premier sujet pour lequel un réseau de neurones profond a été appris. C’est souvent le premier exemple utilisé lors des tutoriels.
Architectures
Recurrent (RNN) : séquence labelling, fenêtre glissante dans les images, la sortie du réseau pour l’observations n-1 est utilisé par le réseau pour l’observation n si ces deux observations font partie de la même séquence.
Auto-Encoder : débruiter, ACP non linéaire
Long short-term memory (LSTM), voir aussi Understanding LSTM Networks, le modèle est construit afin qu’il puisse prendre en compte un passé de longueur variable. Voir aussi LSTM.
Modules - deep learning
Torch et surtout pytorch dont le design est plus simple que celui des autres.
Caffee (Berkeley)
:epkg:`CNTK` (Microsoft)
PaddlePaddle (Baidu)
TensorFlow (Google)
Modules - GPU
A noter que Theano n’est plus maintenu.
Modules - Wrappers
Keras ou chainer implémentent des interfaces communes pour plusieurs librairies de machine learning.
DeepRosetta : convertisseur (pas vraiment maintenu)