Vergangenen Sommer fragte sich Stefan Blum, ob wir durch Machine Learning nicht mehr programmieren dürfen, weil uns der Computer alles abnimmt. „Ganz so weit ist es noch nicht“, lautete sein Fazit. Im heutigen Artikel überlegen wir uns, ob wir Machine Learning eigentlich auch ohne das ganze Technik-Brimborium verstehen und ausprobieren können.
Machine Learning ist im Zusammenhang mit Künstlicher Intelligenz (KI), Big Data und weiteren Buzzwords wie Deep Learning und Neuronalen Netzen konstant in den Medien vertreten. Als Hauptzutaten werden massive Rechenpower (CPUs und/oder GPUs), riesige Datenmengen – eben Big Data – sowie ausgefeilte KI-Programmierbibliotheken (TensorFlow, Keras, Caffe etc.) genannt. Als wir Ende 2016 einen Einsteigerworkshop zum Thema Machine Learning hielten, fragten wir uns in der Vorbereitung, ob das wirklich alles nötig ist, um die zugrundeliegenden Konzepte zu verstehen und in die Thematik einzusteigen. Also haben wir die Herausforderung angenommen und einen Workshop gestaltet, den auch meine Oma oder ein Kind verstehen kann. OHNE Computer, OHNE große Datenmengen und OHNE Machine Learning APIs. Ganz und gar analog: nur mit Zettel, Stift. Machine Learning entmystifiziert, zum Anfassen und Begreifen, so lautete das Motto. Wie das funktioniert hat, wollen wir an dieser Stelle erzählen und zum Nachmachen anregen. Wir geben euch damit ein Werkzeug an die Hand, um das Thema Nicht-Informatikern und Mathematikern verständlich zu erklären.
In diesem ersten Teil der Blog-Serie gehen wir auf Unsupervised und Supervised Machine Learning ein. Ein zweiter Blog-Eintrag wird sich dann mit Reinforcement Learning beschäftigen.
Inhalt
Bevor wir richtig loslegen, wiederholen wir die drei grundsätzlichen Methoden im Machine Learning: Unsupervised Learning, Supervised Learning und Reinforcement Learning. Was war das nochmal?
Unsupervised Learning (hier: Clustering) wird in der Regel auf Daten angewandt, bei denen man vorab keine Information über innere Zusammenhänge hat. Man möchte aber gerne mehr über die Daten erfahren – zum Beispiel, ob die Daten nicht doch verschiedenen Kategorien oder Klassen angehören. Um das zu überprüfen, gruppiert man die „nahe beieinander stehenden“ Daten. Wie funktioniert das ohne Verwendung eines Computers?
Zuerst dürfen die Beispieldaten nicht zu kompliziert sein. Um eine Lösung auf dem Papier erreichen zu können, betrachtet man optimalerweise für jedes Beispiel nur zwei Eigenschaften. Wir fanden die Idee spannend, einfach die Teilnehmer des Experiments selbst anhand der beiden Eigenschaften Dienstjahre sowie Entfernung Geburtsort – Arbeitsplatz (Distanz) zu clustern. Dadurch wollten wir mehr über uns und unsere Kollegen erfahren. Man kann aber auch ganz andere Werte oder Eigenschaften verwenden. Seid kreativ! Die Daten könnten also so aussehen:
Mitarbeiter | Dienstjahre | Distanz [km] |
---|---|---|
Angela | 15 | 400 |
Sigmar | 8 | 200 |
Frank-Walter | 8 | 300 |
Andrea | 6 | 500 |
Christian | 2 | 400 |
Thomas | 12 | 600 |
Ursula | 13 | 800 |
Im Folgenden sind zwei Beispiele von Clustering-Algorithmen zum selber ausprobieren aufbereitet:
Material: Pinnwand/Whiteboard, Kärtchen oder Post-Its, Stift
Vorbereitung: Jeder Teilnehmer des Clustering-Experimentes bekommt ein Kärtchen, das er mit seinem Namen oder Kürzel beschriftet – seinen Avatar.
Info: Beim Single-linkage-Algorithmus berechnet sich der Abstand zweier Cluster aus dem Abstand der zwei am nächsten zueinander liegenden Cluster-Mitglieder. Die Anzahl der Ergebnis-Cluster muss nicht zwingend vorab festgelegt werden. Dies korrespondiert mit dem vollständigen Aufbau einer Baumhierarchie. Diese kann dann auf beliebiger Ebene geschnitten werden, um die gewünschte Anzahl an Clustern zu bekommen. Wir werden aber zwei Cluster als Wunschergebnis festlegen.
Und so geht ihr vor:
Das Ergebnis in unserem Beispiel würde dann mit zwei Zielclustern wie folgt aussehen (die Kantenbeschriftung gibt die Verbindungsreihenfolge an):
Jetzt kommt noch der kreative Teil: Ihr müsst das Ergebnis interpretieren. Ist es möglich, aus der gefundenen Gruppierung Erkenntnisse abzuleiten? In unserem Beispiel müssten wir uns Fragen, ob bzw. was die altgedienten Mitarbeiter Angela, Ursula und Thomas vom Rest unterscheidet. In diesem konstruierten, niederdimensionalen Beispiel ist eine echte Erkenntnis aber sicher schwer abzuleiten. Man kann feststellen, dass neuere Mitarbeiter nicht mehr so weit vom beruflichen Einsatzort entfernt geboren sind. Nimmt die Bodenständigkeit zu? Gab es Änderungen im Recruiting? Weitergehende Analysen wären hier nötig.
Material: Pinnwand/Whiteboard, Kärtchen oder Post-Its in drei Farben, Stift
Vorbereitung: Jeder Teilnehmer des Experimentes bekommt drei Kärtchen in unterschiedlicher Farbe, die er jeweils mit seinem Namen oder Kürzel beschriftet – seinen Avatar. Je ein weiteres Kärtchen jeder Farbe wird mit einem großen X markiert. Dies sind die Cluster-Mittelpunkte.
Info: Beim k-Means-Algorithmus muss die Anzahl der berechneten Cluster vorab festgelegt werden. In unserem Beispiel wählen wir k = 3.
Und so geht ihr vor:
Iteration: Schritte 4 und 5 werden nun so lange wiederholt, bis sich entweder die Zuordnung oder die Position der Cluster-Mittelpunkte nicht mehr ändert.
Supervised Learning (hier: Klassifikation) wird angewandt, wenn man für seine Daten beschreibende Labels hat und für zukünftige noch unbekannte Beispiele diese Labels zuordnen will. Um Klassifikation auf dem Papier auszuprobieren, wollen wir einen Automaten basteln, der Obst sortieren kann. Er klassifiziert das Obst auf Grund der Eigenschaften Farbe und Form. Zuerst betrachten wir wieder unsere Daten, in diesem Fall ein gemischter Obstkorb. Zu jedem dieser Obststücke wissen wir, zu welcher Obstsorte (Labels: Apfel, Birne, …) es gehört und welche Farbe und Form es hat.
Um später überprüfen zu können, wie gut unsere Automaten Obst sortieren, teilen wir unseren Obstkorb zufällig in zwei Teile: Eine Menge, um den Automaten zu trainieren und eine zur späteren Überprüfung.
Im Folgenden gibt es eine Bastelanleitung für zwei Methoden, solch einen Obstsortierautomaten auf dem Papier zu bauen bzw. zu trainieren:
Material: Papier, Ausdruck der Trainingsmenge in Farbe, Stift, Schere
Vorbereitung: Druckt die Trainingsdaten in Farbe aus und schneidet jedes der 15 Obststücke einzeln aus.
Teilt euch in drei Gruppen auf (optional).
Info: Wie sieht ein Entscheidungsbaum aus und wie funktioniert er grob:
Und so geht ihr vor:
Seht Euch das Beispielergebnis mit nur fünf zufälligen Obststücken und den beispielhaften Entscheidungsbaum an:
Was passiert, wenn ihr die Trainingsdaten zwischen den Gruppen austauscht?
Weshalb passiert das?
Konstruiert nun einen geeigneten Baum basierend auf allen 15 Trainingsbeispielen. Als Hilfsmittel könnt ihr die Obststücke wie folgt sortieren:
Der Ergebnis-Entscheidungsbaum könnte zum Beispiel so aussehen:
oranges Obst => Laut Entscheidungsbaum ist es ein Apfel.
Material: ausgedrucktes Aufgabenblatt „Obstsortierer“, Stift und Papier
Info: Neuronale Netze können nicht direkt mit kategorischen Daten arbeiten. Deswegen rechnen wir die Form und Farbe des Obstes in Zahlenwerte um. Um mit dem Neuronalen Netz ein Modell zu trainieren, nehmen wir eine kleinere Obstmenge, um nicht zu viel rechnen zu müssen. Außerdem unterscheiden wir vorerst nur zwischen Äpfeln und Birnen und zwar mit einer einfachen Entscheidungsfunktion: Wenn das Ergebnis größer ist als 0, sagen wir das Obst ist ein Apfel, ansonsten ist es eine Birne.
Testet die Vorhersage mit den verbleibenden Obstbeispielen. Wie viele werden korrekt einsortiert?
Bei „echten“ neuronalen Netzen wird statt der Schwellwertentscheidung „>0“ häufig eine sigmoide Funktion verwendet. Anhand dieser Funktion kann man das Ausmaß des Vorhersagefehlers bestimmen und die Gewichte systematisch proportional zu diesem Fehler anpassen. Da wir mit Stift und Papier einfach rechnen wollen, bleiben wir bei der Schwellwertfunktion. Ein Ergebnisbeispiel seht ihr hier:
Nachdem wir uns in diesem ersten Teil der Blog-Serie mit Unsupervised und Supervised Machine Learning auseinandergesetzt haben, könnt ihr euch im zweiten Teil der Serie auf ein Reinforcement Learning Tutorial mit Zettel und Stift freuen!
Was bedeutet Machine Learning und wie kann Ihr Unternehmen vom Einsatz profitieren? Erfahren Sie, wie wir Sie beim Thema Machine Learning unterstützen können: