// Neural Networks

Vor- und Nachteile der Neuronalen Netzwerkarchitektur

Inhaltsverzeichnis

#1. Was sind neuronale Netze
#2. Wie funktioniert ein neuronales netzwerk
#3. Haupttypen von neuronalen Netzen
#4. Vorteile neuronaler Netze
#5. Nachteile neuronaler Netze
#6. Kurzes Fazit

Haben Sie Fragen?
Yuri Musienko
Der Autor des Artikels

In den letzten Jahren sind neuronale Netze so etwas wie eine neue Elektrizität geworden - eine revolutionäre Technologie, die in alle Bereiche menschlicher Aktivität eingedrungen ist. Und das ist nicht verwunderlich, da technologische Lösungen auf Basis neuronaler Netze die unterschiedlichsten Aufgaben übernehmen können – von der Behandlung komplexester Krankheiten bis hin zur Empfehlung einer TV-Serie für den Abend. Diese Technologie ist jedoch nicht perfekt, sie hat ihre Vor- und Nachteile, die Sie kennen und berücksichtigen müssen, wenn Sie sich entscheiden, Ihr Produkt auf der Grundlage neuronaler Netze zu erstellen.

Was sind neuronale Netze

Neuronale Netze (NNs) oder künstliche neuronale Netze (ANNs) sind ein allgemeiner Name für mathematische Modelle und Programme, die auf dem Organisations- und Funktionsprinzip biologischer neuronaler Netze – Neuronennetze im menschlichen Gehirn – aufbauen. Das Hauptmerkmal künstlicher neuronaler Netze, aufgrund dessen sie so beliebt geworden sind, ist die Fähigkeit, auf der Grundlage vergangener Erfahrungen zu lernen und zu handeln, und nicht nur nach vorgefertigten Algorithmen.

Neuronale Netze werden oft als etwas Neues und Revolutionäres wahrgenommen. Die Entwicklungen auf diesem Gebiet begannen jedoch in der ersten Hälfte des letzten Jahrhunderts, nachdem es Warren McCulloch und Walter Pitts 1943 gelang, das erste mathematische Modell der Prinzipien des Neurons zu erstellen. In ihrer Arbeit „Representation of Events in Nerve Nets and Finite Automata“ beschrieben die Wissenschaftler in Form von Funktionen ein einfaches mathematisches Modell, das wie ein biologisches Neuron funktioniert: Es nimmt Eingaben auf, verarbeitet sie und gibt das Ergebnis zurück.

McCulloch-Pitts neuron model

McCulloch - Pitts-Neuronenmodell. Quelle

1957 erfand Frank Rosenblatt unter Verwendung der Arbeiten von Warren McCulloch und Walter Pitts sowie Donald Hebb (der den ersten Lernalgorithmus vorschlug) das Perzeptron, einen wahrnehmenden und erkennenden Automaten. Und obwohl dieser Automat als Maschine und nicht als Programm konzipiert wurde, wird angenommen, dass er das erste künstliche neuronale Netzwerk ist. Gleichzeitig wurde der Begriff "Perzeptron" selbst später als Synonym für das einfachste künstliche neuronale Netz verwendet.

Der nächste bedeutende Durchbruch auf dem Gebiet der KNNs gelang erst 60 Jahre später: Geoffrey Hinton beschrieb 2006 Deep-Learning-Algorithmen für mehrschichtige KNNs auf Basis der eingeschränkten Boltzmann-Maschine oder RBM (Restricted Boltzmann Machine). Gleichzeitig formulierte Hinton auch das Grundkonzept des Trainings neuronaler Netzalgorithmen: Um eine fertige, schnell funktionierende Lösung zur Lösung eines bestimmten Problems zu erhalten, muss NN an vielen realen Beispielen (z. B. Fotografien) trainiert werden von verschiedenen Katzen in verschiedenen Posen und vor verschiedenen Hintergründen).

Neural network architecture (left) and deep learning neural network (right). The circles represent artificial neurons, the lines represent the network of connections between them.

Architektur eines neuronalen Netzwerks (links) und eines neuronalen Deep-Learning-Netzwerks (rechts). Die Kreise stellen künstliche Neuronen dar, die Linien stellen das Netzwerk von Verbindungen zwischen ihnen dar. Quelle

Dank Deep Learning (und Big Data) sind KNNs wirklich trainierbar geworden. So konnte das neuronale Netz bereits 2012 im Rahmen des ImageNet-Wettbewerbs den Menschen bei der Bilderkennung überflügeln. Und 2015 war AlphaGo das erste Programm der Welt, das einen professionellen Schachspieler ohne Handicap (bedingungslos) schlug.

