In meinem ersten Artikel Künstliche Intelligenz – was ist das eigentlich? bin ich auf die einzelnen Teilgebiete der KI eingegangen und habe erläutert, wo die Unterschiede zwischen einem normalen Programm und einer KI sind. In diesem Artikel geht es nun um die Algorithmen, mit denen man von einer schwachen KI zu einer starken KI gelangen kann. Dazu werde ich anhand von zwei einfachen Beispielen und einem kleinen Abstecher in die Welt der neuronalen Netze einen ersten Eindruck vermitteln, wie solche Algorithmen arbeiten.
Abgrenzung KI, Machine Learning und Deep Learning
Um von einer schwachen KI zu einer starken KI zu kommen, muss die Maschine lernen zu denken wie ein Mensch. Die Techniken und Prozesse, die dazu verwendet werden, fasst man unter Machine Learning zusammen, welches wiederum ein Teilgebiet der Künstlichen Intelligenz ist. Es gibt verschiedene Möglichkeiten, wie dieser Lernvorgang erfolgen kann:
- Supervised Learning: Sowohl die Eingabe als auch die korrekte Ausgabe sind für den Lernenden verfügbar
- Reinforcement Learning: Während die richtige Antwort nicht verfügbar ist, gibt es ein Feedback in Form von Belohnungen und Bestrafungen
- Unsupervised Learning: Es gibt keinen Hinweis darauf, was der richtige Ausgang ist. Es kann mit Hilfe von Methoden des supervised learnings eine Struktur in der Eingabe erlernt werden, indem zukünftige Eingaben auf der Grundlage vergangener Eingaben vorhergesagt werden
Ein ebenfalls sehr häufig verwendeter Begriff in diesem Zusammenhang ist das „Deep Learning“, ein Teilgebiet des maschinellen Lernens. Deep Learning ist eine Möglichkeit zur Umsetzung des maschinellen Lernens, bei dem neuronale Netze zur Implementierung verwendet werden.
Machine Learning Algorithmen
Machine Learning ist das Erstellen von Vorhersagemodellen durch Finden von Zusammenhängen in verschiedenen Datensätzen. Damit ein Machine Learning Algorithmus gut funktioniert, muss dieser mit Hilfe von Trainingsdaten zunächst trainiert werden. Diese Trainingsdaten, werden von dem jeweiligen Algorithmus nach Mustern und Zusammenhängen durchsucht. Beispiele des maschinellen Lernens sind Entscheidungsbäume oder auch Clustering Verfahren (wie K-Means), welche im Folgenden näher beschrieben werden.
Aufstellen von Hypothesen
Angenommen, wir haben fünf Datenpunkte in einem Diagramm gegeben. Nun sollen wir herausfinden, wie die Funktion aussieht, die diese Punkte verbindet. Beim supervised learning haben wir die Datenpunkte x und die dazugehörigen Funktionswerte f(x) als Input gegeben. Da unser Algorithmus aber lernen soll, gilt es eine Funktion (Hypothese) aufzustellen, die versucht die wahre Funktion so gut es geht nachzubilden. Zur Verdeutlichung sind hier vier verschiedene Hypothesen abgebildet:
Nun stellt sich die Frage, welche ist denn die richtige Funktion? Da es viele verschiedene Möglichkeiten gibt, brauchen wir Annahmen, die den Suchraum einschränken, das sogenannte „bias“. Meistens ist es so, dass wir eine Annäherung suchen, die so einfach wie möglich ist. Dieses wird auch in der folgenden Methode der Entscheidungsbäume deutlich.
Entscheidungsbaum
Ein Entscheidungsbaum ist eine Methode des supervised learnings. Er beschreibt eine Situation anhand eines Satzes von Eigenschaften. Der Einfachheit halber betrachten wir als Ergebnis eine ja/nein Entscheidung.
Dieses Baumdiagramm beschreibt die Fragestellung, ob das Restaurant betreten und ggf. auf einen freien Platz gewartet wird. Die erste Entscheidung ist dabei abhängig davon, wie viele Personen im Restaurant sind. Wenn niemand da ist, geht die Person auch nicht hinein, bei einigen Personen im Restaurant ist die Antwort ja und wenn es voll ist, kommt es auf die Wartezeit an. So ziehen sich die Fragen weiter durch. Es kommt noch auf Alternativen im Umkreis an, beispielsweise wie hungrig die Person ist und ob es regnet.
Durch positive und negative Beispiele kann der Machine Learning Algorithmus einen Entscheidungsbaum erstellen und verfeinern. Wenn eine Reihe von Beispielen gegeben ist, einige mit einer Ja-Entscheidung und einige mit einer Nein-Entscheidung, dann muss ein Entscheidungsbaum gefunden werden, der die richtige Antwort für die gegebenen Beispiele findet. Man trainiert also einen Algorithmus für den Entscheidungsbaum mit diesen Beispielen, so dass der Baum möglichst immer die richtige Antwort gibt, also die richtige Hypothese entwickelt hat. Das Problem, das beim Entwickeln des Algorithmus für den Entscheidungsbaum besteht, ist, dass bei n verschiedenen Entscheidungsattributen 2^(2^n )mögliche Hypothesen entstehen können.
Zur Überprüfung des Entscheidungsbaums werden dem Algorithmus neue unbekannte Situationen als Input gegeben. Diese Daten werden Testdaten genannt. Der Algorithmus ist validiert, wenn er die richtige Entscheidung trifft.
K-Means
K-Means ist ein Clustering Verfahren aus der Kategorie des unsupervised learnings. Der Algorithmus arbeitet nach einer festen Vorgehensweise:
- Wähle K Punkte als Anfangszentren
- Berechne die Abstände aller Punkte zu den jeweiligen Zentren
- Ordne die Datenpunkte den Zentren mit dem geringsten Abstand zu
- Zentriere die Zentren in dem entstandenen Cluster
- Wiederhole den Vorgang ab Punkt 2, bis sich die Zentren nicht mehr ändern
Die folgende Abbildung zeigt einen Durchlauf des Algorithmus mit 8 Iterationsschritten:
Dieser Algorithmus kann beispielsweise zur Clusterung von Blumen eingesetzt werden. Die Stiellänge und die Blütenfarbe werden als Kriterien gewählt und die Blumen als Datenpunkte in ein Koordinatensystem eingetragen. Durch mehrfaches Anwenden des Algorithmus, werden je nach dem, wie viele Zentren am Anfang gewählt wurden, Cluster ausgegeben. Jedes Cluster entspricht in dem Fall einer Blumenart.
Deep Learning – Neuronale Netze
Neuronale Netze werden benötigt, um komplexere Aufgaben zu realisieren. Dabei wird versucht, das Gehirn eines Menschen künstlich nachzubauen.
Neuronale Netze – Aufbau eines Neurons
Ein Neuron überträgt ein elektrisches Signal von den Dendriten entlang der Axone zu den Terminalen. Diese Signale werden dann an ein weiteres Neuron weitergegeben. Auf diese Weise können wir unsere Umgebung wahrnehmen.
Neuronen unterdrücken ihre Signale bis zu einem gewissen Punkt, bevor sie reagieren. Das bedeutet, sie müssen zunächst einen Schwellenwert überschreiten. Mathematisch betrachtet bedeutet das, es ist nicht möglich, ein menschliches Gehirn mit linearen Funktionen zu simulieren, wie es bei den Klassifizierungsproblemen möglich ist. Es wird eine Funktion benötigt, die ein Eingabesignal übernimmt und mit Berücksichtigung eines Schwellenwerts ein Ausgabesignal produziert. Diese Art der Funktion wird Aktivierungsfunktion genannt. Sehr gut geeignet dafür ist die Sigmoidfunktion y=1/(1+e^(-x) ).
Deep Learning – Aktivierungsfunktion
In der Abbildung oben ist zu erkennen, wie ein Neuron mathematisch umgesetzt werden kann. Es bekommt mehrere Eingabewerte, welche aufsummiert werden. Die resultierende Summe geht als Input in die Sigmoidfunktion, die die Ausgabe steuert. Da auch das menschliche Gehirn nicht aus einem einzigen Neuron besteht, werden viele dieser künstlichen Neuronen verbunden und es ergibt sich das künstliche neuronale Netz:
Nun haben wir ein Konstrukt, welches schwierige Probleme lösen kann. Doch wie lernt ein solches Netz nun? Es ist naheliegend, die Stärke der Verbindungen der einzelnen Neuronen zu variieren. Dies wird mit Hilfe von Gewichten an den einzelnen Verbindungen getan.
In diesem Beispiel ist jeder Knoten mit jedem in der nächsten Schicht verbunden. Dies ist nicht immer notwendig. Durch den Lernprozess werden diejenigen Verbindungen, die nicht benötigt werden, auf 0 gesetzt und sind somit nicht länger relevant für das neuronale Netz.
Es gibt verschiedene Arten von neuronalen Netzen, wie beispielsweise das convolutional neural network, welches unter anderem im Bereich der Bilderkennung eingesetzt wird. Jede einzelne Schicht ist hier dafür zuständig einzelne Bestandteile eines Bildes zu identifizieren. So kann die erste Schicht zum Beispiel gerade Striche in einem Bild herausfiltern, die zweite Kurven und so weiter. All diese Teile werden zusammengesetzt und am Ende wird ein Bild erkannt. Einsatzgebiete sind beispielsweise die automatische Nummernschilderkennung oder die Dekodierung von handschriftlichen Postleitzahlen auf Briefen.
Summary – wie funktioniert Künstliche Intelligenz?
Machine Learning ist die Basis für die künstliche Intelligenz. Sie besteht aus statistischen Vorhersagemodellen, mit denen die Maschine im Stande ist, selbstständig Zusammenhänge zu lernen, ohne diese direkt definiert zu bekommen. Dabei geht es von einfachen Algorithmen wie Clustering Verfahren, bis zu komplexen mathematischen Konstrukten wie den neuronalen Netzen.