Qu’est ce que l’apprentissage actif et pourquoi est-ce intéressant?

 

 

 

Avant-Propos

Cet article est une introduction simple (et presque sans mathématiques) à l’apprentissage actif. Son but est de présenter les principes de l’apprentissage actif, ses intérêts, son origine et les avantages qu’il peut présenter dans notre travail. Idéalement, cet article vous donnera une vision un peu plus claire et concrète de ce qui se cache derrière le terme apprentissage actif.

Bien sûr, il serait impossible d’aborder ici tout ce qu’il y a à dire sur le sujet. C’est pourquoi il est bon de préciser qu’il s’agit là d’une introduction très haut niveau (d’où la quasi-absence de maths). Si vous souhaitez rentrer dans les détails pratiques, vous pouvez consultez les références citées tout du long.

Enfin, il faut noter que le terme apprentissage actif est également utilisé dans le milieu scolaire et désigne une méthode d’enseignement. À part leur nom et quelques similitudes dans leurs motivations générales, l’apprentissage actif de l’enseignement et l’apprentissage actif de l’apprentissage automatique n’ont absolument rien en commun.

 

Qu’est-ce que l’apprentissage actif ?

Si j’ai appris une chose en quittant l’université après mon doctorat, c’est que l’apprentissage actif n’est que peu connu en dehors des sphères de la recherche en apprentissage automatique. Ce sera peut-être une évidence pour certains, mais j’aimerais commencer par préciser qu’il ne s’agit pas d’un terme générique désignant tout type de procédure impliquant une interaction humaine. L’apprentissage actif est un sous-domaine de l’apprentissage automatique bien défini qui s’intéresse à la façon par laquelle un algorithme d’apprentissage peut interagir avec un Oracle. Ironiquement, la motivation qui est amené est souvent celle de l’interaction entre un humain et un algorithme d’apprentissage automatique afin d’imager le concept d’oracle. Il s’agit pourtant d’un champ de recherche essentiellement théorique et intégrer un facteur humain dans sa boucle d’opération n’est pas nécessairement une bonne idée, comme nous le verrons.

L’asymétrie de disponibilité des étiquettes

L’apprentissage actif tente de pallier l’une des principales limitations de l’apprentissage supervisé, à savoir l’asymétrie des coûts entre la collecte d’un point de données (non étiqueté) et le fait d’obtenir son étiquette. L’apprentissage supervisé repose sur l’idée qu’un ensemble d’apprentissage étiqueté est disponible. Pourtant, le plus souvent, collecter une donnée n’a pas le même coût que de lui attribuer une étiquette. Un exemple parlant de ce phénomène est celui de la classification d’image : collecter un jeu de données non étiquetées peut être fait via un simple script et une connexion à internet. Etiqueter un jeu de données, cependant, requiert généralement un œil humain. Dans ce genre de cas, l’efficacité de tout le processus de capture de données est limitée par l’étape de d’étiquetage qui s’avère être lente et couteuse. En pratique, il n’est pas utile de collecter plus de données que ce que l’on peut en étiqueter.

L’apprentissage semi-supervisé part du principe qu’une donnée non étiquetée peut toutefois s’avérer utile et il peut être perçu comme de l’apprentissage supervisé augmenté par des données non-étiquetées. Par opposition, l’apprentissage actif aborde le problème comme une tâche d’attribution de budget. Si on ne devait étiqueter qu’une fraction des données disponibles, comment choisir celles pour lesquelles nous en tirerions le plus grand bénéfice ? Cette problématique peut être abordée comme une tâche de pré-traitement, en une seule passe, en amont du processus d’apprentissage (apprentissage actif par batch) ou de façon itérative tout au long du processus d’apprentissage (apprentissage actif standard). Dans cet article, nous nous limiterons à la seconde option, qui est la plus commune.

Pourquoi l’apprentissage actif fait sens?

Pour que l’apprentissage actif soit pertinent, cela suppose qu’il est plus important d’obtenir certaines étiquettes que d’autres. Dans le cas contraire, où toute toutes les étiquettes sont uniformément utiles, il n’y a aucun intérêt à choisir consciencieusement quelles données étiqueter.

Premièrement, il est important de noter que l’importance d’une étiquette est fonction du modèle que l’on souhaite apprendre et des autres étiquettes déjà disponible et/ou précédemment obtenues.

Avant de continuer, il faut faire la distinction, parfois subtile, entre modèle, hypothèse et algorithme d’apprentissage. Dans les grandes lignes, un modèle est le type de solution que l’on cherche à obtenir (ce peut être, entre autres, un modèle linéaire, un modèle d’apprentissage profond ou un modèle de forêt aléatoire). Une hypothèse est une paramétrisation spécifique d’un modèle, par exemple un « modèle entrainé » est une hypothèse. Enfin, un algorithme d’apprentissage est le processus par lequel une hypothèse consistante avec un jeu de données est obtenue. Par exemple, dans le cas de la classification d’images avec un réseau de neurones profond, le modèle fait référence à l’architecture du réseau de neurones utilisé (généralement, une variante de CNN (Convolutional Neural Network) lorsqu’il s’agit d’images). L’algorithme d’apprentissage sera probablement une version de l’algorithme du gradient (ADAM, SGD, etc.) et on appellera hypothèse le modèle entraîné résultant. Il est également important de noter que le modèle entraîné est une hypothèse, celle qui est supposément la meilleure, mais n’importe quelle paramétrisation d’un modèle (avec différents poids, dans le cas d’un réseau de neurones) est également une hypothèse.

Ces distinctions sont importantes pour l’apprentissage actif car c’est un domaine qui s’intéresse au processus de raffinement itératif de nouvelles hypothèses au travers de la collecte de nouvelles étiquettes. Plus précisément, pour qu’une étiquette soit considérée comme utile, elle doit répondre à deux critères : 

  • Fournir de nouvelles informations sur la distribution des données en différente classes 
  • Contredire l’hypothèse courante 

Une étiquette qui répond à ces deux conditions mènera à une réévaluation et une mise à jour significative de l’hypothèse courante. Du point de vue de la théorie de l’information, un changement d’hypothèse reflète une mise à jour de la modélisation statistique des données observées, ce qui confirme que l’étiquette que nous venons de recevoir contenait de l’information pertinente.

Dans chacun des trois schémas, on s’intéresse à la pertinence de la nouvelle étiquette. La droite violette représente ici la meilleure hypothèse consistante avec les données, à l’exception de celle dans le cadre vert.

L’étiquette fournit de la nouvelle information sur la répartition des points rouges, mais notre hypothèse était déjà correcte.
L’étiquette contredit notre hypothèse mais reste cohérente avec ce que nous avons observé et par conséquent ne mènerait qu’à un ajustement mineur.
L’étiquette contredit notre hypothèse et fournit de la nouvelle information sur la répartition des points rouges. Cette étiquette mène à la mise à jour la plus importante de notre hypothèse.

 

Malheureusement, les étiquettes ne sont jamais connues à l’avance. Il faut déterminer l’utilité potentielle d’une étiquette pour une donnée en tenant compte de la probabilité que celle-ci soit non informative. En pratique, un bon algorithme d’apprentissage actif peut évaluer le niveau d’information pouvant être fourni par une étiquette.

Si le point dans le cadre vert est étiqueté en bleue, il s’agit d’une information utile, mais sa proximité avec le groupe de points rouges indique aussi une très faible probabilité que cela soit le cas.

 

Comment écrire un algorithme d’apprentissage actif

Mythologie grecque, Oracle et requête

Le cadre mathématique pour l’élaboration et l’étude d’algorithmes d’apprentissage actif est construit autour de deux idées centrales : l’interactivité et un coût élevé d’étiquetage. Ce dernier est la raison d’être de l’apprentissage actif. L’aspect interactif vient quant à lui de notre motivation première, à savoir : « sélectionner consciencieusement le point de données à étiqueter ». Sans un minimum d’interactions entre le processus d’étiquetage et l’algorithme d’apprentissage la seule possibilité est de sélectionner aléatoirement les point de données à étiqueter et exécuter ensuite un algorithme d’apprentissage supervisé. Un algorithme d’apprentissage actif est donc une procédure permettant d’acquérir de façon itérative des étiquettes aussi efficacement que possible.

