Le lexique du Machine Learning et du Deep Learning

Le machine learning (apprentissage automatique en Français – ML) est un sujet passionnant et bouillonnant qui est actuellement en train de vivre sa révolution et, peut-être même, faire vivre une révolution plus profonde : celle d’une nouvelle aire technologique conduite par l’intelligence artificielle (IA). Je raccourcis mon introduction et définis les nouveaux mot clefs du ML et du Deep Learning.

Principes généraux

Intelligence artificielle (Artificial intelligence) : Ensemble des théories et des techniques ayant pour objectif de simuler l’intelligence (humaine, animal ou autre).

Fouille de Données (Data Mining) : Domaine de la science des données visant à extraire des connaissances et/ou des informations à partir de corpus de données.

Apprentissage automatique (Machine learning) : Sous domaine de l’IA, l’objectif du ML est l’apprentissage de règles expertes automatiquement (sans l’expert donc) à partir d’un corpus de données. Il est le domaine père de l’apprentissage supervisé et l’apprentissage non supervisé dont on entend beaucoup parler en ce moment.

Apprentissage supervisé (Supervised learning) : Sous domaine de l’apprentissage automatique, l’apprentissage supervisé a pour objectif la généralisation et l’extraction de règles à partir de données labéllisés. Tout cela en vu de faire de la prédiction (prédire le label associé à une donnée sans label).

Apprentissage non-supervisé (Unsupervised learning) : Sous domaine de l’apprentissage automatique, l’apprentissage non supervisé a pour objectif de grouper les données qui se ressemblent et diviser/éloigner les données différentes. On parle de minimiser la variance intra-classe et maximiser la variance inter-classes.

Apprentissage semi-supervisé (semi supervised learning) : L’apprentissage semi-supervisé est un cas particulier de l’apprentissage supervisé. On parle d’apprentissage semi-supervisé lorsque les données d’apprentissage sont incomplètes. L’intérêt est d’apprendre un modèle avec peu de données étiquetées.

Apprentissage par renforcement (Reinforcement learning) : L’apprentissage par renforcement concerne l’apprentissage supervisé. Il s’agit d’utiliser de nouvelles données prédites afin d’améliorer le modèle d’apprentissage (calculé en amont).

Apprentissage par transfert (Transfert learning) : Très à la mode car remis au goût du jour par le deep learning, le transfert learning consiste à réutiliser des modèles d’apprentissage pré-appris dans le but de ne pas ré-inventer la roue à chaque apprentissage.

Deep Learning

Deep Learning : Le Deep Learning est une catégorie d’algorithmes d’apprentissage automatique dits « par couches ». Un algorithme de deep learning est un réseau de neurones ayant un grand nombre de couches (qu’est ce qu’un réseau de neurones ?). L’intérêt principal de ces réseaux est leur capacité à apprendre des modèles à partir de données bruts, réduisant ainsi les pré-traitements (souvent importants dans le cas d’algos classiques).

Perceptron Multi-Couches : Il s’agit d’un réseau de neurones classique. Généralement, tous les neurones d’une couche sont connectés à tous les neurones de la couche suivante. On parle de couches « Fully Connected » (FC).

CNN (Convolutional Neural Network) : Ce type de réseaux est dédié à la reconnaissance d’objets. Ils sont généralement composés de plusieurs couches de convolutions + pooling suivis d’une ou plusieurs couches FC. Une couche de convolution peut être vue comme un filtre. Ainsi, les premières couches d’un CNN permettent de filtrer les coins, courbes et segments et les suivantes des formes de plus en plus complexes.

FCN (Fully Convolutional Networks) : Un FCN est un CNN auquel on a supprimé les dernières couches FC. Ce type de réseau n’est actuellement pas beaucoup utilisé mais peut être très utile s’il est succédé d’un réseau RNN permettant d’intégrer la dimension de temps dans une analyse de reconnaissance visuelle. Plus d’infos.

RCNN (Regional CNN) : Ce type de réseau vient compenser les lacunes d’un CNN classique et répondre à la question : que faire quand une image contient plusieurs objets à reconnaître ? Un RCNN permet d’extraire plusieurs labels (chacun associé à une bounding box) d’une image.

RNN (Recurrent Neural Networks) : Les réseaux récurrents sont un ensemble de réseaux intégrants la dimension temporelle. Ainsi, d’une prédiction à l’autre, des informations sont partagées. Ces réseaux sont essentiellement utilisés pour la reconnaissance d’activités ou d’actions via la vidéo ou autres capteurs.

LSTM (Long Short-Term Memory) : Un LSTM est un RNN auquel on a ajouté un système permettant de contrôler l’accès aux cellules mémoires. On parle de « Gated Activation Function ». Les LSTM présentent de meilleurs résultats que les RNN classiques.

GRU (Gated Recurrent Unit) : Un réseau GRU est un LSTM simplifié inventé très récemment (2014) et permettant de meilleures prédictions et un paramétrage plus facile.

Principaux outils de traitement

Il existe de nombreuses librairies pour le deep learning. La plupart étant rédigée en Python. Ces librairies font à peu près toute la même chose, le niveau d’abstraction variant. Dans cette dernière section, je les présente en les triant par popularité.

TensorFlow : Il s’agit de l’outil créé par Google et publié en open source sous licence Apache. Cette librairie est la lib de deep learning la plus suivie sur GitHub (près de 100 000 étoiles). TensorFlow propose deux abstractions : (1) la première est très complète (tout est paramétrable) mais complexe à prendre en main, (2) la seconde (nommée estimator) est haut niveau et permet une prise en main rapide. La lib est écrite en Python.

Keras : Cette librairie haut niveau a la particularité de interagir avec d’autres librairies de deep learning tel que TensorFlow. Le projet est open source et a plus de 25 000 étoiles sur GitHub. La lib est écrite en Python.

Caffe (Convolutional Architecture for Fast Feature Embedding) : Librairie écrite en C++ par l’université de Berkeley (l’une des plus actives dans la communauté ML). Le projet est open source et a plus de 23 000 étoiles sur GitHub.

PyTorch : Cette librairie est écrite en Python comme son nom l’indique. Elle a été initialement créée par l’équipe de recherche de Facebook et est désormais open source. Le projet comptabilise plus de 12 000 étoiles sur GitHub.

DeepLearning4j : Cette librairie est écrite (notamment) en Java a plus de 8000 étoiles sur GitHub.

Une réflexion sur “Le lexique du Machine Learning et du Deep Learning

  1. ESCAVIS

    Bonjour monsieur Risch,

    Je m’appelle ESCAVIS Christopher, je suis négociateur dans l’immobilier ainsi que dans le milieu du football, je souhaite avec votre aide (la société Elter dont vous êtes cofondateur) concevoir une intelligence artificielle qui serai capable de répondre aux enjeux de mes professions ( la valeur des joueurs professionnels sur le marché, l’évaluation des compétences des joueurs que je représente, évaluer les salaires optimums mais également les indicateurs de performances dans l’immobilier ou encore la rentabilité des montages financiers en ingénierie financière)

    Je compte aussi me faire conseiller optimalement par l’IA dans mes choix . Pouvez vous m’indiquer ce que vous pouvez me proposer ( Machine Learning ou encore Adaptive Learning )

    Sachez que le sujet de l’IA me passionne énormément, je ne suis pour l’instant pas un expert mais j’aimerai m’investir pleinement à l’avenir dans ce domaine .

    Si vous avez des questions plus précises à me poser , vous pouvez me joindre au 0606634811

    Cordialement .

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s