Machine learning - extensions


Machine Learning Avancé

Economie Statistique

Timeseries - Séries temporelles

Notebooks

(à venir : modèles SETAR pour les séries non périodiques, modèles proies prédateurs)

Lectures

Compétitions

  • Kaggle Web Traffic Time Series Forecasting code, modèle

Modules

Statistique

Clustering hors espace vectoriel de dimension finie

(à venir)

Clustering de trajectoires

Le problème est qu’on cherche plutôt à clusteriser de bouts de trajectoires sinon il suffirait de clusteriser le point de départ d’arrivée. Que ferait-on alors de deux trajectoires qui passent par le même chemin ?

Statistique


Interprétation, Anonymisation, Cryptage, Privacy

On sait beaucoup de choses avec les données et comme elles concernent des personnes la plupart du temps, les chercheurs réfléchissent à d’autres façons de les exploiter.

Economie Statistique

Machine Learning éthique

Toutes les entreprises ont des données. Ce qui a changé récemment est ce ne sont plus seulement des données à caractère personnel, l’ensemble de vos commandes, le montant, mais aussi des données de déplacements. Le téléphone portable et les applications permet à beaucoup plus d’acteurs de collecter ces mêmes données. La législation n’est pas toujours très claire quant à ce qu’on le droit d’en faire et les pays ne partagent pas tous les mêmes règles. De plus, c’est une chose que de fixer une limite, c’est autre chose que de vérifier qu’elle n’a pas été franchie. Des modèles construits avec des données si précises peuvent de retrouver des informations que vous n’avez pourtant pas divulgué. Comment déterminer si un modèle ne produit pas des résultats biaisés envers une partie de la population même avec des données anonymes ? Les articles sont encore peu nombreux à ce sujet et plutôt récents. Il est probable qu’il y en ait un peu plus à l’avenir. Il n’existe pas de certitude quant au caractère éthique d’un modèle. Quelques idées ont néanmoins émergé :

  • La collecte des données est parfois biaisée, les échantillons aléatoires sont rares sur Internet, la collecte est incitative (échange service contre données). Certaines sous-population sont sur-représentées, d’autres sous-représentées. Il faut en tenir compte.
  • Construire un modèle interprétable et de cette façon vérifier son côté éthique : Ideas on interpreting machine learning.
  • Fabriquer de fausses observations pour vérifier que le modèle ne change pas de prédictions quand il ne le devrait pas : Equality of Opportunity in Supervised Learning.
  • Construire deux modèles pour éviter les interactions entre X_1 et X_2, le premier modèle ne voit que X_1, le second ne voit que X_2, puis on combine les prédictions : When Recommendations Systems Go Bad.
  • Construire une partition de la population à étudier pour vérifier que l’appartenance à un sous-groupe n’est pas corrélée à la prédiction ou à l’erreur de prédiction : FairTest: Discovering Unwarranted Associations in Data-Driven Applications.

L’article Equality of Opportunity in Supervised Learning définit l’aspect éthique comme l’invariance d’une loi marginale. On suppose que S est un attribut protégé binaire (exemple : le genre). I sont les entrées du modèle de machine learning, O les sorties. Le modèle est éthique si :

\pr{ O | I, S=0} = \pr{ O | I, S=1}

La connaissance de S ne change pas la prédiction. Cela pose deux problèmes. Le premier est que parfois cette distribution change car cet attribut est corrélé avec un autre qui lui n’est pas protégé. Que décide-t-on dans ce cas ? Le second est l’égalité n’est jamais vérifié sur de vraies données, les deux distributions doivent être proches. Elles peuvent l’être sur l’ensemble de la population tout en ne l’étant pas du tout sur une petite partie de la population. L’article FairTest: Discovering Unwarranted Associations in Data-Driven Applications propose une réponse à ces deux problèmes.

Notebooks

Lectures

Conférences

Sites

Modules

Economie Statistique

Interprétabilité des modèles