Dans le jargon des chercheurs, on utilise couramment les métaphores d’Oracle et de requête. Un Oracle est une entité omnisciente qui peut étiqueter n’importe quelle donnée. Tout comme son homologue dans la mythologie grecque, son fonctionnement n’est pas important ; l’essentiel étant que l’Oracle a toujours raison et qu’il est coûteux de lui demander une réponse. La requête correspond à l’acte de demander à l’Oracle une l’étiquette pour une données spécifique.

La boucle d’apprentissage actif telle que représentée dans l’article de référence “Active Learning Literature Survey” de Burr Settles

 

Exemple de pseudocode

Un algorithme d’apprentissage actif démarre avec un jeu de données non étiqueté 𝒰, un jeu de données « étiqueté »  initialement vide et un algorithme d’apprentissage supervisé 𝒜. À toute fin pratique, 𝒰 est aussi grand que nécessaire et ℒ peut être initialisé avec quelques données étiquetées sélectionnés aléatoirement à partir de 𝒰. 𝒜 est typiquement inclut dans les entrées car l’apprentissage actif ne consiste pas tant à apprendre à partir d’un jeu de données que de trouver une requête permettant d’obtenir le la donnée la plus pertinente à étiqueter. Cependant, la plupart des algorithmes d’apprentissage actif sont définis pour classe spécifique d’algorithme d’apprentissage supervisé. 

La partie centrale d’un algorithme apprentissage actif est sa fonction de requête. C’est cette fonction qui va sélectionner le prochain point de 𝒰 qui sera présenté à l’Oracle. Tout ce qui entoure la fonction de requête est généralement très standard et ne sert qu’à interfacer la fonction de requête et l’Oracle entre eux.  

Voici un exemple minimal de ce que peut être un algorithme d’apprentissage actif : 

    1. Etant donné un jeu de données non étiqueté 𝒰, un jeu de données étiqueté , un algorithme d’apprentissage 𝒜, un Oracle 𝒪 et une condition d’arrêt C
    2. Soit la donnée requêtée  x = Query (𝒰,ℒ,𝒜)
    3. Demander l’étiquette y = 𝒪(x) à l’Oracle 
    4. Mettre à jour ℒ = ℒ ∪{(x,y)}
    5. Retirer x du jeu de données non non-étiqueté 𝒰 = 𝒰 ∖ {x}
    6. Si  C est vrai, retourner 𝒜(ℒ), sinon aller à l’étape 2.

C pourrait être lié à un budget (par exemple, une limite sur la taille de) ou à une condition de convergence (par exemple, jusqu’à ce que la performance de 𝒜(ℒ) ne s’améliore pas de façon significative d’une itération de la boucle à l’autre).

Pour la fonction de requête, le pseudocode pourrait grossièrement ressembler à ceci : 

    1. Étant donné un jeu de données non étiqueté 𝒰, un jeu de données étiqueté et un algorithme d’apprentissage 𝒜
    2. Soit h = 𝒜(ℒ) notre meilleure hypothèse 
    3. Pour chaque point x dans 𝒰 calculer le niveau de confiance de h vis-à-vis de la l’étiquette h(x) prédite par l’hypothèse h 
    4. Renvoyer le point x ∈ 𝒰 avec le niveau de confiance le plus bas calculé à l’étape 3.
