NeurIPS: Comment conquérir la meilleure conférence ML

NeurIPS –– une conférence qui est actuellement considérée comme l'événement le plus important dans le monde de l'apprentissage automatique. Aujourd'hui, je vais vous parler de mon expérience de participation aux concours NeurIPS: comment rivaliser avec les meilleurs universitaires du monde, remporter un prix et publier un article.





Quelle est l'essence de la conférence?


NeurIPS soutient l'introduction de méthodes d'apprentissage automatique dans diverses disciplines scientifiques. Une dizaine de pistes sont lancées chaque année pour résoudre les problèmes pressants du monde académique. Selon les résultats du concours, les gagnants interviennent lors de la conférence avec des rapports, de nouveaux développements et des algorithmes. Surtout, je suis passionné par l'apprentissage renforcé (Reinforcement Learning ou RL), c'est pourquoi je participe à des concours RL dédiés à NeurIPS pour la deuxième année maintenant.


Pourquoi NeurIPS




NeurIPS se concentre principalement sur la science, pas sur l'argent. En participant à des concours, vous faites quelque chose de vraiment important, en traitant des problèmes urgents.

Deuxièmement, cette conférence est un événement mondial, des scientifiques de différents pays se réunissent en un seul endroit, avec chacun desquels vous pouvez parler.


De plus, toute la conférence est remplie des dernières réalisations scientifiques et des résultats de pointe, il est extrêmement important pour les personnes du domaine de la science des données de les connaître et de les surveiller.


Comment commencer?


Commencer à participer à de telles compétitions est assez simple. Si vous comprenez tellement DL que vous pouvez former ResNet –– cela suffit: inscrivez-vous et c'est parti. Il y a toujours un classement public sur lequel vous pouvez évaluer sobrement votre niveau par rapport aux autres participants. Et si quelque chose n'est pas clair - il y a toujours des canaux dans slack / discord / gitter / etc pour discuter de toutes les questions émergentes. Si le sujet est vraiment «le vôtre», alors rien ne vous empêchera de recevoir le résultat recherché –– dans tous les concours auxquels j'ai participé, toutes les approches et solutions ont été étudiées et mises en œuvre tout au long du concours.


Étude de cas NeurIPS: apprendre à courir




Problème


La démarche d'une personne est le résultat de l'interaction des muscles, des os, des organes de vision et de l'oreille interne. En cas de perturbation du système nerveux central, certains troubles moteurs peuvent survenir, notamment des troubles de la marche –– abasie.
Des chercheurs du Stanford Laboratory of Neuromuscular Biomechanics ont décidé de connecter l'apprentissage automatique au problème du traitement afin de pouvoir expérimenter et tester leurs théories sur un modèle virtuel du squelette, et non sur des personnes vivantes.


Énoncé du problème


Les participants ont reçu un squelette humain virtuel (dans le simulateur OpenSim ), qui avait une prothèse à la place d'une jambe. La tâche consistait à apprendre au squelette à se déplacer dans une certaine direction à une vitesse donnée. Pendant la simulation, la direction et la vitesse peuvent changer.




Pour obtenir un modèle de contrôle de squelette virtuel, il a été proposé d'utiliser l'apprentissage par renforcement. Le simulateur nous a donné un état du squelette S (un vecteur de ~ 400 nombres). Il était nécessaire de prédire quelle action A devait être effectuée (les forces d'activation des muscles des jambes sont un vecteur de 19 nombres). Au cours de la simulation, le squelette a reçu un prix R - comme une sorte de constante moins une pénalité pour avoir dévié d'une vitesse et d'une direction données.
À propos de la formation de renforcement

L'apprentissage par renforcement (RL) est un domaine qui traite de la théorie de la décision et de la recherche de politiques comportementales optimales.


Rappelez-vous comment ils enseignent chat levrette de nouveaux trucs. Répétez une action, donnez un délicieux pour effectuer un tour et ne donnez pas pour non-accomplissement. Le chien doit comprendre tout cela et trouver une stratégie comportementale («politique» ou «politique» en termes de RL), qui maximise le nombre de bonbons reçus.


Formellement, nous avons un agent (chien) qui est formé sur l'histoire des interactions avec l'environnement (personne). Dans le même temps, l'environnement, évaluant les actions de l'agent, lui fournit une récompense (délicieuse) - meilleur est le comportement de l'agent, meilleure est la récompense. En conséquence, la tâche de l'agent est de trouver une politique qui maximise bien la récompense pour tout le temps d'interaction avec l'environnement.


Développer davantage ce sujet, des solutions basées sur des règles - logiciel 1.0, lorsque toutes les règles ont été définies par le développeur, apprentissage supervisé - le même logiciel 2.0, lorsque le système apprend lui-même à l'aide des exemples disponibles et trouve des dépendances de données, l'apprentissage par renforcement est un peu plus loin lorsque le système lui-même apprend à rechercher, expérimenter et trouver les dépendances requises dans ses décisions. Plus nous allons loin, mieux nous essayons de répéter comment une personne apprend.


Caractéristiques des tâches


Le devoir ressemble à un représentant typique de l'apprentissage renforcé pour les tâches avec un espace d'action continue (RL pour l'espace d'action continue). Il diffère du RL ordinaire en ce qu'au lieu de choisir une action spécifique (en appuyant sur le bouton du joystick), cette action est nécessaire pour prédire avec précision (et il existe une infinité de possibilités).


L'approche de base de la solution ( Deep Deterministic Policy Gradient ) a été inventée en 2015, qui pendant longtemps selon les normes de DL, la région continue de développer activement des applications à la robotique et aux applications RL du monde réel. Il y a quelque chose à améliorer: des approches robustes (pour ne pas casser un vrai robot), l'efficacité des échantillons (pour ne pas collecter des données de vrais robots pendant des mois) et d'autres problèmes de RL (exploration vs compromis d'exploitation, etc.). Dans cette compétition, ils ne nous ont pas donné un vrai robot - seulement une simulation, mais le simulateur lui-même était 2000 fois plus lent que les homologues Open Source (sur lesquels tout le monde vérifie leurs algorithmes RL), et a donc porté le problème de l'efficacité des échantillons à un nouveau niveau.


Étapes de compétition


Le concours lui-même s'est déroulé en trois étapes, au cours desquelles la tâche et les conditions ont quelque peu changé.


  • Étape 1: le squelette a appris à marcher droit à une vitesse de 3 mètres par seconde. La tâche était considérée comme terminée si l'agent avait effectué 300 étapes.
  • Étape 2: la vitesse et la direction ont changé avec une fréquence régulière. La longueur de la distance est passée à 1000 pas.
  • Étape 3: la solution finale devait être emballée dans une image docker et envoyée pour vérification. Au total, 10 colis ont pu être réalisés.

La mesure de qualité principale a été considérée comme la récompense totale de la simulation, qui a montré à quel point le squelette adhérait à une direction et une vitesse données sur toute la distance.


Lors des 1ère et 2ème étapes, la progression de chaque participant a été affichée sur le classement. La solution finale devait être envoyée sous forme d'image docker. Il prévoyait des restrictions sur les heures de travail et les ressources.


Coolstory: classement public et RL

En raison de la disponibilité du classement, personne ne montre son meilleur modèle afin de donner «un peu plus que d'habitude» dans le tour final et surprendre ses rivaux.


Pourquoi les images Docker sont si importantes

L'année dernière, un petit incident s'est produit lors de l'évaluation des décisions du tout premier tour. À ce moment-là, le chèque est passé par l'interaction http avec la plate-forme, et un visage des conditions de test a été trouvé. On peut savoir dans quelles situations particulières l'agent a été évalué et le recycler uniquement dans ces conditions. Ce qui, bien sûr, n'a pas résolu le vrai problème. C'est pourquoi ils ont décidé de transférer le système de soumissions à docker-images et de le lancer sur les serveurs distants des organisateurs. Dbrain utilise le même système pour calculer le résultat des compétitions précisément pour les mêmes raisons.


Points clés


L'équipe




La première chose qui est importante pour le succès de toute l'entreprise est l'équipe. Peu importe à quel point vous êtes bon (et à quel point vos pattes sont puissantes) - la participation à l'équipe augmente considérablement les chances de succès. La raison en est simple - une variété d'opinions et d'approches, une nouvelle vérification des hypothèses, la possibilité de paralléliser le travail et de mener plus d'expériences. Tout cela est extrêmement important lors de la résolution de nouveaux problèmes auxquels vous devez faire face.

Idéalement, vos connaissances et compétences devraient être au même niveau et se compléter. Ainsi, par exemple, cette année, j'ai implanté notre équipe sur PyTorch, et j'ai eu quelques idées initiales sur la mise en œuvre d'un système de formation d'agent distribué.


Comment trouver une équipe? Tout d'abord, vous pouvez rejoindre les rangs des ods et y rechercher des personnes partageant les mêmes idées. Deuxièmement, pour les boursiers RL, il existe une salle de discussion séparée dans un télégramme - le club RL . Troisièmement, vous pouvez suivre un merveilleux cours de ShAD - Practical RL , après quoi vous obtiendrez sûrement quelques connaissances.


Cependant, il convient de rappeler la politique de «soumission - ou ne l'était pas». Si vous voulez vous unir, obtenez d'abord votre décision, soumettez, apparaissez dans le classement et montrez votre niveau. Comme le montre la pratique, ces équipes sont beaucoup plus équilibrées.


La motivation


Comme je l'ai déjà écrit, si le sujet est «le vôtre», alors rien ne vous arrêtera. Cela signifie que la région ne vous aime pas seulement, mais vous inspire - vous la brûlez, vous voulez en devenir la meilleure.
J'ai rencontré RL il y a 4 ans - lors du passage du Berkeley 188x - Intro à l'IA - et je n'arrête pas de m'interroger sur les progrès dans ce domaine.


Systématique


Troisièmement, mais tout aussi important - vous devez être capable de faire ce que vous avez promis, d'investir dans la compétition tous les jours et juste ... de le résoudre. Tous les jours. Aucun talent inné ne peut être comparé à la capacité de faire quelque chose, même un peu, mais tous les jours. C'est pour cela que la motivation est nécessaire. Pour réussir, je recommande de lire DeepWork et AMA ternaus .


Gestion du temps


Une autre compétence extrêmement importante est la capacité de répartir sa force et d’utiliser correctement le temps libre. Combiner travail à plein temps et participation à des compétitions n'est pas une tâche aisée. La chose la plus importante dans ces conditions est de ne pas brûler et de supporter toute la charge. Pour ce faire, vous devez gérer correctement votre temps, évaluer sobrement votre force et ne pas oublier de vous détendre à temps.


Surmenage


Au stade final de la compétition, une situation se présente généralement où littéralement en une semaine, vous devez faire non seulement beaucoup, mais TRÈS beaucoup. Pour le meilleur résultat, vous devez être en mesure de vous forcer à vous asseoir et à faire le dernier bond vers le prix convoité.


Coolstory: délai après délai

À cause de quoi, en général, vous pourriez avoir besoin de recycler au profit de la concurrence? La réponse est assez simple - transfert de date limite. Lors de telles compétitions, les organisateurs ne peuvent souvent pas tout prévoir, car le moyen le plus simple est de donner plus de temps aux participants. Cette année, le concours a été prolongé 3 fois: d'abord pour un mois, puis pour une semaine et au tout dernier moment (24 heures avant la date limite) - pour encore 2 jours. Et si au cours des deux premiers transferts, vous aviez juste besoin d'organiser correctement le temps supplémentaire, alors au cours des deux derniers jours, vous n'aviez qu'à labourer.


Théorie



Entre autres choses, n'oubliez pas la théorie - être conscient de ce qui se passe sur le terrain et être capable de noter ce qui est pertinent. Ainsi, par exemple, pour résoudre l'an dernier, notre équipe est partie des articles suivants:



Cette année, quelques autres y ont été ajoutés:



Lecture complémentaire

Je conseille également OpenAI une sélection d'articles sur l'apprentissage par renforcement et sa version pour mendeley . Et si vous êtes intéressé par le sujet de la formation de renforcement, rejoignez le club RL et les papiers RL .


Pratique




Connaître la théorie seule ne suffit pas - il est important de pouvoir mettre en pratique toutes ces approches et d'établir le bon système de validation pour évaluer les décisions. Par exemple, cette année, nous avons appris que notre agent gère mal certains cas régionaux seulement 2 jours avant la fin de la compétition. Pour cette raison, nous n'avons pas eu le temps de réparer complètement notre modèle et nous n'avons pas obtenu littéralement quelques points pour la deuxième place tant convoitée. Si nous trouvions cela même en une semaine - le résultat pourrait être meilleur.
Coolstory: épisode III

La récompense moyenne pour 10 épisodes de test a servi d'évaluation finale de la solution.



Le graphique montre les résultats des tests de notre agent: 9 épisodes sur 10, notre squelette s'est très bien passé (moyenne - 9955,66), mais un épisode .... L'épisode 3 ne lui a pas été donné (récompense 9870). C'est cette erreur qui a conduit à la chute de la vitesse finale à 9947 (-8 points).


Bonne chance


Et enfin - n'oubliez pas la chance banale. Ne pensez pas que c'est un point controversé. Au contraire, un peu de chance contribue grandement au travail constant sur soi: même si la probabilité de chance n'est que de 10%, une personne qui a tenté de participer au concours 100 fois réussira beaucoup plus que quelqu'un qui n'a essayé qu'une seule fois et a abandonné l'idée.


Aller-retour: décision de l'année dernière - troisième place




L'année dernière, notre équipe - Mikhail Pavlov et moi - a participé pour la première fois aux compétitions NeurIPS et la principale motivation était simplement de participer à la première compétition NeurIPS en apprentissage par renforcement. Ensuite, je viens de terminer le cours pratique de RL au SHAD et je voulais tester les compétences acquises. En conséquence, nous avons pris une honorable troisième place, perdant seulement contre nnaisene (Schmidhuber) et l'équipe universitaire de Chine. A l'époque, notre solution était «assez simple» et reposait sur le DDPG distribué avec bruit de paramètre ( publication et présentation sur ml . Trainings ).

La décision de cette année est la troisième place



Il y a eu quelques changements cette année. Premièrement, il n'y avait aucune envie de simplement participer à ce concours, je voulais le gagner. Deuxièmement, la composition de l' équipe a également changé: Alexey Grinchuk, Anton Pechenko et moi. Prendre et gagner - n'a pas fonctionné, mais nous avons de nouveau pris la 3e place.
Notre solution sera officiellement présentée à NeurIPS, et maintenant nous nous limiterons à un petit nombre de détails. Sur la base de la décision de l'année dernière et du succès de l'apprentissage de renforcement hors politique de cette année (articles ci-dessus), nous avons ajouté un certain nombre de nos propres développements, dont nous parlerons à NeurIPS, et avons obtenu le Critique d'ensemble quantique distribué, avec lequel nous avons pris la troisième place.


Toutes nos meilleures pratiques - un système d'apprentissage distribué, des algorithmes, etc. seront publiés et disponibles dans Catalyst.RL après NeurIPS.


Coolstory: grands garçons - gros canons

Notre équipe est allée avec confiance à la 1ère place tout au long de la compétition. Cependant, les gros joueurs avaient d'autres plans - 2 grands joueurs sont entrés en compétition 2 semaines avant la fin de la compétition: FireWork (Baidu) et nnaisense (Schmidhuber). Et si rien ne pouvait être fait avec Google chinois, alors avec l'équipe Schmidhuber pendant un bon moment, nous avons pu nous battre honnêtement pour la deuxième place, ne perdant qu'avec une marge minimale. Cela me semble assez bon pour les amoureux.


Pourquoi tout cela?


  • La communication. Les meilleurs chercheurs viennent à la conférence avec laquelle vous pouvez discuter en direct, qui ne donnera aucune correspondance par e-mail.
  • Publication Si la solution remporte le prix, l'équipe est invitée à la conférence (ou peut-être plus d'une) pour présenter sa décision et publier l'article.
  • Offre d'emploi et doctorat. La publication et un prix dans une telle conférence augmentent considérablement vos chances d'obtenir une position dans des entreprises de premier plan telles que OpenAI, DeepMind, Google, Facebook, Microsoft.
  • Valeur réelle. NeurIPS est réalisé pour résoudre les problèmes pressants du monde académique et réel. Vous pouvez être sûr que les résultats n'iront pas à la table, mais seront vraiment en demande et aideront à améliorer le monde.
  • Conduire Résoudre de tels concours ... juste intéressant. Dans un concours, vous pouvez trouver beaucoup de nouvelles idées, tester différentes approches - juste pour être le meilleur. Et soyons honnêtes, quand d'autre pouvez-vous conduire des squelettes, jouer à des jeux et tout cela avec un regard sérieux et pour le bien de la science?

Coolstory: visa et RL

Je déconseille fortement d'essayer d'expliquer à l'Américain de vous vérifier que vous allez à la conférence, car vous entraînez des squelettes virtuels à s'exécuter dans des simulations. Allez simplement à la conférence avec une conférence.


Résumé


Participer à NeurIPS est une expérience difficile à surestimer. N'ayez pas peur des gros titres - il vous suffit de vous ressaisir et de commencer à décider.


Et allez sur Catalyst.RL , alors quoi.

Source: https://habr.com/ru/post/fr430712/


All Articles