Deep Learning ist eines der großen Buzzwords zum Thema KI und Big Data. Meistens fällt dieser Begriff im Zusammenhang mit hervorragenden Ergebnissen von Künstlicher Intelligenz, sei es in der Bilderkennung oder zum Beispiel beim Verstehen und Erzeugen von menschlicher Sprache (Siri, Alexa und Co.). Doch was steckt genau hinter Deep Learning und wie lernt meine KI dabei? Diese Fragen möchte ich in diesem Beitrag auf möglichst einfache Weise beantworten.
Um den Ablauf hinter dem Aufbau und dem Training eines neuronalen Netzes zu verstehen, bietet sich ein einfaches Beispiel an: Die Vorhersage des Wetters in Bielefeld. Wir veranschaulichen den Fall noch ein bisschen weiter und wollen von unserer KI wissen, ob morgen in Bielefeld die Sonne scheinen wird. Als Grundlage für diese Vorhersage soll unser Modell auf Wetterdaten des Vortages zugreifen.
Nehmen wir einmal an, wir haben uns bereits so weit vorbereitet, dass die Wetterdaten diverser Wetterstationen vorliegen und wir uns um den wichtigen Schritt der Datenbeschaffung und Vorverarbeitung keine Gedanken mehr machen müssen. Unser Ziel ist nun, mithilfe von Deep Learning ein möglichst akkurates Modell zur Vorhersage des morgigen Wetters zu erstellen. Dafür erstellen wir uns ein tiefes Neuronales Netz.
In unserem E-Book erfahren Sie die wichtigsten Inhalte rund um das Thema künstliche Intelligenz & wie Sie davon profitieren können!
Die Antwort auf diese Frage versteckt sich bereits im Namen: Ein neuronales Netz besteht aus Neuronen. Der Aufbau eines solchen Neurons (in diesem Zusammenhang auch Perzeptron genannt) orientiert sich an dem Aufbau der Neuronen in unserem Gehirn.
Ein Neuron verfügt über Eingänge, über die Signale zum Neuron gelangen und dort zusammengefasst werden. Die Stärke dieser Signale kann unterschiedlich sein. Wenn die Gesamtstärke aller Signale einen gewissen Schwellwert überschreitet, sendet das Neuron selbst ein Signal über seinen Ausgangskanal (der rechte Pfeil).
Was das Neuron dabei vor allem ausmacht, ist die Gewichtung der einzelnen Eingangssignale. So kann es sein, dass es bereits ausreicht, wenn am obersten Eingang ein relativ schwaches Signal ankommt, um das Neuron ein Signal senden zu lassen, während auf den unteren Kanälen recht hohe Signale ankommen müssten, um den gleichen Effekt zu erzielen. Dieses Gewichten der Eingangssignale ist das, was während des Trainings eines Neurons eingestellt wird, um ein Problem zu lösen.
Nehmen wir an, wir wollen für das Bestimmen unseres Wetters genau ein solches Neuron trainieren. Zur Verfügung stehen uns dabei die Daten von drei Wetterstationen: Eine in Bielefeld, eine in Hannover und eine in Dortmund. Von diesen holen wir uns jeweils die Info, wie viele Sonnenstunden es heute am jeweiligen Ort gab, um unsere Vorhersage für morgen zu treffen. Die Zahlen der Sonnenstunden repräsentieren damit unsere Eingangssignale (mehr Sonnenstunden = stärkeres Signal). Wenn das Neuron für solch eine Eingabe den Schwellwert überschreitet und ein Ausgangsignal ausgibt, zeigt die Vorhersage, dass morgen die Sonne scheinen wird.
Zu Beginn hat das Neuron noch eine voreingestellte oder schlicht zufällig bestimmte Gewichtung der Eingangssignale. Um diese Gewichtung richtig einzustellen, brauchen wir historische Daten unserer Wetterstationen, sowie die Info, ob an den jeweiligen Folgetagen die Sonne schien.
Diese historischen Daten legen wir nun nacheinander an die Eingänge des Neurons und beobachten die Ausgabe. Ist diese falsch (das Neuron sendet Signale, obwohl am nächsten Tag nicht die Sonne schien oder umgekehrt), werden die Gewichtungen der Eingangssignale so angepasst, dass die Ausgabe korrekt ist. Dieser Vorgang wird mit allen Daten durchgeführt. Das Ergebnis ist im besten Fall eine passende Konfiguration der Gewichtungen aller Eingangssignale, sodass das Neuron für alle historischen Daten die korrekte Vorhersage treffen konnte.
Da unser Wetter natürlich sehr viel komplexer ist, als die Daten, die wir zur Verfügung stellen, wird es sehr wahrscheinlich nicht möglich sein, eine Gewichtung der Eingangskanäle zu finden, für die alle Vorhersagen gleichermaßen passend sein werden. Daher wird hier lediglich versucht, so viele korrekte Vorhersagen auf der Basis unserer historischen Daten zu erreichen, wie möglich.
Unser Beispiel bestand bisher nur aus einem Neuron. Die Fähigkeiten eines einzelnen Neurons, Probleme zu lösen, sind stark begrenzt. Die wahre Power dieses Konzepts kommt aus der Nutzung sehr viele solcher Neuronen. So können wir unser Beispiel ein wenig anpassen, in dem wir statt einem nun beispielsweise drei Neuronen verwenden.
Zwei dieser Neuronen sind genauso aufgebaut, wie im vorigen Beispiel. Alle Eingangskanäle werden mit den Daten der Wetterstationen bespielt, diese Neuronen bilden die Eingangsschicht. Interessant ist vor allem, was wir mit dem dritten Neuron anstellen – das hat nämlich keine direkte Verbindung zu den Wetterdaten. Stattdessen sind deren Eingangskanäle mit den Ausgängen der beiden anderen Neuronen verbunden. Dadurch bekommt dieses Neuron lediglich die Infos, welche der beiden linken Neuronen ein Ausgangssignal produziert haben. Der Ausgang dieses dritten Neurons entspricht nun unserer Vorhersage, ob morgen die Sonne scheint und bildet die Ausgangsschicht.
Dieser Aufbau vervielfacht die Anzahl an Einstellungsmöglichkeiten für unser neuronales Netz. Wir können im Training nun die Gewichtungen beider linker Neuronen unabhängig voneinander und die Gewichtungen des rechten Neurons – also das Gewicht, mit dem die Entscheidung der linken Neuronen das Endergebnis beeinflussen – anpassen. Dadurch sind wir in der Lage, deutliche komplexere Entscheidungen zu treffen und Probleme zu lösen.
Jetzt haben wir zwar schon ein neuronales Netz, doch wie wird daraus ein tiefes neuronales Netz? Die Antwort ist relativ simpel: Wir fügen weitere Schichten hinzu. Wir können zwischen die Eingangs- und Ausgangsschicht beliebig viele weitere Schichten legen. Die Neuronen dieser Schichten erhalten jeweils die Signale der vorherigen Schicht als Eingangssignale und geben ihr Ausgangssignal an die Neuronen der Folgeschicht weiter. Ein Netz, dass über solche versteckten Schichten verfügt, nennt man tiefes neuronales Netz. Die Anzahl an solchen Schichten kann in der Realität übrigens von Fall zu Fall sehr unterschiedlich ausfallen.
Das Training eines solchen neuronalen Netzes hat zum Ziel, alle Gewichtungen in diesem Netz optimal einzustellen, sodass unsere Vorhersage auf den historischen Daten möglichst genau wird. Davon erhoffen wir uns auch möglichst gute Vorhersagen für zukünftige Eingaben, von denen wir den tatsächlichen Ausgang noch nicht vorher kennen. Doch welche Rolle spielt dabei ein einzelnes Neuron für das Endergebnis?
Auf diese Frage gibt es keine allgemeingültige Antwort. Die Vorgänge in einem trainierten neuronalen Netz sind – gerade bei größeren Netzen – in der Regel eine Blackbox, bei der wir nicht genau nachvollziehen können, wieso genau eine bestimmte Entscheidung getroffen wurde.
Forschungen zeigen, dass in den vorderen Schichten meist simplere Merkmale in den Daten gesucht werden, die dann in den Folgeschichten zu komplexeren Merkmalen zusammengesetzt werden. In unserem Wetterbeispiel – nehmen wir an, wir hätten nun deutlich mehr Wetterstationen zur Verfügung – könnten das beispielsweise lokale Wetterphänomene, wie Regenfronten oder Ähnliches, sein, die dann in den tieferen Schichten zu komplexeren Bewegungen zusammengesetzt werden. Die endgültige Entscheidung findet dann in den letzten Schichten auf Grundlage dieser komplexeren Merkmale statt.
Ich hoffe, ich konnte Ihnen einen ersten Einblick in die Abläufe und die Theorie hinter Deep Learning geben. Um das Ganze besser zu veranschaulichen, habe ich auf einige Details verzichtet (beispielsweise Bias, Overfitting oder Aktivierungsfunktionen). Sollten Sie dazu noch nähere Informationen brauchen, oder auch in anderen Gebieten der KI einen Einblick erhalten wollen, kontaktieren Sie mich gerne.
Kennen Sie schon unseren KI Potenzialworkshop? Hier schaffen wir für Sie einen tieferen Einblick in das Thema KI, zeigen mögliche praktische Anwendungsfälle und gehen auf Voraussetzungen sowie Chancen ein.
Haben Sie weitere Fragen oder Anmerkungen? Gerne stehe ich Ihnen zur Verfügung.
Vollumfängliche Implementierungs- und Betriebsunterstützung für führende Softwareprodukte unserer Partnerunternehmen:
Vollumfängliche Implementierungs- und Betriebsunterstützung für führende Softwareprodukte unserer Partnerunternehmen:
Vollumfängliche Implementierungs- und Betriebsunterstützung für führende Softwareprodukte unserer Partnerunternehmen:
Vollumfängliche Implementierungs- und Betriebsunterstützung für führende Softwareprodukte unserer Partnerunternehmen: