Il est devenu assez courant de nos jours d’entendre les gens se référer aux systèmes modernes d’apprentissage automatique comme à des « boîtes noires ». À titre d’exemple, prenons un épisode récent du podcast de Sam Harris dans lequel il a interviewé le pionnier de l’IA Stuart Russell. Harris demande :

« Donc, si je ne me trompe pas, la plupart, sinon toutes ces approches d’apprentissage profond, ou même plus généralement les approches d’apprentissage automatique sont, essentiellement des boîtes noires, dans lesquelles vous ne pouvez pas vraiment inspecter comment l’algorithme accomplit ce qu’il accomplit. »

Bien que cette métaphore soit appropriée pour certaines situations particulières, elle est en fait assez trompeuse en général, et peut être à l’origine d’une confusion considérable. Comme nous le verrons, un système d’apprentissage profond n’est pas une boîte noire ; même le développement d’un tel système ne doit pas être une boîte noire. Le vrai défi, cependant, est que ces deux choses sont complexes et pas nécessairement bien comprises. Ici, je veux essayer de clarifier certaines de ces idées, et en même temps réfléchir à ce que nous entendons par explications.

Comme je l’expliquerai ci-dessous, je crois que la confusion provient au moins en partie des idées fausses que les gens ont sur le fonctionnement de ces systèmes. Lorsque les gens ont recours à la métaphore de la boîte noire, ce qu’ils semblent exprimer est le fait qu’il est difficile de donner un sens à l’objectif des différents composants d’un modèle d’apprentissage automatique. Bien que cela soit effectivement difficile, je veux faire valoir que c’est également une attente irréaliste. En cours de route, je vais essayer d’expliquer la différence entre les modèles et la façon dont ils sont formés, discuter des scénarios dans lesquels la métaphore de la boîte noire est appropriée, et suggérer qu’à bien des égards, les humains sont les véritables boîtes noires, du moins en ce qui concerne l’apprentissage automatique.

Explications

Pour commencer, il est utile de réfléchir à ce que les gens veulent dire quand ils parlent d’explications. Ce n’est en aucun cas une question triviale, mais il semble y avoir au moins deux façons particulièrement pertinentes d’y penser.

Lorsque nous demandons à quelqu’un d’expliquer pourquoi il a fait quelque chose (« Pourquoi avez-vous fait X ? »), nous opérons sur un certain ensemble d’hypothèses de fond. Dans le cas d’une décision prise avec soin, nous supposons généralement qu’ils avaient une bonne raison d’agir comme ils l’ont fait, et nous demandons essentiellement le processus de raisonnement qu’ils ont utilisé pour prendre la décision. Par exemple, nous pourrions nous attendre à ce qu’ils aient pesé le pour et le contre et choisi un plan d’action en s’attendant à ce qu’il mène à un résultat particulier.

Lorsque nous demandons pourquoi quelque chose a mal tourné, en revanche, nous demandons plutôt une sorte d’explication post-hoc de l’échec. Par exemple, après un accident de voiture, nous pourrions vouloir une explication de ce qui a provoqué l’accident. Le conducteur était-il distrait ? Une autre voiture lui a-t-elle fait faire une embardée ? Plutôt qu’un processus de raisonnement, nous demandons, plus ou moins, le stimulus critique qui a provoqué une réaction particulière en dehors du comportement normal.

Lorsque les gens pensent à l’intelligence artificielle, ils semblent généralement avoir à l’esprit le premier type d’explication. On s’attend à ce que le système ait fait une délibération et ait choisi un mode d’action en fonction du résultat attendu. Bien qu’il existe des cas où cela soit possible, nous assistons de plus en plus à une évolution vers des systèmes qui s’apparentent davantage au deuxième cas, c’est-à-dire qu’ils reçoivent des stimuli et ne font que réagir.

Il y a de très bonnes raisons à cela (notamment parce que le monde est compliqué), mais cela signifie qu’il est plus difficile de comprendre les raisons pour lesquelles une décision particulière a été prise, ou pourquoi nous nous sommes retrouvés avec un modèle plutôt qu’un autre. Avec cela à l’esprit, creusons ce que nous entendons par un modèle, et la métaphore de la boîte noire.

