KĂŒrzlich wurde , die die Trends im maschinellen Lernen der letzten Jahre gut aufzeigt. Kurz gesagt: Die Anzahl der Startups im Bereich des maschinellen Lernens ist in den letzten zwei Jahren stark zurĂŒckgegangen.

Nun, schauen wir uns an, ob 'die Blase geplatzt ist', 'wie es weitergeht' und reden wir darĂŒber, woher dieser Umstand eigentlich kommt.
ZunĂ€chst wollen wir darĂŒber sprechen, was diesen RĂŒckgang ausgelöst hat. Woher kommt er? Vielleicht erinnern sich viele an des maschinellen Lernens im Jahr 2012 beim Wettbewerb ImageNet. Das war schlieĂlich ein globales Ereignis! In Wirklichkeit ist das jedoch nicht der einzige Grund. Und der Anstieg begann schon etwas frĂŒher. Ich wĂŒrde ihn in mehrere Punkte unterteilen.
- Das Jahr 2008 brachte den Begriff âBig Dataâ. Reale Produkte begannen ab 2010. Big Data sind eng mit dem maschinellen Lernen verbunden. Ohne Big Data ist ein stabiler Betrieb der Algorithmen, die zu diesem Zeitpunkt existierten, nicht möglich. Und das sind nicht die neuronalen Netze. Bis 2012 waren neuronale Netze das Metier einer marginalisierten Minderheit. Stattdessen begannen andere Algorithmen zu arbeiten, die schon seit Jahren oder sogar Jahrzehnten existierten: (1963, 1993), (1995), (2003), ⊠Die Startups dieser Zeit beschĂ€ftigten sich vor allem mit der automatischen Verarbeitung strukturierter Daten: Kassen, Benutzer, Werbung und vieles mehr.
Die Nachfolge dieser ersten Welle ist eine Sammlung von Frameworks wie XGBoost, CatBoost, LightGBM usw.
- In den Jahren 2011-2012 gewannen mehrere Wettbewerbe zur Bilderkennung. Ihre tatsĂ€chliche Anwendung lieĂ jedoch etwas auf sich warten. Ich wĂŒrde sagen, dass wirklich durchdachte Startups und Lösungen ab 2014 aufkamen. Es dauerte zwei Jahre, um zu erkennen, dass neuronale Netze tatsĂ€chlich funktionieren, um benutzerfreundliche Frameworks zu entwickeln, die man in angemessener Zeit installieren und starten kann, sowie Methoden zu entwickeln, die die Konvergenzzeiten stabilisieren und beschleunigen.
Konvolutionale Netze ermöglichten die Lösung von Aufgaben des maschinellen Sehens: Klassifizierung von Bildern und Objekten in Bildern, Objekterkennung, Erkennung von Objekten und Personen, Bildverbesserung usw.
- 2015-2017. Ein Aufschwung von Algorithmen und Projekten, die auf rekurrenten Netzwerken oder deren Entsprechungen (LSTM, GRU, TransformerNet usw.) basieren. Es tauchten leistungsfĂ€hige Algorithmen fĂŒr "Sprache-zu-Text" und maschinelle Ăbersetzung auf. Teilweise basieren sie auf Convolutional Networks zur Extraktion grundlegender Merkmale und teilweise darauf, dass man gelernt hat, wirklich groĂe und hochwertige DatensĂ€tze zu erstellen.

"Ist die Blase geplatzt? Ist der Hype ĂŒberhitzt? Sind sie gestorben wie Blockchain?"
Ganz bestimmt! Morgen wird Siri auf Ihrem Telefon nicht mehr funktionieren, und ĂŒbermorgen wird Tesla einen Linksabbieger nicht von einem KĂ€nguru unterscheiden können.
Neuronale Netzwerke arbeiten bereits. Sie sind in Dutzenden von GerÀten integriert. Sie ermöglichen tatsÀchlich Einnahmen, verÀndern den Markt und die umgebende Welt. Der Hype sieht etwas anders aus:

Neuronale Netzwerke sind nichts Neues mehr. Ja, viele Menschen haben ĂŒberzogene Erwartungen. Aber eine groĂe Anzahl an Unternehmen hat gelernt, Neuronale Netzwerke anzuwenden und Produkte auf ihrer Basis zu entwickeln. Neuronale Netzwerke bieten neue Funktionen, ermöglichen die Reduzierung von ArbeitsplĂ€tzen und senken die Kosten fĂŒr Dienstleistungen:
- Produzierende Unternehmen integrieren Algorithmen zur Analyse von Fehlern in der Produktion.
- Tierhaltungsbetriebe erwerben Systeme zur Ăberwachung von KĂŒhen.
- Automatische Combine.
- Automatisierte Call-Center.
- Filter in SnapChat. (nun, wenigstens etwas Sinnvolles!)
Aber das Wichtigste, und das nicht offensichtlichste: "Es gibt keine neuen Ideen mehr, oder sie bringen nicht sofort Kapital." Neuronale Netze haben Dutzende von Problemen gelöst. Und sie werden noch mehr lösen. Alle offensichtlichen Ideen, die es gab, haben viele Startups hervorgebracht. Aber alles, was an der OberflĂ€che war, wurde bereits aufgegriffen. In den letzten zwei Jahren habe ich keine neue Idee fĂŒr den Einsatz von neuronalen Netzen gesehen. Keinen neuen Ansatz (ok, es gibt ein paar Probleme mit GANs).
Jedes nĂ€chste Startup wird immer komplexer. Es benötigt nicht mehr nur zwei Personen, die das neuronale Netz mit offenen Daten trainieren. Es benötigt Programmierer, Server, ein Team von Annotatoren, komplexe UnterstĂŒtzung usw.
Die Folge ist â es gibt weniger Startups. Aber die Produktion nimmt zu. MĂŒssen Sie die Erkennung von Fahrzeugkennzeichen hinzufĂŒgen? Auf dem Markt gibt es Hunderte von Fachleuten mit relevanter Erfahrung. Man kann jemanden einstellen, und in ein paar Monaten wird Ihr Mitarbeiter das System erstellen. Oder eine fertige Lösung kaufen. Aber ein neues Startup grĂŒnden?.. Wahnsinn!
Ein Besucherverfolgungssystem ist notwendig â warum fĂŒr zahlreiche Lizenzen zahlen, wenn Sie in 3-4 Monaten Ihr eigenes aufbauen können, das speziell auf Ihr GeschĂ€ft zugeschnitten ist?
Aktuell durchlaufen neuronale Netzwerke denselben Entwicklungsprozess, den viele andere Technologien bereits durchlebt haben.
Erinnern Sie sich daran, wie sich der Begriff âWebentwicklerâ seit 1995 verĂ€ndert hat? Der Markt ist noch nicht mit Fachleuten ĂŒberflutet. Es gibt sehr wenige Profis. Doch ich wĂŒrde wetten, dass es in 5-10 Jahren kaum einen Unterschied zwischen einem Java-Programmierer und einem Entwickler von neuronalen Netzwerken geben wird. Beide Spezialisten werden auf dem Markt ausreichend vorhanden sein.
Es wird einfach eine Klasse von Aufgaben geben, fĂŒr die neuronale Netzwerke eingesetzt werden. Steht eine Aufgabe an â beauftragen Sie einen Spezialisten.
âUnd was kommt danach? Wo bleibt die versprochene kĂŒnstliche Intelligenz?â
Hier gibt es eine kleine, aber interessante Unklarheit :)
Der Technologiestack, den wir heute besitzen, wird uns anscheinend doch nicht zur kĂŒnstlichen Intelligenz fĂŒhren. Die Ideen und ihre Neuheit haben sich zum groĂen Teil erschöpft. Lassen Sie uns darĂŒber sprechen, was den aktuellen Entwicklungsstand aufrechterhĂ€lt.
EinschrÀnkungen
Lassen Sie uns mit autonom fahrenden Fahrzeugen beginnen. Es scheint klar zu sein, dass es mit der heutigen Technologie möglich ist, vollstĂ€ndig autonome Autos zu entwickeln. Aber es bleibt unklar, in wie vielen Jahren das geschehen wird. Tesla glaubt, dass es in ein paar Jahren so weit sein wird â

Es gibt viele andere , die dies auf einen Zeitraum von 5-10 Jahren schÀtzen.
Meiner Ansicht nach wird sich die Infrastruktur der StĂ€dte in etwa 15 Jahren so entwickeln, dass das Auftauchen autonomer Fahrzeuge unvermeidlich wird und ihr Teil davon wird. Allerdings kann man das nicht als Intelligenz betrachten. Das moderne Tesla-System ist eine sehr komplexe Datenfilterungs- und Suchmaschine, die sich stĂ€ndig anpasst. Es basiert auf Regeln, Regeln, Regeln, Datensammlung und deren Filterung (hier habe ich etwas detaillierter darĂŒber geschrieben, oder schauen Sie sich die Markierungen an).
Das erste Problem
Und hier erkennen wir das erste fundamentale Problem. GroĂe Daten. Das ist genau das, was die aktuelle Welle von neuronalen Netzen und maschinellem Lernen hervorgebracht hat. Um heutzutage etwas Komplexes und Automatisiertes zu erreichen, benötigt man eine Menge Daten. Nicht einfach viel, sondern sehr, sehr viel. Es sind automatisierte Algorithmen zur Sammlung, Kennzeichnung und Nutzung nötig. Wenn wir möchten, dass die Maschine Lastwagen gegen die Sonne erkennt - mĂŒssen wir zuerst eine ausreichende Anzahl davon sammeln. Wenn wir wollen, dass die Maschine nicht verrĂŒckt wird, weil ein Fahrrad am GepĂ€cktrĂ€ger befestigt ist - benötigen wir mehr Proben.
Dabei reicht ein Beispiel nicht aus. Hunderte? Tausende?

Das zweite Problem
Das zweite Problem ist die Visualisierung dessen, was unser neuronales Netzwerk verstanden hat. Dies ist eine sehr komplexe Aufgabe. Bis heute versteht kaum jemand, wie man das visualisieren kann. Diese Artikel sind recht neu und bieten nur einige Beispiele, auch wenn sie entfernt sind:
Zyklisch auf Texturen. Es zeigt gut, worauf das neuronale Netzwerk tendiert, sich zu fokussieren + was es als Ausgangsinformation wahrnimmt.

Aufmerksamkeit bei . TatsĂ€chlich kann Attention oft verwendet werden, um zu zeigen, was die Netzreaktion verursacht hat. Ich habe solche Tools sowohl fĂŒr Debugging als auch fĂŒr Produktlösungen gesehen. Zu diesem Thema gibt es viele Artikel. Aber je komplexer die Daten sind, desto schwieriger ist es, eine konsistente Visualisierung zu erreichen.

Und ja, der alte gute Satz von âSchau, was im Netzwerk drin istâ . Diese Bilder waren vor 3-4 Jahren populĂ€r, aber jeder hat schnell erkannt, dass die Bilder zwar schön sind, aber wenig Sinn ergeben.

Ich habe dutzende anderer Hacks, Methoden und Studien nicht erwÀhnt, wie man die Inneren des Netzwerks darstellt. Funktionieren diese Tools? Helfen sie, das Problem schnell zu verstehen und das Netzwerk zu debuggen? ... Um die letzten Prozente herauszuziehen? Nun, etwa so:

Sie können sich jeden Wettbewerb auf Kaggle ansehen. Und die Beschreibung, wie die Leute die finalen Lösungen erstellen. Wir haben 100-500-800 Millionen Modelle aufgebaut, und es hat funktioniert!
NatĂŒrlich ĂŒbertreibe ich. Aber schnelle und direkte Antworten geben diese AnsĂ€tze nicht.
Mit ausreichend Erfahrung und verschiedenen AnsĂ€tzen kann man zu einem Urteil kommen, warum Ihr System so entschieden hat. Es wird jedoch schwierig sein, das Verhalten des Systems zu korrigieren. Ein Workaround könnte sein, die Schwelle zu verschieben, einen Datensatz hinzuzufĂŒgen oder ein anderes Backend-Netzwerk zu wĂ€hlen.
Das dritte Problem
Das dritte fundamentale Problem â Netze lernen nicht Logik, sondern Statistik. Statistisch gesehen ist das :