Wie funktioniert ein neuronales netzwerk

Die Architektur eines künstlichen neuronalen Netzes besteht aus drei oder mehr Schichten: Eingabe, Ausgabe und einem oder mehreren versteckten Knoten. Derzeit wird Deep Learning standardmäßig verwendet , um ein NN zu erstellen, daher gibt es normalerweise mehrere versteckte Knoten. Jede NN -Schicht besteht aus Recheneinheiten („Neuronen“), die Daten von der vorherigen Schicht empfangen, sie verarbeiten, indem sie einfache Berechnungen darauf durchführen, und diese Daten an die nächste Schicht weitergeben.

Die Eingabeebene akzeptiert Eingaben in mehreren unterschiedlichen Formaten, wie Helligkeit, Kontrast, Farbe, Linien oder andere Eigenschaften eines Bildes, wenn es sich um ein Foto handelt. Die verborgene Schicht ist dafür verantwortlich, verborgene Muster und Merkmale durch einfache Berechnungen zu finden. Die Ausgabeschicht fasst sozusagen alle Berechnungen zusammen und gibt eine Antwort in Form einer Schlussfolgerung, Aktion und / oder Prognose aus. Wenn die Antwort richtig ist oder einfach über einer bestimmten Schwelle der „Korrektheit“ liegt, „verstärkt“ das neuronale Netz sozusagen die Berechnungen („Neuronen“), die sie gegeben haben. Umgekehrt.

Es funktioniert wie folgt. Nehmen wir an, Sie brauchen ein Programm, um zu erkennen, ob ein Foto einen Hund oder einen Wolf enthält. Dann wird Ihr neuronales Netzwerk: das Bild mithilfe der Eingabeebene in verschiedene Details zerlegen, mithilfe verborgener Ebenen nach Anzeichen von Hunden und Katzen unter diesen Details suchen und mithilfe der Ausgabeebene zusammenfassen (es gibt eine Katze oder einen Wolf auf dem Foto).

A simplified model of artificial neural network operation

Ein vereinfachtes Modell des Betriebs eines künstlichen neuronalen Netzes. Quelle

Um unser neuronales Netzwerk darauf zu trainieren, auf Fotos nach Hunden oder Wölfen zu suchen, benötigen wir natürlich eine große Anzahl von Fotos mit und ohne Hunde und Wölfe - je mehr davon, desto effektiver wird das NN-Training.

Haupttypen von neuronalen Netzen

Je nach Architektur werden künstliche neuronale Netze in mehrere Typen unterteilt, die für unterschiedliche Zwecke eingesetzt werden. Im Folgenden sind die häufigsten Arten von neuronalen Netzen aufgeführt, denen Sie höchstwahrscheinlich begegnen werden, wenn Sie Ihre Lösung auf der Grundlage von NNs entwickeln möchten.

Perzeptron . Das älteste neuronale Netzwerk, das 1957 von Frank Rosenblatt erstellt wurde. Es besteht aus nur einem Neuron und ist die einfachste Form eines künstlichen neuronalen Netzes.

Frank Rosenblatt's Perceptron.

Perzeptron von Frank Rosenblatt. Quelle

Feedforward Neural Networks . Solche Netzwerke bestehen aus einer Eingabeschicht, einer Ausgabeschicht und einer oder mehreren verborgenen Schichten. Und trotz der Tatsache, dass sie auch Multilayer-Perceptrons (MLPs) genannt werden, ist es wichtig zu beachten, dass sie aus sigmoiden Neuronen bestehen, nicht aus Perceptrons (die ersteren sind besser darin, nichtlineare Probleme zu verarbeiten). Neuronale Feedforward-Netze werden für Computer Vision, Verarbeitung natürlicher Sprache und andere ähnliche Aufgaben verwendet.

Neural network architecture with direct connection

Die Architektur eines neuronalen Netzes mit Feedforward. Quelle

Wiederkehrende neuronale Netze (RNN). Sie werden durch Rückkopplungsschleifen identifiziert. Solche neuronalen Netze werden für ordinale oder zeitliche Aufgaben verwendet, um beispielsweise zukünftige Ergebnisse vorherzusagen: Börsenprognosen oder Verkaufsprognosen von Handelsketten. Abgesehen davon eignen sie sich auch gut für die Sprachübersetzung, die Verarbeitung natürlicher Sprache (NLP) oder die Spracherkennung, weshalb sie in Siri und Google Translate enthalten sind.

The architecture of recurrent neural networks.

Architektur rekurrenter neuronaler Netze. Quelle

Convolutional Neural Networks (ConvNets oder CNNs). Besteht aus einer Faltungsschicht, einer zusammengeführten Schicht und einer vollständig verbundenen (FC) Schicht. Diese neuronalen Netze verwenden Prinzipien der linearen Algebra (z. B. Matrixmultiplikation), um verborgene Muster in einem Bild, Video oder Audio zu finden. Darüber hinaus arbeiten CNNs mit solchen Daten in einer unglaublichen Geschwindigkeit, sodass sie häufig für Aufgaben verwendet werden, bei denen Sie Bilder und Bilder in Echtzeit erkennen müssen.

Vorteile neuronaler Netze

Selbstlernend . Dies ist das Hauptmerkmal und der Vorteil künstlicher neuronaler Netze, die bei Programmierern und Geschäftsleuten auf der ganzen Welt so beliebt sind. Sie erstellen einfach einen grundlegenden Algorithmus, füttern ihn dann mit Beispielen zum Trainieren (z. B. Fotos von Personen, wenn Ihr neuronales Netzwerk nach Personen auf einem Foto suchen soll) und sehen sich die Ergebnisse an. Gleichzeitig entscheidet der Algorithmus selbst, wie das gewünschte Ziel erreicht wird, und findet oft Lösungen, die (für Menschen) nicht offensichtlich sind.

Darüber hinaus ist das neuronale Netz nicht nur selbstlernend, sondern darauf ausgelegt, kontinuierlich selbst zu lernen und seine Ergebnisse zu verbessern. Sobald das System trainiert ist, wird das Programm oder die Anwendung bei der Verwendung benutzerfreundlicher. Deshalb wird das Empfehlungssystem von Google Translate, Netflix oder TikTok jedes Jahr besser.

Effiziente Rauschfilterung in Daten . Stellen Sie sich einen einigermaßen lauten Ort vor, wie einen Markt oder ein Stadion. Die Leute reden herum, Musik spielt laut, Autos fahren irgendwo vorbei und Vögel schreien - überall ist Lärm, aber trotzdem können Sie ruhig mit Menschen in der Nähe kommunizieren. Ihre Ohren nehmen Tonnen von unnötigen Geräuschen auf, aber Ihr Gehirn filtert sie und nimmt nur wahr, was Ihr Gesprächspartner sagt. Diese Eigenschaft findet sich auch in künstlichen neuronalen Netzen. Nach dem Training sind sie in der Lage, nur die Informationen, die sie benötigen, aus einem riesigen kontinuierlichen Datenstrom zu isolieren und alle Nebengeräusche zu ignorieren.

Dies ist eine sehr nützliche Funktion, wenn Sie nach Mustern in riesigen Mengen heterogener Daten suchen müssen, wie z. B. nicht-klinische medizinische Forschung, Wettervorhersagen, wirtschaftliche Marktanalysen oder Textübersetzungen.

Anpassung an Veränderungen . Ein weiterer Vorteil künstlicher neuronaler Netze ist die Fähigkeit, sich an Änderungen der Eingangsdaten anzupassen. Als Analogie können wir ein Beispiel mit der Aktualisierung von Anwendungen geben. Nehmen wir an, Sie waren lange offline und in dieser Zeit wurden Instagram und TikTok mit ein paar neuen Funktionen aktualisiert. Nachdem Sie sich ein paar Minuten Zeit genommen haben, um die Anweisungen zu lesen, sind Sie mit allen neuen Funktionen vertraut und können Instagram und TikTok weiterhin verwenden. Das gleiche wird mit neuronalen Netzen passieren. Nach einer kurzen Anpassungsphase an Veränderungen wird es mit der gleichen Effizienz weiterarbeiten.

Fehlertoleranz . Lösungen auf Basis neuronaler Netze bleiben auch nach dem Ausfall eines Teils der Neuronen funktionsfähig. Ja, dies kann die Genauigkeit und/oder Geschwindigkeit des Algorithmus beeinträchtigen, aber ihre Antworten werden immer noch logisch, rational und korrekt sein. Dies ist eine sehr nützliche Eigenschaft, wenn ein Gerät mit einem neuronalen Netzwerk an Bord in einer aggressiven Umgebung (radioaktive Zonen, im Krieg, in zerstörten Gebäuden oder im Weltraum) arbeiten muss.

Tolle Möglichkeiten . Ein weiterer entscheidender Vorteil von KNNs ist ihr breites Anwendungsspektrum. Neuronale Netze funktionieren wie ein menschliches Gehirn, was bedeutet, dass sie, sobald sie trainiert sind, eine Vielzahl von Aufgaben in einer Vielzahl von Bereichen ausführen können, von der Steigerung der Conversions in einem Online-Shop bis zum Auffinden erdähnlicher Planeten im Weltraum. Die Hauptsache ist, dass genügend reale oder synthetische Daten für das Training vorhanden sind.

Arbeitsgeschwindigkeit . Ein weiterer wichtiger Vorteil neuronaler Netze ist ihre enorme Geschwindigkeit, sowohl im Vergleich zu herkömmlichen Computeralgorithmen als auch im Vergleich zum menschlichen Gehirn. Künstliche neuronale Netze werden nicht müde und haben keine Mittagspause. Die Geschwindigkeit ihrer Arbeit wird nur durch die ihnen zur Verfügung stehende Rechenleistung (Grafikkarte, Cloud-Server oder Rechenzentrum) bestimmt. Dies bedeutet normalerweise, dass sie fast sofort eine Lösung herausgeben.

Nachteile neuronaler Netze

Das Blackbox-Problem . Der vielleicht berüchtigtste Mangel aller NNs ist ihre „Black-Box“-Natur. Einfach gesagt, Sie wissen nicht, wie und warum Ihr neuronales Netz zu einem bestimmten Ergebnis kommt. Wenn Sie beispielsweise ein Foto einer Katze in ein neuronales Netzwerk einfügen und es Ihnen sagt, dass es sich um ein Flugzeug handelt, ist es sehr schwer zu verstehen, was es zu dieser Schlussfolgerung geführt hat. Sie wissen einfach nicht, was im „Gehirn“ des neuronalen Netzwerks vor sich geht.

Neither the creators of neural networks nor other experts can say how they come to one conclusion or another, so we can say there is a magic going on

Weder die Schöpfer neuronaler Netze noch andere Spezialisten können sagen, wie sie zu dieser oder jener Schlussfolgerung kommen, also können wir sagen, dass dort „Magie“ passiert. Quelle

Dies ist ein großes Problem, um zu lernen, wie ein neuronales Netzwerk funktioniert. Und es ist auch eine große Herausforderung, diese Technologie in einige Geschäftsbereiche zu integrieren. Aus diesem Grund verwenden beispielsweise viele Banken NN nicht zur Vorhersage der Kreditwürdigkeit – sie müssen den Kunden erklären, warum sie kein Darlehen erhalten haben, da sich eine Person sonst möglicherweise zu Unrecht beleidigt oder sogar aufgrund von Rasse, Geschlecht und Geschlecht diskriminiert fühlt / oder Nationalität (solche Fälle mit AI ist bereits passiert, und mehr als einmal).

Gleiches gilt für Seiten wie YouTube, Facebook, TikTok oder Quora. Wenn ein maschineller Lernalgorithmus ein Benutzerkonto löscht, muss die Plattform erklären, warum. Es ist unwahrscheinlich, dass er sich mit dem Satz zufrieden geben wird: "Der Computer hat es uns gesagt." Dies ist mit Klagen behaftet.

Wahrscheinlichkeitscharakter der Antworten . Aber das ist nicht alles. Wenn Sie ein Bild in ein neuronales Netzwerk einspeisen und es dann fragen: „Ist das eine Katze, ein Hund oder etwas anderes?“, möchten Sie wahrscheinlich die Antwort lauten: ist es entweder eine Katze oder ein Hund oder etwas anderes . Aber in Wirklichkeit wird selbst ein sehr gut trainiertes neuronales Netz nicht so saubere Ergebnisse liefern. Höchstwahrscheinlich wird es so etwas sein wie: Katze - 0,97, Hund - 0,01, etwas anderes - 0,02. Diese Ergebnisse können als Wahrscheinlichkeiten interpretiert werden. In unserem Fall bedeutet dies, dass die Wahrscheinlichkeit, dass das Foto eine Katze zeigt, 97 % beträgt, für einen Hund beträgt diese Wahrscheinlichkeit 1 %, für etwas anderes 2 %.

An example of a black response of an artificial neural network.

Ein Beispiel für eine "Black Box"-Antwort eines künstlichen neuronalen Netzes. Quelle

Wenn Sie von Menschen interpretierte Funktionen haben, ist es viel einfacher, die Fehlerursache zu verstehen. Im Vergleich dazu sind Algorithmen wie Entscheidungsbäume einfach zu interpretieren. Dies ist wichtig, da es in vielen Bereichen auf die Interpretierbarkeit ankommt. Sie können sich den CEO eines großen Unternehmens vorstellen, der Entscheidungen in Millionenhöhe trifft, der eine wichtige Entscheidung treffen muss, aber nicht kann, weil die KI keine endgültige Antwort auf eine scheinbar einfache Frage gegeben hat. Oder Sie stellen sich einen General vor, der über einen Raketenangriff entscheiden muss, aber nicht kann, da das Foto mit einer Wahrscheinlichkeit von 1% oder 10% möglicherweise keine Terroristen, sondern kleine Kinder sind.

Entwicklungsdauer . Obwohl es viele Bibliotheken wie NeuroLab, ffnet, SciPy, TensorFlow, Scikit-Neural Network, Lasagne, pyrenn, NumPy, Spark MLlib, Scikit-Learn, Theano, PyTorch, Keras gibt, die helfen , Zeit und Mühe bei der Entwicklung künstlicher neuronaler Netze zu sparen, sie sind nicht immer anwendbar. Zum Beispiel, wenn Sie eine neue oder eher komplexe Lösung erstellen müssen, die mehr Kontrolle über die Details des Algorithmus erfordert.

An algorithm for developing artificial neural networks.

Algorithmus zur Entwicklung künstlicher neuronaler Netze. Quelle

Je einzigartiger und komplexer Ihre Aufgabe ist, desto mehr Zeit und Ressourcen müssen Sie aufwenden. Und es geht nicht nur darum, den Code des neuronalen Netzwerkalgorithmus zu schreiben, sondern auch darum, Daten für sein Training zu sammeln. Oft sind diese Daten sehr schwer zu erheben, beispielsweise wenn es sich um Informationen über Autounfälle oder den Betrieb eines Kernreaktors unter kritischen Bedingungen handelt. In einigen Fällen kann der Entwicklungsprozess mithilfe synthetischer Daten beschleunigt und billiger werden, aber sie sind bei weitem nicht immer anwendbar, und solche Daten werden immer sehr bedingt sein – nur ungefähr der Realität entsprechen.

Die Datenmenge . Der nächste Nachteil neuronaler Netze besteht darin, dass ihr Training normalerweise viel mehr Daten erfordert als herkömmliche Algorithmen für maschinelles Lernen. Und wie wir bereits gesagt haben, wenn es sich um einzigartige Daten handelt oder diese schwer zu sammeln sind, kann dies eine ernsthafte Herausforderung für Entwickler darstellen. Und oft viel mehr als nur den Code eines künstlichen neuronalen Netzes zu schreiben.

Deshalb werden jetzt neue künstliche neuronale Netze (KI-Lösungen) hauptsächlich von großen Unternehmen (Google, Microsoft, IBM) entwickelt, die nicht nur viel Geld und Zugang zu hochklassigen Programmierern, sondern auch zu Big Data haben. Kleine und mittlere Unternehmen sind hier nicht ihre Konkurrenten.

Rechnerisch teuer . Moderne Deep-Learning-Algorithmen, die auf künstlichen neuronalen Netzen basieren, benötigen mehrere Wochen und manchmal Jahre, um von Grund auf neu zu lernen. Während die meisten herkömmlichen Algorithmen für maschinelles Lernen viel weniger Zeit zum Trainieren benötigen: von einigen Minuten bis zu mehreren Stunden. Beispielsweise ist ein neuronales Netzwerk mit 50 Schichten viel langsamer als ein Random-Forest-Algorithmus (ein Ensemble-Lernverfahren für Klassifizierung, Regression und andere Probleme) mit nur 10 Bäumen.

Dies erschwert wiederum die Entwicklung von Lösungen auf Basis neuronaler Netze und deren Integration in Unternehmen und noch mehr in den Non-Profit-Bereich.

Kurzes Fazit

Künstliche neuronale Netze eignen sich hervorragend für einige Aufgaben und nicht so gut für andere. Nur wenige Menschen verstehen jedoch, wann sie Ihrem Unternehmen tatsächlich einen echten Mehrwert bringen können und wann es besser ist, sich anderen Optionen für die Implementierung künstlicher Intelligenz zuzuwenden. Merehead ist ein solches Unternehmen. Wir sind versiert in der Entwicklung von Lösungen basierend auf künstlicher Intelligenz, maschinellem Lernen und neuronalen Netzen. Wenn Sie also planen, ein ähnliches Projekt zu starten, kontaktieren Sie uns bitte, wir helfen Ihnen gerne weiter.

Feedback von unseren Kunden

Entwicklung eines komplexen Ökosystems auf Basis der Blockchain-Technologie.

Hast du eine Frage?

Ihre name *
Ihre E-Mail *
Ihre Telefonnummer
Botschaft
 

Hast du Fragen? Sie können uns schreiben.

Telegram

Seit 2015 bringen wir Ihre Idee in das Qualitätsprodukt ein.

Abonniere unseren Newsletter