Ein tiefes neuronales Netz (Deep Neural Network, DNN) ist eine Technik des maschinellen Lernens, die es einem Computer ermöglicht, durch Training Aufgaben auszuführen, die mit herkömmlichen Programmiertechniken nur sehr schwer zu bewältigen wären. Die Algorithmen neuronaler Netze wurden vom menschlichen Gehirn und seinen Funktionen inspiriert: Wie unser menschlicher Verstand sind sie so konzipiert, dass sie nicht nur nach einer vorgegebenen Liste von Regeln arbeiten, sondern auch Lösungen vorhersagen und Schlussfolgerungen auf der Grundlage früherer Iterationen und Erfahrungen ziehen.
Was ist die Architektur neuronaler Netze?
Ein neuronales Netz besteht aus mehreren Schichten von Knoten, die Eingaben von anderen Schichten erhalten und eine Ausgabe erzeugen, bis ein Endergebnis erreicht ist. Neuronale Netze können eine beliebige Anzahl von versteckten Schichten haben: Je mehr Schichten von Knoten im Netz vorhanden sind, desto höher ist die Komplexität. Hier sind verschiedene Architekturen neuronaler Netze aufgeführt:
- Herkömmliche neuronale Netze, die in der Regel aus 2 oder 3 versteckten Schichten bestehen;
- Deep Learning-Netzwerk, das bis zu 150 versteckte Schichten haben kann;
Was ist der Unterschied zwischen neuronalen Netzen und tiefen neuronalen Netzen?
Ein tiefes neuronales Netz ist ein viel komplizierteres System als ein "einfaches" neuronales System. Ein neuronales Netz ist mit einem Schachspiel vergleichbar und verhält sich nach Algorithmen: je nach den Zügen und Aktionen des Gegners werden verschiedene Taktiken vorgeschlagen. Dieses neuronale Netz ist auf die Eingaben des Programmierers beschränkt:
- Wie bewegen sich die Schachfiguren;
- Die Größe des Schachbretts;
- Verschiedene Strategien für verschiedene Situationen;
Ein neuronales Netz, das über die Eingabedaten hinausgeht und aus früheren Erfahrungen lernen kann, wird zu einem tiefen neuronalen Netz
Auf demselben Computer könnte man z. B. ein neuronales Netz trainieren, dann mit ihm gegen andere Menschen spielen und es dabei lernen lassen. Wenn ein neuronales Netzwerk von verschiedenen Spielern lernen kann, könnte es schwierig oder buchstäblich unmöglich werden, ein tiefes neuronales Netzwerk zu besiegen, selbst für Schachmeister.
Tiefe neuronale Netze können Sprachbefehle erkennen, Stimmen identifizieren, Töne und Grafiken erkennen und viel mehr tun als ein neuronales Netz. Deep-Learning-Netze nutzen "Big Data" zusammen mit Algorithmen, um ein Problem zu lösen, und diese tiefen neuronalen Netze können Probleme mit begrenztem oder ohne menschlichen Input lösen.
Wie visualisiert man die Arbeit eines tiefen neuronalen Netzes?
Der Prozess eines tiefen neuronalen Netzes lässt sich am besten anhand eines Beispiels verstehen. Stellen Sie sich vor, Sie hätten Hunderttausende von Bildern, auf denen einige Hunde zu sehen sind, und Sie wollten ein Computerprogramm schreiben, das Hunde auf Bildern erkennt.
Sie haben zwei Möglichkeiten. Sie können ein Programm schreiben, das Hunde explizit identifiziert, oder Sie können ein Programm schreiben, das "lernt", wie man Hunde identifiziert.
Unklugerweise entscheiden Sie sich für Ersteres.
Die Anwendung herkömmlicher Programmiertechniken ist langwierig und schwierig, und die Ergebnisse sind nicht immer genau.
Um Hundebilder zu erkennen, erstellt man ein Softwareprogramm mit "Wenn"- und "Dann"-Anweisungen, bei dem die Wahrscheinlichkeit, dass es sich um einen Hund handelt, jedes Mal erhöht wird, wenn man ein hundeähnliches Merkmal wie Fell, Schlappohren und einen Schwanz erkennt. Diese Art von neuronalem System ist jedoch in vielerlei Hinsicht schwierig:
Wenn ein Pixelhaufen beispielsweise einem Schwanz ähnelt, erhöht sich die Wahrscheinlichkeit, dass es sich um einen Hund handelt. Ihr tiefes neuronales Netzwerk muss Gruppen von Pixeln identifizieren, die den hundeähnlichen Attributen entsprechen. Selbst wenn Ihnen das gelingt, gibt es Probleme für Ihren Algorithmus:
- Viele fotografierte Objekte weisen einige hundeähnliche Merkmale auf, insbesondere Fotos von ähnlichen Tieren. Sie werden Regeln hinzufügen müssen;
- Manchmal sind die Attribute zwar vorhanden, aber verdeckt. Ihre Algorithmen werden sie nicht erkennen;
- Manchmal sind Attribute nur dann von Bedeutung, wenn andere Attribute vorhanden sind. Es werden mehr Entscheidungsregeln benötigt;
Ihre Klassifizierung schlägt fehl. Sie stellen fest, dass Sie nicht in der Lage sind, alle Attribute manuell zu ermitteln, geschweige denn alle Regeln zu entwickeln, die für die Behandlung all dieser Sonderfälle erforderlich sind.
Sie geben wohlweislich auf und entscheiden sich für den letzteren Ansatz. Sie verwenden ein neuronales Netz oder noch besser ein tiefes neuronales Netz.
Ein Deep-Learning-Modell kann Ihnen Zeit bei der Programmierung sparen und bessere Ergebnisse liefern
Das neuronale Netz heißt so, weil es eine Ähnlichkeit zwischen diesem Programmieransatz und der Arbeitsweise des Gehirns gibt.
Genau wie das Gehirn verwenden die Algorithmen des neuronalen Netzes ein Netz von Neuronen oder Knoten. Und wie das Gehirn sind diese Neuronen diskrete Funktionen (oder kleine Maschinen, wenn Sie so wollen), die Eingaben entgegennehmen und Ausgaben erzeugen. Diese Knoten sind in Schichten angeordnet, wobei die Ausgaben der Neuronen in einer Schicht zu Eingaben für die Neuronen in der nächsten Schicht werden, bis die Neuronen in der äußeren Schicht des Netzes das Endergebnis erzeugen.
Es gibt also Schichten von Neuronen, wobei jedes einzelne Neuron sehr begrenzte Eingaben erhält und sehr begrenzte Ausgaben erzeugt, genau wie im Gehirn. Die erste Schicht (oder Eingabeschicht) der Neuronen nimmt die Eingaben auf und die letzte Schicht der Neuronen (oder Ausgabeschicht) im Netzwerk gibt das Ergebnis aus.
Ist es richtig, diese Art von Algorithmus als "neuronales Netz" zu bezeichnen?
Das menschliche Gehirn ist natürlich viel komplexer und leistungsfähiger als ein neuronales Netz. Die Bezeichnung des Algorithmus als "tiefes neuronales Netz" war ein Markencoup, aber sie könnte unrealistische Erwartungen an das wecken, was mit diesen Techniken erreicht werden kann. Dennoch gibt es Leute, die versuchen, das Gehirn mit Hilfe eines sehr komplexen neuronalen Netzes umzugestalten, in der Hoffnung, dass sie auf diese Weise in der Lage sein werden, allgemeine, menschenähnliche Intelligenz in der Bot-Entwicklung zu replizieren. Wie können uns also ein neuronales Netz und Techniken des maschinellen Lernens bei unserem Problem der Hundeerkennung helfen?
Anstatt hundeähnliche Attribute manuell zu definieren, kann ein tiefer neuronaler Netzwerkalgorithmus die wichtigen Attribute identifizieren und alle Sonderfälle ohne Programmierung behandeln.
Wie funktioniert ein tiefes neuronales Netz?
Dies geschieht folgendermaßen:
Jedes Neuron auf der Eingabeschicht erhält ein Stück Information aus dem Bild als Eingabe und gewichtet dann zufällig (zwischen null und eins), ob diese Information auf einen Hund hindeutet oder nicht. Eine niedrige Gewichtung (weniger als 0,5) bedeutet, dass es weniger wahrscheinlich ist, dass die Information mit einem Hund assoziiert ist, und eine hohe Gewichtung bedeutet, dass es wahrscheinlicher ist, dass die Information mit einem Hund assoziiert ist. Dieser Ansatz eines mehrschichtigen neuronalen Netzwerks wird als Deep Learning bezeichnet. Neuronale Netze und Deep Learning sind sehr leistungsfähige Techniken, um das Verständnis von Computern zu verbessern.
Tiefe neuronale Netze bestehen aus mehreren Schichten von Knotenpunkten, die sich wie Neuronen in unserem Gehirn verhalten
Um mit tiefen neuronalen Netzen fortzufahren, werden die Gewichte dieser Neuronen dann als Eingaben in die anderen Schichten von Neuronen eingespeist, die ebenfalls zufällig Gewichte zuweisen und sie als Eingaben an weitere Neuronen im Netz weitergeben. Dies wird so lange fortgesetzt, bis die Ausgangsschicht der Neuronen ein binäres Urteil abgibt. Wenn der Durchschnitt der an sie weitergegebenen Gewichte größer als 0,5 ist, handelt es sich um einen Hund, andernfalls nicht. Diese Verbindungen zwischen den Neuronen und ihre Aktivierung über mehrere Knotenschichten hinweg sind es, die den Anwendungen tiefer neuronaler Netze ihre Stärke verleihen.
Woher weiß ein tiefes neuronales Netz, ob es die richtige Antwort gibt?
Relevante Fragen an dieser Stelle sind: Hat das tiefe neuronale Netz richtig geraten oder nicht und was passiert, wenn es richtig geraten hat oder nicht richtig geraten hat? Und woher weiß ein neuronales Netz, ob es richtig geraten hat oder nicht?
Eine Möglichkeit, dies zu erkennen, besteht darin, dass Sie die äußerst zeitaufwändige Klassifizierungsaufgabe übernehmen und alle Fotos mit "Hund" oder "nicht Hund" kennzeichnen, je nachdem, ob ein Hund auf dem Foto zu sehen ist oder nicht. Das neuronale Netz schaut sich einfach das Etikett an, um zu sehen, ob es den Hund richtig identifiziert hat oder nicht.
Und natürlich interessieren wir uns nicht dafür, ob die Frage "Hund oder nicht" bei einem einzigen Hundebild richtig beantwortet wurde. Uns interessiert, ob es die Frage bei jedem Foto richtig gestellt hat, oder zumindest, wie viel Prozent der Zeit es richtig eingeschätzt hat, ob ein Hund auf dem Bild zu sehen war oder nicht.
Wie lernen tiefe neuronale Netze durch Training?
Ein neuronales Netz lernt bei jeder Iteration aus den Daten, um seine Genauigkeit zu verbessern
Bei einem bestimmten Satz von Gewichten für alle Neuronen im Netz wird das neuronale Netz für alle Fotos Vermutungen anstellen und dann ermitteln, wie genau es war. In wie viel Prozent der Fälle hat es das richtige Ergebnis erhalten, d. h. der Hund war auf dem Foto, wenn er auf dem Foto war, und wie oft hat es das falsche Ergebnis erhalten, d. h. der Hund war auf dem Foto, wenn er nicht auf dem Foto war, oder der Hund war nicht auf dem Foto, wenn er auf dem Foto war. Dieser Hinweis darauf, wie genau der KI-Algorithmus ist, ist ein wichtiges Feedback für das neuronale Netzmodell.
Nachdem das Programm alle Fotos einmal durchlaufen hat, kann es einige der Gewichtungen zufällig (oder auf andere Weise) anpassen und dann die ganze Übung des Erratens, was auf dem Foto ist, erneut durchführen. Wenn das Ergebnis des zweiten Durchlaufs besser ist, wird es beibehalten, anstatt zum vorherigen Satz von Gewichtungen zurückzukehren. Wenn das Ergebnis des zweiten Durchlaufs schlechter ist, kann es zum vorherigen Satz von Gewichten zurückkehren und dann verschiedene Änderungen an diesen Gewichten ausprobieren.
Dieser Prozess wird so lange fortgesetzt, bis das neuronale Netz (hoffentlich) in der Lage ist, Hunde auf Fotos zu erkennen.
Wenn der Algorithmus Hunde genau identifizieren kann, gilt er als konvergiert. Er wurde erfolgreich auf die Identifizierung von Hunden "trainiert".
Welche verschiedenen Arten von neuronalen Netzen gibt es?
Faltungsneuronale Netze
Faltungsneuronale Netze (Convolutional Neural Networks, CNN) sind eine Art der künstlichen Intelligenz, die darauf ausgelegt ist, große Datensätze zu verarbeiten bzw. daraus zu lernen. Convolutional neural network ist ein neu geprägter Begriff, der speziell diese Art von Netzwerk oder KI-Technologie im Allgemeinen beschreibt.
CNNs sind leistungsstarke KI-Tools für die Bilderkennung, die mithilfe von Deep Learning nicht nur generative, sondern auch beschreibende Aufgaben erfüllen. Beispiele für generative Aufgaben sind automatisches Zuschneiden, Schreiben von Bildunterschriften, Videografie, Vervielfältigung und Bildüberlagerungen. Ein neuronales Faltungsnetzwerk enthält so genannte Faltungsschichten. Jedes Neuron in diesen Schichten verarbeitet nur Informationen aus einem kleinen Teil des Gesichtsfelds. Die Eingaben jedes Neurons werden wie eine Prüfsumme aneinandergereiht, um eine Merkmalskarte zu erstellen.
Künstliche neuronale Netze
Ein künstliches neuronales Netz (ANN) ist ein Netz aus vielen Perceptrons in verschiedenen Tiefen oder Schichten, das als logistische Regression verstanden werden kann. ANN wird oft als Feed Forward Neural Network bezeichnet, da die Eingaben nur in Vorwärtsrichtung verarbeitet werden: Eine Schicht erhält eine Eingabe und sendet eine Ausgabe in linearer Weise.
Künstliche neuronale Netze werden auch als universelle Funktionsapproximatoren bezeichnet. Reine neuronale Netzalgorithmen wie ANNs und Mapping-Funktionen, die als Deep Learning implementiert werden können, ermöglichen es Computern, jede beliebige Funktion zu lernen. Einer der Gründe, warum die universelle Approximation wichtig ist, ist die Aktivierungsfunktion. Aktivierungsfunktionen führen nichtlineare Eigenschaften in das Netz ein, während es eine komplexe Beziehung zwischen Eingabe und Ausgabe lernt. Sie hilft verschiedenen Arten des Netzes, voneinander zu lernen.
Wie verbessert sich ein tiefes neuronales Netz im Laufe der Zeit?
Eine Möglichkeit, sich vorzustellen, was der Algorithmus tut, ist, sich jedes Neuron als eine Art Gewissheitstest vorzustellen. Anstatt all diese Wenn-dann-Anweisungen zur Identifizierung von Hunden zu kodieren, wird jedes Neuron so kalibriert, dass es zu dem endgültigen Urteil, dass es sich bei dem Objekt auf dem Foto um einen Hund handelt, beiträgt oder davon abweicht. Es ist, als ob das Urteil (z. B. Hund oder nicht) in eine große Anzahl miteinander verbundener Urteile aufgespalten wird, die in ihrer Gesamtheit zu einem endgültigen Urteil beitragen.
Natürlich ist das primäre Ziel, Konvergenz zu erreichen, wenn dies möglich ist. Es ist auch ein wichtiges Ziel, dies in einer angemessenen Zeit zu erreichen, vorzugsweise in kurzer Zeit.
Deep-Learning-Algorithmen haben einen Lernprozess, der sie für den Menschen schwer verständlich macht
Interessant ist, dass die Logik, die es neuronalen Netzen ermöglicht, die Hunde auf dem Bild zu identifizieren, für den Menschen nicht verständlich ist. Deep-Learning-Modelle haben eine verborgene Logik, im Wesentlichen eine Blackbox mit verborgenen Knotenschichten, die ein eigenes tiefes Netzwerk bilden. Dennoch gibt es einige Versuche, die Logik hinter neuronalen Netzen für Bilderkennungsaufgaben visuell darzustellen. In anderen Fällen ist es nicht möglich zu sehen, was der Algorithmus hinter den Kulissen tut, und die Deep-Learning-Methoden bleiben verborgen.
Neuronale Netze und maschinelles Lernen sind heute sehr beliebt, aber viele dieser Algorithmen waren schon vor 50 Jahren bekannt.
Warum werden tiefe neuronale Netze in verschiedenen Branchen immer beliebter?
Einer der Hauptgründe dafür, dass neuronale Netze heute viel beliebter sind als zur Zeit ihrer Erfindung, liegt darin, dass die Rechenleistung heute schneller und billiger ist als früher. Die Rechenleistung hat den entscheidenden Unterschied gemacht, um eine schnelle Konvergenz zu erreichen. Ein weiterer Grund ist, dass Daten jetzt allgegenwärtig sind, was den Wert von Algorithmen erhöht, die die Daten wie chatbots für Unternehmen nutzen können.
Fortschrittliche neuronale Netze erfordern eine hohe Verarbeitungsleistung und eine große Datenmenge
Neuronale Netze für tiefes Lernen sind daten- und prozessorintensive Techniken, die Ergebnisse erzielen können, die für Programmierer mit Programmiertechniken unmöglich zu erreichen wären. Sie eignen sich ideal für bestimmte Probleme, bei denen allgegenwärtige Daten zur Verfügung stehen und es einfach ist, bevorzugte Ergebnisse zu kategorisieren oder einzustufen.
Ohne Hunderttausende oder besser noch Millionen von Fotos von Hunden wäre es unmöglich, den Algorithmus zu trainieren. Diese Techniken funktionieren nur, wenn eine große Menge an Daten verfügbar ist. Das ist ziemlich offensichtlich, denn es ist unwahrscheinlich, dass alle Sonderfälle in einem Satz von nur 1000 Fotos vertreten sind.
Neuronale Netze können sowohl mit strukturierten als auch mit unstrukturierten Daten konfrontiert werden.
Ein Problem im obigen Beispiel ist, dass die Beschriftung aller Fotos viel manuelle Arbeit erfordert. Für die Algorithmen ist es einfacher, Daten zu verwenden, die auf strukturierte Weise beschriftet sind. Das maschinelle Lernen mit neuronalen Netzen, das strukturierte Daten verwendet, wird als überwachtes Lernen bezeichnet.
Dies bringt uns zu einer zentralen Frage: Ist es möglich, die ganze Tagging-Arbeit zu vermeiden? Das wäre gut, denn man könnte nicht nur eine Menge manueller Arbeit vermeiden, sondern auch die meisten im Internet verfügbaren Daten sind unstrukturiert, d. h. sie sind nicht sorgfältig gekennzeichnet oder strukturiert.
Können neuronale Netze mit unstrukturierten Daten arbeiten?
Künstliche neuronale Netze und maschinelles Lernen, die mit unstrukturierten Daten arbeiten, werden als unüberwachtes Lernen bezeichnet. Dies ist natürlich der heilige Gral des maschinellen Lernens und entspricht eher der Art und Weise, wie Menschen lernen. Aber selbst für das unüberwachte Lernen von Maschinen sind viel mehr Daten erforderlich als für das Lernen von Menschen, und Maschinen können nicht ohne Weiteres auf Beispiele extrapolieren, die außerhalb des Bereichs liegen, auf den sie trainiert wurden.
Viele Deep-Learning-Modelle versuchen, die menschlichen Gehirnprozesse zu reproduzieren
Einige Leute glauben, dass diese Art von Algorithmen entwickelt werden können, vielleicht durch ein Re-Engineering des Gehirns, bis zu dem Punkt, dass die Algorithmen beginnen, sich einem menschlichen "Verständnis" anzunähern. Sie glauben, dass es möglich sein wird, hochentwickelte Scantechnologien des Gehirns einzusetzen, um uns Einblicke in die Funktionsweise der neuronalen Netze des Gehirns zu geben. Durch das Kopieren dieser Designs und Muster können wir die Intelligenz des Menschen nachbilden.
Obwohl die Techniken zweifellos genial und sehr nützlich sind, insbesondere wenn ein großer Datensatz zur Verfügung steht, ist es schwer vorstellbar, dass solch einfache Algorithmen die Grundlage für eine hochkreative, menschenähnliche Intelligenz sein könnten.
Inhaltsübersicht
Bleiben Sie auf dem Laufenden mit den neuesten Informationen über KI-Agenten
Teilen Sie dies auf: