Oberflächliche und allgemeine Überlegungen zu neuronalen Netzen

Auf Habré gibt es eine Vielzahl von Artikeln über neuronale Netze, in denen ein Bild eines Neurons in Form eines Kreises mit eingehenden Pfeilen, ein Bild mit Linien von Neuronen und die obligatorische Formel für die Summe des Produkts aus Gewichten und Zeichen enthalten sind. Diese Artikel provozieren oft die Empörung eines angesehenen Publikums wegen seiner Offensichtlichkeit und Ähnlichkeit mit dem Lernen, wie man eine Eule zeichnet. In diesem Artikel werde ich noch weiter gehen - auch das wird nicht hier sein. Keine Mathematik, keine Vergleiche mit dem Gehirn. Es ist unwahrscheinlich, dass Sie aus diesem Artikel etwas Praktisches lernen, und es besteht eine hohe Wahrscheinlichkeit, dass Ihnen all das zu offensichtlich erscheint. Der Zweck dieses Artikels ist die Frage: Was können Sie mit Hilfe neuronaler Netze tun? Nicht Yandex, nicht Google, nicht Facebook, sondern Sie - mit Ihrer fünfjährigen Erfahrung als Webentwickler und dreijähriger Laptop.

Bild

Um neuronale Netze (im Folgenden - NS) herum gibt es jetzt viel Rauschen. Also habe ich beschlossen, ein Produkt daraus zu machen. Und er fragte sich: Was brauche ich dafür? Und er antwortete sich selbst (ja, ich spreche gerne mit einer intelligenten Person): Drei Dinge sind erforderlich - Kenntnisse auf dem Gebiet der neuronalen Netze, Daten für das Training und Hardware, auf der ein neuronales Netz trainiert werden kann. Übrigens, nachdem ich gehört hatte, wie viele Redner auf Youtube darüber gesprochen haben, dass diese Dinge der Grund für die NS-Renaissance sind: verbesserte Algorithmen (Wissen), Verfügbarkeit einer großen Datenmenge und die Fähigkeiten moderner Computer (Hardware). Ein solches Zusammentreffen meiner Gedanken und der Worte von Experten ist ermutigend, daher werde ich weiter über diese drei Dinge sprechen: Daten, Wissen und Hardware.

Daten


Die Art und Art der Daten hängt von dem Bereich ab, in dem Sie NS anwenden möchten.
Moderne NSs begannen, so schwierige Aufgaben wie Objekterkennung in Bildern, Gesichtern und Spracherkennung zu lösen, konnten selbst Videospiele spielen und gewannen.

Lyrischer Exkurs
Natürlich ist dieser Hype und die Blase um die NS in vielerlei Hinsicht der Einfluss von Mode, Viralität, einem romantischen Namen, Analogien zum Gehirn und dem Traum einer starken KI. In der Tat würden Sie zustimmen, dass, wenn diese Techniken als „Matrixmultiplikation und Parameteroptimierung nach der Gradientenabstiegsmethode“ bezeichnet würden, all dies weniger beeindruckend klingen und möglicherweise nicht so viel Aufmerksamkeit erregen würde. Einige werden argumentieren, dass, verdammt noch mal, mit dem Namen, nicht nur wegen des Namens, den sie so beliebt sind, sondern auch einen Wow-Effekt hervorrufen - schauen Sie, was diese Netzwerke tun, sie haben gewonnen! Nun, aber als die KI Schach gewann, begannen nur wenige Menschen, die Suche eingehend zu vergöttern, und die Journalisten schrieben nicht, dass der A-Star die Welt erobern würde, und die Programmierer studierten ihn nicht in großen Mengen.

Die Nationalversammlung ist unter anderem in einen geheimnisvollen Heiligenschein gehüllt - niemand versteht genau, wie sie ihre Arbeit ausführen: eine Reihe nichtlinearer Funktionen, zahlreiche Gewichtsmatrizen, mysteriöse Begriffe und Faktoren - all dies sieht aus wie ein Hexenbehälter, in den sie alle Arten von Wurzeln, Fledermausflügeln und Drachenblut wirft. Aber zurück zur Frage des Artikels.

