ABC der KI: „Maschinelles Lernen. „Ein cooler Datenwissenschaftler wird bezahlt wie der CEO eines mittelständischen Unternehmens“

Fast ein Jahr ist seit dem Moment vergangen, als ein ungewöhnliches Thema – ein innovativer Workshop – am FIVT begann. Sein Kern ist die Gründung von IT-Startups durch studentische Teams unter der Anleitung erfahrener Mentoren. Es ist gut gelaufen: Dank des Kurses hat jemand einen Teil des Sommers in Cream Valley verbracht, jemand hat einen Zuschuss in Höhe von 800.000 Rubel für die Entwicklung des Projekts erhalten und ABBYY ist bereit, das Projekt vollständig von jemandem aufzukaufen. Und das sind noch nicht alle Ergebnisse des Workshops!

Zu Beginn des Jahres 2011 wurden die Studierenden des dritten Studienjahres des FIVT in der Aula versammelt und informiert: innerhalb nächstes Jahr Sie müssen Ihr eigenes Startup gründen. Die Studenten nahmen diese Idee zweideutig auf: Es war überhaupt nicht klar, wie man es umsetzen sollte, und die Verantwortung war ungewöhnlich – schließlich galt es, ein Technologieunternehmen zu gründen und nicht nur ein weiteres Bildungsprojekt. Hier ist, was der Gewinner der MIPT-Studentenolympiade in Physik, Student der Yandeska-Abteilung, Viktor Kantor, darüber denkt:

Als ich mich bei der Zulassung für FIVT entschieden habe, hoffte ich, dass wir etwas Ähnliches haben würden. Deshalb bin ich froh, dass meine Hoffnungen nicht umsonst waren. Im Laufe des Jahres hatte man das Gefühl, dass sich der Kurs noch im Aufbau befindet, dass es viel Neues gibt und dass viele Themen nicht nur für die Studierenden, sondern auch für die Organisatoren kontrovers diskutiert wurden, aber im Allgemeinen denke ich, dass die Tendenzen positiv sind. Mir hat dieser Kurs gefallen.

Um die Arbeit der Studierenden zu erleichtern, wurden verschiedene Kuratoren eingeladen, ihre Ideen für den Aufbau innovativer Unternehmen vorzustellen. Darunter waren völlig unterschiedliche Menschen: von Studenten und Doktoranden des MIPT bis hin zum Innovationsberater von Ernst&Young Yuri Pavlovich Ammosov (er war der Leiter des gesamten Kurses) und Mikhail Batin, der sich mit regenerativer Medizin und Fragen der Lebensverlängerung beschäftigt. Daraufhin wählten die Physik- und Technikstudenten die Ideen aus, die für sie am interessantesten waren, Kuratoren schlossen sich den Teams an und die harte, aber spannende Arbeit begann.

In fast einem Jahr, das seitdem vergangen ist, hatten die Jungs mit vielen Problemen zu kämpfen, von denen einige gelöst wurden. Jetzt können wir ihre Ergebnisse auswerten – trotz der Schwierigkeiten haben die Jungs es geschafft. MIPT-Studenten (neben der Fakultät für Philosophie haben sich auch einige Studierende der Fakultät für Philologie und anderer Fakultäten dem Prozess angeschlossen) konnten mehrere recht interessante und realisierbare Projekte vorbereiten:

Askeroid (ehemals Ask Droid) – Suche nach Smartphones ( Anastasia Uryasheva)

Eine Android-Anwendung, mit der Sie bequem in einer Vielzahl von Suchmaschinen suchen können. Einige Experten zeigten Interesse an der Entwicklung und so verbrachte Anastasia den gesamten vergangenen Sommer in einem der berühmtesten Inkubatoren im Silicon Valley – Plug&Play. Erlernen der Grundlagen des Technologieunternehmertums und Gespräche mit internationalen Venture-Experten.

1minute.ru – eine Minute für immer (Lev Grunin)

Dieses Projekt bietet jedem die Möglichkeit, einfach, schnell und völlig kostenlos Wohltätigkeitsarbeit zu leisten. Das Modell ist einfach: Werbetreibende bieten eine Reihe von Aktivitäten auf der Website an, Benutzer nehmen freiwillig daran teil und alle Werbeeinnahmen werden an eine gemeinnützige Stiftung überwiesen. Innerhalb einer Woche nach seinem Start verzeichnete das Projekt mehr als 6.500 Benutzer und wird dabei nicht aufhören. Dadurch werden dank Lev und seinem Team 600 Kinder aus Waisenhäusern versorgt Neujahr geschätzte Geschenke vom Weihnachtsmann. Haben Sie schon einmal eine Minute für eine gute Tat aufgewendet?!

Embedded Desktop – ein Computer in Ihrem Telefon (Alexey Vukolov)

Eine Anwendung, mit der Sie die Fähigkeiten eines Computers und die Mobilität eines Telefons in einem Paket vereinen können – ein äußerst nützliches Produkt für vielbeschäftigte Menschen, die häufig auf Geschäftsreisen sind. Es reicht aus, es auf einem Smartphone zu installieren, und der Benutzer kann seinen eigenen Computer in jedem Hotel, Büro und tatsächlich überall dort „bekommen“, wo er einen Monitor (ein Fernseher eignet sich auch), eine Tastatur usw. findet Maus. Das Projekt erhielt einen Zuschuss für die Entwicklung der Idee und wurde auf der Technovation Cup-Ausstellung vorgestellt. Mit dem erhaltenen Geld kauft das Team bereits aktiv Ausrüstung. Der amerikanische Prozessorhersteller MIPS ist an der Entwicklung äußerst interessiert.

Smart Tagger – semantische Suche in Dokumenten (Victor Kantor)

Was sollten Sie tun, wenn Sie sich daran erinnern, dass sich irgendwo in Ihrem Briefkasten ein sehr wichtiger Brief befand, in dem es um die neueste Folge von Big Bang Theory ging, Sie sich aber an keine Schlüsselwörter aus dem Text erinnern? Yandex und die Google-Suche sind machtlos. Die Entwicklung von Smart Tagger wird Abhilfe schaffen – ein „intelligentes“ Programm, das semantische Suche verwendet, liefert Ihnen alle Texte, deren Bedeutung mit der beliebten TV-Serie verknüpft ist. Das Projekt gewann ein Stipendium beim U.M.N.I.K.-Wettbewerb. insgesamt 400.000 Rubel!

MathOcr – Formelerkennung (Viktor Prun)

ABBYY schlug eine interessante Aufgabe zur Umsetzung vor – ein Programm zu erstellen, das mathematische Formeln beliebiger Komplexität erkennt. FIVT-Studierende haben in Zusammenarbeit mit interessierten Studierenden die Aufgabe gelöst – das Modul erkennt tatsächlich gescannte Formeln aus Lehrbüchern der Mathematik oder Physik. Ergebnis: ABBYY ist bereit, dieses Produkt für viel Geld zu kaufen.

Im Rahmen des gemeinsamen Projekts „ABC of AI“ mit MIPT haben wir bereits über die sogenannten Ones geschrieben, die es ermöglichen, Programme nach den Prinzipien und Gesetzen der darwinistischen Evolution zu „züchten“. Allerdings ist dieser Ansatz zur künstlichen Intelligenz vorerst sicherlich ein „Gast aus der Zukunft“. Doch wie entstehen heute künstliche Intelligenzsysteme? Wie werden sie ausgebildet? Victor Kantor, Dozent am Department of Algorithms and Programming Technologies am MIPT und Leiter der Gruppe zur Analyse des Benutzerverhaltens bei Yandex Data Factory, hat uns dabei geholfen, dies herauszufinden.

Laut einem aktuellen Bericht des Forschungsunternehmens Gartner, das seinen „Technologiereifezyklus“ regelmäßig aktualisiert, steht maschinelles Lernen derzeit in der gesamten IT auf dem Höhepunkt der Erwartungen. Dies ist nicht verwunderlich: Maschinelles Lernen ist in den letzten Jahren aus dem Interessenbereich eines engen Kreises von Mathematikern und Spezialisten für Algorithmentheorie herausgerückt und ist zunächst in den Wortschatz von IT-Geschäftsleuten und dann in die Welt eingedrungen der einfachen Leute. Nun weiß jeder, der die Prisma-App verwendet, mit Shazam nach Songs gesucht oder über DeepDream übertragene Bilder gesehen hat, dass es so etwas wie neuronale Netze mit ihrer besonderen „Magie“ gibt.

Es ist jedoch eine Sache, Technologie zu nutzen, und eine andere, zu verstehen, wie sie funktioniert. Allgemeine Worte wie „ein Computer kann lernen, wenn man ihm einen Hinweis gibt“ oder „ein neuronales Netzwerk besteht aus digitalen Neuronen und ist wie das menschliche Gehirn aufgebaut“ mögen jemandem helfen, aber häufiger verwirren sie die Situation nur. Wer ernsthaft Mathematik studieren will, braucht keine populären Texte: Für ihn gibt es Lehrbücher und hervorragende Online-Kurse. Wir versuchen, einen Mittelweg einzuschlagen: Erklären Sie, wie Lernen bei einer sehr einfachen Aufgabe tatsächlich abläuft, und zeigen Sie dann, wie derselbe Ansatz zur Lösung wirklich interessanter Probleme angewendet werden kann.

Wie Maschinen lernen

Um genau zu verstehen, wie maschinelles Lernen abläuft, definieren wir zunächst die Konzepte. Wie Arthur Samuel, einer der Pioniere auf diesem Gebiet, definiert, bezieht sich maschinelles Lernen auf Methoden, die „Computern das Lernen ermöglichen, ohne sie direkt zu programmieren“. Es gibt zwei große Klassen maschineller Lernmethoden: überwachtes Lernen und unüberwachtes Lernen. Die erste wird verwendet, wenn wir beispielsweise einem Computer beibringen müssen, nach Fotos mit Bildern von Katzen zu suchen, die zweite, wenn wir die Maschine beispielsweise benötigen, um Nachrichten selbstständig in Geschichten zu gruppieren, wie es bei Diensten der Fall ist wie Yandex.News oder Google News. Das heißt, im ersten Fall haben wir es mit einer Aufgabe zu tun, die das Vorhandensein einer richtigen Antwort impliziert (die Katze auf dem Foto ist entweder da oder nicht), im zweiten Fall gibt es keine einzige richtige Antwort, aber eine verschiedene Wege das Problem lösen. Wir werden uns speziell auf die erste Klasse von Problemen konzentrieren, die am interessantesten sind.

Wir müssen dem Computer also beibringen, einige Vorhersagen zu treffen. Darüber hinaus ist es wünschenswert, so genau wie möglich zu sein. Es gibt zwei Arten von Vorhersagen: Entweder Sie müssen zwischen mehreren Antwortoptionen wählen (ob eine Katze auf dem Bild ist oder nicht, ist eine von zwei Optionen, die Fähigkeit, Buchstaben in Bildern zu erkennen, ist eine Option). aus mehreren Dutzend usw.) oder eine numerische Vorhersage treffen. Sagen Sie beispielsweise das Gewicht einer Person anhand ihrer Größe, ihres Alters, ihrer Schuhgröße usw. vorher. Diese beiden Arten von Problemen sehen nur unterschiedlich aus, tatsächlich werden sie jedoch nahezu identisch gelöst. Versuchen wir genau zu verstehen, wie.

Um ein Vorhersagesystem zu erstellen, müssen wir zunächst eine sogenannte Trainingsstichprobe sammeln, also Daten über das Gewicht der Menschen in der Bevölkerung. Die zweite besteht darin, sich für eine Reihe von Zeichen zu entscheiden, anhand derer wir Rückschlüsse auf das Gewicht ziehen können. Es ist klar, dass eines der „stärksten“ Zeichen dieser Art die Körpergröße einer Person sein wird, daher reicht es als erste Näherung aus, nur diese zu nehmen. Wenn das Gewicht linear von der Körpergröße abhängt, ist unsere Vorhersage sehr einfach: Das Gewicht einer Person entspricht ihrer Körpergröße multipliziert mit einem Koeffizienten plus einem konstanten Wert, der durch die einfachste Formel y=kx+b geschrieben wird. Alles, was wir tun müssen, um einer Maschine beizubringen, das Gewicht einer Person vorherzusagen, ist, irgendwie die richtigen Werte für k und b zu finden.

Das Schöne am maschinellen Lernen ist, dass sich an unserem Ansatz im Wesentlichen nichts ändert, auch wenn die Beziehung, die wir untersuchen, sehr komplex ist. Wir werden es immer noch mit der gleichen Regression zu tun haben.

Nehmen wir an, dass das Gewicht einer Person von ihrer Körpergröße nicht linear, sondern im dritten Grad beeinflusst wird (was allgemein zu erwarten ist, da das Gewicht vom Körpervolumen abhängt). Um dieser Abhängigkeit Rechnung zu tragen, führen wir einfach einen weiteren Term in unsere Gleichung ein, nämlich die dritte Potenz des Wachstums mit einem eigenen Koeffizienten, und erhalten so y=k 1 x+k 2 x 3 +b. Um die Maschine zu trainieren, müssen wir nun nicht zwei, sondern drei Größen finden (k 1, k 2 und b). Nehmen wir an, wir möchten in unserer Vorhersage auch die Schuhgröße einer Person, ihr Alter, die Zeit, die sie vor dem Fernseher verbracht hat, und die Entfernung von ihrer Wohnung zum nächsten Fast-Food-Laden berücksichtigen. Kein Problem: Wir fügen diese Merkmale einfach als separate Terme in dieselbe Gleichung ein.

Das Wichtigste ist, eine universelle Möglichkeit zu schaffen, die erforderlichen Koeffizienten (k 1, k 2, ... k n) zu finden. Wenn es existiert, ist es für uns nahezu gleichgültig, welche Merkmale wir für die Vorhersage verwenden, da die Maschine selbst lernen wird, wichtigen Merkmalen großes Gewicht und unwichtigen Merkmalen geringes Gewicht zu geben. Glücklicherweise wurde eine solche Methode bereits erfunden und fast jedes maschinelle Lernen funktioniert erfolgreich damit: von den einfachsten linearen Modellen bis hin zu Gesichtserkennungssystemen und Sprachanalysatoren. Diese Methode wird als Gradientenabstieg bezeichnet. Aber bevor wir erklären, wie es funktioniert, müssen wir einen kleinen Exkurs machen und über neuronale Netze sprechen.

Neuronale Netze

Im Jahr 2016 traten neuronale Netze so stark in die Informationsagenda ein, dass sie fast mit maschinellem Lernen und fortgeschrittener IT im Allgemeinen gleichgesetzt wurden. Formal gesehen stimmt das nicht: Beim mathematischen Lernen werden nicht immer neuronale Netze eingesetzt; Aber im Allgemeinen ist eine solche Assoziation natürlich verständlich, denn es sind Systeme, die auf neuronalen Netzen basieren, die heute die „magischsten“ Ergebnisse liefern, wie zum Beispiel die Möglichkeit, auf einem Foto nach einer Person zu suchen, die Entstehung von Anwendungen, die übertragen der Stil eines Bildes zu einem anderen, oder Systeme zur Generierung von Texten in der Sprechweise einer bestimmten Person.

Wie neuronale Netze aufgebaut sind, wissen wir bereits... An dieser Stelle möchte ich nur betonen, dass die Stärke neuronaler Netze im Vergleich zu anderen Systemen des maschinellen Lernens in ihrer Vielschichtigkeit liegt, was sie jedoch nicht zu etwas grundsätzlich Anderem in ihrer Funktionsweise macht. Durch die Mehrschichtigkeit können Sie wirklich sehr abstrakt wirken allgemeine Merkmale und Abhängigkeiten in komplexen Merkmalssätzen, wie Pixeln in einem Bild. Es ist jedoch wichtig zu verstehen, dass sich ein neuronales Netzwerk aus Sicht der Lernprinzipien nicht grundlegend von einer Reihe herkömmlicher linearer Regressionsformeln unterscheidet, sodass die gleiche Gradientenabstiegsmethode auch hier hervorragend funktioniert.

Die „Kraft“ eines neuronalen Netzwerks liegt im Vorhandensein einer Zwischenschicht von Neuronen, die die Werte der Eingabeschicht summarisch kombinieren. Aus diesem Grund können neuronale Netze sehr abstrakte Merkmale in den Daten finden, die sich nur schwer auf einfache Formeln wie eine lineare oder quadratische Beziehung reduzieren lassen.

Lassen Sie es uns anhand eines Beispiels erklären. Wir haben uns für eine Vorhersage entschieden, bei der das Gewicht einer Person von ihrer Körpergröße und ihrer Kubikgröße abhängt, was durch die Formel y=k 1 x+k 2 x 3 +b ausgedrückt wird. Mit einigem Aufwand, aber tatsächlich kann sogar eine solche Formel als neuronales Netzwerk bezeichnet werden. Darin gibt es, wie in einem regulären neuronalen Netzwerk, eine erste Schicht von „Neuronen“, die auch eine Schicht von Merkmalen ist: Dies sind x und x 3 (naja, die „Einheitsneuronen“, die wir im Auge behalten und für die dafür ist der Koeffizient b verantwortlich). Die obere oder resultierende Schicht wird durch ein „Neuron“ y dargestellt, also das vorhergesagte Gewicht der Person. Und zwischen der ersten und letzten Schicht von „Neuronen“ gibt es Verbindungen, deren Stärke bzw. Gewicht durch die Koeffizienten k 1, k 2 und b bestimmt wird. Das Training dieses „neuronalen Netzwerks“ bedeutet einfach, dieselben Koeffizienten zu finden.

Der einzige Unterschied zu „echten“ neuronalen Netzen besteht hier darin, dass wir keine einzige Zwischenschicht (oder versteckte) Neuronenschicht haben, deren Aufgabe darin besteht, Eingabemerkmale zu kombinieren. Die Einführung solcher Schichten ermöglicht es Ihnen, mögliche Abhängigkeiten zwischen vorhandenen Merkmalen nicht „aus dem Kopf“ zu erfinden, sondern sich auf deren bereits vorhandene Kombinationen im neuronalen Netzwerk zu verlassen. Beispielsweise können das Alter und die durchschnittliche Zeit vor dem Fernseher einen synergistischen Effekt auf das Gewicht einer Person haben, aber da wir über ein neuronales Netzwerk verfügen, müssen wir dies nicht im Voraus wissen und ihr Produkt in die Formel eingeben. In einem neuronalen Netzwerk wird es auf jeden Fall ein Neuron geben, das den Einfluss zweier beliebiger Merkmale kombiniert, und wenn dieser Einfluss in der Probe wirklich spürbar ist, erhält dieses Neuron nach dem Training automatisch ein großes Gewicht.

