Problèmes concrets dans la sécurité de l'IA
9 août 2016
Intelligence Artificielle
Introduction et Contexte
Comme Bill l'a mentionné, je suis chercheur au sein de l'équipe Google Brain et je suis également conseiller pour l'Open Philanthropy Project, qui réfléchit aux impacts sociaux de l'IA. Par le passé, j'ai principalement travaillé sur les problèmes liés à l'application des réseaux de neurones profonds à la parole et à la vision, mais j'ai récemment commencé à m'intéresser de très près à la question de la sécurité et de la fiabilité des systèmes d'IA. Ces derniers mois, je me suis réuni avec un groupe de collaborateurs, certains de Google, d'autres de Stanford, Berkeley, OpenAI, et nous avons récemment publié cet article intitulé "Concrete Problems in AI Safety" (Problèmes concrets dans la sécurité de l'IA), qui tente de catégoriser et d'apporter une certaine précision à la discussion sur la sécurité de l'IA. C'est de cela que je vais parler ici.
Tendances et Risques d'Accidents
Mes collaborateurs et moi sur ce projet nous sommes finalement intéressés à cela en raison de notre expérience de travail avec les réseaux de neurones profonds, que nous avons trouvés, au cours des dernières années, être devenus très puissants et performants, mais qui peuvent aussi être très opaques et se comporter de manière très imprévisible. Nous avons tous eu la même réflexion : à mesure que ces systèmes continuent de devenir plus puissants et d'être appliqués dans des contextes plus critiques pour la sécurité, cela va devenir un domaine de plus en plus important. Nous définissons dans l'article le terme "accidents" comme ce qui nous inquiète, ce qui correspond à ce dont tout le monde a parlé aujourd'hui : un comportement involontaire et nuisible dans les systèmes d'apprentissage automatique. Mes co-auteurs et moi-même mentionnons dans l'article qu'il existe certaines tendances qui, selon nous, vont vraiment accroître l'importance des accidents, et elles ont été évoquées par certains intervenants précédents aujourd'hui. Tout d'abord, l'apprentissage par renforcement, qui permet un entrelacement croissant entre l'agent et son environnement, tous les progrès sur Atari et sur Go. Des agents et des environnements complexes, qui augmentent simplement la gamme de stratégies que les agents peuvent adopter et la manière dont les environnements peuvent être perturbés. L'autonomie croissante, qui peut exclure l'humain de la boucle. Et les systèmes de bout en bout, qui sont souvent composés de nombreux composants d'apprentissage profond qui communiquent entre eux, ce qui rend plus difficile pour un humain de comprendre ce qui se passe et d'intervenir dans le système de manière utile.
Catégorisation des Défaillances
Avec ces tendances, nous voulions vraiment adopter une approche prospective sur la manière de penser la sécurité des systèmes d'IA. Il y a eu des discussions publiques sur les approches prospectives, mais je pense qu'une grande partie d'entre elles s'est concentrée de manière peu utile sur ces scénarios très extrêmes comme l'AGI ou la superintelligence. Nous voulions adopter une approche prospective mais aussi concrète, empirique, sur laquelle on puisse travailler dès maintenant, et qui puisse se rapporter aux systèmes que nous traitons aujourd'hui. L'une des choses principales que nous faisons dans l'article est d'essayer de fournir une catégorisation des façons dont les accidents pourraient se produire. En fait, je pense qu'on pourrait avoir de nombreuses catégorisations, mais nous essayons simplement de fournir un cadre parmi d'autres pour réfléchir aux choses. Que se passe-t-il lorsqu'un système d'apprentissage automatique fait quelque chose que vous ne vouliez pas qu'il fasse ? Une façon de le décrire est que le concepteur avait à l'esprit une certaine notion informelle de l'objectif ou de la tâche à accomplir, et que le système réel a échoué de manière catastrophique. Tout au long de l'article, nous utilisons l'exemple d'un robot de nettoyage dont la tâche est de nettoyer une pièce. Mon objectif informel est qu'il nettoie la pièce de telle sorte que lorsque je regarde la pièce à la fin, je sois satisfait de ce qu'il a fait. Si le robot endommage des biens ou blesse quelqu'un, alors ce n'est pas ce que j'avais en tête dans mon objectif informel. Nous pouvons classer les points de défaillance. Il se peut que vous ayez formulé la mauvaise fonction d'objectif. Vous aviez une fonction d'objectif informelle à l'esprit, vous l'avez transformée en une fonction d'objectif formelle, et peu importe à quel point votre système était parfait ou omniscient pour apprendre et déduire des choses, c'est tout simplement la mauvaise fonction d'objectif et il fera toujours la mauvaise chose. Un deuxième cas est celui où la fonction d'objectif est coûteuse. Nous pourrions connaître la véritable fonction d'objectif — par exemple, nous pourrions toujours consulter des humains et leur demander de procéder à une évaluation détaillée pour savoir si chaque action entreprise par l'agent est correcte — mais ce n'est pas pratique de faire cela. En conséquence, nous finissons par n'utiliser cette fonction d'objectif qu'occasionnellement et pouvons finir par faire la mauvaise chose. La troisième catégorie est celle où vous avez la bonne fonction d'objectif, mais où quelque chose ne va pas pendant le processus d'apprentissage ou d'inférence. Il y a une quatrième catégorie dont je ne parle pas, mais que je considère comme très importante. C'est simplement un sujet différent de celui dont je parle, à savoir les problèmes non liés à l'apprentissage automatique qui peuvent survenir dans le cadre de systèmes d'IA ou d'apprentissage automatique plus vastes, les mises en œuvre logicielles, les problèmes de vérification, les problèmes de sécurité, ce genre de choses. Je vais passer en revue les trois types et comme il s'agit d'une présentation très brève, je vais probablement passer mes diapositives assez rapidement, mais je veux juste donner un aperçu de ce dont nous parlons.
Mauvaises Fonctions d'Objectif : Effets Secondaires
La majeure partie de cela est posée principalement, mais pas complètement, en termes d'agents d'apprentissage par renforcement car nous considérons cela comme un bon paradigme, mais nous imaginons que beaucoup de ces éléments pourraient s'appliquer plus largement. Sous la rubrique des mauvaises fonctions d'objectif, nous envisageons deux grandes manières d'obtenir facilement une mauvaise fonction d'objectif alors que vous aviez l'intention d'en formuler une bonne. L'une de ces manières est ce que nous appelons les effets secondaires, c'est-à-dire que des systèmes qui se concentrent étroitement sur un aspect d'un environnement qui pourrait être très vaste dans le monde réel peuvent finir par perturber par défaut d'autres parties de l'environnement. J'expliquerai cela un peu plus en détail plus tard, mais nous avons cet exemple récurrent du robot de nettoyage et l'idée est que nous incitons le robot de nettoyage à déplacer une boîte, et s'il y a un vase sur son chemin et que nous n'avons pas bien réfléchi au vase, il va simplement renverser le vase en déplaçant la boîte et nous ne le voulions probablement pas. Encore un mot sur les effets secondaires pour y réfléchir un peu plus formellement : nous pourrions avoir un environnement où nous essayons de faire quelque chose comme inciter à déplacer la boîte. Nous pourrions naïvement rédiger une fonction d'objectif qui maximise quelque chose qui ne se réfère qu'à cette variable dans l'environnement. En faisant cela, nous disons implicitement que nous ne nous soucions pas de cette autre variable de l'environnement, à savoir le vase. Ce que nous voulions vraiment, était une fonction d'objectif complexe que j'appelle F-aware, qui dit de déplacer la boîte tout en respectant certaines contraintes de bon sens concernant les autres parties de l'environnement qu'il m'est très difficile de formuler par écrit. Dans ce cas précis, alors que je peux simplement tenir compte du vase, que se passerait-il s'il y avait 10 000 de ces variables ? Et en particulier, que se passerait-il si les variables dont je ne me soucie pas présentaient plus de points communs entre les objectifs et les agents que les variables dont je me soucie ? Cela suggère que je peux peut-être adopter une approche intégrée à ce sujet. Voici rapidement quelques idées. L'une d'elles est ce que nous appelons l'apprentissage d'un régularisateur d'effets secondaires. Nous pouvons considérer cela comme un problème d'apprentissage par transfert où j'apprends dans un environnement et où une chose que j'apprends est comment atteindre l'objectif et l'autre chose que j'apprends est comment ne pas perturber l'environnement. Peut-être que l'information sur la façon de ne pas perturber l'environnement est plus transférable, pourrait être un réseau de neurones distinct ou un autre module pouvant être appliqué à d'autres environnements sans trop ou aucun changement, même lorsque je dois réapprendre entièrement l'objectif, tout comme nous le faisons dans l'apprentissage par renforcement basé sur un modèle lorsque nous réutilisons le modèle de transition d'état mais peut-être pas la fonction de valeur. Il existe des mesures issues de la théorie de l'information, un peu obscures mais commençant à être plus utilisées en apprentissage par renforcement (RL), qui mesurent des indicateurs intrinsèques de récompense et nous nous sommes demandé si ces mesures comme l'empowerment, qui mesure la capacité théorique de l'agent à contrôler pour changer son environnement, pourraient être pertinentes ici. Nous pourrions adopter une approche bayésienne où nous considérons la fonction de récompense comme quelque chose qui comporte une incertitude et nous tentons de l'apprendre. Nous pourrions utiliser des méthodes bayésiennes et alors cette question des effets secondaires pourrait être liée à la distribution a priori. Une autre chose est l'approche multi-agents, sur laquelle je pense qu'il y a eu pas mal de littérature et qui a été discutée ici. L'apprentissage par renforcement inverse coopératif a été mentionné une fois, où un agent et un humain travaillent ensemble pour optimiser les valeurs de l'humain. Des approches de conception de mécanismes où, au lieu de penser aux effets secondaires, nous pensons à d'autres agents qui se soucient de l'environnement et au fait de commettre des externalités négatives contre eux.
Détournement de Récompense (Reward Hacking)
Pour le détournement de récompense, voici quelques éléments, juste quelques façons d'obtenir la mauvaise fonction d'objectif ou une fonction d'objectif manipulable. Il existe ce qu'on appelle la loi de Goodhart, qui dit que lorsqu'une mesure devient un objectif, elle cesse d'être une bonne mesure. Par exemple, dans le cas de notre robot de nettoyage, si vous remarquez que la qualité du nettoyage qu'il effectue est proportionnelle à la quantité de détergent qu'il utilise et que cette corrélation est presque parfaite, vous pourriez imaginer le récompenser de cette façon et l'agent pourrait alors répondre en vidant tout son détergent sans rien nettoyer. Cela n'arrive que lorsque vous optimisez sur cet objectif. L'observation partielle est un problème majeur. Les objectifs et les récompenses dans le monde réel ne sont pas vécus directement, comme on le suppose dans le formalisme de l'apprentissage par renforcement. Il y a toutes sortes de phénomènes d'aliasing qui peuvent se produire. Encore une fois, l'exemple du robot qui ferme les yeux pour ne voir aucune poussière. Si sa fonction de récompense n'est pas construite avec soin, alors il pensera que son travail est terminé. Le wireheading a été discuté par Stuart Russell et certaines personnes du groupe ISDIA, où un signal de récompense est mis en œuvre dans l'environnement, de sorte que vous pouvez physiquement le manipuler et remplacer sa propre fonction de récompense. Il y a cet aspect d'auto-modification. Boucles de rétroaction où une partie de la fonction de récompense peut s'amplifier d'elle-même et éclipser toutes les autres parties de la fonction de récompense. Leon Bottou donne l'exemple de la taille de la police et du placement des publicités, où vous affichez les publicités qui ont le plus de succès dans des polices plus grandes parce que vous pensez que les gens veulent plus les voir. C'est une boucle de rétroaction auto-réalisatrice et vous vous retrouvez donc avec ces publicités géantes qui n'ont peut-être pas été populaires du tout. Des systèmes simplement compliqués. Tout système complexe, tout comme un logiciel, est de plus en plus susceptible de tomber en panne sous la pression de l'optimisation. Quelqu'un a montré qu'avec des speedruns assistés par outils, on peut exécuter du code arbitraire en appuyant simplement sur les boutons de commande dans Super Mario. Je ne pense pas qu'un agent de RL l'ait déjà fait, mais l'environnement est tel qu'il pourrait le faire. Quelques approches pour y remédier, ce qui a été souvent mentionné par Eric et quelques autres personnes : nous ne devrions pas sous-estimer la vérification, l'isolation de la surveillance, les tests unitaires de composants. Il y a cette idée de fonctions de récompense adverses où peut-être que la raison pour laquelle ce piratage se produit est que la fonction d'objectif est cette chose statique, alors que l'agent est cette chose active qui essaie de déjouer la fonction de récompense dans un certain sens. Existe-t-il un moyen d'utiliser des réseaux adverses génératifs ou d'autres techniques non supervisées pour essayer de rendre la fonction d'objectif plus résistante ? Faire dépendre votre récompense de votre modèle de l'environnement plutôt que de quelque chose qui vous est donné est une chose qui peut aider à gérer l'observation partielle. S'isoler algorithmiquement des parties de l'environnement qui sont liées à la récompense.
Fonctions d'Objectif Coûteuses
Fonctions d'objectif coûteuses : ici, nous n'avons qu'un seul problème : comment garantir un comportement sûr lorsque la véritable fonction d'objectif est trop coûteuse à évaluer fréquemment ? Un humain pourrait vous dire quelle est la bonne chose à faire, mais vous allez à l'encontre de l'objectif de l'automatisation si vous devez toujours demander à un humain. Un exemple est qu'un robot de nettoyage peut souvent trouver des possessions humaines. Il ne peut pas demander à chaque fois qu'il trouve quelque chose si cela appartient à un humain. Il pourrait finir par jeter le mauvais objet, il doit donc apprendre quand demander et quand il devrait savoir en fonction de ce qu'il demande. Je n'entrerai pas trop dans les détails, mais l'un des systèmes d'essai avec lesquels nous avons commencé à jouer et à faire des expériences est ce dispositif de RL semi-supervisé ou actif, qui repose sur l'idée qu'il existe une récompense dans l'environnement dont nous pouvons penser qu'elle provient peut-être d'une supervision humaine, où l'agent doit en fait solliciter activement l'objectif véritable et ne peut le faire que de temps en temps. Peut-il faire de son mieux pour apprendre à faire la bonne chose sur la base de ces informations limitées ? Une autre chose que nous pourrions étudier est de savoir si l'agent, au fil du temps, à mesure qu'il demande l'objectif véritable, commence à apprendre des indicateurs ? Disons qu'au lieu qu'un humain donne une évaluation détaillée, on donne à l'humain un bouton sur lequel il peut dire oui ou non à quelque chose et obtenir une évaluation beaucoup plus rapide. L'agent apprendra-t-il à développer des indicateurs apprenables qui soient fiables et qui soient finalement liés à l'objectif véritable ? Toutes ces variations sur l'apprentissage par renforcement où la supervision est affaiblie ou modifiée d'une manière ou d'une autre semblent avoir un certain potentiel.
Problèmes d'Apprentissage et Exploration Sécurisée
Bonne fonction d'objectif, problème d'apprentissage. C'est un cas où l'agent, s'il avait un temps infini et des croyances correctes, ferait la bonne chose, mais quelque chose ne va pas entre-temps. L'exploration sécurisée consiste à savoir comment éviter les mouvements exploratoires catastrophiques. Nous voulons que notre robot expérimente des stratégies de nettoyage, nous ne voulons pas qu'il mette sa serpillière mouillée dans une prise électrique. Nous ne voulons pas que nos hélicoptères s'écrasent. Décalage de distribution : comment détecter et répondre avec souplesse aux différences entre la distribution d'entraînement et la distribution de test ? L'exemple que je voulais donner est celui d'un robot entraîné dans une usine, il utilise un tas de produits chimiques agressifs, et ensuite il travaille dans un bureau, et cela n'a pas de sens. En général, ces sujets ont reçu beaucoup d'attention et ces sections de notre article sont donc plutôt des synthèses, mais avec également des indications sur la manière dont cela peut être appliqué aux nouvelles applications d'apprentissage profond. Il existe des travaux antérieurs substantiels dans ce domaine. Je pense qu'il y a beaucoup de choses sur l'adaptation de mesures de performance sensibles au risque à l'apprentissage profond, l'exploration simulée, en particulier avec l'avènement de l'apprentissage par renforcement basé sur un modèle dans les configurations de RL profond, et des configurations qui utilisent l'exploration bornée pour assurer l'ergodicité.
Décalage de Distribution et Robustesse
Les systèmes de ML peuvent échouer de manière silencieuse et imprévisible lorsque la distribution de test diffère de la distribution d'entraînement. C'est un Roomba qui a mangé les cheveux de quelqu'un. Avec les classificateurs, dans un certain sens, les choses ne peuvent pas être très graves, mais un classificateur peut faire quelque chose d'incroyablement offensant s'il n'est pas entraîné de la bonne manière et que vous lui donnez les mauvaises entrées. Les agents de RL peuvent agir sur des informations perceptuelles vraiment mauvaises. Nous pouvons ajouter des restrictions ad-hoc pour nous assurer de détecter cela, mais je pense qu'en fin de compte, nous avons besoin et devrions être capables d'avoir une solution d'apprentissage automatique car si vous êtes en dehors de la distribution d'entraînement, vous avez assez d'informations pour détecter que vos entrées sont différentes de ce qu'elles étaient auparavant. Il y a eu beaucoup de travaux sur ce sujet. Je vais les résumer très rapidement : les hypothèses de décalage de covariable qui font des suppositions sur la probabilité de la sortie étant donné que l'entrée reste la même et que seule l'entrée change, et l'inverse de cela. Une chose très intéressante est l'élargissement de la distribution d'entraînement et la compréhension de savoir si j'entraîne sur quelques types de données différents, quelle quantité est nécessaire pour généraliser ? Comment déterminer quand j'ai bien généralisé ? Aussi comment répondre chez les agents, ce qui est, je pense, un sujet très peu étudié. Il y a eu beaucoup d'études sur la façon de détecter le fait d'être hors distribution, comment y répondre dans les classificateurs, mais les agents peuvent faire énormément de choses. Si je vois un produit chimique que je n'ai jamais vu auparavant, alors en tant qu'humain, je peux expérimenter ce produit chimique dans un environnement contrôlé au lieu de faire autre chose, ou je peux essayer d'accéder à plus de données d'entraînement. Je pense qu'il y a tout un monde d'agents remédiant à leur propre incertitude et sachant ce qu'ils ne savent pas. C'est sur ces points que nous avons commencé à proposer des expériences, mais l'essentiel de beaucoup d'entre elles est de rechercher de vastes ensembles d'environnements simulés où nous pouvons avoir des configurations très larges où nous pouvons tester les agents de manière à ce qu'ils ne fassent pas de surapprentissage et qu'ils puissent réellement démontrer qu'ils traitent ces tâches. Tout comme les environnements simulés dans les jeux vidéo ont été très importants pour Go et Atari et l'apprentissage par renforcement en général, j'espère qu'ils pourront être très importants pour la sécurité.
Conclusion et Vision à Long Terme
En fait, quelques jours après la publication de l'article, des personnes chez OpenAI ont mis en œuvre quelques-unes des idées que nous avions dans OpenAI Gym, qui est l'un de leurs deux outils open source pour le RL. Enfin, comme il semble y avoir eu une tradition selon laquelle tout le monde mentionne les préoccupations à long terme, je veux donner mon point de vue : je pense que les préoccupations à long terme concernant l'AGI et la superintelligence peuvent être vues comme des versions extrêmes du risque d'accident. Pas des robots Terminator prenant le contrôle, mais les auteurs plus académiques comme Nick Bostrom qui disent que si vous fabriquez une machine qui fait des trombones pour vous, elle en fera peut-être tellement qu'elle prendra le contrôle du monde. C'est une version plus fantaisiste du risque d'accident. Je pense qu'il est trop tôt pour travailler directement sur ce sujet. Je ne sais pas à quoi ressembleraient de tels systèmes ni quoi en faire. Mais ce dont je suis fermement convaincu, c'est que si nous adoptons une approche fondée sur des principes et générale pour la sécurité des systèmes d'aujourd'hui, c'est la réponse correcte aux préoccupations concernant le futur lointain. Andrew Ng, qui était mon ancien patron, avait une citation : "S'inquiéter de la superintelligence aujourd'hui, c'est comme s'inquiéter de la surpopulation sur Mars." Mais j'aimerais proposer une petite modification à cela, même si je suis d'accord avec une grande partie, à savoir qu'il ne vaut peut-être pas la peine de s'inquiéter de la surpopulation sur Mars aujourd'hui, mais que nous pouvons et devrions étudier la surpopulation sur Terre. C'est un problème sérieux auquel nous pouvons réfléchir. Et si nous le faisons correctement, alors une grande partie de ce que nous apprenons pourra un jour s'appliquer à Mars si et quand nous irons sur Mars.