Was sind Neuronale Netze und wie funktionieren sie?

Neuronale Netze sind das nächste große Ding, wenn es um schwere Berechnungen und intelligente Algorithmen geht. So funktionieren sie und warum sind sie so großartig?

Neuronale Netze sind das nächste große Ding, wenn es um schwere Berechnungen und intelligente Algorithmen geht.  So funktionieren sie und warum sind sie so großartig?
Werbung

Wenn Sie mit Tech-Nachrichten Schritt halten, haben Sie wahrscheinlich das Konzept der neuronalen Netze (auch als neuronale Netze bekannt) gefunden.

Im Jahr 2016 hat beispielsweise Googles neuronales Netzwerk AlphaGo einen der besten professionellen Go-Spieler der Welt in einer 4-1-Serie geschlagen. YouTube hat außerdem angekündigt, dass sie neuronale Netze verwenden werden, um ihre Videos besser zu verstehen. YouTube nutzt neuronale Netze, um Videos wirklich zu verstehen. YouTube verwendet tatsächlich neuronale Netze, um Videos zu verstehen. YouTube kann frustrierend sein, weil YouTube die Videos nicht so sieht eine Person tut es. Kürzlich hat Google ein Patent angemeldet, das das ändern könnte. Weiterlesen . Dutzende anderer Geschichten mögen in den Sinn kommen.

Aber was genau ist ein neuronales Netzwerk? Wie funktioniert es? Und warum ist es so beliebt beim maschinellen Lernen?

Ein Computer wie ein Gehirn

Moderne Neurowissenschaftler diskutieren oft das Gehirn als eine Art Computer. Neuronale Netze zielen darauf ab, das Gegenteil zu tun: einen Computer zu bauen, der wie ein Gehirn funktioniert.

Natürlich haben wir nur ein oberflächliches Verständnis der extrem komplexen Funktionen des Gehirns, aber indem wir eine vereinfachte Simulation der Verarbeitung von Daten durch das Gehirn erstellen, können wir einen Computertyp erstellen, der ganz anders funktioniert als ein normaler Computer.

Computerprozessoren verarbeiten Daten seriell ("in order"). Sie führen eine Reihe von Operationen nacheinander mit einer Reihe von Daten aus. Die parallele Verarbeitung ("mehrere Streams gleichzeitig verarbeiten") beschleunigt den Computer erheblich, indem mehrere Prozessoren in Reihe geschaltet werden.

Im Beispiel unten erfordert das Beispiel für die parallele Verarbeitung fünf verschiedene Prozessoren:

serielle vs parallele Verarbeitung
Bildquelle: ExplainThatStuff

Ein künstliches neuronales Netzwerk (so genannt, um es von den tatsächlichen neuronalen Netzwerken im Gehirn zu unterscheiden) hat eine grundlegend andere Struktur. Es ist eng miteinander verbunden. Dies ermöglicht es, Daten sehr schnell zu verarbeiten, von diesen Daten zu lernen und ihre interne Struktur zu aktualisieren, um die Leistung zu verbessern.

Der hohe Vernetzungsgrad hat jedoch einige erstaunliche Auswirkungen. Zum Beispiel können neurale Netzwerke sehr gut obskure Muster in Daten erkennen.

Die Fähigkeit zu lernen

Die Fähigkeit eines neuronalen Netzwerks zu lernen ist seine größte Stärke. Mit der Standard-Computerarchitektur muss ein Programmierer einen Algorithmus entwickeln, der dem Computer mitteilt, was er mit eingehenden Daten tun soll, um sicherzustellen, dass der Computer die richtige Antwort ausgibt.

Eine Eingabe-Ausgabe-Antwort könnte so einfach sein wie "wenn die A-Taste gedrückt wird, Anzeige" A "auf dem Bildschirm" oder so kompliziert wie die Durchführung komplexer Statistiken. Neuronale Netze benötigen dagegen nicht die gleiche Art von Algorithmen. Durch Lernmechanismen können sie im Wesentlichen ihre eigenen Algorithmen entwickeln. 4 Maschinelle Lernalgorithmen, die Ihr Leben formen 4 Maschinelle Lernalgorithmen, die Ihr Leben prägen Sie mögen es nicht erkennen, aber maschinelles Lernen ist bereits um Sie herum und kann einen überraschenden Grad an Einfluss ausüben über dein Leben. Glaub mir nicht? Sie könnten überrascht sein. Lesen Sie mehr, um sicherzustellen, dass sie korrekt funktionieren.

Es ist wichtig zu beachten, dass, weil neuronale Netzwerke Softwareprogramme sind, die auf Maschinen geschrieben sind, die standardmäßige serielle Verarbeitungshardware verwenden, die derzeitige Technologie immer noch Grenzen auferlegt. Tatsächlich ist das Erstellen einer Hardwareversion eines neuronalen Netzwerks ein weiteres Problem.

Von Neuronen zu Knoten

Jetzt, da wir die Grundlagen dafür gelegt haben, wie neuronale Netzwerke funktionieren, können wir uns einige der Besonderheiten ansehen. Die grundlegende Struktur eines künstlichen neuronalen Netzwerks sieht folgendermaßen aus:

neuronale Netzarchitektur

Jeder der Kreise wird als "Knoten" bezeichnet und simuliert ein einzelnes Neuron. Auf der linken Seite sind Eingabeknoten, in der Mitte sind versteckte Knoten und auf der rechten Seite sind Ausgabeknoten.

In sehr einfachen Worten akzeptieren die Eingabeknoten Eingabewerte, die eine binäre 1 oder 0, ein Teil eines RGB-Farbwerts, der Status einer Schachfigur oder irgendetwas anderes sein können. Diese Knoten repräsentieren die Information, die in das Netzwerk fließt.

Jeder Eingangsknoten ist mit einer Anzahl versteckter Knoten verbunden (manchmal mit jedem versteckten Knoten, manchmal mit einer Untergruppe). Eingabeknoten nehmen die Informationen, die sie erhalten haben, und leiten sie an die verborgene Ebene weiter.

Zum Beispiel könnte ein Eingangsknoten ein Signal ("Feuer", im Sprachgebrauch der Neurowissenschaften) senden, wenn er eine 1 empfängt und inaktiv bleibt, wenn er eine Null empfängt. Jeder versteckte Knoten hat einen Schwellenwert: Wenn alle summierten Eingänge einen bestimmten Wert erreichen, wird er ausgelöst.

Von Synapsen zu Verbindungen

Jede Verbindung, die einer anatomischen Synapse entspricht, erhält ebenfalls ein spezifisches Gewicht, das es dem Netzwerk ermöglicht, eine stärkere Betonung auf die Aktion eines bestimmten Knotens zu legen. Hier ist ein Beispiel:

Neuronales Nettogewicht

Wie Sie sehen können, ist das Gewicht von Verbindung B höher als das von Verbindung A und C. Angenommen, versteckter Knoten 4 wird nur ausgelöst, wenn er eine Gesamteingabe von 2 oder mehr erhält. Das heißt, wenn 1 oder 3 alleine feuert, wird 4 nicht ausgelöst, aber 1 und 3 zusammen würden den Knoten auslösen. Knoten 2 könnte den Knoten auch alleine durch Verbindung B auslösen.

Nehmen wir das Wetter als praktisches Beispiel. Nehmen wir an, Sie entwerfen ein einfaches neuronales Netzwerk, um festzustellen, ob es eine Wintersturmwarnung geben sollte.

Unter Verwendung der obigen Verbindungen und Gewichte kann Knoten 4 nur ausgelöst werden, wenn die Temperatur unter 0 F liegt und die Winde über 30 MPH sind, oder er würde feuern, wenn es mehr als 70 Prozent Chance auf Schnee gibt. Die Temperatur würde in den Knoten 1, die Winde in den Knoten 3 und die Wahrscheinlichkeit von Schnee in den Knoten 2 eingespeist. Nun kann der Knoten 4 alle diese berücksichtigen, wenn er bestimmt, welches Signal an die Ausgabeschicht gesendet werden soll.

Besser als einfache Logik

Natürlich könnte diese Funktion einfach mit einfachen UND / ODER-Logikgattern ausgeführt werden. Aber komplexere neuronale Netze, wie das untenstehende, sind zu wesentlich komplexeren Operationen fähig.

neuronales Netz Beispiel
Bildquelle: Neuronale Netzwerke und Deep Learning von Michael A. Nielsen

Die Knoten der Ausgabeschicht funktionieren genauso wie die der verborgenen Ebenen: Ausgabeknoten summieren die Eingabe von der versteckten Ebene, und wenn sie einen bestimmten Wert erreichen, feuern die Ausgabeknoten und senden bestimmte Signale. Am Ende des Prozesses sendet die Ausgabeschicht eine Reihe von Signalen, die das Ergebnis der Eingabe anzeigen.

Während das oben gezeigte Netzwerk einfach ist, können tiefe neuronale Netzwerke viele versteckte Schichten und Hunderte von Knoten haben.

tiefes neuronales Netzwerk
Bildquelle: Neuronale Netzwerke und Deep Learning von Michael A. Nielsen

Fehler Korrektur

Der Prozess ist bisher relativ einfach. Aber wo neuronale Netze wirklich scheinen, ist Lernen. Die meisten neuronalen Netze verwenden einen Prozess namens Backpropagation, der Signale rückwärts durch das Netzwerk sendet.

Bevor Programmierer ein neurales Netzwerk bereitstellen, führen sie es durch eine Trainingsphase, in der es eine Reihe von Eingaben mit bekannten Ergebnissen erhält. Zum Beispiel kann ein Programmierer ein neuronales Netzwerk lehren, Bilder zu erkennen Verwenden Sie Ihr Smartphone, um alles mit CamFind zu identifizieren Verwenden Sie Ihr Smartphone, um alles mit CamFind zu identifizieren Diese App kann wirklich fast jedes Objekt identifizieren, das Sie darauf werfen. Das ist nicht nur cool, sondern auch praktisch! Weiterlesen . Die Eingabe könnte ein Bild eines Autos sein, und die korrekte Ausgabe wäre das Wort "Auto".

Der Programmierer stellt das Bild als Eingabe bereit und sieht, was aus den Ausgabeknoten kommt. Wenn das Netzwerk mit "Flugzeug" antwortet, sagt der Programmierer dem Computer, dass es falsch ist.

Das Netzwerk nimmt dann Anpassungen an seinen eigenen Verbindungen vor und ändert die Gewichte der verschiedenen Verbindungen zwischen den Knoten. Diese Aktion wird von einem spezifischen Lernalgorithmus geleitet, der dem Netzwerk hinzugefügt wird. Das Netzwerk passt Verbindungsgewichte weiterhin an, bis es die korrekte Ausgabe bereitstellt.

Dies ist eine Vereinfachung, aber neuronale Netze können hochkomplexe Operationen unter Verwendung ähnlicher Prinzipien erlernen.

Ständige Verbesserung

Auch nach dem Training geht die Backpropagation weiter - und hier werden neuronale Netze richtig cool. Sie lernen weiterhin so, wie sie gebraucht werden, integrieren neue Informationen und nehmen Verbesserungen an den Gewichten verschiedener Verbindungen vor und werden bei der Aufgabe, für die sie entworfen wurden, immer effektiver und effizienter.

Dies könnte so einfach wie die Bilderkennung oder so komplex wie Go sein.

Auf diese Weise ändern sich neuronale Netzwerke ständig und verbessern sich. Und das kann überraschende Effekte haben, die zu Netzwerken führen, die Dinge priorisieren, die ein Programmierer nicht für priorisiert gehalten hätte.

Neben dem oben skizzierten Prozess, der als überwachten Lernen bezeichnet wird, gibt es noch eine weitere Methode: unüberwachtes Lernen .

In dieser Situation nehmen neurale Netzwerke eine Eingabe vor und versuchen, sie genau in ihrer Ausgabe neu zu erstellen, indem sie Backpropagation verwenden, um ihre Verbindungen zu aktualisieren. Dies mag wie eine fruchtlose Übung klingen, aber auf diese Weise lernen Netzwerke, nützliche Funktionen zu extrahieren und diese Features zu verallgemeinern, um ihre Modelle zu verbessern.

Probleme der Tiefe

Backpropagation ist eine sehr effektive Möglichkeit, neuronale Netzwerke zu lehren, wenn sie nur wenige Schichten tief sind. Wenn die Anzahl der verborgenen Schichten zunimmt, nimmt die Effektivität der Rückpropagation ab. Dies ist ein Problem für tiefe Netzwerke. Mit Backpropagation sind sie oft nicht effektiver als einfache Netzwerke.

Die Wissenschaftler haben eine Reihe von Lösungen für dieses Problem gefunden, deren Einzelheiten ziemlich kompliziert sind und den Rahmen dieses einleitenden Teils sprengen würden. Was viele dieser Lösungen einfach zu erreichen versuchen, ist die Verringerung der Komplexität des Netzwerks, indem es darauf trainiert wird, die Daten zu "komprimieren".

neuronales Netzbeschneiden
Bildquelle: Song Han

Um dies zu tun, lernt das Netzwerk, eine kleinere Anzahl von identifizierenden Merkmalen der Eingabe zu extrahieren, und wird schließlich bei seinen Berechnungen effizienter. In der Tat macht das Netzwerk Verallgemeinerungen und Abstraktionen, ähnlich wie Menschen es lernen.

Nach diesem Lernen kann das Netzwerk Knoten und Verbindungen, die es für weniger wichtig hält, zurückschneiden. Dies macht das Netzwerk effizienter und das Lernen wird einfacher.

Neuronale Netzwerkanwendungen

Neuronale Netzwerke simulieren also, wie das Gehirn lernt, indem sie mehrere Ebenen von Knoten verwenden - Eingabe, Versteckt und Ausgabe - und sie können sowohl in überwachten als auch in unbeaufsichtigten Situationen lernen. Komplexe Netze sind in der Lage, Abstraktionen zu machen und zu verallgemeinern, sie effizienter zu machen und besser zu lernen.

Wofür können wir diese faszinierenden Systeme nutzen?

In der Theorie können wir neuronale Netze für fast alles verwenden. Und du hast sie wahrscheinlich benutzt, ohne es zu merken. Sie sind zum Beispiel sehr häufig bei Sprache und visueller Erkennung, weil sie lernen können, bestimmte Eigenschaften zu erkennen, die Geräusche oder Bilder gemeinsam haben.

Also, wenn Sie Siri fragen 8 Dinge, die Sie wahrscheinlich nicht realisiert haben Siri könnte 8 Dinge tun, die Sie wahrscheinlich nicht realisiert haben Siri könnte Siri ist eines der prägenden Merkmale des iPhone geworden, aber für viele Menschen ist es nicht immer das nützlichste. Während einige davon auf die Einschränkungen der Spracherkennung zurückzuführen ist, ist die ... Lesen Sie mehr wo die nächste Tankstelle ist, setzt Ihr iPhone Ihre Rede durch ein neuronales Netzwerk, um herauszufinden, was Sie sagen. Es kann ein anderes neuronales Netzwerk geben, das lernt, die Dinge vorauszusagen, nach denen Sie wahrscheinlich fragen werden.

Siri-Symbol

Selbstfahrende Autos könnten neuronale Netze verwenden, um visuelle Daten zu verarbeiten, dabei Straßenregeln zu befolgen und Kollisionen zu vermeiden. Roboter aller Art können von neuronalen Netzen profitieren, die ihnen helfen, Aufgaben effizient zu erledigen. Computer können lernen, Spiele wie Schach, Go und Atari Klassiker zu spielen. Wenn Sie jemals mit einem Chatbot gesprochen haben, besteht die Chance, dass er ein neuronales Netzwerk verwendet, um entsprechende Antworten zu bieten.

Die Internetrecherche kann von neuronalen Netzen profitieren, da das hocheffiziente Parallelverarbeitungsmodell eine große Menge an Daten schnell verarbeiten kann. Ein neuronales Netzwerk könnte auch Ihre Gewohnheiten erlernen, um Ihre Suchergebnisse zu personalisieren oder vorherzusagen, wonach Sie in naher Zukunft suchen werden. Dieses Vorhersagemodell wäre offensichtlich für Vermarkter (und jeden anderen, der ein komplexes menschliches Verhalten voraussagen muss) sehr wertvoll.

Bilderkennung, optische Zeichenerkennung Die 5 besten OCR-Tools zum Extrahieren von Text aus Bildern Die 5 besten OCR-Tools zum Extrahieren von Text aus Bildern Wenn Sie viel Papier haben, wie erhalten Sie den gesamten gedruckten Text in etwas, das ein digitales Programm sein wird fähig zu erkennen und zu indizieren? Halten Sie eine gute OCR-Software in der Nähe. Lesen Sie mehr, Börsenprognose, Routenfindung, Big Data-Verarbeitung, medizinische Kostenanalyse, Umsatzprognosen, Videospiel AI ... die Möglichkeiten sind fast endlos. Die Fähigkeit neuronaler Netzwerke, Muster zu lernen, Verallgemeinerungen zu machen und Verhalten erfolgreich vorherzusagen, macht sie in unzähligen Situationen wertvoll.

Die Zukunft der Neuronalen Netze

Neuronale Netze haben sich von sehr einfachen Modellen zu hochkomplexen Lernsimulationen entwickelt. Sie sind in unseren Telefonen, unseren Tablets und vielen der von uns genutzten Webdienste enthalten. Es gibt viele andere Maschinenlernsysteme da draußen.

Aber neuronale Netze sind wegen ihrer Ähnlichkeit (auf sehr vereinfachte Weise) mit dem menschlichen Gehirn einige der faszinierendsten. Während wir Modelle weiterentwickeln und verfeinern, können wir nicht sagen, wozu sie in der Lage sind.

Kennen Sie interessante Anwendungen neuronaler Netze? Hast du selbst Erfahrung damit? Was findest du an dieser Technologie am interessantesten? Teilen Sie Ihre Gedanken in den Kommentaren unten!

In this article