Intelligence artificielle - weave
IA Lab

Comment construire des IA qui savent douter (raisonnablement) ?

3 septembre 2018




Résumé

En dépit des progrès récents du Machine Learning (ML), ses applications à des domaines critiques (industrie nucléaire, médecine, algorithmes de trading) restent encore rares. En cause, l’incapacité des modèles de ML actuels à représenter de manière fiable la notion d’incertitude. En un mot : ils ne savent pas douter raisonnablement de leurs prédictions ! Raisonner rationnellement en présence d’incertitudes, voilà pourtant ce que permet l’approche bayésienne du ML, une idée déjà ancienne. Combinée à la flexibilité des techniques récentes du Deep Learning, cette approche ouvre un nouveau champ de possibilités. Dans l’immédiat elle offre une panoplie d’outils aux chercheurs en IA pour expérimenter une grande diversité de modèles prédictifs. Cet article peut se lire comme une introduction à ce sujet. Il présente les concepts, quelques applications ainsi que la librairie Edward intégrée à TensorFlow et développée par Google qui concrétise cette approche.

Note : cet article présuppose quelques rudiments de théorie des probabilités et de programmation en Python.

  1. Les limitations du ML dans sa formulation usuelle
  2. Le ML bayésien, des idées anciennes…
  3. … désormais combinées au Deep Learning
  4. De la R&D aux applications
  5. A quand la démocratisation ?
Illustration par Sandy Malosse  

1. Les limitations du ML dans sa formulation usuelle

Quand un chirurgien, la veille d’une opération délicate, prend une décision basée sur l’interprétation qu’il fait d’un cliché radiologique, il engage sa responsabilité professionnelle. Pour assumer ce risque il doit être en mesure de l’évaluer rationnellement. En d’autres termes, il doit mesurer sa propre incertitude quant à l’analyse qu’il fait d’un contexte clinique pour jauger de la pertinence d’une stratégie face à différentes alternatives. De même, un trader qui engage des sommes importantes doit évaluer le risque qu’il fait prendre à l’institution pour laquelle il opère. Enfin, un conducteur qui engage son véhicule dans une manœuvre de dépassement doit évaluer le risque de mal interpréter sa perception du paysage routier.

Chacune de ces trois décisions pourrait un jour être confiée à une IA, à condition toutefois que celle-ci sache évaluer les incertitudes de la situation à laquelle elle est confrontée pour être en mesure, au-delà d’un seuil de doute raisonnable, de déléguer l’analyse à un autre système ou de laisser la décision finale à un humain.

Le problème désormais célèbre des « Adversarial Examples » illustre jusqu’à la caricature ces limitations du ML. Comme nous l’avions expliqué dans un article précédent [CSE] rappelons qu’il est possible pour un individu mal intentionné d’induire en erreur un système de classification d’image en superposant aux images originales des perturbations malicieuses mais invisibles à l’œil humains. La figure 1 illustre ce phénomène.

Figure 1 : Un exemple d’« Adversarial Example » où deux images très différentes légèrement perturbées sont toutes deux classés avec une grande probabilité comme étant des images d’une autruche ! – source : [Learning Securely, E. Klarreich]

Hormis l’absence d’une prise en compte fiable de l’incertitude, les modèles de Deep Learning souffrent aussi d’autres limitations bien connues des data scientists :

  • ils exigent pour leur entraînement de grandes quantités de données (réelles ou créées artificiellement),
  • les modèles de DL ont un fonctionnement en boite noire souvent difficile à interpréter.

L’approche bayésienne du ML décrite dans le paragraphe qui suit est une tentative pour apporter des réponses à ces limitations. Nous nous focaliserons ici sur la question de l’évaluation rationnelle de l’incertitude.

2. Le ML bayésien, des idées anciennes…

Depuis Aristote, la logique est le fondement de tout raisonnement rationnel qui s’appuie sur une information à la fois complète et certaine. Pour raisonner rationnellement en présence de données incomplètes ou incertaines il faut en revanche recourir à une extension de la logique : la théorie des probabilités. Lorsque l’on interprète la notion de probabilité en termes d’incertitude, c’est plus précisément l’interprétation dite bayésienne de la théorie qui est utilisée. C’est sur elle que se base le Machine Learning ou le Deep Learning bayésien.

Quelques éléments de vocabulaire pour commencer.

Imaginons qu’afin d’expliquer un phénomène aléatoire nous formulions une hypothèse dont nous estimons les chances à priori d’être vraie à P(hypothèse), un nombre compris entre 0 et 1. La probabilité P(data | hypothèse) d’observer les données data si cette hypothèse est vraie est ce qu’on appelle la vraisemblance de de l’observation data. Notons enfin P (hypothèse | data) la probabilité à postériori que l’hypothèse soit vraie si l’on a observé les données data. La célèbre formule de Bayes permet de déduire la probabilité à postériori d’une hypothèse incertaine à partir de sa probabilité à priori et de la vraisemblance des données observées :

Équation (1) : la formule de Bayes indique comment mettre à jour la probabilité d’une hypothèse incertaine étant données la vraisemblance d’une observation et la probabilité à priori assignée à cette hypothèse.

Cette probabilité à postériori pourra à son tour jouer le rôle de probabilité à priori dans le cadre d’une nouvelle observation et ainsi de suite. Ce caractère composable des déductions est l’un des principaux atouts de l’approche bayésienne. On préfère souvent le terme inférence à celui de déduction.

Revenons au Machine Learning et envisageons un problème de classification binaire. Un tel modèle cherche à prédire la probabilité qu’une certaine propriété (un client rembourse son crédit) soit vraie (y=1) ou fausse (y=0) en fonction de certaines caractéristiques x d’une observation (la situation financière du client). Peu importe ici que le modèle soit élémentaire (régression logistique) ou plus évolué (réseau de neurones), il définit toujours la vraisemblance P(y |x, w) qui est la probabilité que y soit vraie ou fausse en fonction des caractéristiques x d’une observation et en fonction des valeurs de certains paramètres internes w que l’on peut concevoir en l’occurrence comme l’hypothèse incertaine ou le modèle incertain que l’on postule. On utilise souvent le terme de variables latentes pour ces paramètres w.

Avant même d’observer quoi que ce soit, on résume l’incertitude que l’on a des paramètres w par des probabilités à priori P(w). Une fois un échantillon de données data = {(x1,y1), (x 2,y2),…, (x N,yN)} observé, on utilise la formule de Bayes pour mettre à jour la distribution sur les w et calculer la distribution à postériori P(w | data ).

Dans l’approche bayésienne du ML, l’apprentissage consiste donc en une mise à jour de la distribution de probabilités sur les modèles après observation d’un jeu de données d’entraînement.

Pour faire une prédiction yNEW au sujet d’une nouvelle observation xNEW on calcul une moyenne des prédictions de chaque modèle individuel P(yNEW | xNEW, w) pondéré par sa probabilité à postériori P(w | data ) que l’on vient de calculer :

Équation (2) : Calcul de la distribution de probabilité prédictive comme une pondération des prédictions des modèles individuels par leur probabilité à postériori. Il s’agit d’une forme particulière d’ « ensembling».

Voilà pour les principes.

Les choses se gâtent hélas lorsque l’on passe à la pratique. L’approche bayésienne se heurte en effet à deux difficultés principales : d’une part le calcul de la constante de normalisation dans l’équation (1) et d’autre part le calcul de la moyenne pondérée dans l’équation (2) sont le plus souvent impossibles à mener exactement. Pour éviter ce coût de calcul prohibitif, on a dès lors recours à différents schémas d’approximations. Sans entrer ici dans les détails il en existe deux grandes catégories pour le calcul de la distribution à postériori P(w | data) :

  • Les méthodes variationnelles : on renonce au calcul exact de la distribution à postériori pour calculer analytiquement une distribution approximative Pθ (w | data). On la choisit parmi un ensemble restreint de distributions simples et dépendantes d’un petit nombre de paramètres θ que l’on va ajuster pour rapprocher[1] Pθ(w | data) de la vraie distribution P(w | data), voir [BIS – chapitre 10].
  • Les techniques d’échantillonnage : il s’agit de techniques numériques qui permettent d’échantillonner efficacement des distributions de probabilités complexes. La technique de base est la technique dite MCMC pour Monte Carlo Markov Chain [BIS – chapitre 11].

Enfin, il existe différentes approximations classiques pour le calcul de la distribution prédictive P(yNEW | xNEW) :

  • L’approximation MAP (maximum à postériori) est radicale puisqu’elle consiste à remplacer la somme sur w dans l’équation (2) par un seul terme w = wMAP, celui qui maximise la distribution à postériori P(w | data).
  • L’approximation de Laplace est un peu moins radicale, elle consiste à approximer une distribution par une gaussienne autour du mode principal [BIS – chapitre 4].

L’entraînement d’un modèle de ML par un calcul du maximum de vraisemblance, bien connue des data scientist, n’est qu’un cas particulier de l’approximation MAP lorsque l’on suppose que la distribution à priori P(w) ne contient aucune information. Dans ce cas, schématiquement, P(w) se réduit à une constante et la probabilité à postériori P(w | data) est simplement proportionnelle à la vraisemblance P(data | w), si bien que maximiser la première revient aussi à maximiser la seconde. Notons wML ce maximum.

Ce résultat wML présente souvent le défaut du surapprentissage ce qui signifie que le modèle P(yNEW| xNEW, wML) est exagérément confiant dans les prédictions qu’il fait à propos de données éloignées des données d’entraînement data. Intuitivement, ce défaut tient au fait que cette procédure de calcul ne retient qu’un seul modèle, wML, précisément celui qui maximise la vraisemblance P(data | w), alors que beaucoup d’autres modèles w pourraient aussi faire l’affaire, bien que leur vraisemblance soit moindre.

Pour pallier le surapprentissage les data scientist utilisent différentes techniques ad-hoc de régularisation. Le ML bayésien est cependant plus rigoureux puisqu’il se propose de combiner différents modèles prédictifs selon les règles dictées par la théorie des probabilités. Ses prédictions seront donc plus fiables.

La figure 2 illustre intuitivement la différence entre l’approche usuelle et l’approche bayésienne pour un problème de classification binaire.

Figure 2 : A gauche l’application du maximum de vraisemblance à un problème de classification au moyen d’un modèle linéaire. Les zones noires (prédiction = rouge) et blanches (prédiction = bleu) correspondent aux régions où le modèle est très confiant dans ses prédictions. A l’évidence cette confiance est excessive dans les zones où aucune donnée n’a été observée. A droite le modèle bayésien qui résulte d’une pondération correcte selon l’équation (2) de nombreux modèles linéaires compatibles avec les données. Ses zones de confiances, noires ou blanches, sont considérablement réduites. Dans un sens ce modèle est plus prudent, il doute.

On peut résumer l’élaboration d’un modèle prédictif selon l’approche bayésienne en utilisant le cycle de Box illustré sur la figure 3 : (1) construction d’un modèle prédictif sous forme d’une fonction de vraisemblance P(data | w), (2) inférence de la distribution à postériori P(w | data) après observation des données (3) évaluation des prédictions.

Figure 3 : Le cycle de Box qui résume la réalisation itérative d’un modèle de prédiction probabiliste.

3.  … désormais combinées au Deep Learning

Expérimenter avec de nombreux modèles

La conception d’un modèle probabiliste et, plus encore, le développement d’une méthode d’inférence appropriée demandent aujourd’hui une grande expertise pour soupeser les atouts et les inconvénients des nombreuses méthodes disponibles, qu’elles soient numériques ou analytiques. Les occasions de commettre des erreurs sont donc nombreuses et la lenteur du processus rend difficile l’exploration de toutes les options.

L’objectif de la programmation probabiliste (PP) est double. D’une part elle doit permettre de construire par programmation des modèles probabilistes complexes que l’on pourra échantillonner. D’autre part, et de manière indépendante, elle vise idéalement à encapsuler la complexité du processus d’inférence dans un moteur de calcul universel.

Dis autrement un système capable d’exécuter un langage de PP comprend d’une part un simulateur de phénomènes aléatoires et d’autre part un mécanisme d’interrogation qui permet d’en explorer les conséquences.

Aujourd’hui, une part significative des publications et des présentations dans les grandes conférences sur l’IA et le ML (NIPS, ICML, …) concerne l’étude de nouveaux modèles probabilistes et des méthodes d’inférence adéquates. L’idéal d’agilité que formule la PP, ainsi que le découplage qu’elle promeut entre la conception d’un modèle et le choix d’une technique d’inférence, permettrait d’accélérer considérablement ce genre d’étude. Le conditionnel est ici de rigueur car, et nous y reviendrons, la franchise oblige de le dire, nous n’y sommes pas encore.

Des langages de PP existent depuis belle lurette : WebPPL, Venture, Stan en sont des exemples. Ces systèmes cherchent tous à réaliser un compromis acceptable entre d’une part leur expressivité, la richesse des modèles qu’ils permettent de formuler, et leur scalabilité.

Ces systèmes ne sont hélas plus adaptés aux infrastructures logicielles (TensorFlow) et matérielles (GPU, TPU) conçues pour entraîner des modèles de Deep Learning comportant des millions de paramètres.

De nouveaux systèmes sont en cours d’élaboration avec l’objectif de concilier la flexibilité des modèles de Deep Learning avec les atouts d’un langage de PP universel que sont l’inférence automatique et un traitement rigoureux de l’incertitude.

Nous décrivons ci-dessous succinctement la librairie Edward basée sur TensorFlow qui est une des plus récentes.

Edward une surcouche de PP pour TensorFlow

Entraîner un modèle de ML classique revient toujours à minimiser une fonction de coût. L’opposé du log de la vraisemblance (NLL) mentionnée précédemment en constitue l’exemple le plus courant. Des dizaines d’astuces numériques et de librairies ont été développées durant ces vingt dernières années pour calculer efficacement le minimum de ces fonctions de coût définies par les réseaux de neurones (RN) profonds.

Une librairie comme TensorFlow (TF) développée par Google Brain apporte des services de base pour ce genre de calcul :

  • TF effectue le calcul symbolique des dérivées par rapport aux paramètres w des fonctions de coût définies par un RN. Ce calcul utilise une version de l’algorithme de rétropropagation [2]. Différents optimiseurs exploitent ces gradients pour trouver rapidement un minimum approximatif.
  • Pour des raisons de performances d’exécution, TF compile en langage C un graphe de calcul que le développeur construit à l’aide d’un langage de haut niveau comme Python. L’exécution n’intervient qu’une fois le graphe construit. L’un des avantages de cette stratégie est qu’elle évite les délais occasionnés par les transferts de données répétés entre les couches C et Python qu’exigeraient les invocations successives de fonctions Python vectorisées (comme celles de la librairie NumPy par exemple). L’inconvénient est que la construction du graphe conduit souvent à une syntaxe peu intuitive.
  • La compilation du code est optimisée pour cibler différentes plateformes, distribuées ou non, et notamment pour tirer parti l’infrastructure calcul massivement parallèle (CUDA) qu’offre les GPU développés par NVIDIA.

La librairie Edward, ainsi nommée en l’honneur du statisticien George Edward Box, tire parti de l’infrastructure TF pour créer un système de PP à la fois expressif et scalable. Edward ajoute deux fonctionnalités à TF : (1) une librairie de générateurs de variables aléatoires (VA) pour construire de modèles probabilistes complexes et (2) une librairie d’algorithmes d’inférence pour calculer des distributions à postériori.

Figure 4 : Edward est une surcouche de TensorFlow.

Il n’est pas question d’entrer dans le détail de la syntaxe d’Edward, aussi nous nous contenterons de donner deux exemples de construction de modèle et d’inférence dont le code est assez simple pour être intelligible sans commentaires.

Exemple – le jeu de pile ou face biaisé

L’exemple le plus simple est peut-être celui d’une simulation de plusieurs lancer de pile ou face avec un pièce potentiellement biaisée dont on ignore la probabilité θ de tomber sur pile. On souhaite ici « apprendre » θ, plus précisément calculer sa distribution à postériori, suite à l’observation des résultats de plusieurs lancés. Dans l’exemple ci-dessous on suppose à priori la pièce probablement est équilibrée [3].

Voici le code qui définit un modèle probabiliste pour 50 tirages de pile ou face avec un paramètre de biais θ inconnu :

from edward.models import Bernoulli, Beta
 
theta = Beta(1.0, 1.0) 
x = Bernoulli(probs = tf.ones(50) * theta)

La première ligne déclare les deux générateurs de VA utilisées. La seconde déclare la distribution à priori sur le paramètre θ , approximativement équilibrée, dont on souhaite apprendre la distribution après observation des lancés. La troisième enfin définit 50 VA binaires x indépendantes partageant le même biais θ. Une fois définies, on peut échantillonner ces VA avec une méthode comme

x.sample(100)

calculer leur densité de probabilité avec

x.log_density()

ou encore sa moyenne avec

x.mean().

Pour le calcul d’inférence de la distribution à postériori sur θ il faut choisir une méthode d’inférence appropriée. En l’occurrence, vu la simplicité du problème, une inférence exacte est possible. Voici le code pour ce calcul d’inférence exact :

theta_cond = edward.complete_conditional(theta)
data = np.array([0, 1, 0, 0, 0, 0, 0, 0, 0, 1])
sess.run(theta_cond, {x: data})

La première ligne définit une variable aléatoire θcond qui sera distribuée comme l’est θ une fois que les données data ont été observées. La fonction

ed.complete_conditional(...)

spécifie le choix d’une méthode d’inférence utilisée, en l’occurrence un calcul symbolique exact. La seconde définit les données observées. Le troisième enfin effectue le calcul d’inférence proprement dit. Désormais on pourra échantillonner la VA θcond et l’utiliser pour faire des prédictions.

Exemple – un réseau de neurones bayésien

Nous illustrons la méthode d’inférence variationnelle sur une exemple académique de RN bayésien (RNB) qui n’est rien d’autre qu’un RN dont les poids et les biais sont considérés comme des variables latentes w dont on va calculer la distribution à postériori P(w| data).

Figure 5 : le RN à une couche utilisé dans l’exemple. Les poids Wi et les biais bi, i=0 ou 1 sont collectivement les variables latentes w du modèle.

Voici le code qui définit des VA normales indépendantes, centrées et réduites Wi et bi correspondant aux distributions à priori des poids et des biais du RN illustré sur la figure 5 :

import tensorflow as tf 
from edward.models import Normal

W_0 = Normal(loc=tf.zeros([1, 2]), scale=tf.ones([1, 2])) 
W_1 = Normal(loc=tf.zeros([2, 1]), scale=tf.ones([2, 1])) 
b_0 = Normal(loc=tf.zeros(2), scale=tf.ones(2)) 
b_1 = Normal(loc=tf.zeros(1), scale=tf.ones(1))

Étant donnés les poids et les biais, une fonction d’activation tanh() sur la couche cachée et une couche de sortie linéaire avec un bruit gaussien, la VA y en sortie du RN est définit par :

def RN(x):
   return tf.matmul(tf.tanh(tf.matmul(x, W_0)+ b_0), W_1)+ b_1

y = Normal(loc=RN(data.x), scale=0.1)

Dans le cadre d’une inférence variationnelle avec Edward, la définition des VA qW_i et qb_i correspondant à la distribution à postériori des VA W_i, b_i est un peu alambiquée. Il s’agit définir la classe des distributions, en l’occurrence des lois normales, parmi lesquelles on va chercher une solution approximative. On pourra trouver le code ici.

Le code Edward du calcul d’inférence est relativement simple. Il consiste d’une part à associer les VA à postériori (qW_i et qb_i) dont on se propose de calculer les distributions aux VA à priori (q_i et b_i), c’est le premier paramètre de la fonction KLqp() qui est un dictionnaire. Il consiste ensuite à associer les observations data.y à la VA y en sortie du RN définie dans le code précédent :

import edward as ed

inference = 
   ed.KLqp({W_0: qW_0, b_0: qb_0, W_1: qW_1, b_1: qb_1}, 
            data={y: data.y}) 
inference.run(n_iter=1000)

Edward propose également plusieurs options d’inférence avec des variantes de la méthode Monte-Carlo (MC), voir le tutoriel Edward.

D’autres exemples d’inférences éclairant sont disponibles dans les tutoriels : régression linéaire, clustering etc…

En résumé : Edward est un système de PP scalable grâce à ses procédures d’échantillonnage de VA, il permet de composer différentes techniques d’inférences et tire profit de l’infrastructure de graphe de calcul de TensorFlow.

4. De la R&D aux applications

Calcul d’intervalles de confiance pour un RN régularisé par dropout

Notre première illustration de l’utilité de l’approche bayésienne du ML est un travail de recherche remarquable [DBA] mené par deux chercheurs de l’université de Cambridge. Dans ce travail les auteurs ont dans un premier temps utilisé l’approche bayésienne du ML pour donner une justification rigoureuse de l’efficacité du mécanisme de régularisation par dropout des RN. Dans un second temps ils en ont tiré une méthode économique pour calculer des intervalles de confiance autour des prédictions d’un RN.

Rappelons que la régularisation par dropout, illustrée sur la figure 6, consiste à supprimer au hasard des liens wij entre les neurones i et j lors de l’entraînement du RN, la probabilité de suppression p étant un hyperparamètre. Les suppressions sont renouvelées aléatoirement pour chaque observation de l’ensemble d’entraînement si bien que chaque donnée voit un RN légèrement différent. Durant la phase de prédiction on ajuste généralement les poids du RN ainsi entraîné pour que l’intensité des liens corresponde à une sorte de moyenne sur les réseaux générés par dropout à l’entraînement. Une approche plus rigoureuse consiste cependant à utiliser un processus stochastique également lors de la prédiction, on l’appelle le MC-dropout.

Figure 6 : le mécanisme de dropout consiste à supprimer au hasard des liens entre neurones. Les suppressions sont renouvelées aléatoirement pour chaque observation d’un jeu d’entraînement – source : [DML].

Sur un plan intuitif, la méthode MC-dropout revient donc à effectuer une sorte moyenne sur différents RN résultant des différents tirages des liens supprimés ce qui n’est en définitive rien d’autre qu’un RNB !

De fait, il est possible de montrer théoriquement [DBA] qu’il existe un lien précis entre la technique de MC-dropout dans le sens où chaque RN entraîné avec une régularisation par dropout est effectivement un RNB !

Cette identification théorique d’un RN régularisé par MC-dropout avec un RNB permet de construire des estimations d’erreurs fiables et économiques en ressources. L’intuition est qu’on peut remplacer le calcul coûteux de la moyenne des prédictions pondérée par la distribution à postériori par le calcul économique du mécanisme de MC-dropout.

Une fois que l’on a compris qu’un RN régularisé avec MC-dropout n’est rien d’autre qu’un RNB déguisé, on peut essayer de comparer ses performances à celles d’un RNB calculé par les techniques d’inférence disponibles dans Edward [BDL]. Les résultats obtenus démontrent que les modèles calculés par Edward sont souvent moins performants que ceux calculés à peu de frais par MC-dropout. Les chercheurs pensent cependant avec compris l’origine de ces faiblesses : les approximations variationnelles utilisées dans Edward sont pour l’instant trop grossières[4] pour que l’approximation calculée s’approche suffisamment de la vraie distribution à postériori. Ces intuitions ouvrent cependant la voie pour de futures améliorations des mécanismes d’inférences implémentés dans Edward.

Des modèles plus prudents face aux Adversarials Examples

Dès lors que l’approche bayésienne prétend intégrer un calcul systématique des incertitudes dans ses prédictions, par la dispersion de la distribution prédictive P(yNEW|xNEW), il est tentant de la mettre à l’épreuve sur le cas extrême que représentent les AE. Ces cas sont extrêmes en effet dans le sens où les perturbations artificielles auxquelles ils correspondent sont, d’une certaine manière, très éloignés des exemples avec lesquels un modèle de RN a été entraîné.

Figure 7 : L’évolution de la précision et de l’entropie prédictive de 4 RNB de classification d’images soumis à deux types de perturbations d’intensité croissante. En haut des AE, en bas du bruit gaussien. On constate que les AE font chuter plus rapidement la précision des prédictions – source : [AED].

C’est l’objectif que se sont fixés 3 chercheurs de IBM Research [AED]. Dans un travail expérimental minutieux ils comparent la précision des prédictions et l’évaluation de l’erreur pour 4 modèles bayésien de classification d’images (dont le MC-dropout mentionné au paragraphe précédent) sur l’ensemble classique MNIST perturbé par des AE. Les métriques utilisées sont tirées de la théorie de l’information, la plus simple est l’entropie prédictive qui mesure l’incertitude associée aux prédictions que fait P(yNEW| xNEW).

Les 4 modèles sont perturbés avec des intensités variables et de deux manières différentes. D’une part avec des AE, que l’on sait calculer pour être particulièrement « toxiques » grâce à la méthode FSTM[5]. D’autre part avec un simple bruit aléatoire.

La figure 7 résume les résultats obtenus. On constate qu’à intensité comparable, la précision chute plus rapidement pour des perturbations de type AE que pour de simples perturbations aléatoires ce qui correspond bien à l’intuition de toxicité de ces exemples particuliers.

En conclusion :

Les RNB ne sont pas plus robustes aux AE que leurs confrères non bayésiens. Mais eux au moins savent qu’ils ne savent pas !

5. A quand la démocratisation ?

Réaliser la synthèse de la flexibilité du Deep Learning avec un traitement bayésien de l’incertitude constituerait à n’en pas douter un progrès majeur pour le ML. Pour intégrer le ML dans des systèmes critiques il est en effet indispensable qu’un algorithme sache identifier une situation ambigüe ou une situation jamais vue auparavant pour être en mesure de déléguer son analyse à un autre système ou à un humain.

Si les exemples d’applications précédent sont tous deux tirés de travaux de recherches récents ce n’est pas un hasard. Les applications concrètes en effet se font encore attendre.

Pour l’instant les outils du ML bayésiens comme le langage Edward sont encore réservés aux chercheurs rompus aux multiplies variantes des techniques d’inférence variationnelle ou par simulation MCMC.

La syntaxe des langages de PP reste encore peu intuitive pour le profane. Elle exigera du data scientist féru de scikit-learn un effort conséquent pour repenser la notion d’apprentissage, non plus comme un problème d’optimisation, mais comme un problème d’inférence probabiliste. Rien n’empêche cependant d’imaginer l’émergence d’ici quelques années d’une nouvelle génération de data scientists ou même d’experts métiers pour qui ce mode de pensée sera naturel, d’autant plus que le paradigme bayésien est, de fait, très intuitif.

D’ici là il faudra cependant que les outils de programmation probabiliste fassent des progrès significatifs sur plusieurs axes :

  • L’intelligibilité de leur syntaxe
  • L’encapsulation complète de la logique d’inférence
  • Le temps d’exécution
  • La précision des méthodes inférence

Des systèmes comme Edward qui ambitionnent d’être scalables en tirant parti de l’infrastructure de TensorFlow en sont vraisemblablement les prémices.

En ce domaine de l’IA comme dans d’autres, nous avons la chance de vivre une époque ou des idées longuement muries sur un plan théorique passent progressivement dans le champ de l’expérimentation puis des applications pratiques. Hier grâce à la loi de Moore. Aujourd’hui grâce aux infrastructures massivement parallèles des GPU et autres TPU. Demain l’informatique quantique prendra peut-être la relève.

Soyons donc patient et curieux. Si l’aptitude au doute raisonnable est un attribut d’une intelligence authentique, il n’est finalement guère surprenant qu’en doter les machines ne soit pas un problème si simple.

Références

[1] La divergence de Kullback-Leibler est la mesure classique adéquate d’écart entre deux distributions de probabilité.

[2] Pour TensorFlow c’est l’algorithme Reverse-Mode Autodiff qui est implémenté [HOM, appendice D]

[3] La fonction beta(θ) choisie pour la distribution à priori à l’avantage de conduire à des calculs analytiques simples à cause de la relation de dualité avec la distribution de Bernoulli [BIS, section 2.1]. La moyenne de θ vaut ici ½, on estime donc à priori que la pièce est équilibrée.

[4] Il s’agit d’approximations de champ moyen pour lesquelles les poids associés aux différentes couches sont considérés comme des VA indépendantes.

[5] FGSM = Fast Gradient Sign Method.

L'Intelligence Artificielle,
au-delà des clichés

Livre blanc
Comprendre pour décider
Découvrez l'Intelligence Artificielle pour l'intégrer dès maintenant à vos enjeux stratégiques !
Téléchargez gratuitement

Les informations recueillies sur ce formulaire sont enregistrées dans un fichier informatisé de gestion des Clients et Prospects (CRM).

Le Responsable de traitement est la société weave, 37 rue du rocher 75008 Paris RCS Paris 802 396 085.

Elles sont destinées à l’activité marketing du groupe weave ainsi quà celle de ses filiales, à l’exclusion de tout transfert hors de l’UE. Elles sont conservées pour une durée conforme aux dispositions légales (par exemple 3 ans pour les données prospects).

Ce traitement nécessite votre consentement que vous pourrez retirer à tout moment sans que cela ne remette en cause sa licéité.

Conformément à la loi « Informatique et Libertés » et au règlement européen n°2016/679, vous bénéficiez d’un droit d’accès, de rectification ou d’effacement, ainsi que d’un droit à la portabilité de vos données ou de limitation du traitement. Vous pouvez également pour des raisons tenant à votre situation particulière, vous opposer au traitement de vos données et donner des directives relatives à la conservation, à l’effacement et à la communication de vos données après votre décès. Vous disposez également du droit d’introduire une réclamation auprès de la Commission Nationale de l’Informatique et des Libertés (www.cnil.fr).

Vous pouvez exercer vos droits en nous contactant à l’adresse vosdonnees@weave.eu.

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies pour mesurer notre audience, vous proposer des contenus et des offres personnalisées, ainsi que des fonctionnalités de partage sur les réseaux sociaux. En savoir plus sur notre politique de cookies et notre charte des données personnelles