Logisch betrachtet sieht das nicht sehr Ă€hnlich aus. Neuronale Netze lernen nichts Komplexes, es sei denn, sie werden dazu gezwungen. Sie lernen immer die einfachsten Merkmale. Gibt es Augen, eine Nase, einen Kopf? Dann ist es ein Gesicht! Oder bringen Sie ein Beispiel, bei dem Augen nicht ein Gesicht bedeuten. Und erneut â Millionen von Beispielen.
Es gibt genug Platz am Ende
Ich wĂŒrde sagen, dass genau diese drei globalen Probleme derzeit die Entwicklung von neuronalen Netzen und maschinellem Lernen einschrĂ€nken. Wo diese Probleme nicht existieren, wird bereits aktiv genutzt.
Ist das das Ende? Sind neuronale Netze zum Stillstand gekommen?
Unklar. Aber natĂŒrlich hofft jeder, dass dem nicht so ist.
Es gibt viele AnsÀtze und Richtungen, um die fundamentalen Probleme zu lösen, die ich oben angesprochen habe. Doch bisher hat keiner dieser AnsÀtze etwas Fundamentales Neues hervorgebracht oder ein ungelöstes Problem gelöst. Bisher basieren alle grundlegenden Projekte entweder auf stabilen AnsÀtzen (Tesla) oder bleiben Testprojekte von Institutionen oder Unternehmen (Google Brain, OpenAI).
GroĂ gesagt, besteht die Hauptausrichtung darin, eine hochgradige Darstellung der Eingabedaten zu schaffen â eine Art "GedĂ€chtnis". Das einfachste Beispiel fĂŒr GedĂ€chtnis sind verschiedene "Embeddings" â Darstellungen von Bildern. Ein Beispiel hierfĂŒr sind sĂ€mtliche Gesichtserkennungssysteme. Das Netzwerk lernt, aus einem Gesicht eine stabile Darstellung zu erzeugen, die unabhĂ€ngig von Drehung, Beleuchtung und Auflösung ist. Im Grunde minimiert das Netzwerk die Metrik "verschiedene Gesichter â weit auseinander" und "gleiche Gesichter â nah beieinander".

FĂŒr solches Lernen sind Zehntausende bis Hunderttausende von Beispielen erforderlich. Das Ergebnis zeigt jedoch einige AnsĂ€tze fĂŒr "One-shot Learning". Jetzt benötigen wir nicht mehr Hunderte von Gesichtern, um eine Person zu erkennen. Nur ein einziges Gesicht reicht aus, und wir !
Nur ein kleines Problem⊠Das Netzwerk kann nur relativ einfache Objekte erlernen. Wenn es darum geht, nicht Gesichter, sondern beispielsweise âMenschen anhand ihrer Kleidungâ zu unterscheiden (eine Aufgabe ) â sinkt die QualitĂ€t um ein Vielfaches. Und das Netzwerk kann nicht einmal offensichtliche Perspektivwechsel erlernen.
Und auf Millionen von Beispielen zu lernen, ist auch nicht gerade ein spannendes VergnĂŒgen.
Es gibt Arbeiten, die eine erhebliche Verringerung der Auswahl ermöglichen. Zum Beispiel, eine der ersten Arbeiten zu OneShot Learning :

Es gibt viele solche Arbeiten, zum Beispiel oder oder .
Ein Nachteil â normalerweise funktioniert das Lernen gut bei einfachen, âMNIST-Ă€hnlichen Beispielenâ. Bei komplexeren Aufgaben ist jedoch eine groĂe Datenbasis, ein Modellschema oder etwas Magie erforderlich.
Die Forschung zu One-Shot-Lernen ist insgesamt ein sehr interessantes Thema. Man findet viele Ideen. Aber gröĂtenteils erschweren die beiden Probleme, die ich aufgezĂ€hlt habe (Vortraining auf riesigen Datensets / InstabilitĂ€t bei komplexen Daten) â das Lernen erheblich.
Andererseits nĂ€hern sich GANs â generative gegnerische Netzwerke â dem Thema Embedding. Sie haben sicherlich viele Artikel zu diesem Thema auf HabrĂ© gelesen. (, ,)
Eine Besonderheit von GANs ist die Bildung eines internen Zustandsraums (im Wesentlichen das gleiche wie Embedding), der es ermöglicht, ein Bild darzustellen. Das können sein , es können sein .

Das Problem von GANs ist, dass je komplexer das generierte Objekt, desto schwieriger ist es, es mit der Logik von âGenerator-Diskriminatorâ zu beschreiben. Infolgedessen sind echte Anwendungen von GANs, die bekannt sind, nur DeepFake, das wiederum mit der Darstellung von Gesichtern manipuliert (fĂŒr die es eine groĂe Datenbasis gibt).
Ich habe sehr wenige andere nĂŒtzliche Anwendungen gesehen. Normalerweise handelt es sich um Spielereien mit dem Nachbearbeiten von Bildern.
Und wiederum. Niemand hat eine Vorstellung davon, wie uns das helfen wird, in eine bessere Zukunft zu gehen. Das VerstÀndnis der Logik/RÀume in einem neuronalen Netzwerk ist gut. Aber es bedarf einer enormen Anzahl von Beispielen, und es ist uns unklar, wie das Netzwerk dieses komplexe Konzept in sich darstellt, und wie wir das neuronale Netzwerk dazu bringen können, sich eine tatsÀchlich komplexe Darstellung einzuprÀgen.
Reinforcement Learning â ist ein völlig anderer Ansatz. Sicherlich erinnern Sie sich daran, wie Google alle im Spiel Go ĂŒbertroffen hat. Die jĂŒngsten Erfolge in Starcraft und Dota. Aber hier sieht die Lage lĂ€ngst nicht so rosig und vielversprechend aus. Am besten beschreibt .
Wenn man zusammenfasst, was der Autor geschrieben hat:
- Die vorgefertigten Modelle eignen sich nicht / funktionieren in den meisten FĂ€llen schlecht.
- Praktische Aufgaben lassen sich einfacher auf andere Weise lösen. Boston Dynamics verwendet kein RL wegen seiner KomplexitÀt / Unvorhersehbarkeit / Rechenaufwand.
- Damit RL funktioniert, ist eine komplexe Funktion erforderlich. Oft ist es schwierig, diese zu erstellen / zu schreiben.
- Es ist schwierig, Modelle zu trainieren. Man muss viel Zeit investieren, um sie zu optimieren und aus lokalen Optima herauszufĂŒhren.
- Folglich ist es schwierig, das Modell zu reproduzieren; die InstabilitĂ€t des Modells bei geringsten Ănderungen.
- HĂ€ufig wird es auf irgendwelche wendigen Muster ĂŒberangepasst, bis hin zum Generator fĂŒr Zufallszahlen.
Der SchlĂŒsselpunkt ist, dass RL bisher nicht in der Produktion funktioniert. Google hat einige Experimente ( , ). Aber ich habe kein einziges Produktivsystem gesehen.
Speicher. Der einzige Nachteil all dessen, was oben beschrieben wurde, ist die Unstrukturierung. Ein Ansatz, um dies zu beheben, besteht darin, neuronalen Netzwerken Zugang zu einem separaten GedĂ€chtnis zu gewĂ€hren. So können sie Ergebnisse ihrer Schritte dort speichern und ĂŒberschreiben. Dann kann das neuronale Netzwerk durch den aktuellen Zustand des GedĂ€chtnisses definiert werden. Das Ă€hnelt sehr klassischen Prozessoren und Computern.
Das bekannteste und beliebteste â von DeepMind:

Scheint es, als sei dies der SchlĂŒssel zum VerstĂ€ndnis von Intelligenz? Aber eher nicht. Das System benötigt dennoch eine riesige Datenmenge fĂŒr das Training. Es arbeitet hauptsĂ€chlich mit strukturierten tabellarischen Daten. Als Facebook Ă€hnliche Herausforderung anpackte, entschieden sie sich fĂŒr den Weg: "Vergiss das GedĂ€chtnis, machen wir einfach das neuronale Netzwerk komplexer und mehr Beispiele - dann lernt es automatisch."
Entwirrung. Eine weitere Möglichkeit, signifikante Erinnerungen zu erstellen, besteht darin, dieselben Embeddings zu verwenden, jedoch zusĂ€tzliche Kriterien beim Training einzufĂŒhren, die es ermöglichen, darin âBedeutungenâ zu erkennen. Zum Beispiel möchten wir ein neuronales Netzwerk trainieren, das das Verhalten von Menschen im GeschĂ€ft unterscheidet. Wenn wir den standardmĂ€Ăigen Ansatz verfolgen wĂŒrden, mĂŒssten wir ein Dutzend Netzwerke erstellen. Eines sucht nach Personen, ein anderes bestimmt, was sie tun, das dritte ihr Alter, das vierte das Geschlecht. Ein separates System analysiert den Teil des GeschĂ€fts, in dem sie sich aufhalten oder lernen. Ein weiteres Netzwerk bestimmt ihre Bewegungsrichtung usw.
Oder, wenn es unbegrenzt viele Daten gĂ€be, könnte man ein einziges Netzwerk auf alle möglichen AusgĂ€nge trainieren (offensichtlich kann man einen solch groĂen Datensatz nicht sammeln).
Der disentangled Ansatz sagt uns â lasst uns das Netzwerk so trainieren, dass es selbstĂ€ndig Konzepte unterscheiden kann. Es soll aus Videos embeddings bilden, in denen ein Bereich die Handlung bestimmt, ein anderer die Position auf dem Boden ĂŒber die Zeit, einer das Wachstum einer Person, und ein weiterer das Geschlecht. Dabei wĂ€re es wĂŒnschenswert, dass wĂ€hrend des Trainings der Netzwerk nur minimale Hinweise auf solche SchlĂŒsselkonzepte gegeben werden, und dass es selbstĂ€ndig Bereiche herausfiltert und gruppiert. Solcherlei Artikel sind wenig verbreitet (einige davon , , ) und insgesamt sind sie recht theoretisch.
Aber diese Richtung sollte zumindest theoretisch die zu Beginn genannten Probleme adressieren.

Die Zerlegung eines Bildes nach den Parametern âWandfarbe/Bodenfarbe/Form des Objekts/Farbe des Objekts/usw.â

Die Zerlegung eines Gesichts nach den Parametern âGröĂe, Augenbrauen, Ausrichtung, Hautfarbe, usw.â
Sonstiges
Es gibt viele andere nicht so globale Richtungen, die es ermöglichen, Datenbanken zu verkleinern, mit heterogeneren Daten zu arbeiten, usw.
Aufmerksamkeit. Vielleicht macht es wenig Sinn, dies als eigene Methode herauszustellen. Es ist einfach ein Ansatz, der andere verstÀrkt. Viele Artikel sind diesem gewidmet (,,). Die Bedeutung von Attention besteht darin, die Reaktion des Netzwerks auf wirklich bedeutende Objekte beim Training zu verstÀrken. Oftmals geschieht dies durch externe Zielvorgaben oder ein kleines externes Netzwerk.
3D-Simulation. Mit einer guten 3D-Engine kann man hĂ€ufig 90% der Trainingsdaten abdecken (ich habe sogar ein Beispiel gesehen, in dem fast 99% der Daten mit einer guten Engine abgedeckt wurden). Es gibt viele Ideen und Hacks, wie man ein auf einer 3D-Engine trainiertes Netzwerk dazu bringen kann, mit realen Daten zu arbeiten (Feinabstimmung, StilĂŒbertragung usw.). Aber oft ist es viel schwieriger, eine gute Engine zu erstellen, als die Daten zu sammeln. Beispiele fĂŒr die Entwicklung von Engines:
Robotertraining (, )
Ausbildung von Waren im GeschĂ€ft (aber in den zwei Projekten, die wir durchgefĂŒhrt haben, kamen wir problemlos ohne dieses aus).
Training bei Tesla (wieder das Video, das oben war).
Fazit
Der gesamte Artikel enthĂ€lt gewissermaĂen Zusammenfassungen. Wahrscheinlich ist die Hauptbotschaft, die ich vermitteln wollte â âdie Zeiten einfacher Lösungen sind vorbei, neuronale Netze bieten keine einfachen Antworten mehrâ. Jetzt muss man viel arbeiten, um komplexe Lösungen zu entwickeln. Oder viel arbeiten, indem man anspruchsvolle wissenschaftliche Forschung betreibt.
Das Thema ist jedoch diskussionswĂŒrdig. Vielleicht haben die Leser interessantere Beispiele?
Quelle: habr.com