Boîtes et modèles

La métaphore de la boîte noire remonte aux premiers jours de la cybernétique et du béhaviorisme, et fait typiquement référence à un système pour lequel nous ne pouvons observer que les entrées et les sorties, mais pas le fonctionnement interne. En effet, c’est ainsi que B. F. Skinner a conceptualisé les esprits en général. Bien qu’il ait réussi à démontrer comment certains comportements appris pouvaient être expliqués par un signal de renforcement qui reliait certaines entrées à certaines sorties, il a ensuite fait la célèbre erreur de penser que cette théorie pouvait facilement expliquer tous les comportements humains, y compris le langage.

Pour un exemple plus simple de boîte noire, considérez une expérience de pensée de Skinner : on vous donne une boîte avec un ensemble d’entrées (interrupteurs et boutons) et un ensemble de sorties (lumières qui sont soit allumées soit éteintes). En manipulant les entrées, vous êtes en mesure d’observer les sorties correspondantes, mais vous ne pouvez pas regarder à l’intérieur pour voir comment la boîte fonctionne. Dans le cas le plus simple, comme un interrupteur de lumière dans une pièce, il est facile de déterminer avec une grande confiance que l’interrupteur contrôle le niveau de lumière. Pour un système suffisamment complexe, cependant, il peut être effectivement impossible de déterminer comment la boîte fonctionne en essayant simplement diverses combinaisons.

Maintenant, imaginez que vous êtes autorisé à ouvrir la boîte et à regarder à l’intérieur. On vous donne même un schéma de câblage complet, montrant quels sont tous les composants et comment ils sont connectés. De plus, aucun des composants n’est complexe en soi ; tout est construit à partir de composants simples, tels que des résistances et des condensateurs, dont le comportement est bien compris en soi. Maintenant, non seulement vous avez accès à la spécification complète de tous les composants du système, mais vous pouvez même faire des expériences pour voir comment chacun des différents composants répond à des entrées particulières.

Vous pourriez penser qu’avec toutes ces informations en main, vous seriez maintenant en mesure de donner une bonne explication du fonctionnement de la boîte. Après tout, chaque composant individuel est compris, et il n’y a pas d’information cachée. Malheureusement, la complexité résulte de l’interaction de nombreux composants simples. Pour un système suffisamment complexe, il est peu probable que vous puissiez prédire ce que sera la sortie de la boîte pour une entrée donnée, sans faire l’expérience pour le découvrir. La seule explication de la raison pour laquelle la boîte fait ce qu’elle fait est que tous les composants suivent les règles qui régissent leur comportement individuel, et que le comportement global émerge de leurs interactions.

Plus important encore, au-delà du comment du système, vous seriez probablement dans l’incapacité d’expliquer pourquoi chaque composant a été placé là où il est, même si vous connaissiez l’objectif global du système. Étant donné que la boîte a été conçue dans un but précis, nous supposons que chaque composant a été ajouté pour une raison. Cependant, dans le cas d’un système particulièrement intelligent, chaque composant peut finir par jouer plusieurs rôles, comme dans le cas de l’ADN. Bien que cela puisse conduire à un système très efficace, il est également très difficile de penser à résumer l’objectif de chaque composant. En d’autres termes, le comment du système est complètement transparent, mais le pourquoi est potentiellement insondable.

Ceci, comme il s’avère, est une métaphore parfaite pour l’apprentissage profond. En général, l’ensemble du système est ouvert à l’inspection. De plus, il est entièrement constitué de composants simples qui sont facilement compris de manière isolée. Cependant, même si nous connaissons l’objectif du système global, il n’y a pas nécessairement d’explication simple que nous pouvons offrir quant à son fonctionnement, si ce n’est le fait que chaque composant individuel fonctionne selon ses propres règles, en réponse à l’entrée. C’est en effet la véritable explication du fonctionnement du système, et elle est entièrement transparente. La question la plus difficile est bien sûr de savoir pourquoi chaque composant a joué le rôle qu’il a joué. Pour mieux comprendre cela, il sera utile de séparer l’idée d’un modèle de l’algorithme utilisé pour le former.

Modèles et algorithmes

