Neuronale Netze: Potenziale und Hürden

Die CI Decision Design beschäftigt sich mit Machine Learning und insbesondere mit Neuronalen Netzen. Dabei ist aufgefallen, dass durch hohe Berichterstattung sowie Marketing-Kampagnen viele Kunden die Begriffe in diesem Bereich bereits kennen, sie jedoch oft nicht richtig einordnen können. Dies kann zu Unsicherheiten führen. Daher möchten wir in diesem Beitrag einen Überblick über Neuronale Netze geben.

Künstliche Neuronale Netze fallen in die Kategorie der selbstlernenden Algorithmen bzw. des „Machine Learning“ und sind nur ein Bruchteil des Themenkomplexes der Künstlichen Intelligenz. Verwenden wir selbstlernende Algorithmen, müssen wir keine Regeln und Bedingungen definieren, wie es bei der traditionellen Programmierung der Fall ist. Vielmehr lernt der Algorithmus selbst, wie er mit den Eingabedaten umgeht.
In vielen Anwendungsbereichen sind die künstlichen Neuronalen Netze mittlerweile State of the Art, da gerade das Deep Learning sehr gute Ergebnisse in Bereichen liefert, in denen es bisher keine wirklich zufriedenstellenden Techniken gab.

Wie funktionieren Neuronale Netze?

Bei der Entwicklung künstlicher Neuronaler Netze orientiert man sich an dem Aufbau und der Arbeitsweise des menschlichen Gehirns. Die Hauptbestandteile jedes Neuronalen Netzes sind die Neuronen sowie gewichtete Verbindungen zwischen diesen Neuronen.
Gehen wir zunächst auf die Neuronen ein: Diese sind entweder aktiv und „feuern“ oder sie sind inaktiv. Wenn sich ein Neuron im aktiven Zustand befindet, gibt es über seine Verbindungen einen Impuls an alle benachbarten Neuronen ab, welche dann gegebenenfalls aktiviert werden und wiederum weitere Neuronen stimulieren. Es entsteht dann eine Art Kettenreaktion. Des Weiteren sind die Neuronen in Schichten organisiert. Dabei haben alle Neuronen innerhalb derselben Schicht die gleiche Aufgabe. Um diese Aufgabe zu erfüllen, berechnet jedes Neuron anhand seiner vorliegenden Eingabedaten und der sogenannten Aktivierungsfunktion, die in einer Schicht immer identisch ist, seine Ausgabe. Die Ausgabe der Neuronen wird wiederum über weitere Verbindungen in die nächste Neuronenschicht übergeben.
Bei diesen Verbindungen unterscheidet man zwischen vier verschiedenen Typen: eine verstärkende Verbindung (Gewicht > 1), eine hemmende Verbindung (Gewicht < 1), eine Verbindung ohne verstärkenden oder hemmenden Einfluss (Gewicht = 1) und den Fall, dass es zwischen zwei Neuronen keine Verbindung gibt (Gewicht = 0).

Das einfachste künstliche Neuronale Netz besteht aus zwei Schichten: einer Eingabe- und einer Ausgabeschicht. Die Eingabeschicht erhält die Eingabedaten und gibt diese über die gewichteten Verbindungen an die Ausgabeschicht weiter. Hier werden alle eingehenden Eingabedaten aufsummiert und mithilfe der Aktivierungsfunktion die Ausgabe der Neuronen berechnet. Diesen Prozess nennt man „forward propagation“.

Haben Neuronale Netze mehr als zwei Schichten, werden diese zwischen der Ein- und Ausgabeschicht als verdeckte Schichten oder „hidden layers“ bezeichnet. Je komplexer ein Problem ist, desto mehr Schichten werden in ein Netz eingefügt und desto tiefer ist dieses Netz schließlich. Aus der Tiefe der Netze folgt auch der Begriff „Deep Learning“, der bedeutet, dass ein Netz viele verdeckte Schichten aufweist. In der aktuellen Forschung gibt es Experimente und Anwendungen mit mehreren hundert Schichten [https://arxiv.org/pdf/1806.05393.pdf]. Mit jeder neuen Schicht steigt jedoch die Komplexität des Netzes, was eine längere Berechnungsdauer sowie eine geringere Nachvollziehbarkeit der Berechnungen und internen Prozesse zur Folge hat.

Wie lernt ein künstliches Neuronales Netz und wie kann man Neuronale Netze anhand ihres Lernprozesses kategorisieren?
Im Allgemeinen kann man sagen, dass durch den Lernprozess die Gewichte der Verbindungen angepasst werden. Das Wissen bzw. das Gelernte steckt also in den gewichteten Verbindungen des Netzes. Anhand des Lernprozesses können wir Neuronale Netze in drei Gruppen unterteilen: die überwacht lernenden („supervised learning“), die bestärkend lernenden („reinforcement learning“) und die unüberwacht lernenden Netze („unsupervised learning“).

Trainieren wir ein überwacht lernendes Netz, so füttern wir dieses Netz mit Eingabedaten und deren Lösung, auch gelabelter Datensatz genannt. Das Neuronale Netz berechnet anhand der Eingabedaten ein Ergebnis und gleicht dieses in einem zweiten Schritt mit der Lösung ab. Je nachdem wie groß der Unterschied der Ausgabe des Netzes zum richtigen Ergebnis ist, passt das Netz seine Gewichte an. Besonders wichtig ist es, dass das Netz nicht einfach nur auswendig lernt, sondern dass das Netz auch die Eigenschaft der Generalisierung aufweist. Das heißt, dass ein Netz, das zum Beispiel das Konzept der Addition lernt, dieses Konzept auch auf Zahlen übertragen kann, die es noch nicht kennt.

Beim Trainieren von bestärkend lernenden Netzen geben wir dem Netz nicht die richtige Lösung vor, sondern wir oder die Umwelt geben ein Feedback, ob es auf der richtigen Fährte ist. Wie bei dem Kinderspiel „Topfschlagen“ sagen wir dem Netz, ob es der gewünschten Lösung näherkommt („heiß“) oder ob es sich entfernt („kalt“). Daraufhin justiert das Netz seine gewichteten Verbindungen so, dass es der gewünschten Lösung immer näherkommt.

Unüberwacht lernende Netze hingegen organisieren Daten ganz ohne Feedback. Deshalb werden diese Netze oft beim Clustering von Daten oder als „Autoencoder“ genutzt. Der Vorteil dieses Lernprozesses ist, dass Daten nicht im Vorhinein bekannt und gelabelt sein müssen.

Welche Probleme können bei der Nutzung Neuronaler Netze auftreten?

Da Neuronale Netze aus den Eingabedaten lernen, ist die Qualität, Auswahl und Balance dieser Daten ein besonders kritischer Faktor. Wie bei allen selbstlernenden Algorithmen ist es nicht möglich, mit schlechter Datenqualität und fehlenden Werten gute Ergebnisse zu erzeugen.
Neben der Datenqualität besteht zudem das Problem der Balance der Daten. Nehmen wir das Beispiel, dass ein Algorithmus anhand von Bildern eine Qualitätssicherung durchführen soll: Beinhaltet der Datensatz in 95% der Bilder den Fehlertyp A, in 3% der Bilder Fehlertyp B und nur in 2% der Bilder Objekte ohne Fehler, ist es für einen Algorithmus sehr schwer, alle drei Typen gleichermaßen gut zu lernen.
Als dritter kritischer Faktor ist die Auswahl der Eingabedaten und der Bias in diesen Daten zu nennen. Sobald wir nicht alle vorliegenden Daten, sondern nur einen Teil dieser Daten nutzen, kann dies einen Einfluss auf das Ergebnis haben. Der Prozess, in dem die Eingabedaten erstellt werden, unterliegt außerdem immer einem menschlichen Bias, der auf den Sichtweisen des Menschen beruht, der den Datensatz zusammenstellt [https://towardsdatascience.com/what-is-ai-bias-6606a3bcb814]. So ist es nicht verwunderlich, dass der Chatbot „Tay“ von Microsoft durch das Lernen mit Konversationen mit mehrheitlich rassistischen Twitter Usern selbst angefangen hat, rassistische Nachrichten zu twittern [https://www.heise.de/newsticker/meldung/Microsofts-Chatbot-Tay-nach-rassistischen-Entgleisungen-abgeschaltet-3151646.html].

Ein weiteres Problem bei künstlichen Neuronalen Netzen ist die Nachvollziehbarkeit von Ergebnissen. Die Netze werden häufig als Blackbox Modelle betrachtet, da es je nach Anzahl der verdeckten Schichten sehr schwer ist, die Entscheidungen eines Neuronalen Netzes nachzuvollziehen. Dieses Problem wurde mittlerweile jedoch in der Forschung identifiziert und fokussiert. Erste Ergebnisse helfen bereits, die Netze immer besser interpretieren zu können [https://arxiv.org/pdf/1602.04938v1.pdf].

In welchen Anwendungsgebieten werden heute Neuronale Netze eingesetzt?

Mithilfe künstlicher Neuronaler Netze werden bspw. Erfolge in dem Bereich der Computer Vision, dem Sehen und Extrahieren von Daten aus Bildern, erreicht. Eine typische Anwendung ist das Erkennen von Objekten auf Bildern in Echtzeit [https://youtu.be/MPU2HistivI?t=5]. Dies ist beispielsweise besonders wichtig für die Entwicklung selbstfahrender Autos oder für die Qualitätssicherung in der Industrie.

Auch bei der Übersetzung von Texten werden Neuronale Netze genutzt [https://ai.google/research/pubs/pub45610]. Durch Neuronale Netze werden Texte nicht mehr Wort für Wort übersetzt, sondern auch die Grammatik wird mit einbezogen. Dies führt zu immer besseren und flüssigeren Übersetzungen [https://www.wired.de/article/deepl-google-translate-linguee]. So ist es heute auch möglich, bei Videokonferenzen eine Echtzeitübersetzung anzubieten [https://www.heise.de/newsticker/meldung/Skype-und-PowerPoint-mit-Echtzeit-Untertiteln-4239936.html].

Ein letztes Beispiel sind die von Google Deepmind entwickelten Neuronale Netze der Alpha-Reihe. Das sind Netze, die auf Basis von AlphaGo weiterentwickelt wurden, das im März 2016 den Meister des „Go“ Spiels in drei von vier Spielen besiegte und heute mehr als „nur“ Go spielen kann [https://deepmind.com/blog/alphazero-shedding-new-light-grand-games-chess-shogi-and-go/]. Die Besonderheit dieser Netze ist, dass sie sich die Spiele in einem bestärkenden Lernprozess selbst beibringen und mittlerweile nicht nur in Brett- und Computerspielen, sondern auch in der Medizin eingesetzt werden.