Was sind neuronale Netze und wie funktionieren sie?
Wenn Sie mit den technischen Neuigkeiten Schritt halten, sind Sie wahrscheinlich auf das Konzept von gestoßen Neuronale Netze (auch als neuronale Netze bekannt).
Im Jahr 2016 schlug beispielsweise das neuronale Netzwerk AlphaGo von Google einen der besten professionellen Go-Spieler der Welt in einer 4: 1-Serie. YouTube kündigte außerdem an, neuronale Netzwerke zu verwenden, um seine Videos besser zu verstehen. YouTube wird neuronale Netzwerke verwenden, um Videos wirklich zu verstehen. YouTube wird neuronale Netzwerke verwenden, um Videos wirklich zu verstehen Eine Person tut es. Kürzlich hat Google ein Patent angemeldet, das dies ändern könnte. Weiterlesen . Dutzende von anderen Geschichten können mir einfallen.
Aber was genau ist ein neuronales Netzwerk? Wie funktioniert es? Und warum ist es beim maschinellen Lernen so beliebt??
Ein Computer wie ein Gehirn
Moderne Neurowissenschaftler diskutieren oft das Gehirn als eine Art Computer. Neuronale Netze zielen auf das Gegenteil: Sie bauen einen Computer, der wie ein Gehirn funktioniert.
Natürlich haben wir nur ein flüchtiges 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 sich stark von einem Standardcomputer unterscheidet.
Computerprozessoren verarbeiten Daten seriell (“in Ordnung”). Sie führen viele Operationen für eine Reihe von Daten einzeln durch. Parallelverarbeitung (“Verarbeitung mehrerer Streams gleichzeitig”) beschleunigt den Computer erheblich, indem mehrere Prozessoren in Reihe geschaltet werden.
In der Abbildung unten sind für das Parallelverarbeitungsbeispiel fünf verschiedene Prozessoren erforderlich:
Ein künstliches neuronales Netzwerk (so genannt, um es von den eigentlichen neuronalen Netzwerken im Gehirn zu unterscheiden) hat eine grundlegend andere Struktur. Es ist stark miteinander verbunden. Dies ermöglicht es, Daten sehr schnell zu verarbeiten, aus diesen Daten zu lernen und ihre eigene interne Struktur zu aktualisieren, um die Leistung zu verbessern.
Die hohe Vernetzung hat jedoch einige erstaunliche Auswirkungen. Beispielsweise können neuronale Netzwerke sehr gut dunkle Muster in Daten erkennen.
Die Fähigkeit zu lernen
Die Fähigkeit eines neuronalen Netzwerks zu lernen ist seine größte Stärke. Bei einer Standard-Computerarchitektur muss ein Programmierer einen Algorithmus entwickeln, der dem Computer mitteilt, was mit eingehenden Daten zu tun ist, 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, zeigen Sie 'A' auf dem Bildschirm an” oder so kompliziert wie das Durchführen komplexer Statistiken. Neuronale Netze benötigen dagegen nicht die gleichen Algorithmen. Durch Lernmechanismen können sie im Wesentlichen ihre eigenen Algorithmen entwerfen. 4 Maschinelle Lernalgorithmen, die Ihr Leben prägen 4 Maschinelle Lernalgorithmen, die Ihr Leben prägen Sie werden es vielleicht nicht erkennen, aber maschinelles Lernen ist bereits um Sie herum und kann einen überraschenden 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 wissen, dass neuronale Netze Softwareprogramme sind, die auf Maschinen geschrieben sind, die Standardhardware für die serielle Verarbeitung verwenden. Das Erstellen einer Hardwareversion eines neuronalen Netzwerks ist ein weiteres Problem.
Von Neuronen zu Knoten
Nun, da wir die Grundlagen dafür geschaffen haben, wie neuronale Netzwerke funktionieren, können wir uns jetzt mit einigen Besonderheiten beschäftigen. Die Grundstruktur eines künstlichen neuronalen Netzwerks sieht folgendermaßen aus:
Jeder der Kreise heißt a “Knoten” und es simuliert ein einzelnes Neuron. Links sind Eingabeknoten, in der Mitte verborgene Knoten und rechts Ausgabeknoten.
Im Grunde genommen akzeptieren die Eingabeknoten Eingabewerte, die eine binäre 1 oder 0 sein können, Teil eines RGB-Farbwerts, den Status einer Schachfigur oder etwas anderes. Diese Knoten repräsentieren die Informationen, die in das Netzwerk fließen.
Jeder Eingangsknoten ist mit einer Anzahl von verborgenen Knoten verbunden (manchmal mit jedem verborgenen Knoten, manchmal mit einer Teilmenge). Eingangsknoten übernehmen die Informationen, die sie erhalten, und geben sie an die verborgene Ebene weiter.
Beispielsweise kann ein Eingangsknoten ein Signal senden (“Feuer,” in der Sprache der Neurowissenschaften), wenn sie eine 1 empfängt und ruhend bleibt, wenn sie eine Null erhält. Jeder verborgene 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 auch ein bestimmtes Gewicht, wodurch das Netzwerk die Wirkung eines bestimmten Knotens stärker hervorheben kann. Hier ist ein Beispiel:
Wie Sie sehen, ist das Gewicht der Verbindung B höher als das der Verbindung A und C. Nehmen wir an, der versteckte Knoten 4 wird nur ausgelöst, wenn er eine Gesamteingabe von 2 oder mehr erhält. Das heißt, wenn 1 oder 3 alleine feuern, 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. Angenommen, Sie entwerfen ein einfaches neuronales Netzwerk, um zu bestimmen, ob eine Warnung vor einem Wintersturm vorliegen soll.
Bei Verwendung der oben genannten Verbindungen und Gewichte kann Knoten 4 nur dann ausgelöst werden, wenn die Temperatur unter 0 ° C und Wind über 30 km / h liegt, oder er würde schießen, wenn mehr als 70 Prozent Schnee möglich ist. Die Temperatur würde in den Knoten 1 eingespeist, der Knoten zum Knoten 3 und die Schneewahrscheinlichkeit in den Knoten 2 geleitet. Nun kann der Knoten 4 all dies berücksichtigen, wenn er bestimmt, welches Signal an die Ausgangsschicht gesendet werden soll.
Besser als einfache Logik
Natürlich kann diese Funktion einfach mit einfachen UND / ODER-Logikgattern implementiert werden. Komplexere neuronale Netze wie das unten beschriebene können jedoch wesentlich komplexere Operationen durchführen.
Ausgabeschichtknoten funktionieren auf dieselbe Weise wie verborgene Schichtknoten: Ausgabeknoten summieren die Eingabe von der verborgenen Schicht. Wenn sie einen bestimmten Wert erreichen, werden die Ausgabeknoten ausgelöst und senden bestimmte Signale. Am Ende des Prozesses sendet die Ausgabeschicht einen Satz von Signalen, die das Ergebnis der Eingabe anzeigen.
Während das oben gezeigte Netzwerk einfach ist, können tiefe neuronale Netzwerke viele verborgene Schichten und Hunderte von Knoten haben.
Fehler Korrektur
Der Prozess ist bisher relativ einfach. Wo neuronale Netze wirklich glänzen, ist das Lernen. Die meisten neuronalen Netze verwenden einen aufgerufenen Prozess Backpropagation, die sendet Signale rückwärts durch das Netzwerk.
Bevor Programmierer ein neuronales Netzwerk einsetzen, durchlaufen sie eine Trainingsphase, in der sie eine Reihe von Eingaben mit bekannten Ergebnissen erhalten. Ein Programmierer kann beispielsweise einem neuronalen Netzwerk beibringen, 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 jedes Objekt identifizieren, das Sie darauf werfen. Das ist nicht nur cool, sondern hat auch eine Reihe praktischer Anwendungen! 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 antwortet “Flugzeug,” Der Programmierer teilt dem Computer mit, dass er falsch ist.
Das Netzwerk nimmt dann Anpassungen an seinen eigenen Verbindungen vor und ändert die Gewichtung der verschiedenen Verbindungen zwischen Knoten. Diese Aktion wird von einem spezifischen Lernalgorithmus geleitet, der dem Netzwerk hinzugefügt wird. Das Netzwerk passt die Verbindungsgewichte so lange an, bis die korrekte Ausgabe erfolgt.
Dies ist eine Vereinfachung, aber neuronale Netzwerke können hochgradig komplexe Operationen mit ähnlichen Prinzipien erlernen.
Ständige Verbesserung
Auch nach dem Training geht die Backpropagation weiter - und hier werden neuronale Netzwerke richtig cool. Sie lernen immer wieder, wenn sie gebraucht werden, integrieren neue Informationen und passen die Gewichte verschiedener Verbindungen an, werden bei der Aufgabe, für die sie entwickelt wurden, immer effektiver und effizienter.
Dies kann so einfach sein wie die Bilderkennung oder so komplex wie das Go-Spiel.
Auf diese Weise verändern und verbessern sich neuronale Netzwerke ständig. Und dies kann überraschende Auswirkungen haben, was zu Netzwerken führt, die Prioritäten setzen, die ein Programmierer nicht für vorrangig gehalten hätte.
Zusätzlich zu dem oben beschriebenen Prozess, der aufgerufen wird überwachtes Lernen, Es gibt auch eine andere Methode: unbeaufsichtigtes Lernen.
In dieser Situation nehmen neuronale Netzwerke eine Eingabe in Anspruch und versuchen, sie in ihrer Ausgabe genau neu zu erstellen, indem sie Backpropagation verwenden, um ihre Verbindungen zu aktualisieren. Dies mag nach einer erfolglosen Übung klingen, aber auf diese Weise lernen Netzwerke, nützliche Funktionen zu extrahieren und diese zu generalisieren, um ihre Modelle zu verbessern.
Ausgaben der Tiefe
Backpropagation ist eine sehr effektive Methode, um neuronale Netzwerke zu unterrichten, wenn sie nur wenige Schichten tief sind. Wenn die Anzahl der verborgenen Schichten zunimmt, nimmt die Wirksamkeit der Backpropagation ab. Dies ist ein Problem für tiefe Netzwerke. Mit Backpropagation sind sie oft nicht effektiver als einfache Netzwerke.
Wissenschaftler haben eine Reihe von Lösungen für dieses Problem gefunden, deren Einzelheiten ziemlich kompliziert sind und den Rahmen dieses einleitenden Artikels sprengen. Viele dieser Lösungen versuchen in einfachen Worten, die Komplexität des Netzwerks zu verringern, indem sie darauf trainiert werden “komprimieren” die Daten.
Um dies zu tun, lernt das Netzwerk, eine kleinere Anzahl von identifizierenden Merkmalen der Eingabe zu extrahieren, was letztendlich in seinen Berechnungen effizienter wird. Tatsächlich macht das Netzwerk Verallgemeinerungen und Abstraktionen, so wie es die Menschen lernen.
Nach diesem Lernen kann das Netzwerk Knoten und Verbindungen reduzieren, die ihm weniger wichtig erscheinen. Dadurch wird das Netzwerk effizienter und das Lernen wird einfacher.
Neuronale Netzwerkanwendungen
Neuronale Netzwerke simulieren also, wie das Gehirn lernt, indem sie mehrere Schichten von Knoten (Eingabe, verborgene und Ausgabe) verwenden, und sie können sowohl in überwachten als auch in unbeaufsichtigten Situationen lernen. Komplexe Netze können Abstraktionen machen und verallgemeinern, wodurch sie effizienter und lernfähiger werden.
Wofür können wir diese faszinierenden Systeme einsetzen??
Theoretisch können wir neuronale Netzwerke für fast alles verwenden. Und du hast sie wahrscheinlich benutzt, ohne es zu merken. Sie sind zum Beispiel in der Sprach- und visuellen Erkennung sehr verbreitet, weil sie lernen können, bestimmte Merkmale herauszufinden, die Töne oder Bilder gemeinsam haben.
Wenn Sie also nach Siri fragen: 8 Dinge, die Sie wahrscheinlich nicht erkannt haben, könnte Siri 8 Dinge tun, die Sie wahrscheinlich nicht erkannt haben. Siri könnte tun, dass Siri zu einer der bestimmenden Funktionen des iPhone geworden ist, aber für viele Menschen ist es nicht immer das Nützlichste. Ein Teil davon ist auf die Einschränkungen der Spracherkennung, die Seltsamkeit der Verwendung der nächsten Tankstelle zurückzuführen. Ihr iPhone sendet Ihre Sprache jedoch durch ein neuronales Netzwerk, um herauszufinden, was Sie sagen. Möglicherweise gibt es ein anderes neuronales Netzwerk, das die Art von Dingen vorhersagt, nach denen Sie wahrscheinlich fragen.
Selbstfahrende Autos könnten neuronale Netze verwenden, um visuelle Daten zu verarbeiten, um dadurch Straßenregeln zu folgen und Kollisionen zu vermeiden. Roboter aller Art können von neuronalen Netzwerken profitieren, die ihnen helfen, Aufgaben effizient zu erledigen. Computer können lernen, Spiele wie Schach, Go und zu spielen Atari Klassiker. Wenn Sie jemals mit einem Chatbot gesprochen haben, besteht die Möglichkeit, dass er ein neuronales Netzwerk verwendet, um entsprechende Antworten zu bieten.
Die Internetsuche kann stark von neuronalen Netzen profitieren, da durch das hocheffiziente Parallelverarbeitungsmodell viele Daten schnell abgewandelt werden können. 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 natürlich für Vermarkter (und alle anderen Personen, die komplexes menschliches Verhalten vorhersagen müssen) 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 eine Unmenge Papier haben, wie können Sie den gesamten gedruckten Text in etwas konvertieren, das ein digitales Programm sein wird in der Lage zu erkennen und zu indizieren? Bewahren Sie eine gute OCR-Software in der Nähe auf. Lesen Sie mehr, Börsenprognose, Routenfindung, Verarbeitung von Big Data, Analyse der medizinischen Kosten, Prognose von Umsatz, Videospiel-KI… die Möglichkeiten sind nahezu unbegrenzt. Die Fähigkeit neuronaler Netzwerke, Muster zu lernen, Verallgemeinerungen vorzunehmen und Verhalten erfolgreich zu prognostizieren, macht sie in unzähligen Situationen wertvoll.
Die Zukunft neuronaler Netze
Neuronale Netzwerke haben sich von sehr einfachen Modellen zu hochkomplexen Lernsimulationen entwickelt. Sie befinden sich in unseren Handys, auf unseren Tablets und führen viele der von uns verwendeten Webdienste aus. Es gibt viele andere maschinelle Lernsysteme.
Aber die neuronalen Netzwerke sind aufgrund ihrer (sehr vereinfachten) Ähnlichkeit mit dem menschlichen Gehirn einige der faszinierendsten. Während wir Modelle weiterentwickeln und verfeinern, wissen wir nicht, wozu sie in der Lage sind.
Kennen Sie interessante Anwendungen neuronaler Netze? Hast du selbst Erfahrung mit ihnen? Was ist an dieser Technologie am interessantesten? Teilen Sie Ihre Gedanken in den Kommentaren unten mit!
Erfahren Sie mehr über: Zukunftsforschung, Neuronale Netze, Technologie.