Pour vraiment entrer dans les détails, nous devons être un peu plus précis sur ce dont nous parlons. Harris fait référence à « comment l’algorithme accomplit ce qu’il accomplit », mais il y a vraiment deux parties ici : un modèle – tel qu’un système d’apprentissage profond – et un algorithme d’apprentissage – que nous utilisons pour adapter le modèle aux données. Lorsque Harris fait référence à « l’algorithme », il parle vraisemblablement du modèle, et pas nécessairement de la façon dont il a été entraîné.

Qu’entendons-nous exactement par un modèle ? Bien que peut-être un peu vague, un modèle statistique capture essentiellement les hypothèses que nous faisons sur la façon dont les choses fonctionnent dans le monde, avec des détails à apprendre à partir des données. En particulier, un modèle spécifie quelles sont les entrées, quelles sont les sorties, et typiquement comment nous pensons que les entrées pourraient interagir les unes avec les autres pour générer la sortie.

Un exemple classique de modèle est celui des équations qui régissent la gravité newtonienne. Le modèle stipule que la sortie (la force de gravité entre deux objets) est déterminée par trois valeurs d’entrée : la masse du premier objet, la masse du second objet et la distance entre eux. Plus précisément, il indique que la gravité sera proportionnelle au produit des deux masses, divisé par la distance au carré. De manière critique, elle n’explique pas pourquoi ces facteurs devraient être ceux qui influencent la gravité ; elle tente simplement de fournir une explication parcimonieuse qui nous permet de prédire la gravité pour n’importe quelle situation.

Bien sûr, même si cela était complètement correct, pour pouvoir faire une prédiction, nous devons également connaître le facteur d’échelle correspondant, G. En principe, cependant, il devrait être possible d’apprendre cette valeur par l’observation. Si nous avons supposé le modèle correct (ou proche du correct) pour la façon dont les choses fonctionnent dans la réalité, nous avons de bonnes chances de pouvoir apprendre les détails pertinents à partir des données.

Dans le cas de la gravité bien sûr, Einstein a finalement montré que le modèle de Newton n’était qu’approximativement correct, et qu’il échoue dans des conditions extrêmes. Pour la plupart des circonstances, cependant, le modèle newtonien est suffisamment bon, ce qui explique pourquoi les gens ont pu apprendre la constante G= 6,674×10^(-11) N – (m/kg)², et l’utiliser pour faire des prédictions.

Le modèle d’Einstein est beaucoup plus complexe, avec plus de détails à apprendre par l’observation. Dans la plupart des circonstances, il donne approximativement la même prédiction que le modèle newtonien le ferait, mais il est plus précis dans des circonstances extrêmes, et a bien sûr été essentiel dans le développement de technologies telles que le GPS. Plus impressionnant encore, les prédictions secondaires de la relativité ont été stupéfiantes, prédisant avec succès, par exemple, l’existence des trous noirs avant même que nous puissions espérer tester leur existence. Et pourtant, nous savons que le modèle d’Einstein aussi, n’est pas complètement correct, car il ne parvient pas à s’accorder avec les modèles de la mécanique quantique dans des conditions encore plus extrêmes.

La gravitation, bien sûr, est déterministe (pour autant que nous le sachions). En revanche, dans l’apprentissage automatique et les statistiques, nous avons généralement affaire à des modèles qui impliquent une incertitude ou un caractère aléatoire. Par exemple, un modèle simple de la durée de votre vie consisterait à prédire la moyenne de la population du pays dans lequel vous vivez. Un meilleur modèle pourrait prendre en compte des facteurs pertinents, tels que votre état de santé actuel, vos gènes, la quantité d’exercice que vous faites, si vous fumez ou non des cigarettes, etc. Dans presque tous les cas, cependant, il y aura une certaine incertitude quant à la prédiction, car nous ne connaissons pas tous les facteurs pertinents. (Cela diffère bien sûr du véritable hasard apparent qui se produit au niveau subatomique, mais nous ne nous soucierons pas de cette différence ici).