Gefälleabstieg

Wir haben also einen Trainingssatz von Beispielen mit bekannten Daten, das heißt eine Tabelle mit dem genau gemessenen Gewicht einer Person, und eine Hypothese der Beziehung, in diesem Fall die lineare Regression y=kx+b. Unsere Aufgabe besteht darin, die richtigen Werte von k und b zu finden, nicht manuell, sondern automatisch. Und vorzugsweise eine universelle Methode, die nicht von der Anzahl der in der Formel enthaltenen Parameter abhängt.

Im Allgemeinen ist dies nicht schwierig. Die Hauptidee besteht darin, eine Funktion zu erstellen, die den aktuellen Gesamtfehlergrad misst und die Koeffizienten „optimiert“, sodass der Gesamtfehlergrad allmählich sinkt. Wie kann ich die Fehlerstufe senken? Wir müssen unsere Parameter in die richtige Richtung anpassen.

Stellen Sie sich unsere beiden Parameter, nach denen wir suchen, die gleichen k und b, als zwei Richtungen auf einer Ebene vor, wie die Nord-Süd- und die West-Ost-Achse. Jeder Punkt auf einer solchen Ebene entspricht einem bestimmten Wert der Koeffizienten, einer bestimmten spezifischen Beziehung zwischen Größe und Gewicht. Und für jeden dieser Punkte auf der Ebene können wir den Gesamtfehlergrad berechnen, den diese Vorhersage für jedes der Beispiele in unserer Stichprobe ergibt.

Es entsteht so etwas wie eine bestimmte Höhe auf einer Ebene, und der gesamte umgebende Raum beginnt einer Berglandschaft zu ähneln. Berge sind Orte, an denen die Fehlerquote sehr hoch ist, Täler sind Orte, an denen es weniger Fehler gibt. Es ist klar, dass das Trainieren unseres Systems bedeutet, den tiefsten Punkt auf dem Boden zu finden, den Punkt, an dem die Fehlerquote am minimalsten ist.

Wie können Sie diesen Punkt finden? Der korrekteste Weg besteht darin, von dem Punkt, an dem wir uns ursprünglich befanden, immer weiter nach unten zu gehen. Früher oder später werden wir also ein lokales Minimum erreichen – einen Punkt, unterhalb dessen es in unmittelbarer Nähe nichts mehr gibt. Darüber hinaus empfiehlt es sich, unterschiedlich große Stufen zu nehmen: Bei steilem Gefälle kann man breitere Stufen nehmen, bei geringem Gefälle sollte man sich besser „auf Zehenspitzen“ an das örtliche Minimum heranschleichen, da es sonst zu Überschreitungen kommen kann.

Genau so funktioniert die Gradientenabstiegsmethode: Wir ändern die Gewichte der Features in Richtung des größten Abfalls der Fehlerfunktion. Wir ändern sie iterativ, also mit einem bestimmten Schritt, dessen Wert proportional zur Steilheit der Steigung ist. Das Interessante daran ist, dass sich im Wesentlichen nichts ändert, wenn die Anzahl der Merkmale zunimmt (hinzugefügt wird die Kubikzahl der Körpergröße einer Person, ihres Alters, ihrer Schuhgröße usw.), unsere Landschaft wird nur nicht zweidimensional, sondern mehrdimensional.

Die Fehlerfunktion kann als Summe der Quadrate aller Abweichungen definiert werden, die die aktuelle Formel für Personen zulässt, deren Gewicht wir bereits genau kennen. Nehmen wir etwas Zufallsvariablen k und b, zum Beispiel 0 und 50. Dann sagt uns das System voraus, dass das Gewicht jeder Person in der Stichprobe immer gleich 50 Kilogramm ist y=0×x+50 Auf dem Diagramm sieht eine solche Abhängigkeit wie a aus gerade Linie parallel zur Horizontalen. Offensichtlich ist dies keine sehr gute Vorhersage. Nehmen wir nun die Gewichtsabweichung von diesem vorhergesagten Wert, quadrieren sie (damit auch negative Werte berücksichtigt werden) und summieren sie – das wird an dieser Stelle der Fehler sein. Wenn Sie mit den Anfängen der Analyse vertraut sind, können Sie sogar klarstellen, dass die Richtung des größten Abfalls durch die partielle Ableitung der Fehlerfunktion nach k und b gegeben ist und der Schritt ein Wert ist, für den ausgewählt wird Praktische Gründe: Kleine Schritte nehmen viel Zeit in der Berechnung in Anspruch, und große können dazu führen, dass wir über das Minimum hinausrutschen.

Okay, was wäre, wenn wir nicht nur eine komplexe Regression mit vielen Funktionen hätten, sondern ein echtes neuronales Netzwerk? Wie wenden wir in diesem Fall den Gradientenabstieg an? Es stellt sich heraus, dass der Gradientenabstieg bei einem neuronalen Netzwerk genauso funktioniert, nur dass das Training 1) Schritt für Schritt von Schicht zu Schicht und 2) schrittweise von einem Beispiel in der Probe zum anderen erfolgt. Die hier verwendete Methode heißt Backpropagation und wurde 1974 unabhängig voneinander vom sowjetischen Mathematiker Alexander Galushkin und dem Mathematiker Paul John Webros von der Harvard University beschrieben.

Obwohl es für eine strenge Darstellung des Algorithmus notwendig sein wird, partielle Ableitungen aufzuschreiben (wie zum Beispiel), geschieht auf einer intuitiven Ebene alles ganz einfach: Für jedes der Beispiele in der Stichprobe haben wir eine bestimmte Vorhersage am Ausgang des neuronalen Netzwerks. Wenn wir die richtige Antwort haben, können wir die richtige Antwort von der Vorhersage subtrahieren und so einen Fehler erhalten (genauer gesagt, eine Reihe von Fehlern für jedes Neuron der Ausgabeschicht). Jetzt müssen wir diesen Fehler auf die vorherige Neuronenschicht übertragen, und je mehr dieses bestimmte Neuron dieser Schicht zum Fehler beigetragen hat, desto mehr müssen wir sein Gewicht reduzieren (tatsächlich sprechen wir wieder über die partielle Ableitung). über die Bewegung entlang der maximalen Steilheit unserer imaginären Landschaft). Wenn wir dies getan haben, muss der gleiche Vorgang für die nächste Schicht wiederholt werden, und zwar in die entgegengesetzte Richtung, also vom Ausgang des neuronalen Netzwerks zum Eingang.

Indem wir das neuronale Netzwerk auf diese Weise mit jedem Beispiel der Trainingsprobe durchlaufen und die Gewichte der Neuronen in die gewünschte Richtung „drehen“, sollten wir schließlich ein trainiertes neuronales Netzwerk erhalten. Die Backpropagation-Methode ist eine einfache Modifikation der Gradientenabstiegsmethode für mehrschichtige neuronale Netze und sollte daher für neuronale Netze beliebiger Komplexität funktionieren. Wir sagen hier „sollte“, weil es tatsächlich Fälle gibt, in denen der Gradientenabstieg fehlschlägt und es Ihnen nicht möglich ist, eine gute Regression durchzuführen oder ein neuronales Netzwerk zu trainieren. Es kann hilfreich sein zu wissen, warum solche Schwierigkeiten auftreten.

Die Schwierigkeiten des Gradientenabstiegs

Falsche Wahl des absoluten Minimums. Die Gradientenabstiegsmethode hilft bei der Suche nach einem lokalen Extremum. Aber wir können es nicht immer verwenden, um das absolute globale Minimum oder Maximum der Funktion zu erreichen. Dies liegt daran, dass wir bei der Bewegung entlang eines Antigradienten in dem Moment anhalten, in dem wir das erste lokale Minimum erreichen, auf das wir stoßen, und der Algorithmus nicht mehr funktioniert.

Stellen Sie sich vor, Sie stehen auf dem Gipfel eines Berges. Wenn Sie zur tiefsten Fläche in der Gegend absteigen möchten, hilft Ihnen die Methode des Gradientenabstiegs nicht immer weiter, da der erste Tiefpunkt auf Ihrem Weg nicht unbedingt der tiefste Punkt sein muss. Und wenn Sie im Leben erkennen können, dass der Algorithmus in einer solchen Situation einfach aufhört, wenn Sie ein wenig nach oben gehen und dann noch tiefer gehen können. Oft lässt sich diese Situation vermeiden, wenn Sie den richtigen Schritt wählen.

Falsche Schrittauswahl. Die Gradientenabstiegsmethode ist eine iterative Methode. Das heißt, wir müssen die Schrittgröße selbst wählen – die Geschwindigkeit, mit der wir absteigen. Wenn wir einen zu großen Schritt wählen, kann es sein, dass wir das benötigte Extremum überschreiten und das Minimum nicht finden. Dies kann passieren, wenn Sie vor einem sehr starken Gefälle stehen. Und wenn wir einen zu kleinen Schritt wählen, besteht die Gefahr, dass der Algorithmus extrem langsam wird, wenn wir uns auf einer relativ flachen Oberfläche befinden. Wenn wir uns erneut vorstellen, dass wir uns auf dem Gipfel eines steilen Berges befinden, kann es vorkommen, dass wir aufgrund eines sehr steilen Abstiegs in der Nähe des Minimums einfach darüber fliegen.

Netzwerklähmung. Manchmal kommt es vor, dass die Gradientenabstiegsmethode überhaupt kein Minimum findet. Dies kann passieren, wenn auf beiden Seiten des Minimums flache Bereiche vorhanden sind. Wenn der Algorithmus auf einen flachen Bereich trifft, verringert er die Stufe und stoppt schließlich. Wenn Sie auf einem Berggipfel stehen und beschließen, in Richtung Ihres Zuhauses im Flachland zu ziehen, kann die Fahrt zu lang sein, wenn Sie versehentlich auf eine sehr ebene Fläche geraten. Oder wenn an den Rändern der flachen Bereiche fast vertikale „Steigungen“ vorhanden sind, springt der Algorithmus, nachdem er einen sehr großen Schritt gewählt hat, von einer Steigung zur anderen und bewegt sich praktisch nicht in Richtung des Minimums.

All das schwierige Momente müssen beim Entwurf eines maschinellen Lernsystems berücksichtigt werden. Beispielsweise ist es immer nützlich, genau zu verfolgen, wie sich die Fehlerfunktion im Laufe der Zeit ändert – fällt sie mit jedem neuen Zyklus oder jeder neuen Markierungszeit, wie ändert sich die Art dieses Abfalls abhängig von der Änderung der Schrittgröße? Um nicht in ein schlechtes lokales Minimum zu geraten, kann es sinnvoll sein, von verschiedenen zufällig ausgewählten Punkten der Landschaft aus zu starten – dann ist die Wahrscheinlichkeit, stecken zu bleiben, deutlich geringer. Es gibt noch viele weitere große und kleine Geheimnisse bei der Verwendung des Gradientenabstiegs, und es gibt auch exotischere Lernmethoden, die dem Gradientenabstieg ein wenig ähneln. Dies ist jedoch ein Thema für ein anderes Gespräch und einen separaten Artikel im Rahmen des ABC of AI-Projekts.

Vorbereitet von Alexander Ershov

- Können Sie uns anhand eines völlig einfachen Beispiels erklären, wie maschinelles Lernen funktioniert?

Dürfen. Es gibt ein Beispiel für eine maschinelle Lerntechnik namens Decision Tree, die zu den ältesten Dingen gehört. Lass es uns jetzt tun. Nehmen wir an, eine abstrakte Person bittet Sie um ein Date. Was ist Ihnen wichtig?

- Zunächst einmal, ob ich ihn kenne oder nicht ...

(Victor schreibt dies an die Tafel.)

...Wenn ich es nicht weiß, muss ich die Frage beantworten, ob er attraktiv ist oder nicht.

Und wenn Sie es wissen, ist es dann egal? Ich glaube, ich verstehe, das ist der Friendzone-Thread! Im Allgemeinen schreibe ich: Wenn Sie es nicht wissen und es unattraktiv ist, lautet die Antwort „Nein, wahrscheinlich.“ Wenn Sie es wissen, lautet die Antwort „Ja“.

- Wenn ich es weiß, ist das auch wichtig!

Nein, das wird ein Friendzone-Zweig sein.

Okay, dann geben wir hier an, ob es interessant ist oder nicht. Wenn man einen Menschen jedoch nicht kennt, ist die erste Reaktion das Äußere; bei einem Bekannten schauen wir bereits, was er denkt und wie.

Machen wir es anders. Ob er ehrgeizig ist oder nicht. Wenn er ehrgeizig ist, wird es schwierig sein, ihn in die Freundeszone aufzunehmen, weil er mehr will. Aber die Unehrgeizigen werden bestehen bleiben.

(Victor ist mit dem Zeichnen des entscheidenden Baumes fertig.)

Bereit. Jetzt können Sie vorhersagen, mit welchem ​​Mann Sie am ehesten ein Date haben werden. Einige Dating-Dienste sagen übrigens solche Dinge voraus. Analog lässt sich vorhersagen, wie viele Waren Kunden kaufen werden und wo sich Menschen zu dieser Tageszeit aufhalten werden.

Die Antworten können nicht nur „Ja“ und „Nein“ sein, sondern auch in Form von Zahlen. Wenn Sie eine genauere Prognose wünschen, können Sie mehrere solcher Bäume erstellen und deren Durchschnitt ermitteln. Und mit Hilfe einer so einfachen Sache kann man tatsächlich die Zukunft vorhersagen.

Stellen Sie sich nun vor: War es für die Menschen vor zweihundert Jahren schwierig, einen solchen Plan zu entwickeln? Gar nicht! Dieses Schema beinhaltet keine Raketenwissenschaft. Als Phänomen existiert maschinelles Lernen seit etwa einem halben Jahrhundert. Ronald Fisher begann zu Beginn des 20. Jahrhunderts Vorhersagen auf der Grundlage von Daten zu treffen. Er nahm Schwertlilien und verteilte sie entsprechend der Länge und Breite der Kelch- und Blütenblätter. Anhand dieser Parameter bestimmte er den Pflanzentyp.

In der Industrie wird maschinelles Lernen in den letzten Jahrzehnten aktiv eingesetzt: Vor nicht allzu langer Zeit sind leistungsstarke und relativ kostengünstige Maschinen aufgetaucht, die beispielsweise für die Verarbeitung großer Datenmengen für solche Entscheidungsbäume benötigt werden. Aber es ist trotzdem spannend: Wir zeichnen diese Dinge für jede Aufgabe und nutzen sie, um die Zukunft vorherzusagen.

- Nun ja, definitiv nicht besser als jeder Oktopus-Vorhersager für Fußballspiele ...

Nein, was kümmern uns Kraken? Obwohl wir mehr Variabilität haben. Mithilfe von maschinellem Lernen können Sie jetzt Zeit und Geld sparen und den Lebenskomfort verbessern. Bei der Bildklassifizierung hat maschinelles Lernen vor einigen Jahren den Menschen überholt. Beispielsweise kann ein Computer 20 Terrierrassen erkennen, ein normaler Mensch jedoch nicht.

- Und wenn Sie Benutzer analysieren, ist für Sie jede Person eine Reihe von Zahlen?

Grob gesagt ja. Wenn wir mit Daten arbeiten, werden alle Objekte, einschließlich des Benutzerverhaltens, durch einen bestimmten Satz von Zahlen beschrieben. Und diese Zahlen spiegeln die Verhaltensmerkmale der Menschen wider: wie oft sie ein Taxi nehmen, welche Taxiklasse sie nutzen, welche Orte sie normalerweise anfahren.

Wir entwickeln derzeit aktiv Look-Alike-Modelle, um damit Gruppen von Menschen mit ähnlichem Verhalten zu identifizieren. Wenn wir einen neuen Service einführen oder einen alten bewerben möchten, bieten wir ihn allen Interessierten an.

Zum Beispiel haben wir jetzt einen Service – zwei Kindersitze in einem Taxi. Wir können jeden mit dieser Nachricht spammen oder gezielt nur einen bestimmten Personenkreis darüber informieren. Im Laufe des Jahres haben wir eine Reihe von Nutzern gesammelt, die in den Kommentaren geschrieben haben, dass sie zwei Kindersitze benötigen. Wir haben sie und ähnliche Menschen gefunden. Herkömmlicherweise handelt es sich dabei um Menschen über 30 Jahre, die regelmäßig reisen und die mediterrane Küche lieben. Obwohl es natürlich noch viele weitere Anzeichen gibt, ist dies nur mein Beispiel.

- Auch solche Feinheiten?

Das ist eine einfache Sache. Alles wird anhand von Suchanfragen berechnet.

Könnte das irgendwie in einer Anwendung funktionieren? Wussten Sie zum Beispiel, dass ich ein Bettler bin und Gruppen wie „Wie man mit 500 Rubel im Monat überlebt“ abonniere – sie bieten mir nur heruntergekommene Billigautos an, ich abonniere SpaceX-Nachrichten – und von Zeit zu Zeit verkaufen sie ich ein Tesla?

Es mag so funktionieren, aber solche Dinge sind bei Yandex nicht zugelassen, weil es Diskriminierung darstellt. Wenn Sie einen Service personalisieren, ist es besser, nicht den akzeptabelsten anzubieten, sondern das Beste, was es gibt und was der Person gefällt. Und die Verteilung nach der Logik „Dieser braucht ein besseres Auto und dieser braucht ein weniger gutes“ ist böse.


Jeder hat perverse Wünsche, und manchmal muss man kein Rezept für ein mediterranes Gericht finden, sondern zum Beispiel Bilder über Koprophilie. Funktioniert die Personalisierung in diesem Fall weiterhin?

Es gibt immer einen privaten Modus.

Wenn ich nicht möchte, dass jemand von meinen Interessen erfährt oder, sagen wir, Freunde zu mir kommen und sich etwas Trash anschauen wollen, dann ist es besser, den Inkognito-Modus zu nutzen.

Sie können auch entscheiden, welchen Dienst des Unternehmens Sie nutzen möchten, zum Beispiel Yandex oder Google.

- Gibt es einen Unterschied?

Das ist eine schwierige Frage. Ich weiß nichts über andere, aber Yandex achtet streng auf den Schutz personenbezogener Daten. Die Mitarbeiter unterliegen einer besonderen Überwachung.

- Das heißt, wenn ich mit einem Mann Schluss mache, kann ich nicht herausfinden, ob er in diese Datscha gegangen ist oder nicht?

Auch wenn Sie bei Yandex arbeiten. Das ist natürlich traurig, aber ja, es wird nicht möglich sein, es herauszufinden. Die meisten Mitarbeiter haben nicht einmal Zugriff auf diese Daten. Alles ist verschlüsselt. Es ist ganz einfach: Man kann keine Menschen ausspionieren, das sind persönliche Informationen.

Übrigens hatten wir einen interessanten Fall zum Thema Trennung von Männern. Als wir eine Vorhersage für Punkt „B“ – den Zielpunkt im Taxi – erstellten, führten wir Hinweise ein. Hier, schau.

(Victor meldet sich bei der Yandex.Taxi-Anwendung an.)

Das Taxi zum Beispiel denkt, ich sei zu Hause. Er schlägt vor, dass ich entweder zur Arbeit oder an die RUDN-Universität gehe (ich halte dort Vorlesungen im Rahmen des Kurses über maschinelles Lernen, Data Mining in Aktion). Und irgendwann, als wir diese Tipps entwickelten, wurde uns klar, dass wir den Benutzer nicht gefährden mussten. Jeder kann Punkt B sehen. Aus diesen Gründen haben wir uns geweigert, Orte aufgrund von Ähnlichkeit vorzuschlagen. Ansonsten sitzt du an einem anständigen Ort mit anständigen Leuten, bestellst ein Taxi und sie schreiben dir: „Schau, du warst noch nicht in dieser Bar!“

- Was sind das für blaue Punkte, die auf Ihrer Karte blinken?

Dies sind Abholpunkte. Diese Punkte zeigen, wo Sie am bequemsten ein Taxi rufen können. Schließlich können Sie an einen Ort anrufen, an den es völlig unbequem wäre, dorthin zu gelangen. Aber im Allgemeinen können Sie überall anrufen.

- Ja, jederzeit. Damit bin ich irgendwie zwei Blocks weit geflogen.

IN in letzter Zeit Es gab verschiedene Schwierigkeiten mit dem GPS, was zu verschiedenen lustigen Situationen führte. Auf der Twerskaja beispielsweise wurden Menschen per Schifffahrt über den Pazifischen Ozean transportiert. Wie Sie sehen, gibt es manchmal Fehlschläge und mehr als zwei Blöcke.

- Und wenn Sie die Anwendung neu starten und erneut klicken, ändert sich der Preis um mehrere Rubel. Warum?

Wenn die Nachfrage das Angebot übersteigt, generiert der Algorithmus automatisch einen steigenden Koeffizienten – das hilft denjenigen, die so schnell wie möglich losfahren müssen, auch in Zeiten hoher Nachfrage, ein Taxi zu nutzen. Mit Hilfe von maschinellem Lernen können Sie übrigens vorhersagen, wo beispielsweise in einer Stunde eine größere Nachfrage besteht. Dies hilft uns, den Fahrern zu sagen, wo es mehr Bestellungen geben wird, damit das Angebot der Nachfrage entspricht.

- Glauben Sie nicht, dass Yandex.Taxi bald den gesamten Taximarkt zerstören wird?

Ich denke nicht. Wir sind für einen gesunden Wettbewerb und haben keine Angst davor.

Ich selbst nutze zum Beispiel verschiedene Taxidienste. Da mir die Wartezeit wichtig ist, schaue ich in mehreren Apps nach, welches Taxi schneller ankommt.


- Du hast dich mit Uber zusammengetan. Wofür?

Es steht mir nicht zu, einen Kommentar abzugeben. Ich denke, dass die Vereinigung eine zutiefst vernünftige Entscheidung ist.

In Deutschland installierte ein Typ eine Badewanne auf Drohnen und flog los, um einen Burger zu essen. Haben Sie gedacht, dass es an der Zeit ist, den Luftraum zu beherrschen?

Ich weiß nichts über den Luftraum. Wir verfolgen Nachrichten wie „Uber hat Taxis auf Booten eingeführt“, aber über die Luft kann ich nichts sagen.

- Was ist mit selbstfahrenden Taxis?

Hier gibt es einen interessanten Punkt. Wir entwickeln sie, aber wir müssen darüber nachdenken, wie genau sie verwendet werden sollen. Es ist noch zu früh, vorherzusagen, in welcher Form und wann sie auf den Straßen erscheinen werden, aber wir tun alles, um die Technologie für ein vollständig autonomes Auto zu entwickeln, bei dem überhaupt kein menschlicher Fahrer benötigt wird.

- Gibt es Befürchtungen, dass die Drohnensoftware gehackt wird, um das Auto fernzusteuern?

Risiken gibt es immer und überall dort, wo es Technologien und Gadgets gibt. Doch mit der Entwicklung der Technik entwickelt sich auch eine andere Richtung – deren Schutz und Sicherheit. Jeder, der auf die eine oder andere Weise an der Technologieentwicklung beteiligt ist, arbeitet an Sicherheitssystemen.

- Welche Benutzerdaten sammeln Sie und wie schützen Sie diese?

Wir erheben anonymisierte Nutzungsdaten, etwa wo, wann und wo die Reise stattgefunden hat. Alles Wichtige wird gehasht.

- Glauben Sie, dass die Zahl der Arbeitsplätze durch Drohnen zurückgehen wird?

Ich denke, es wird nur noch größer. Dennoch müssen diese Drohnen auch irgendwie gewartet werden. Das ist natürlich eine etwas stressige Situation, wenn Sie Ihr Fachgebiet wechseln, aber was können Sie tun?

- Bei jedem seiner Vorträge sagt Gref, dass ein Mensch seinen Beruf mindestens dreimal radikal wechseln wird.

Ich kann keine Spezialität nennen, die ewig Bestand hat. Ein Entwickler arbeitet nicht sein Leben lang in derselben Sprache und mit denselben Technologien. Überall müssen wir wieder aufbauen. Durch maschinelles Lernen kann ich deutlich spüren, dass Jungs, die sechs Jahre jünger sind als ich, viel schneller denken können als ich. Gleichzeitig spüren dies Menschen im Alter von 40 oder 45 Jahren noch stärker.

- Erfahrung spielt keine Rolle mehr?

Spielen. Aber Methoden ändern sich, man kann in einen Bereich kommen, in dem zum Beispiel Deep Learning noch nicht eingesetzt wird, man arbeitet dort eine Zeit lang, dann werden überall Deep-Learning-Methoden eingeführt und man versteht nichts davon. Das ist alles. Ihre Erfahrung kann nur bei der Planung der Teamarbeit von Nutzen sein, und selbst dann nicht immer.

- Und Ihr Beruf ist Datenwissenschaftler, ist er gefragt?

Die Nachfrage nach Data-Science-Spezialisten ist einfach überwältigend. Offensichtlich ist dies eine Zeit verrückten Hypes. Gott sei Dank hat die Blockchain dazu beigetragen, dass dieser Hype ein wenig nachgelassen hat. Blockchain-Spezialisten werden noch schneller abgeholt.

Aber viele Unternehmen glauben mittlerweile, dass ihre Gärten sofort blühen werden, wenn sie in maschinelles Lernen investieren. Das ist falsch. Maschinelles Lernen soll spezifische Probleme lösen und nicht nur existieren.

Es gibt Zeiten, in denen eine Bank ein Empfehlungssystem für Dienstleistungen für Benutzer erstellen möchte. Wir fragen: „Glauben Sie, dass dies wirtschaftlich gerechtfertigt sein wird?“ Sie antworten: „Es ist uns egal.“ Mach es. Jeder hat Empfehlungssysteme, wir werden im Trend liegen.“

Das Problem besteht darin, dass etwas wirklich Nützliches für das Unternehmen nicht an einem Tag erledigt werden kann. Wir müssen beobachten, wie das System lernt. Aber es macht am Anfang immer Fehler; beim Training fehlen möglicherweise einige Daten. Sie korrigieren Fehler, korrigieren sie dann erneut und wiederholen sogar alles. Danach müssen Sie das System so konfigurieren, dass es in der Produktion funktioniert, stabil und skalierbar ist, das ist noch Zeit. Daher dauert ein Projekt sechs Monate, ein Jahr oder länger.


Wenn man die Methoden des maschinellen Lernens als eine Black Box betrachtet, kann man leicht übersehen, wenn verrückte Dinge passieren. Es gibt eine bärtige Geschichte. Das Militär forderte die Entwicklung eines Algorithmus, mit dem analysiert werden kann, ob auf dem Bild ein Panzer zu sehen ist oder nicht. Die Forscher haben es hergestellt, getestet, die Qualität ist ausgezeichnet, alles ist großartig, sie haben es dem Militär übergeben. Das Militär kommt und sagt, dass nichts funktioniert. Wissenschaftler beginnen nervös zu verstehen. Es stellte sich heraus, dass auf allen Fotos mit dem Panzer, die das Militär mitbrachte, in der Ecke ein Häkchen mit einem Stift angebracht war. Der Algorithmus hat problemlos gelernt, ein Häkchen zu finden; er wusste nichts über den Tank. Natürlich gab es auf den neuen Fotos keine Häkchen.

Ich habe Kinder getroffen, die ihre eigenen Dialogsysteme entwickeln. Haben Sie jemals darüber nachgedacht, dass Sie mit Kindern zusammenarbeiten müssen?

Seit geraumer Zeit besuche ich Veranstaltungen aller Art für Schüler und halte dort Vorträge zum Thema maschinelles Lernen. Und eines der Themen wurde mir übrigens von einem Zehntklässler beigebracht. Ich war mir absolut sicher, dass meine Geschichte gut und interessant sein würde, ich war stolz auf mich, ich fing an zu senden und das Mädchen meinte: „Oh, wir wollen diese Sache minimieren.“ Ich schaue und denke wirklich, warum, und die Wahrheit kann minimiert werden, und es gibt hier nichts Besonderes zu beweisen. Es sind schon mehrere Jahre vergangen, jetzt hört sie als Studentin am Physikalisch-Technischen Institut unsere Vorlesungen. Yandex hat übrigens Yandex.Lyceum, wo Schüler kostenlos grundlegende Programmierkenntnisse erwerben können.

- Empfehlen Sie Universitäten und Fakultäten, an denen derzeit maschinelles Lernen gelehrt wird.

Es gibt MIPT, Fakultäten FIVT und FUPM. HSE hat auch eine wunderbare Informatikabteilung, und an der Moskauer Staatsuniversität gibt es im Informatikkomplex maschinelles Lernen. Nun können Sie an unserem Kurs an der RUDN-Universität teilnehmen.

Wie ich bereits sagte, ist dieser Beruf gefragt. Menschen mit technischer Ausbildung machten lange Zeit ganz andere Dinge. Maschinelles Lernen ist ein großartiges Beispiel für all die Dinge, mit denen Menschen gelernt haben technische Ausbildung, sind jetzt wirklich nötig, nützlich und gut bezahlt.

- Wie gut?

Nennen Sie den Betrag.

- 500.000 pro Monat.

Das können Sie, ohne ein gewöhnlicher Datenwissenschaftler zu sein. Aber in manchen Unternehmen kann ein Praktikant für einfache Arbeit 50.000 verdienen. Die Spanne ist sehr groß. Im Allgemeinen kann das Gehalt eines coolen Datenwissenschaftlers mit dem Gehalt des CEO eines mittelständischen Unternehmens verglichen werden. In vielen Unternehmen hat der Mitarbeiter neben dem Gehalt noch viele weitere Vorteile, und wenn klar ist, dass die Person nicht gekommen ist, um ihrem Lebenslauf ein gutes Markenzeichen hinzuzufügen, sondern um tatsächlich zu arbeiten, dann wird für sie alles in Ordnung sein.