NeurIPS - eine Konferenz, die derzeit als die Top-Veranstaltung in der Welt des maschinellen Lernens gilt. Heute erzähle ich Ihnen von meinen Erfahrungen bei der Teilnahme an NeurIPS-Wettbewerben: Wie kann man sich mit den besten Akademikern der Welt messen, einen Preis gewinnen und einen Artikel veröffentlichen?

Was ist das Wesentliche der Konferenz?
NeurIPS unterstützt die Einführung von Methoden des maschinellen Lernens in verschiedenen wissenschaftlichen Disziplinen. Jährlich werden etwa 10 Titel veröffentlicht , um drängende Probleme der akademischen Welt zu lösen. Nach den Ergebnissen des Wettbewerbs sprechen die Gewinner auf der Konferenz mit Berichten, neuen Entwicklungen und Algorithmen. Vor allem beschäftige ich mich leidenschaftlich mit verstärktem Lernen (Reinforcement Learning oder RL). Deshalb nehme ich bereits seit zwei Jahren an RL-Wettbewerben teil, die NeurIPS gewidmet sind.
Warum NeurIPS?

NeurIPS konzentriert sich hauptsächlich auf die Wissenschaft, nicht auf Geld. Durch die Teilnahme an Wettbewerben tun Sie etwas wirklich Wichtiges und beschäftigen sich mit dringenden Problemen.
Zweitens ist diese Konferenz eine globale Veranstaltung, bei der sich Wissenschaftler aus verschiedenen Ländern an einem Ort versammeln, mit denen Sie jeweils sprechen können.
Darüber hinaus ist die gesamte Konferenz mit den neuesten wissenschaftlichen Erkenntnissen und den neuesten Ergebnissen gefüllt. Für Menschen aus dem Bereich der Datenwissenschaft ist es äußerst wichtig, diese zu kennen und zu überwachen.
Wie fange ich an?
Die Teilnahme an solchen Wettbewerben ist ganz einfach. Wenn Sie DL so gut verstehen, dass Sie ResNet trainieren können - das ist genug: Melden Sie sich an und gehen Sie. Es gibt immer eine öffentliche Rangliste, auf der Sie Ihr Niveau im Vergleich zu anderen Teilnehmern nüchtern beurteilen können. Und wenn etwas nicht klar ist - es gibt immer Kanäle in Slack / Discord / Gitter / etc, um alle aufkommenden Probleme zu diskutieren. Wenn das Thema wirklich „Ihnen“ gehört, hindert Sie nichts daran, das geschätzte Ergebnis zu erhalten - bei allen Wettbewerben, an denen ich teilgenommen habe, wurden alle Ansätze und Lösungen direkt im Verlauf des Wettbewerbs untersucht und umgesetzt.
NeurIPS-Fallstudie: Laufen lernen

Problem
Der Gang einer Person ist das Ergebnis des Zusammenspiels von Muskeln, Knochen, Sehorganen und dem Innenohr. Im Falle einer Störung des Zentralnervensystems können bestimmte motorische Störungen auftreten, einschließlich Gangstörungen - Abasie.
Forscher des Stanford Laboratory of Neuromuscular Biomechanics beschlossen, maschinelles Lernen mit dem Behandlungsproblem zu verbinden, um ihre Theorien an einem virtuellen Modell des Skeletts und nicht an lebenden Menschen experimentieren und testen zu können.
Erklärung des Problems
Die Teilnehmer erhielten ein virtuelles menschliches Skelett (im OpenSim- Simulator), das anstelle eines Beines eine Prothese hatte. Die Aufgabe bestand darin, dem Skelett beizubringen, sich mit einer bestimmten Geschwindigkeit in eine bestimmte Richtung zu bewegen. Während der Simulation können sich Richtung und Geschwindigkeit ändern.

Um ein virtuelles Skelettkontrollmodell zu erhalten, wurde vorgeschlagen, das Verstärkungslernen zu verwenden. Der Simulator gab uns einen Zustand des Skeletts S (ein Vektor von ~ 400 Zahlen). Es musste vorhergesagt werden, welche Aktion A ausgeführt werden muss (die Aktivierungskräfte der Beinmuskulatur sind ein Vektor von 19 Zahlen). Im Verlauf der Simulation erhielt das Skelett eine R-Auszeichnung - als eine Art Konstante abzüglich einer Strafe für die Abweichung von einer bestimmten Geschwindigkeit und Richtung.
Über VerstärkungstrainingReinforcement Learning (RL) ist ein Bereich, der sich mit Entscheidungstheorie und der Suche nach optimalen Verhaltensrichtlinien befasst.
Erinnern Sie sich, wie sie unterrichten Katze Hund neue Tricks. Wiederholen Sie eine Aktion, geben Sie einen Leckerbissen für die Ausführung eines Tricks und geben Sie nicht für die Nichterfüllung. Der Hund sollte dies alles verstehen und eine Verhaltensstrategie finden („Richtlinie“ oder „Richtlinie“ in Bezug auf RL), die die Anzahl der erhaltenen Süßigkeiten maximiert.
Formal haben wir einen Agenten (Hund), der in der Geschichte der Interaktionen mit der Umwelt (Person) geschult ist. Gleichzeitig bietet ihm die Umgebung, die die Aktionen des Agenten bewertet, eine Belohnung (lecker) - je besser sich der Agent verhält, desto höher ist die Belohnung. Dementsprechend besteht die Aufgabe des Agenten darin, eine Richtlinie zu finden, die die Belohnung für die gesamte Zeit der Interaktion mit der Umgebung gut maximiert.
Weiterentwicklung dieses Themas, regelbasierte Lösungen - Software 1.0, wenn alle Regeln vom Entwickler festgelegt wurden, überwachtes Lernen - genau Software 2.0, wenn das System anhand der verfügbaren Beispiele selbst lernt und Datenabhängigkeiten findet, ist das verstärkte Lernen ein Schritt weiter, wenn das System selbst lernt zu recherchieren, zu experimentieren und die erforderlichen Abhängigkeiten in seinen Entscheidungen zu finden. Je weiter wir gehen, desto besser versuchen wir zu wiederholen, wie eine Person lernt.
Aufgabenfunktionen
Die Aufgabe sieht aus wie ein typischer Vertreter des verstärkten Lernens für Aufgaben mit kontinuierlichem Aktionsraum (RL für kontinuierlichen Aktionsraum). Es unterscheidet sich von gewöhnlichem RL darin, dass anstelle einer bestimmten Aktion (Drücken der Joystick-Taste) diese Aktion zur genauen Vorhersage erforderlich ist (und es gibt unendlich viele Möglichkeiten).
Der grundlegende Lösungsansatz ( Deep Deterministic Policy Gradient ) wurde bereits 2015 erfunden. Nach den Standards von DL entwickelt sich die Region seit langem aktiv in Anwendungen für Robotik und reale RL-Anwendungen. Es gibt etwas zu verbessern: robuste Ansätze (um einen echten Roboter nicht zu beschädigen), Probeneffizienz (um monatelang keine Daten von echten Robotern zu sammeln) und andere RL-Probleme (Kompromiss zwischen Exploration und Ausbeutung usw.). In diesem Wettbewerb gaben sie uns keinen echten Roboter - nur eine Simulation, aber der Simulator selbst war 2000-mal langsamer als die Open Source-Gegenstücke (bei denen jeder seine RL-Algorithmen überprüft) und brachte daher das Problem der Probeneffizienz auf ein neues Niveau.
Wettbewerbsphasen
Der Wettbewerb selbst fand in drei Phasen statt, in denen sich Aufgabe und Bedingungen etwas änderten.
- Stufe 1: Das Skelett lernte, mit einer Geschwindigkeit von 3 Metern pro Sekunde geradeaus zu laufen. Die Aufgabe wurde als erledigt angesehen, wenn der Agent 300 Schritte durchlaufen hatte.
- Stufe 2: Geschwindigkeit und Richtung werden regelmäßig geändert. Die Länge der Entfernung wurde auf 1000 Schritte erhöht.
- Stufe 3: Die endgültige Lösung musste in ein Docker-Image verpackt und zur Überprüfung gesendet werden. Insgesamt konnten 10 Pakete hergestellt werden.
Die Hauptqualitätsmetrik wurde als Gesamtbelohnung für die Simulation angesehen, die zeigte, wie gut das Skelett über die gesamte Distanz an einer bestimmten Richtung und Geschwindigkeit festhielt.
Während der 1. und 2. Phase wurde der Fortschritt jedes Teilnehmers in der Rangliste angezeigt. Die endgültige Lösung musste als Docker-Image gesendet werden. Es sah Beschränkungen der Arbeitszeiten und Ressourcen vor.
Coolstory: öffentliche Rangliste und RLAufgrund der Verfügbarkeit der Rangliste zeigt niemand sein bestes Modell, um in der Endrunde „etwas mehr als sonst“ zu geben und Rivalen zu überraschen.
Warum Docker-Bilder so wichtig sind
Letztes Jahr ereignete sich ein kleiner Vorfall bei der Bewertung von Entscheidungen in der ersten Runde. Zu diesem Zeitpunkt durchlief die Überprüfung eine http-Interaktion mit der Plattform, und es wurde ein Gesicht der Testbedingungen gefunden. Man konnte herausfinden, in welchen besonderen Situationen der Agent bewertet wurde, und ihn nur unter diesen Bedingungen neu trainieren. Was natürlich das eigentliche Problem nicht löste. Aus diesem Grund haben sie beschlossen, das System der Einreichungen auf Docker-Images zu übertragen und auf den Remote-Servern der Organisatoren zu starten. Dbrain verwendet dasselbe System, um das Ergebnis von Wettbewerben aus denselben Gründen genau zu berechnen.
Wichtige Punkte
Das Team

Das erste, was für den Erfolg des gesamten Unternehmens wichtig ist, ist das Team. Egal wie gut Sie sind (und wie stark Ihre Pfoten sind) - die Teilnahme am Team erhöht die Erfolgschancen erheblich. Der Grund ist einfach: eine Vielzahl von Meinungen und Ansätzen, die Überprüfung von Hypothesen, die Fähigkeit, die Arbeit zu parallelisieren und mehr Experimente durchzuführen. All dies ist äußerst wichtig, wenn Sie neue Probleme lösen, mit denen Sie konfrontiert sind.
Idealerweise sollten Ihre Kenntnisse und Fähigkeiten auf dem gleichen Niveau sein und sich gegenseitig ergänzen. So habe ich beispielsweise dieses Jahr unser Team auf PyTorch eingestellt und erste Ideen zur Implementierung eines verteilten Agententrainingsystems erhalten.
Wie finde ich ein Team? Erstens können Sie sich den Reihen der Ods anschließen und dort nach Gleichgesinnten suchen. Zweitens gibt es für RL-Stipendiaten einen separaten Chatraum in einem Telegramm - den RL-Club . Drittens können Sie einen wunderbaren Kurs von ShAD - Practical RL belegen, nach dem Sie sicherlich ein paar Bekanntschaften machen werden.
Es lohnt sich jedoch, sich an die Politik der "Unterwerfung - oder war es nicht" zu erinnern. Wenn Sie sich vereinen möchten, treffen Sie zuerst Ihre Entscheidung, senden Sie sie ab, erscheinen Sie in der Rangliste und zeigen Sie Ihr Level. Wie die Praxis zeigt, sind solche Teams viel ausgeglichener.
Motivation
Wie ich bereits schrieb, wird Sie nichts aufhalten, wenn das Thema „Ihr“ ist. Das bedeutet, dass die Region Sie nicht nur mag, sondern inspiriert - Sie verbrennen es, Sie wollen der Beste darin werden.
Ich habe RL vor 4 Jahren kennengelernt - während der Passage des Berkeley 188x - Einführung in die KI - und kann immer noch nicht aufhören, mich über die Fortschritte in diesem Bereich zu wundern.
Systematisch
Drittens, aber genauso wichtig - Sie müssen in der Lage sein, das zu tun, was Sie versprochen haben, jeden Tag in den Wettbewerb zu investieren und ihn einfach zu lösen. Täglich. Kein angeborenes Talent kann mit der Fähigkeit verglichen werden, etwas zu tun, auch nicht ein bisschen, aber jeden Tag. Dafür ist Motivation gefragt. Um erfolgreich zu sein, empfehle ich, DeepWork und AMA ternaus zu lesen .
Zeitmanagement
Eine weitere äußerst wichtige Fähigkeit ist die Fähigkeit, die eigene Kraft zu verteilen und die Freizeit richtig zu nutzen. Die Kombination von Vollzeitarbeit und Teilnahme an Wettbewerben ist keine triviale Aufgabe. Das Wichtigste unter diesen Bedingungen ist, nicht auszubrennen und der gesamten Last standzuhalten. Dazu müssen Sie Ihre Zeit richtig verwalten, Ihre Kraft nüchtern einschätzen und nicht vergessen, sich rechtzeitig zu entspannen.
Überarbeitung
In der letzten Phase des Wettbewerbs tritt normalerweise eine Situation auf, in der Sie buchstäblich in einer Woche nicht nur viel, sondern SEHR viel tun müssen. Um das beste Ergebnis zu erzielen, müssen Sie sich zwingen können, sich zu setzen und den letzten Schub zum begehrten Preis zu machen.
Coolstory: Frist für FristAus welchen Gründen kann es im Allgemeinen erforderlich sein, zum Nutzen des Wettbewerbs zu recyceln? Die Antwort ist ganz einfach - Fristübertragung. Bei solchen Wettbewerben können die Organisatoren oft nicht alles vorhersagen, weshalb es am einfachsten ist, den Teilnehmern mehr Zeit zu geben. In diesem Jahr wurde der Wettbewerb dreimal verlängert: zuerst um einen Monat, dann um eine Woche und im allerletzten Moment (24 Stunden vor Ablauf der Frist) - um weitere zwei Tage. Und wenn Sie während der ersten beiden Transfers nur die Verlängerung richtig organisieren mussten, mussten Sie in den letzten zwei Tagen nur pflügen.
Theorie

Vergessen Sie unter anderem nicht die Theorie - sich bewusst zu sein, was auf dem Gebiet passiert, und die relevanten zu notieren. Um beispielsweise im letzten Jahr eine Lösung zu finden, hat sich unser Team von den folgenden Artikeln verabschiedet:
In diesem Jahr wurden einige weitere hinzugefügt:
Übe

Die Theorie allein zu kennen, reicht nicht aus - es ist wichtig, all diese Ansätze in die Praxis umsetzen und das richtige Validierungssystem für die Bewertung von Entscheidungen etablieren zu können. Zum Beispiel haben wir in diesem Jahr erfahren, dass unser Agent nur zwei Tage vor dem Ende des Wettbewerbs mit einigen regionalen Fällen schlecht zurechtkommt. Aus diesem Grund hatten wir keine Zeit, unser Modell vollständig zu reparieren, und konnten nicht buchstäblich ein paar Punkte auf den begehrten zweiten Platz bringen. Wenn wir dies sogar in einer Woche finden würden, könnte das Ergebnis besser sein.
Coolstory: Folge IIIDie durchschnittliche Auszeichnung für 10 Testepisoden diente als endgültige Bewertung der Lösung.

Die Grafik zeigt die Ergebnisse des Testens unseres Agenten: 9 von 10 Episoden, unser Skelett lief gut (Durchschnitt - 9955,66), aber eine Episode ... Episode 3 wurde ihm nicht gegeben (Belohnung 9870). Es war dieser Fehler, der zum Abfall der Endgeschwindigkeit auf 9947 (-8 Punkte) führte.
Viel Glück
Und zum Schluss - vergessen Sie nicht das banale Glück. Denken Sie nicht, dass dies ein kontroverser Punkt ist. Im Gegenteil, ein wenig Glück trägt wesentlich zur ständigen Arbeit an sich selbst bei: Selbst wenn die Wahrscheinlichkeit des Glücks nur 10% beträgt, wird eine Person, die 100 Mal versucht hat, am Wettbewerb teilzunehmen, viel mehr Erfolg haben als jemand, der nur 1 Mal versucht hat und die Idee aufgegeben hat.
Rundreise: letztjährige Entscheidung - dritter Platz

Letztes Jahr hat unser Team - Mikhail Pavlov und ich - zum ersten Mal an den NeurIPS-Wettbewerben teilgenommen. Die Hauptmotivation bestand darin, einfach am ersten NeurIPS-Wettbewerb zum Thema „Lernen zur Stärkung“ teilzunehmen. Dann habe ich gerade den
praktischen RL- Kurs im SHAD beendet und wollte die erworbenen Fähigkeiten testen. Infolgedessen haben wir einen ehrenvollen dritten Platz belegt und nur gegen Nnaisene (Schmidhuber) und das Universitäts-Team aus China verloren. Zu dieser Zeit war unsere
Lösung „ziemlich einfach“ und basierte auf verteiltem DDPG mit Parameterrauschen (
Veröffentlichung und
Präsentation auf ml .
Trainings ).
Die diesjährige Entscheidung ist der dritte Platz

In diesem Jahr gab es einige Änderungen. Erstens gab es keinen Wunsch, nur an diesem Wettbewerb teilzunehmen, ich wollte ihn gewinnen. Zweitens hat sich auch die Zusammensetzung des Teams geändert: Alexey Grinchuk, Anton Pechenko und ich. Nehmen und gewinnen - hat nicht funktioniert, aber wir haben wieder den 3. Platz belegt.
Unsere Lösung wird offiziell auf der NeurIPS vorgestellt, und jetzt beschränken wir uns auf eine kleine Anzahl von Details. Basierend auf der Entscheidung des letzten Jahres und dem Erfolg des Off-Policy-Enforcement-Lernens dieses Jahres (Artikel oben) haben wir eine Reihe unserer eigenen Entwicklungen hinzugefügt, über die wir bei NeurIPS sprechen werden, und den Distributed Quantile Ensemble Critic erhalten, mit dem wir den dritten Platz belegten.
Alle unsere Best Practices - ein verteiltes Lernsystem, Algorithmen usw. - werden nach NeurIPS in Catalyst.RL veröffentlicht und verfügbar sein.
Coolstory: große Jungs - große WaffenUnser Team belegte während des gesamten Wettbewerbs zuversichtlich den 1. Platz. Die großen Jungs hatten jedoch andere Pläne - 2 große Spieler nahmen 2 Wochen vor Ende des Wettbewerbs am Wettbewerb teil: FireWork (Baidu) und nnaisense (Schmidhuber). Und wenn mit dem chinesischen Google nichts getan werden konnte, dann konnten wir mit dem Schmidhuber-Team eine ganze Weile ehrlich um den zweiten Platz kämpfen und nur mit einem minimalen Vorsprung verlieren. Es scheint mir ziemlich gut für Liebhaber.
Warum ist das alles?
- Kommunikation. Zu der Konferenz kommen Spitzenforscher, mit denen Sie live chatten können und die keine E-Mail-Korrespondenz führen.
- Veröffentlichung Wenn die Lösung den Preis erhält, wird das Team zur Konferenz (oder möglicherweise zu mehreren) eingeladen, um seine Entscheidung zu präsentieren und den Artikel zu veröffentlichen.
- Stellenangebot und Promotion. Die Veröffentlichung und ein Preis in einer solchen Konferenz erhöhen Ihre Chancen auf eine Position in führenden Unternehmen wie OpenAI, DeepMind, Google, Facebook und Microsoft erheblich.
- Wert der realen Welt. NeurIPS wird durchgeführt, um drängende Probleme der akademischen und realen Welt zu lösen. Sie können sicher sein, dass die Ergebnisse nicht auf den Tisch kommen, sondern wirklich gefragt sind und zur Verbesserung der Welt beitragen.
- Fahren Solche Wettbewerbe zu lösen ... einfach interessant. In einem Wettbewerb können Sie viele neue Ideen einbringen, verschiedene Ansätze testen - nur um die Besten zu sein. Und seien wir ehrlich, wann sonst können Sie Skelette fahren, Spiele spielen und das alles mit einem ernsthaften Blick und der Wissenschaft zuliebe?
Coolstory: Visum und RLIch empfehle dringend, dem Amerikaner nicht zu erklären, dass Sie zur Konferenz gehen, während Sie virtuelle Skelette für die Ausführung in Simulationen trainieren. Gehen Sie einfach mit einem Vortrag zur Konferenz.
Zusammenfassung
Die Teilnahme an NeurIPS ist eine Erfahrung, die schwer zu überschätzen ist. Haben Sie keine Angst vor hochkarätigen Schlagzeilen - Sie müssen sich nur zusammenreißen und sich entscheiden.
Und gehen Sie zu Catalyst.RL , was dann?