Le machine learning tend à déléguer une partie de la modélisation pour fabriquer des modèles opaques, avec beaucoup de coefficients là où les statistiques privilégient la simplicité. On gagne en rapidité lors de la mise en oeuvre et on perd en interprétabilité. Il est de plus en plus important de comprendre pourquoi un modèle se trompe, pourquoi il donne telle ou telle réponse pour une plus grande transparence. La loi sur le Règlement général sur la protection des données (voir aussi Règlement européen sur la protection des données : ce qui change pour les professionnels), va dans le sens d’une plus grande transparence. Elle doit rentrer en application à partir du 25 mai 2018. La compréhension des décisions d’un modèle est parfois une nécessité. Quelques idées de recherche :

  • Déléguer la complexité sur les variables : on utilise un modèle simple (linéaire, arbre de décision), et on construit de nouvelles variables ou features parfois complexes qui font du sens pour le problèmes et qu’un modèle de machine learning ne pourrait pas reproduire aisément (voir aussi feature learning).
  • Sélectionner les variables et en garder le moins possibles, voir feature selection, voir aussi Feature importances with forests of trees.
  • Extraire des informations sur les variables elle-même, une forêt d’arbre produit une décision pour une observation qui n’utilise qu’une petite partie du modèle, il est possible d’extraire la liste des variables impliquées dans cette décision et de les trier par ordre d’importance, on regarde les parties du modèle activées lors de la prédiction, voir treeinterpreter.
  • Poser des contraintes sur le modèle comme la monotonie de la décision par rapport aux variables, voir Isotonic Regression.
  • Apprendre un second modèle dédié à l’interprétation, voir Making Tree Ensembles Interpretable.
  • Contenir la complexité des modèles, voir The information bottleneck method
  • Visualiser la décision.

Notebooks

(à venir)

Lectures : expliquer

Lectures : monotonie

Lectures : assemblage de modèles simples

Lectures : local

Lectures: modèle graphique

Lectures : erreurs, outliers

*Lectures : information bottleneck

Modules

Economie Statistique

Sélection de variables

La sélection de features peut paraître de moindre importance dans un contexte où la puissance de calcul ne cesse d’augmenter mais cette puissance est de plus en plus accessible via la parallélisation qui nécessite quelques ajustements algorithmiques. L’ajout de features complique également l’interprétation des résultats.

à vénir

Lectures

Economie Statistique

Machine Learning sur des données cryptées

Notebooks

Lectures

Lectures - alternatives

Modules

  • ciphermed, pas maintenu par l’auteur mais un peu plus par d’autres ciphermed-forests
  • PySyft : encrypted deep learning library
  • python-paillier (phe) : a library for partially homomorphic encryption in python, cette librairie fait du machine learning en clair une fois les données et le modèle décryptées, elle promet de faire mieux

Graphes - Réseaux

Economie Statistique

Deep Learning

Le deep learning signifie aussi des calculs intensifs et des modules qui utilisent un compilateur C++ pour optimiser les calculs et le GPU si vous en avez. Vous pouvez tester votre installation avec le notebook 2A.dl - Deep learning avec Python ou encore Keras-TensorFlow-GPU-Windows-Installation.

Statistique

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

Code

Descente de gradient

Lectures

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

_images/mnist_illustration.png

Architectures

Modules - deep learning

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)

Economie Statistique

Transfer Learning

Le tranfer learning consiste à réutiliser un modèle de deep learning déjà appris sur une grande base de données pour un problème aux dimensions plus modestes. C’est la première chose à faire quand on commence le deep learning : c’est souvent très rapide pour des résultats déjà acceptables. Cela a aussi l’avantage d’être peu coûteux comparé à l’apprentissage d’un réseau de neurones profond complet sur une grande bases de données.

Notebooks

Lectures - introduction

Lectures - articles

Lectures - hors nn

Modèles pré-entraînés

Statistique

Deep Learning en détail

Notebooks

(à venir foolbox)

Cours

Tutoriels

Sites

Liens

Articles scientifiques

Chiffres, Textes

Benchmarks

Plus théoriques

Lectures deep text

Vus dans des conférences

Deep learning embarqué

Modules - deep learning

Modules - à suivre

Statistique

Apprentissage sans labels

Notebooks

(à venir)

Lectures

Autoencoders - réduction de dimensionnalité

No label, weak labels

Online training

Improving training set

Adversarial Examples

Statistique

Deep Trees

L’apprentissage des réseaux de neurones reposent sur des méthodes de gradient, différent, celui des arbres permet de prendre en compte des features non continues et ne sont pas soumis aux problèmes d’échelle. L’association deep learning - deep neural network était jusque là implicite, il faut maintenant compter avec les forêts d’arbres.

Notebooks

(à venir)

Lectures

Modules

Statistique

Texte - Natural Language Processing - NLP

Beaucoup des méthodes performantes reposent sur le deep learning aujourd’hui, que ce soit pour le texte, les images ou le son.

Economie Statistique

Traitement du langage

Cette partie regroupe principalement des techniques relevant du word embedding qui consiste à convertir des données textuelles en données numériques directement exploitable par les algorithmes d’apprentissage.

Notebooks

Lectures - articles

Lectures - cours

Lectures - revue

Lectures - Classification

Lectures - word2vec

Lectures - glove

Lectures - vidéo

Word embedding

Interprétation

Résumé

Vidéos

Modules ML

Modules moins ML

  • python-rake : petit module pour extraire des mot-clés
  • sumy : construction automatique d’un résumé d’un texte
  • pyrouge : calcule de la métrique ROUGE

Statistique

Tagging

Le tagging consiste à prédire un label pour chacun des mots d’une phrase. C’est ce qu’on veut faire lorsqu’on considère un problème de Named Entity Recognition (NER). On souhaite reconnaître dans une phrase s’il y a une ville, un lieu, un téléphone, une adresse. La difficulté consiste à intégrer un contexte dans la décision, c’est-à-dire de considérer la séquence des mots et non les mots pris séparément. Paris peut aussi bien être une ville que le mot pari au pluriel. Ce problème a longtemps été traité avec des outils de statistiques classiques tels que Hidden Marko Models (HMM) ou les Conditional Random Fields (CRF). Les meilleurs modèles sont des modèles de deep learning LSTM.

(à venir)

Lectures

Modules

Modules deep learning

Expérimental

Statistique

Ontologie

Il existe des méthodes efficaces pour faire du clustering de texte, chaque cluster illustre un groupe de document parlant du même sujet avec les mêmes termes, si possible un concept. Une ontologie implique en plus des relations de sous-concept. On ne cherche pas seulement à déterminer les concepts principaux mais aussi les ramifications. Cela peut être le style de cuisine, cuisine française, la région, … et ainsi de suite. Une ontologie peut être vu comme une nomenclature à plusieurs étages. Est-il possible de construire une telle structure de façon automatique ?

Lectures

Site web

Module


Images / Vidéos / Sons

Il est difficile d’aborder cette partie sans savoir ce qu’est le Deep Learning.

Statistique

Classification

(à venir)

Lectures

Algorithmes

Outils

Modules

Modèles pré-entraînés

Statistique

Segmentation

La segmentation d’images consiste à isoler des zones d’intérêt dans une image. Cela peut être un visage, des silhouettes, des objets. C’est encore un domaine où le deep learning a permis de faire des grandes avancées. L’objectif est assez similaire à la segmentation d’images si ce n’est qu’on cherche à déterminer les zones d’intérêt au pixel près.

(à venir)

Lectures

Modules

Statistique

Vidéos

(à venir)

Modules

Statistique


Galleries de problèmes résolus ou presque

Cette rubrique étend la liste des références avec des articles exposant des méthodes de machine learning appliquées à des problèmes précis.

Architecture de Deep Learning

Images

Les réseaux de neurones profonds fonctionnent très bien sur les images car ce sont des entrées homogènes. Le traitement des images cachent plusieurs types de problématiques :

  • classification : reconnaître un object dans l’image sans savoir extactement où il est
  • segmentation : reconnaître des objects dans une images, sous la forme de boîtes englobantes ou au pixel près
  • transformation : déflouter, extraire le squelette, mettre en couleur, fusionner image et style

Ce ne sont pas les seules mais ces problématiques commencent à être assez bien résolus. Il faut noter qu’on n’utilisent pas mêmes modèles s’il s’agit d’images prises par un appareil photos ou d’images médicales.

Jeux

Portraits

Texte / Traduction