Version binarisée du jeu de données Fashion-MNIST limité à deux classes : “basket” et « bottine ». Par souci de lisibilité, les données sont projetées de 784 dimensions à 2 dimensions en utilisant une PCA (Principal Component Analysis). Les vignettes représentent l’image originale en niveaux de gris de 28×28 pixels associée à chaque point de données. Elles ne sont montrées ici qu’à des fins d’illustration et ne sont jamais mises à disposition de l’algorithme d’apprentissage. Les cadres rouges et bleus autour de chaque vignette correspondent à la l’étiquette de chaque point de données, rouge pour Basket et bleu pour Bottine. La ligne violette représente la frontière de décision d’un SVM (Support Vector Machine) entraîné sur les données présentes sur la figure avec un noyau gaussien et les hyperparamètres σ= 0.165 et C = 1.84. Ces valeurs ont été obtenues en effectuant une rapide recherche en grille à validation croisée en 10 fois. La frontière de décision représentée ici atteint un taux de reconnaissance de 0,89 sur un jeu de test gardé de côté.

Visualisation des requêtes successives effectuées par un algorithme d’apprentissage actif (Active-SVM). Les données ayant fait l’objet d’une requête sont encadrées en fonction de leur étiquette (rouge pour Basket, bleu pour Bottine), illustrant ainsi le fait que leur étiquette est connue de l’algorithme d’apprentissage. Toutes les autres données sont non étiquetées.  L’animation représente les requêtes faites par l’algorithme d’apprentissage actif et leur effet sur la l’hypothèse (frontière de décision en violet) calculé par un algorithme de SVM supervisé sur les étiquettes disponibles (c’est-à-dire qui ont fait l’objet d’une requête).  Dans cet exemple, nous simulons un Oracle parfait en dévoilant simplement la véritable étiquette de chaque donnée lorsqu’elle est requêtée.  Remarquons que la donnée choisis pour chaque requête est systématiquement la plus proche de la frontière de décision ; c’est un comportement connu qui est très bien décrit par les théorèmes mathématiques de l’apprentissage actif.

Remarque sur l’apprentissage supervisé 

En observant le pseudocode ci-dessus, on peut remarquer que nous exécutons l’algorithme supervisé 𝒜 à la fin de la boucle principale (étape 6). En fait, l’apprentissage actif peut être vu comme une méthode de collecte détiquettes en amont d’un algorithme d’apprentissage supervisé. 

Adopter ce point de vue nous permet de naturellement évaluer les avantages que présente l’utilisation de l’apprentissage actif. Par définition, lapprentissage supervisé suppose que le jeu d’entraînement est échantillonné (et étiqueté) à partir de la distribution sous-jacente des données, il en revient à exécuter une fonction de requête simpliste qui renvoie un point au hasard dans 𝒰. 

Vu sous cet angle, on comprend assez intuitivement que l’apprentissage supervisé « gaspille » de plus en plus de budget d’étiquetage à mesure que diminue le nombre de données utiles, en vertu des deux conditions énoncées dans la section précédente. L’apprentissage actif est supérieur à l’apprentissage supervisé car il tente de localiser la zone où les étiquettes sont les plus susceptibles de satisfaire à ces deux conditions.  

Quel est l’intérêt?

Voyons-le ainsi : l’apprentissage supervisé équivaut à sélectionner aléatoirement une donnée à étiqueter. Autrement dit, pour qu’un algorithme d’apprentissage supervisé fonctionne bien, il faut que le jeu de données soit représentatif de la distribution des étiquettes (voir covering number et dimension VC pour en savoir plus). Pour ce faire, il faut le plus souvent acquérir des étiquette (de façon aléatoire) jusqu’à ce que presque toutes les données soient soit étiquetées, soit localisées dans le voisinage d’une donnée étiquetée. La raison en est que cette approche ne tente pas de tirer avantage de l’hypothèse et des catégories dont nous disposons déjà.

Comparaison entre une hypothèse produite par un SVM entraîné sur le jeu de données complet (à gauche) et une autre entraîné avec l’algorithme Active-SVM (à droite).   Les deux algorithmes partagent les mêmes hyperparamètres et atteignent le même taux de reconnaissance en test de 0,89. Cependant, l’hypothèse obtenue avec le jeu de données complet utilise les 106 étiquettes disponibles tandis que celle obtenue par apprentissage actif (à droite) affiche la même performance après seulement 22 requêtes.

 