Um NA zu trainieren, werden viele Daten benötigt - Hunderttausende, Millionen von Beispielen. Können Sie einen solchen Haufen mit Ihrem selbst erstellten Internet-Grabber finden und herunterladen? Ich denke ja. Es gibt jedoch einige Probleme:

  1. Für die Ausbildung mit einem Lehrer müssen die Daten gekennzeichnet werden. Jemand sollte diese Daten markieren, sie verschiedenen Klassen zuordnen und eine numerische Schätzung abgeben. Wenn dies anfangs nicht aus irgendeinem Grund geschieht (zum Beispiel haben Sie nur Audio, aber keine Transkripte), erfordert dies enormen Aufwand. Natürlich gibt es eine Ausbildung ohne Lehrer, mit Verstärkung und so weiter, aber sie lösen andere Probleme (vereinfacht, nicht Klassifizierung und Regression (tatsächlich den Wert einer unbekannten Funktion bestimmen), sondern Clustering oder Auswahl der besten Aktionen). In Anbetracht des begrenzten Umfangs des Artikels werde ich dieses Thema nicht ansprechen.

  2. Die Daten sollten gleichmäßig verteilt sein, was auch immer das bedeutet. Dies bedeutet, dass wenn Sie sogar Millionen von Daten haben, die Informationen über BMW und Dodge enthalten, aber fast keine Informationen über Ford und Mazda, die Nationalversammlung niemals in der Lage sein wird, die Daten angemessen zusammenzufassen, noch schlimmer, sie wird die Preise erhöhen oder runde Scheinwerfer ziehen und aggressiver Blick.

  3. Sie müssen viel über die Art der Daten wissen, um wichtige Funktionen hervorheben und dem NS möglicherweise einige Einschränkungen auferlegen zu können. Ja, ein mehrschichtiger NS ist ein universeller Approximator für kontinuierliche Funktionen, aber niemand hat gesagt, dass er schnell sein würde. So seltsam es auch scheinen mag, aber je mehr Einschränkungen, desto schneller kann der NS lernen. Warum ist NS so gut in der Bildverarbeitung geworden? Weil kluge Kerle Informationen über Bilder in die Architektur dieser Netzwerke einfügen. Sie haben eine separate Klasse von Netzwerken erstellt - Faltungsnetzwerke, die Daten aus einer Gruppe von Pixeln aufnehmen, das Bild auf unterschiedliche Weise komprimieren, mathematische Transformationen durchführen, deren Zweck darin besteht, den Effekt von Verschiebungen, Transformationen und unterschiedlichen Kamerawinkeln zu neutralisieren. Ist dies für andere Datentypen geeignet? Kaum. Ist es für Bilder geeignet, bei denen die Winkel wichtige Informationen enthalten? Wer weiß?

Wissen


In der Nationalversammlung gibt es eine Menge Hyperparameter, die sowohl die Arbeitsgeschwindigkeit als auch die Konvergenz im Prinzip stark beeinflussen. Sie können sich weiterbilden, bei einem lokalen Maximum stecken bleiben, wochenlang dehnen und mehr trainieren. Sie erwerben Kenntnisse über NS-Architekturen, Funktionsprinzipien und sind Programmierer. Es gibt eine Vielzahl von Frameworks für maschinelles Lernen - Theano, Tensorflow und andere. Das Einstellen von Parametern wie Lerngeschwindigkeit, Auswählen eines Moments, Auswählen einer Regularisierung und ihrer Parameter, Auswählen einer Aktivierungsfunktion und vielem mehr ist jedoch ein experimenteller Prozess, der viel Zeit in Anspruch nimmt. Aufgrund des Fehlens einer genauen Strategie und der Notwendigkeit, Parameter für jede Aufgabe manuell zu konfigurieren und auszuwählen, nennen viele den Prozess des Lernens von NS-Kunst.

Ressourcen


Sie müssen Millionen von Beispielen viele Male verarbeiten, viele Male: Sie haben Beispiele gegeben, der NS hat die Gewichte ein wenig angepasst, Sie haben dieselben Beispiele erneut angegeben, der NS hat die Gewichte erneut angepasst - und es gibt so viele „Epochen“. Wenn Sie die Kreuzvalidierung verwenden, geben Sie auch die Daten für verschiedene Partitionen in die Trainings- und Validierungsbeispiele ein, damit der NS nicht dieselben Daten erneut trainiert.

Welche Ressourcen können Sie sich ungefähr leisten? Ich wollte einen Top-End-Computer kaufen, der auf dem Kaby Lake 7700K (oder Razen 1800X) mit zwei NVidia GTX 1080-Grafikkarten basiert, die über SLI zusammenarbeiten. Und die Idee, dass seine Leistung der Leistung von zehn Jahre alten Supercomputern aus der Top500-Liste entspricht, hat meine Seele erwärmt. Wie lange wird es dauern, die Nationalversammlung darin zu schulen? Dies hängt natürlich von der Architektur des Netzwerks ab (Anzahl der Schichten, Anzahl der Neuronen in den Schichten, Verbindungen), Anzahl der Trainingsbeispiele und Hyperparameter. Was mich jedoch beeindruckt hat, war, dass ich mehrere Stunden auf der Website playground.tensorflow.org verbracht habe, damit ein kleines Netzwerk Punkte in einer Spirale im zweidimensionalen Raum korrekt klassifizieren kann. Nur zwei Dimensionen, nicht so viele Daten, aber so viel Zeit. Der Gewinner des ImageNet-Wettbewerbs lernte eine Woche lang das Netzwerk mit zwei Grafikkarten und wusste viel über Hyperparameter. Kaufen Sie kaum ein Dutzend Server. Hast du die Geduld, NA zu studieren?

Zusammenfassung : Es scheint mir, dass Sie zu Hause mit Hilfe der Nationalversammlung einige Probleme lösen können.

  • Die Größe der Trainingsstichprobe kann Hunderttausenden von Beispielen entsprechen.
  • Sie können eine Genauigkeit von ca. 80-90% erreichen.
  • NS-Training kann Tage dauern.

Dies ist meine intuitive Meinung und eine sehr grobe Schätzung, es kann falsch sein, ich werde froh sein, wenn jemand in den Kommentaren über die Aufgaben schreibt, die er zu Hause gelöst hat, wie viele Daten und welche Eigenschaften das Eisen hatte.

Vielen Dank für Ihre Aufmerksamkeit!

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


All Articles