En plus d’être un rebranding incroyablement réussi des réseaux neuronaux et de l’apprentissage automatique (lui-même arguant d’un rebranding plutôt réussi des statistiques), le terme d’apprentissage profond fait référence à un type particulier de modèle, celui dans lequel les sorties sont les résultats d’une série de nombreuses transformations simples appliquées aux entrées (un peu comme notre schéma de câblage du dessus). Bien que les modèles d’apprentissage profond soient certainement complexes, ils ne sont pas des boîtes noires. En fait, il serait plus exact de les qualifier de boîtes de verre, car nous pouvons littéralement regarder à l’intérieur et voir ce que fait chaque composant.

Le problème, bien sûr, est que ces systèmes sont également compliqués. Si je vous donne un ensemble simple de règles à suivre afin de faire une prédiction, tant qu’il n’y a pas trop de règles et que les règles elles-mêmes sont simples, vous pourriez assez facilement comprendre l’ensemble complet des mappings entrée-sortie dans votre esprit. Cela est également vrai, bien que dans une moindre mesure, avec une classe de modèles connus sous le nom de modèles linéaires, où l’effet de la modification d’une entrée peut être interprété sans connaître la valeur des autres entrées.

Les modèles d’apprentissage profond, en revanche, impliquent généralement des non-linéarités et des interactions entre les entrées, ce qui signifie que non seulement il n’y a pas de correspondance simple entre les entrées et les sorties, mais que l’effet de la modification d’une entrée peut dépendre de manière critique des valeurs des autres entrées. Cela rend très difficile de comprendre mentalement ce qui se passe, mais les détails sont néanmoins transparents et complètement ouverts à l’inspection.

Le calcul réel effectué par ces modèles pour faire une prédiction est généralement assez simple ; là où les choses deviennent difficiles, c’est dans l’apprentissage réel des paramètres du modèle à partir des données. Comme décrit ci-dessus, une fois que nous supposons une certaine forme pour un modèle (dans ce cas, un réseau neuronal flexible) ; nous devons ensuite essayer de trouver de bonnes valeurs pour les paramètres à partir des données.

Dans l’exemple de la gravité, une fois que nous avons supposé un modèle « suffisamment bon » (proportionnel à la masse et inversement proportionnel à la distance au carré), nous devons juste résoudre la valeur d’un paramètre (G), en ajustant le modèle aux observations. Avec les systèmes modernes d’apprentissage profond, en revanche, il peut facilement y avoir des millions de ces paramètres à apprendre.

En pratique, presque tous ces modèles d’apprentissage profond sont entraînés en utilisant une variante d’un algorithme appelé descente de gradient stochastique (SGD), qui prend des échantillons aléatoires des données d’entraînement, et ajuste progressivement tous les paramètres pour que la sortie prédite ressemble davantage à ce que nous voulons. La raison exacte pour laquelle il fonctionne aussi bien n’est pas encore bien comprise, mais la principale chose à garder à l’esprit est qu’il est, lui aussi, transparent.

Parce qu’il est généralement initialisé avec des valeurs aléatoires pour tous les paramètres, SGD peut conduire à des paramètres différents chaque fois que nous l’exécutons. L’algorithme lui-même, cependant, est déterministe, et si nous utilisions la même initialisation et les mêmes données, il produirait le même résultat. En d’autres termes, ni le modèle ni l’algorithme n’est une boîte noire.

Bien que ce soit quelque peu insatisfaisant, la réponse complète à la raison pour laquelle un système d’apprentissage automatique a fait quelque chose réside finalement dans la combinaison des hypothèses que nous avons faites dans la conception du modèle, les données sur lesquelles il a été formé, et diverses décisions prises sur la façon d’apprendre les paramètres, y compris le caractère aléatoire de l’initialisation.

Retour aux boîtes noires

Pourquoi tout cela est-il important ? Eh bien, il y a au moins deux façons dont le concept de boîtes noires est très pertinent pour l’apprentissage automatique.