L’apprentissage actif en revanche tente d’identifier les données pour lesquelles l’hypothèse courante est la plus incertaine et demande leur étiquette à l’oracle. Notons que définition précise de ce qu’incertain signifie mathématiquement est un sujet délicat lorsqu’on a affaire à des modèles dit « boîte noire », comme c’est le cas en apprentissage automatique et c’est une discussion qui dépasse le cadre de cet article. Pour résumer, l’apprentissage actif se comporte d’une certaine façon comme une méthode de dichotomie. De façon itérative, il réduit de moitié le nombre de données dont l’étiquette est incertaine, relativement à l’hypothèse courante. Comparée à l’approche de couverture uniforme de l’apprentissage supervisé (c’est-à-dire collecter des étiquettes de manière aléatoire), cette méthode est plus efficace. En fait, pour un modèle d’apprentissage supervisé entraîné avec données catégorisés, il est démontré qu’un modèle d’apprentissage actif aux performances comparables peut être obtenu avec en moyenne log2 (N) requêtes d’étiquette, réduisant ainsi exponentiellement le budget d’étiquetage.

Comparaison entre le taux de reconnaissance en test atteinte par l’algorithme Active-SVM (en bleu) et la méthode de requête aléatoire (en rouge) dans lequel on requête l’Oracle avec une donnée non étiquetée sélectionnée aléatoirement. Notons que la méthode de requête aléatoire est représentative de la façon dont on allouerait un budget d’étiquetage fixe en collectant des données en amont lors d’une procédure d’apprentissage supervisé classique. L’approche basé sur l’apprentissage actif est systématiquement meilleure que la méthode aléatoire. Les premières requêtes mènent à des gains de performance supérieurs et permettant d’atteindre un taux de reconnaissance maximal après 25 requêtes contre 65 lorsque les requêtes sont faites de manière aléatoire. Notons que ces scores représentent une moyenne sur 100 répétitions avec une partitions d’entraînement/test aléatoirement sélectionnée sur le jeu de données Fashion-MNIST modifié tel que mentionné précédemment. Les bandes bleue et rouge représentent les écarts-types.

Pourquoi l’apprentissage actif n’est-il pas plus utilisé?

On peut retenir plusieurs raisons. La principale est que l’apprentissage actif est plus contraignant à mettre en place que les autres approches d’apprentissage automatique. L’apprentissage actif est restrictif en cela qu’il a besoin d’être intégré au processus de collecte de données. Autrement dit, Il faut que l’entièreté du processus de traitement des données soit fonctionnel avant de pouvoir commencer la collecte. Comparativement, l’apprentissage supervisé sépare la collecte de données de leur exploitation, les données peuvent être étiquetées indépendamment de l’algorithme d’apprentissage automatique utilisé. Par définition, cela n’est pas possible en apprentissage actif. Il n’est pas rare en pratique que des jeux de données soient collectés et étiquetés avant même d’avoir une idée précise de comment ces données pourraient être utilisées.  

Une autre raison, plus superficielle, vient du fait que l’apprentissage actif est souvent motivé en faisant le rapprochement entre l’Oracle et un expert humain (un médecin par exemple) qui s’occuperait de l’étiquetage des données. Bien que parlante, cette situation présente plusieurs inconvénients pour l’apprentissage actif : un humain est susceptible de commettre des erreurs, il est sensible aux tâches répétitives, et sujet à la fatigue. Typiquement, l’apprentissage actif n’est pas adapté pour pallier ces faiblesses. Quiconque interagissant avec un algorithme d’apprentissage actif pendant plus de 10 minutes peut le constater : les requêtes produites deviennent rapidement redondantes et paraissent contre-intuitives pour un être humain, même si elles font sens mathématiquement. Cela est dû au problème de l’interprétabilité de l’apprentissage automatique, un problème répandu qui constitue l’une des principales entraves à l’adoption massive de l’apprentissage automatique. Sans comprendre un modèle, on ne comprend pas non plus la pertinence des requêtes que l’on reçoit et l’expérience devient vite frustrante.  

Les 28 premières requêtes de l’algorithme Active-SVM sur le jeu de données Fashion-MNIST binarisé. Les premières requêtes affichent des classes et formes très variées, tandis que la dernière rangée se concentre presque uniquement sur un type de chaussures avec beaucoup d’images similaires (pour l’œil humain). Notez que, contrairement à celles des figures précédentes, ces requêtes ont été obtenues en exécutant l’algorithme Active-SVM sur le jeu de données Fashion-MNIST dans sa dimensionnalité originale de 28×28 pixels afin de préserver les caractéristiques visuelles de chaque donnée.

Enfin, les réseaux de neurones profonds, qui sont aujourd’hui de loin les modèles d’apprentissage automatique les plus connus et les plus efficaces, ne sont pas adaptés à l’apprentissage actif. En effet, l’apprentissage actif se doit encore de poser les bases théoriques de son interopérabilité avec les réseaux de neurones, malgré quelques récentes avancées prometteuses.

Qu’est-ce qu’une situation idéale pour l’apprentissage actif?

Cela dépend. Une situation très propice à l’apprentissage actif est lorsque le processus de collecte des données est simple avec une phase d’étiquetage couteuse mais néanmoins automatisée ; l’aspect automatique étant ici important. L’apprentissage actif fonctionne au mieux quand l’Oracle est consistant. Même avec un Oracle imparfait, pour autant que les erreurs d’étiquetages faites par l’Oracle peuvent être caractérisées, il est possible de faire de l’apprentissage actif.

Il est également important de prendre en compte la facilité avec  laquelle les données non étiquetées peuvent être collectées. Il y a généralement deux cas dans lesquels l’acquisition de bonnes données non étiquetées peut être compliquée : (i) quand la collecte de données est coûteuse ou (ii) quand il est impossible de collecter des données distribuées de manière indépendante et identique (i.i.d.). Le premier cas est assez clair : si la collecte et l’étiquetage des données sont tout autant couteux, il n’y a pas d’avantage à utiliser l’apprentissage actif et l’apprentissage supervisé est la meilleure option. Le second cas est un peu moins intuitif. Mettons qu’un agent automatisé joue à un jeu. Collecter les données issues des parties ainsi jouées est en effet peu couteux. Cependant, les données obtenues ne sont pas statistiquement indépendante. Elles représentent une suite d’actions interdépendantes. Pour collecter des données i.i.d., il faudrait réinitialiser la partie régulièrement et tester uniformément toutes les conditions de départ pertinentes. C’est un cas typique où les coûts de collecte sont cachés. La collecte en elle-même est facile, mais s’assurer leur pertinence statistique est coûteux. Dans ce genre de cas, il vaut probablement mieux explorer des solutions telles que l’apprentissage par renforcement ou, plus généralement, le TD-learning.

Est-ce qu’une telle situation existe dans la vraie vie? 

La première situation qui vienne à l’esprit est celle où une méthode d’étiquetage fiable existe, mais trop couteuse pour répondre au besoin massif de données de l’apprentissage supervisé. C’est notamment le cas dans le domaine de la physique, où les dispositifs de mesure sont trop coûteux pour étiqueter de manière exhaustive toute les données disponible (télescopes, accélérateurs de particules, etc.), ou les problèmes demandant une grande puissance de calcul. Pour de tels problèmes, une approche particulièrement intéressante consiste à d’entraîner un modèle statistique afin d’obtenir une approximation du résultat exact. Une telle approximation peut ensuite, par exemple, servir à décider quand exécuter ou non la véritable expérience/simulation coûteuse. Cependant, obtenir les étiquettes nécessaires pour utiliser un algorithme d’apprentissage supervisé peut nécessiter des mois d’observation et/ou de calcul. Grâce à l’apprentissage actif, ce délai peut être réduit à quelques jours. Par ailleurs, le processus d’étiquetage (résoudre un problème complexe, effectuer des mesures expérimentales, etc.) est certes lent mais fiable. En bref, les conditions sont réunies pour faire un bon Oracle.

Les lecteurs familiers avec l’informatique noteront qu’utiliser un modèle statistique afin de trouver une réponse approximative à un problème complexe se rapproche fortement du concept d’heuristique, et ils auront raison. L’apprentissage actif se prête particulièrement aux problèmes qui bénéficient de l’utilisation d’heuristiques. En ce sens, il semble naturel d’utiliser l’apprentissage actif comme moyen d’apprendre automatiquement des heuristiques robustes. Il est même possible de commencer avec une heuristique manuellement définie (par des experts ou selon des principes généraux) et de la perfectionner à travers l’apprentissage actif afin d’apprendre à corriger l’erreur faites par cette heuristique de départ. Cette approche est certes moins passionnante que lorsque l’Oracle est un expert humain, mais elle est plus robuste.

Exemple pratique dans le jeu vidéo

L’article Software Testing by Active Learning for Commercial Games (test de logiciel par l’apprentissage actif dans les jeux commerciaux) s’appuie sur l’apprentissage actif pour bâtir une heuristique estimant la probabilité de marquer un but dans FIFA à partir d’une position de tir donnée. Chaque position sur le terrain est représentée par un point de données qui a pour catégorie le résultat du tir (but ou non). La simulation physique du jeu étant plafonnée à 60 images par seconde (fps), générer et catégoriser un jeu de données prendrait énormément de temps.

Les auteurs de l’article ont utilisé l’apprentissage actif pour limiter le nombre de simulations nécessaires. Un autre aspect intéressant de leur approche est que la requête formulée par leur algorithme d’apprentissage actif a permis aux concepteurs du jeu de déterminer l’emplacement idéal de tir au but sur le terrain (appelé « sweet-spot »   dans l’article). Les développeurs ont ainsi pu équilibrer le jeu en utilisant l’apprentissage automatique pour identifier ces sweet-spots après chaque itération de leur design. Grâce à l’apprentissage actif, ils ont pu éviter des temps de simulation prohibitivement long et utiliser ce processus a de manière itérative.

En conclusion

Il y aurait encore des tas de choses à écrire au sujet de l’apprentissage actif, espérons que cet article a su donner une idée globale de ce qu’est ce domaine méconnu. L’apprentissage actif et surtout les Oracles comptent de nombreuses déclinaisons. Il existe des Oracles fainéants (qui peuvent décider de ne pas répondre), des Oracles bruités (qui commettent des erreurs), des Oracles à coût variable, etc. Chacun s’accompagne de théories spécifiques sur la façon d’élaborer la meilleure stratégie de requête. Cet article ce veut autant général que possible mais le monde de l’apprentissage actif est vaste et chaque variation a ses particularités.  

Dans la continuation de cette discussion, un sujet dont je parlerais peut-être dans un futur article est le lien étroit qu’il existe entre les fonctions de requête le concept d’incertitude. Curieusement, cette idée ramène ultimement aux fondements de l’apprentissage automatique, et plus spécifiquement à la théorie de l’information et aux schémas de compression. L’un des articles les plus connus sur l’apprentissage actif explore justement ce lien et explique comment l’un des algorithmes d’apprentissage automatique les plus étudiés (Support Vector Machine) se dérive naturellement e une fonction de requête presque optimale pour l’apprentissage actif.  

 

Auteur

Ugo Louche a rejoint Eidos-Montréal en 2019 en tant qu’expert de l’apprentissage automatique. Il a obtenu son doctorat en apprentissage automatique en 2016 sous la supervision du Pr Liva Ralaivola. Ses activités de recherche sont principalement axées sur l’apprentissage actif et la classification linéaire. Ugo est convaincu que l’apprentissage automatique a le potentiel de changer pour le meilleur la façon dont nous créons des jeux, en permettant aux développeur·euse·s de se concentrer sur les tâches créatives et en reléguant les tâches ennuyeuses aux IA. Il s’est engagé à faire de ce changement une réalité et son travail chez Eidos-Montréal s’intéresse à tous les aspects de l’apprentissage automatique qui peuvent aider au développement de jeux. 

Llama