Neuronen in 5 Minuten

Lassen Sie mich die Zeilen "Maschinelles Lernen" und "Neuronale Netze" in 5-10 Minuten nach dem Lesen und Verstehen eines kurzen Artikels zu Ihrem Lebenslauf hinzufügen. Für diejenigen, die weit vom Programmieren entfernt sind, werde ich alle Mythen über die Komplexität der KI zerstreuen und zeigen, dass die meisten Projekte zum maschinellen Lernen auf äußerst einfachen Prinzipien beruhen. Lass uns gehen - wir haben nur fünf Minuten.

Betrachten Sie das grundlegendste Beispiel für neuronale Netze - Perzeptrone; Ich selbst habe erst nach diesem Beispiel vollständig erkannt, wie neuronale Netze funktionieren. Wenn ich also nichts vermassle, können Sie verstehen. Denken Sie daran: Hier gibt es keine Magie, einfache Mathematik in der fünften Klasse der High School.

Angenommen, wir haben drei verschiedene binäre Bedingungen (ja oder nein) und eine binäre Lösung am Ausgang (ja oder nein):

Ein einfaches Modell mit drei Eingängen und einem Ausgang. Dieses Modell kann perfekt für verschiedene Personen funktionieren und ihnen unterschiedliche Ergebnisse liefern, je nachdem, wie sie das neuronale Netzwerk trainiert haben. Aber was ist ein neuronales Netzwerk? Dies sind nur separate Blöcke - Neuronen, die untereinander verbunden sind. Erstellen wir ein einfaches Neuron aus drei Neuronen:

Was Sie zwischen Eingabe und Ausgabe sehen, sind Neuronen. Bisher sind sie mit nichts verbunden, aber dies spiegelt auch ihr Hauptmerkmal wider, über das jeder vergisst zu sagen: Sie sind ein völlig abstrakter Shnyag. Das heißt, die Neuronen selbst lösen überhaupt nichts und entscheiden genau, was wir als nächstes zeichnen werden. Denken Sie in der Zwischenzeit daran: Neuronen tun überhaupt nichts im Neuron, außer das Konzept für den Menschen zu rationalisieren und zu vereinfachen. Zeichnen wir den wichtigsten Teil des Neurons - die Verbindung:

Wow, das klingt nach etwas super Coolem. Jetzt werden wir etwas Magie hinzufügen, wir werden das Neuron irgendwie mit unserer linken Ferse trainieren, uns an Ort und Stelle drehen, lachen, Pfeffer über die rechte Schulter unseres hinteren Nachbarn werfen und alles wird funktionieren, oder? Es stellt sich heraus, dass es noch einfacher ist.

Jeder Eingang links hat einen Wert: 0 oder 1, ja oder nein. Fügen wir diese Werte zur Eingabe hinzu, nehmen wir an, dass es auf der Party keinen Wodka gibt, es gibt Freunde, lassen Sie es regnen:

Also haben wir es herausgefunden. Was machen wir als nächstes? Und hier macht es Spaß: Verwenden wir den ältesten Weg, um den Anfangszustand von Neuronen festzulegen - den großen Zufall:

Die Zahlen, die wir festlegen, sind die Gewichte der Anleihen. Erinnerst du dich daran, dass Neuronen Bullshit leer sind? Kommunikation ist also genau das, woraus ein neuronales Netzwerk besteht. Aber wie schwer sind die Anleihen? Mit diesen Dingen multiplizieren wir die Eingabewerte und speichern sie vorübergehend in leeren Neuronen. Wir speichern es nicht wirklich, aber der Einfachheit halber stellen wir uns vor, dass etwas in Neuronen eingebaut werden kann:

Wie magst du Mathe? Könnte sich vermehren? Warten Sie, der schwierigste Teil hat gerade erst begonnen! Als nächstes fügen wir die Werte hinzu (in einer der Perzeptron-Implementierungen):

Nun, das ist es! Das Neuron wird erstellt und kann für alle Anforderungen verwendet werden. Wenn der Betrag mehr als 0,5 beträgt, müssen Sie zur Party gehen. Wenn weniger oder gleich, müssen Sie nicht zur Party gehen. Vielen Dank für Ihre Aufmerksamkeit!

Natürlich hat das obige Modell wenig praktischen Nutzen, wir müssen es trainieren. Der erschreckende Satz "Neuronen trainieren", nicht wahr? Nicht so. Alles ist ungeschickt und so einfach wie möglich: Sie nehmen zufällige Eingabedaten (wie wir), führen die Eingabe durch diese drei Neuronen, sehen sich die Antwort an - lassen Sie sie positiv sein (gehen Sie zur Party) - und prüfen Sie, ob das Neuron die Antwort richtig vorhergesagt hat oder nicht . Wenn richtig, nichts tun. Wenn es falsch ist, verschieben Sie die Gewichte der Neuronen (einzeln oder alle gleichzeitig) leicht in eine beliebige Richtung. Zum Beispiel so:

Und wieder überprüfst du: Oh, nun, wieder sagt er, er soll zur Party gehen, wenn ich nicht dorthin will! Und Sie verschieben die Gewichte erneut leicht (höchstwahrscheinlich in die gleiche Richtung) ein wenig und leiten diese Eingabedaten erneut durch die Neuronen und vergleichen das Ergebnis erneut - und lassen die Gewichte entweder in Ruhe oder verschieben sie erneut. Und so Billionen, Billiarden Mal und mit allen möglichen Eingabedaten. Hier haben wir natürlich nur 8 Eingabekombinationen, aber es gibt verschiedene Aufgaben (mehr dazu weiter unten).

Dies ist das Hauptprinzip der Arbeit neuronaler Netze - sowohl die Multiplikation ist zur Differenzierung erforderlich, als auch das Verständnis der Arbeit des Perzeptrons ist erforderlich, um Faltungsnetzwerke, rekursive Neuronen und sogar ein exotisches Spiel zu erzeugen.

Wenn Sie ein Neuron auf die Entscheidungen einer Person trainiert haben, sie milliardenfach durchlaufen haben und alle möglichen Gewichte von Neuronen durchlaufen haben, gelangen Sie schließlich zu einer goldenen und optimalen Mitte, sodass eine Person drei Anfangswerte eingibt - und die Maschine durchläuft bereits stabile und funktionierende Formel mit drei Neuronen und gibt eine Antwort.

Die einzigen drei Unbekannten in uns waren die Gewichte der Neuronenverbindungen, und genau diese gingen wir durch. Deshalb sage ich, dass Neuronen Dummies sind, die nichts lösen, und die Könige eines Banketts sind die Gewichte der Verbindungen.

Dann ist alles einfach: Anstelle einer Schicht von Neuronen machen wir zwei und sortieren alles wieder nach genau den gleichen Prinzipien, nur alle Neuronen geben bereits anderen Neuronen Werte. Wenn wir zuerst nur 3 Verbindungen hatten, jetzt 3 + 9 Verbindungen mit Gewichten. Und dann drei Ebenen, vier rekursive Ebenen, die auf sich selbst und dergleichen festgelegt sind:

Aber fragen Sie mich, sagen sie, was ist das Ergebnis von etwas Kompliziertem in Neuronen? Warum werden Spezialisten für maschinelles Lernen so viel bezahlt? Und genau so können Sie die oben genannten Perzeptrone implementieren: Es gibt so viele verschiedene Nuancen, dass Sie gequält werden, um sie aufzulisten.

Was ist, wenn Sie am Eingang ein Bild haben und alle Bilder der Hunde und Katzen kategorisieren müssen? Bilder haben eine Größe von 512 x 512, jedes Pixel ist eine Eingabe. Wie viele Werte werden wir also entlang der Neuronen verfolgen? Dafür gibt es Faltungsneuronen! Dies ist eine solche Shnyaga, die beispielsweise 9 Pixel nebeneinander nimmt und ihre RGB-Werte mittelt. Es stellt sich heraus, komprimiert das Bild für eine schnellere Verarbeitung. Oder zum Beispiel wird die rote Farbe im Bild vollständig entfernt, da dies nicht wichtig ist (wir suchen zum Beispiel nur grün-blaue Kleider). Dies sind Faltungsnetzwerke - eine zusätzliche Schicht von „Neuronen“ am Eingang, die die Eingabe für eine für das Netzwerk klare und vereinfachte Ansicht verarbeiten.

Sie müssen auch verstehen, wie viel und in welche Richtung Gewichte verschoben werden müssen - dafür gibt es alle möglichen einfachen Algorithmen zum Verständnis, die den Fehler vom Ende - von rechts (vom Ergebnis) nach links (zur ersten Schicht von Neuronen) - berücksichtigen. Einer der Algorithmen heißt Back Propagation.

Es gibt alle möglichen verdammt einfachen Algorithmen zum Normalisieren von Werten - so dass Sie Zahlen nicht von 0 bis 500 000, sondern von 0 bis 1 am Ausgang oder in der Mitte beim Hinzufügen erhalten - vereinfacht dies Berechnungen und Rechenmathematik erheblich.

Wie Sie bereits verstehen können, kennen wirklich coole Spezialisten für maschinelles Lernen nicht nur die meisten vorhandenen Methoden zum Aufbau optimierter neuronaler Netze, sondern entwickeln auch ihre eigenen Ansätze, beginnend mit dem einfachsten, aber tiefsten Verständnis der Ursache-Wirkungs-Beziehungen zwischen dem Aufbau eines Perzeptrons und warum es in Bezug auf Mathematik funktioniert. Sie können nicht nur das Neuron zum Laufen bringen, sondern auch den Algorithmus ändern oder einen anderen Algorithmus verwenden, um immer noch schnell und optimal zu laufen.

Nun, das ist alles - ich habe Ihnen die Grundlage gegeben, um zu verstehen, was neuronale Netze sind. Ich habe Ihnen hoffentlich auch gezeigt, dass der Teufel nicht so schrecklich ist, wie er gemalt wird - alles erwies sich als unglaublich einfach, auf der Ebene der Multiplikation und Addition. Dann rate ich dir, Tutorials auf YouTube oder Udemy anzuschauen - dort sind Jungs großartig, um alles Coole zu erklären.

Wenn sie Sie das nächste Mal um Geld für ein maschinelles Lernprojekt bitten, schütteln Sie die Bettler von den Bettlern mit den Umrissen der Arbeit neuronaler Netze - welche Schichten, wie sie organisiert sind, warum und warum, hier ist es und dort ist es nicht. All dies wird auf der Ebene von maximal 11 Klassen sein (es geht um Integrale und Differentiale) - und dann wird es in der Beschreibung einmal vorkommen, vielleicht zwei. Während das Projekt dieses Modell nicht hat (welche Schichten und wie befinden sich), hat das Projekt kein Produkt, da diese Struktur die ersten 2 bis 4 Wochen eines Spezialisten für maschinelles Lernen ist.

PS, ein Beispiel zur Erklärung, habe ich unverschämt aus einem großartigen Video über neuronale Netze gezogen. Ich rate Ihnen dringend, nachzuschauen - danke Jungs! Abonnenten halfen dabei, den Link zum Originalvideo wiederherzustellen. Ein Beispiel dafür habe ich versucht, aus dem Speicher wiederherzustellen. Wenn jemand daran interessiert ist, die obige Aufgabe zu codieren, lade ich Sie ein, dieses Video hier anzusehen. Vielen Dank an die Autoren!

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


All Articles