Premièrement, il y a beaucoup d’algorithmes et de systèmes logiciels (et pas seulement ceux basés sur l’apprentissage automatique) qui sont des boîtes noires en ce qui concerne l’utilisateur. C’est peut-être le cas le plus fréquent dans les logiciels propriétaires, où l’utilisateur n’a pas accès aux rouages internes, et tout ce que nous pouvons voir, ce sont les entrées et les sorties. C’est le type de système dont ProPublica a rendu compte dans sa couverture des algorithmes de condamnation judiciaire (en particulier le système COMPAS de Northpointe). Dans ce cas, nous connaissons les entrées, et nous pouvons voir les scores de risque qui ont été attribués aux personnes en tant que sortie. Nous n’avons toutefois pas accès à l’algorithme utilisé par l’entreprise, ni aux données sur lesquelles il a été formé. Néanmoins, il est sûr de dire que quelqu’un a accès aux détails – vraisemblablement les employés de l’entreprise – et il est très probablement complètement transparent pour eux.

La deuxième façon dont la métaphore des boîtes noires est pertinente est en ce qui concerne les systèmes que nous tentons d’apprendre, comme la vision humaine. D’une certaine manière, le comportement humain est exceptionnellement transparent, dans la mesure où nous pouvons demander aux gens pourquoi ils ont fait quelque chose et obtenir des explications. Cependant, il y a de bonnes raisons de croire que nous ne connaissons pas toujours les véritables raisons des choses que nous faisons. Loin d’être transparents pour nous-mêmes, nous n’avons tout simplement pas un accès conscient à bon nombre des processus internes qui régissent notre comportement. Si l’on nous demande d’expliquer pourquoi nous avons fait quelque chose, nous pouvons être en mesure de fournir un récit qui traduit au moins la façon dont nous avons ressenti le processus décisionnel. Si on nous demande d’expliquer comment nous sommes capables de reconnaître des objets, en revanche, nous pouvons penser que nous pouvons fournir une sorte d’explication (quelque chose impliquant des bords et des couleurs), mais en réalité, ce processus fonctionne bien en dessous du niveau de conscience.

Bien qu’il existe des circonstances particulières dans lesquelles nous pouvons réellement inspecter le fonctionnement interne des systèmes humains ou d’autres mammifères, comme les expériences de neuroscience, en général, nous essayons d’utiliser l’apprentissage automatique pour imiter le comportement humain en utilisant uniquement les entrées et les sorties. En d’autres termes, du point de vue d’un système d’apprentissage automatique, l’humain est la boîte noire.

Conclusion

En conclusion, il est utile de réfléchir à ce que les gens veulent lorsqu’ils pensent à des systèmes qui ne sont pas des boîtes noires. Les gens imaginent généralement quelque chose comme le scénario dans lequel une voiture autonome est sortie de la route, et nous voulons savoir pourquoi. Dans l’imagination populaire, l’attente semble être que la voiture doit avoir évalué les résultats possibles, leur avoir assigné des probabilités, et avoir choisi celui qui avait la meilleure chance de maximiser un certain meilleur résultat, où le meilleur est déterminé selon une sorte de moralité qui a été programmée en elle.

En réalité, il est très peu probable que les choses se passent ainsi. Plutôt, si nous demandons à la voiture pourquoi elle a fait ce qu’elle a fait, la réponse sera qu’elle a appliqué un calcul transparent et déterministe en utilisant les valeurs de ses paramètres, étant donné son entrée actuelle, et cela a déterminé ses actions. Si nous demandons pourquoi elle avait ces paramètres particuliers, la réponse sera qu’ils sont le résultat du modèle qui a été choisi, des données sur lesquelles il a été entraîné, et des détails de l’algorithme d’apprentissage qui a été utilisé.

Cela semble effectivement frustrant et peu utile, et il est facile de voir pourquoi les gens atteignent la métaphore de la boîte noire. Cependant, considérez que nous n’avons pas réellement ce genre d’accès pour les systèmes que nous essayons d’imiter. Si nous demandons à un conducteur humain pourquoi il a fait une sortie de route, il sera probablement capable de répondre en langage et de donner une explication – qu’il était ivre, ou distrait, ou qu’il a dû faire une embardée, ou qu’il a été aveuglé par le temps – et pourtant, à part fournir une sorte de cohérence narrative, nous ne savons pas vraiment pourquoi il a fait cela, et lui non plus. Au moins, avec l’apprentissage automatique, nous pouvons recréer le même cadre et sonder l’état interne. C’est peut-être compliqué à comprendre, mais ce n’est pas une boîte noire.