Interview mit Shirin Glander und Uwe Friedrichsen

Deep Learning: Es ist Zeit für eine Demokratisierung der Technologie

Hartmut Schlosser

Shirin Glander, Uwe Friedrichsen

Deep Learning gehört derzeit wohl zu den heißesten Themen im Bereich der Software-Entwicklung. Manche AI-Experten meinen gar, Deep Learning führe zu einer komplett neuen Art von Software, sozusagen einer Software 2.0. Wir haben uns mit Shirin Glander und Uwe Friedrichsen, die beide auf der JAX 2018 eine Einführung in Deep Learning geben, über solche Zukunftsaussichten unterhalten. Außerdem klären wir, wie man heute schon ganz praktisch Deep Learning in eigenen Projekten einsetzen kann.

Deep Learning = Software 2.0?

JAXenter: Hallo Shirin, hallo Uwe! Wir wollen uns ein wenig über Deep Learning unterhalten. Einige Experten prognostizieren für den Bereich ja den Anbruch einer ganz neuen Ära, in der auch eine ganz neuen Art von Software entstehen soll. Was denkt Ihr über solche Vorhersagen? Wie sähe so eine Software 2.0 aus?

Uwe Friedrichsen: Ich denke, an der Stelle ist die Kristallkugel noch sehr trübe, sprich eine Prognose ist da aus meiner Sicht noch schwierig.

Deep Learning lässt sich für Aufgaben einsetzen, die Menschen leichtfallen, während sie für traditionelle Verfahren der AI schwer waren.

Was Deep Learning (DL) von vielen traditionellen AI-Ansätzen unterscheidet, ist die Tatsache, dass DL recht erfolgreich in Bereichen eingesetzt werden kann, die eine gewisse Art von „Intuition“ erfordern. Anders ausgedrückt lässt sich DL für Aufgaben einsetzen, die Menschen leichtfallen, während sie für traditionelle Verfahren der AI schwer waren (z.B. das Erkennen von Objekten in Bildern).

Damit birgt DL aus meiner Sicht das Potential, auf die „White Collar Worker“ (Büroangestelle, was auch Software-Entwickler umfasst) ähnliche Auswirkungen zu haben wie seinerzeit Roboter auf die „Blue Collar Worker“ (Fabrikarbeiter). Ob das so eintreten wird und wie weitreichend die Auswirkungen sein werden, lässt sich aus meiner Sicht aber noch schlecht vorhersagen, da Faktoren jenseits der reinen Technologie (z.B. politische, wirtschaftliche und soziale Entwicklungen) eine wesentlich entscheidendere Rolle spielen werden.

Shirin Glander: Diese Vorhersagen über die schier unendlichen Möglichkeiten, in denen AI und insbesondere Deep Learning unsere Welt verändern werden, gibt es ja nicht nur im Hinblick auf die Software-Entwicklung. Das liegt vor allem daran, dass Deep Learning in einigen Fällen so überraschend erfolgreich darin war, Aufgaben zu lösen, die man vorher für einen Computer als kaum möglich erachtete: zum Beispiel neue Spielzüge in Go zu „erfinden“ oder Bilder, Texte und Videos so realistisch zu erstellen, dass Menschen sie nicht von echten unterscheiden können.

Für die Software-Entwicklung könnten diese Konzepte zum Beispiel dahingehend übertragen werden, dass ein Algorithmus Code generiert oder problematische Codestellen, die zu Fehlern in Tests führen werden, bereits während der Entwicklung erkennt. Analog zum Beispiel des Go-spielens könnte so ein Algorithmus auch in der Lage sein, neue – effektivere – Varianten des Code-schreibens zu entwickeln.

Diese Möglichkeiten sind schon relativ nah an der Umsetzbarkeit, also nicht weit in der Zukunft. Allerdings wissen wir natürlich heute noch nicht, ob sich diese Möglichkeiten in der Praxis dann auch tatsächlich so umsetzen lassen. Ich denke aber schon, dass Software und Software-Entwicklung in Zukunft durch AI unterstützt und ergänzt wird.

Treffen Sie Shirin Glander und Uwe Friedrichsen live auf der JAX 2018:

Deep Learning – a Primer
Deep Learning is one of the „hot“ topics in the AI area – a lot of hype, a lot of inflated expectation, but also quite some impressive success stories. As some AI experts already predict that Deep Learning will become „Software 2.0“, it might be a good time to have a closer look at the topic. In this session we will try to give a comprehensive overview of Deep Learning. We will start with a bit of history and some theoretical foundations that we will use to create a little Deep Learning taxonomy. Then we will have a look at current and upcoming application areas: Where can we apply Deep Learning successfully and what does it differentiate from other approaches?

Dienstag, 24. April 2018, www.jax.de

JAXenter: Nun ist der Bereich AI ja nicht erst gestern entstanden. Spätestens seit den 60ern verbinden sich damit teils sehr fantastische Erwartungshaltungen – die in den seltesten Fällen in Erfüllung gingen. Wie unterscheidet sich die aktuelle Machine-Learning-Welle von den frühen AI-Ansätzen?

Uwe Friedrichsen: Dass die Erwartungshaltungen noch fantastischer geworden sind <lacht>! Nein, im Ernst: Aus meiner Sicht sind die größten Unterschiede die um Längen größere Rechenleistung gepaart mit ebenfalls um Größenordnung gewachsenen Datenmengen, die zum Lernen zur Verfügung stehen.

Shirin Glander: Genau, der wesentliche Unterschied liegt schlicht darin, dass viele Ideen und Konzepte, die damals theoretisch entwickelt wurden, erst durch die heutige Rechenleistung und Speicherkapazität so eingesetzt werden können, dass sich ihre Genialität und Leistung zeigen kann. Natürlich werden auch heute noch Weiterentwicklungen und neue Algorithmen entwickelt, aber die bauen eigentlich alle auf dem auf, was bereits vor Jahren konzeptionell erarbeitet wurde.

Uwe Friedrichsen: Ja, so kann ich mich noch gut an die Konnektionismus-Welle in den 80ern und 90ern erinnern. Damals dauerte es noch ewig, ein simples 3-schichtiges neuronales Netz mit ein paar Tausend Beispielen zu trainieren. Und erfolgreich war das auch nur, wenn man vorher in mühevoller Kleinarbeit die geeigneten Merkmale aus den Rohdaten extrahiert hat sowie eine gute Initialisierung für die zu lernenden Parameter gefunden hat. Das fühlte sich häufig wie die Suche nach der sprichwörtlichen Nadel im Heuhaufen an.

Heutige DL-Netze sind in der Lage, die geeigneten Merkmale selbst zu finden. Man zeigt ihnen die Rohdaten, und die ersten Schichten der Netze machen im Prinzip nichts anderes, als die für die Aufgabenstellung besten Merkmale zu extrahieren. Und weil das richtige Konfigurieren der sogenannten Hyperparameter, also der Parameter, die das Verhalten des Netzes steuern (z.B. Anzahl der Schichten, Lernrate, usw.), immer noch nicht ganz trivial ist, geht man mittlerweile zu einer Art „Meta-Lernen“ über, d.h. man versucht, die besten Hyperparameter-Einstellungen für eine Klasse von Problemen maschinell zu lernen, anstatt sie mühsam händisch herauszufinden und zu optimieren.

Das erfordert aber viel mehr Rechenleistung, als wir Anfang der 90er zur Verfügung gehabt hätten. Heute, mit nahezu unbegrenzter Rechenleistung via Cloud, ist das technisch kein Problem mehr. Ebenso ist das Speichern und Bereitstellen extrem großer Datenmengen, die ein wesentlich akkurateres Trainieren der Netze ermöglichen, dank Cloud und Big Data technisch kein Problem mehr.

Damit können wir heute im Bereich von Machine Learning (ML) und DL in Bereiche vordringen, die uns früher schlicht aufgrund fehlender Rechner-Ressourcen verwehrt waren. Darin liegt aus meiner Sicht aber auch eine der größten Gefahren, die ich aktuell in der AI, speziell im Bereich DL sehe: Auch wenn es technisch kein Problem mehr ist, so kostet Rechenleistung in dieser Größenordnung viel Geld – Geld, das nur recht wenige große Unternehmen aufzubringen in der Lage sind bzw. dazu bereit sind. Im Bereich der staatlichen Förderung o.ä. ist bis auf wenige Ausnahmen wie z.B. in China weitestgehend Fehlanzeige.

Wir können heute im Bereich von Machine Learning in Bereiche vordringen, die uns früher aufgrund fehlender Rechner-Ressourcen verwehrt waren.

Damit konzentriert sich nicht nur die angewandte Forschung, sondern auch die Grundlagenforschung in diesem Gebiet immer mehr auf ziemlich wenige Unternehmen. Es ist ja auch nachvollziehbar: Wenn ich „mal eben“ 10.000 GPUs benötige, um meine Hypothese in endlicher Zeit zu validieren, ist das z.B. für Google, Amazon oder ein vergleichbares Unternehmen kein Problem. Wenn ich das an einer Universität machen will, dann ist das mindestens schwierig, meistens aber schlicht nicht möglich.

Shirin Glander: Ähnlich sieht die Lage auch mit Daten aus. Um ein gutes DL-Modell zu bekommen, benötigen wir eine große Menge an Daten – die auch noch entsprechend aufbereitet werden müssen, z.B. durch Labelling. Auch hier haben Unternehmen wie Google und Facebook ein Daten-Monopol, was ihnen einen enormen Vorsprung und somit Vorteil verschafft. Nicht umsonst kommen viele der heute beliebten vortrainierten Modelle und Algorithmen von ihnen (z.B. GoogLeNet/Inception, Deep Dreaming, Prophet, etc.). Aber auch hier handelt es sich nur um den (wahrscheinlich kleinen) Teil, der open-sourced, also der Allgemeinheit zur freien Verfügung gestellt wurde; wir können uns nur ausmalen, was da noch so alles an AI im Hintergrund entwickelt wird.

Uwe Friedrichsen: Und wenn wir diese Situation mit meiner Hypothese verknüpfen, dass DL das Potential hat, signifikante Auswirkungen auf berufliche (und private) Bereiche zu haben, die bislang Menschen „vorbehalten“ waren, dann wird ein Schuh daraus. Die Geschichte lehrt uns, dass mächtige Werkzeuge in den Händen von wenigen selten zu guten Ergebnissen für die breite Masse geführt haben. Hier müssen wir aus meiner Sicht dringend an einer stärkeren Demokratisierung der Technologie arbeiten.

Wie startet man mit Deep Learning?

JAXenter: Deep Learning hat ja nicht gerade den Ruf, besonders leicht zugänglich zu sein. Eine Frage, die man immer wieder hört, ist denn auch: Wieviel Mathematik brauche ich eigentlich, um Deep-Learning-Techniken einsetzen zu können?

Uwe Friedrichsen: Da ich auf die vorherige Frage sehr lang geantwortet habe, halte ich es hier einmal kurz: Einfach einsetzen kann ich DL auch mit geringen Mathematik-Kenntnissen. Das vorhandene Ökosystem erlaubt einen einfachen, weitestgehend Mathematik-freien Zugang, mit dem man auch einfach ausprobieren kann, was geht und was nicht. Wenn ich mich aber tiefer mit dem Thema auseinandersetzen will, dann kommt man m.E. nicht daran vorbei, seine Mathematik-Kenntnisse wieder etwas aufzufrischen.

Shirin Glander: Aus Sicht eines Data Scientisten, der zwar einigermaßen gute mathematische Kenntnisse hat aber bei weitem kein Mathematiker ist, würde ich das bestätigen. Um die vorhandenen Bibliotheken und Algorithmen anzuwenden, reicht es aus, wenn man einigermaßen einschätzen kann, welchen Algorithmus man für welche Fragestellung einsetzen kann und diesen dann entsprechend der Dokumentation des gewählten Frameworks (z.B. TensorFlow) anwenden kann. Uwe hat ja vorhin schon das sogenannte Hyperparameter-Tuning erwähnt, also das automatisierte Justieren all der vielen Stellschrauben, die man bei einem Neuronalen Netz verstellen kann, um das bestmögliche Ergebnis zu bekommmen; mit diesem Tuning könnte man theoretisch durch reines Durchprobieren verschiedener Hyperparameter-Kombinationen ohne jegliche Mathematikkenntnisse ein Machine-Learning-Modell recht weit bringen. Allerdings kostet diese komplett „blinde“ Herangehensweise dafür mehr Zeit und Computerpower, die, wenn man z.B. größere Modelle auf Cloud-Instanzen trainiert, finanziell auch nicht unerhebliche Kosten verursachen kann.

Python Summit 2018
Oz Tiram

Advanced Flow Control in Python

mit Oz Tiram (derico – web development & consulting))

JAXenter: Ein Unterschied zu früher ist sicherlich auch, dass mittlerweile einige Deep-Learning-Projekte zur Verfügung stehen, die prinzipiell von jedermann genutzt werden können. Welche Tools, Frameworks oder Libraries könnt Ihr da empfehlen?

Shirin Glander: Beliebt sind im Moment vor allem TensorFlow und PyTorch. Aber es gibt auch noch eine ganze Reihe anderer, wie Caffe, Theano, CNTK, MXNet, etc. Für den Einstieg muss es aber auch nicht direkt ein spezielles Deep-Learning-Tool sein. Die meisten der allgemeineren Machine-Learning-Bibliotheken können auch zum Trainieren von Neuronalen Netzen genommen werden, sind aber flexibler in der Auswahl der Algorithmen, denn nicht immer ist Deep Learning die beste Methode, um ein Modell zu trainieren; andere Algorithmen, wie Random Forest, Gradient Boosting oder Naive Bayes sind in vielen Fällen einen Vergleich wert! Die beiden deutlichen Favoriten für solche allgemeinen Machine-Learning-Bibliotheken sind caret für R und scikit-learn für Python.

Uwe Friedrichsen: Ergänzen würde ich vielleicht noch Keras, da es eine einheitliche Fassade für diverse DL Frameworks wie z.B. TensorFlow, CNTK, Theano und MXNet bietet. Damit kann man Keras nutzen, um DL lokal auf seinem Rechner zu machen, aber auch als Frontend für die Angebote der großen Cloud-Anbieter. Wenn man sich rein auf der JVM bewegen möchte, dann sollte man vielleicht einmal einen Blick auf Eclipse Deeplearning4J werfen. Trotzdem empfehle ich, sich derzeit eher in Richtung Python zu orientieren. Das ML/DL-Ökosystem ist da einfach unvergleichbar größer und besser.

Deep Learning Stolpersteine

JAXenter: In Eurer JAX-Session behandelt Ihr auch typische Stolpersteine und Probleme beim Einsatz von Deep Learning. Könnt Ihr da einmal ein Beispiel nennen?

Shirin Glander: Stolpersteine und Probleme kann es auf mehreren Ebenen geben: zum einen natürlich auf der rein technischen Seite, aber auch gesellschaftliche und ethisch/moralische Implikationen sollte man nicht unbedacht lassen, wenn man einen Algorithmus entwickelt.

Probleme kann es auf mehreren Ebenen geben. Auch gesellschaftliche und ethische Implikationen sollte man nicht unbedacht lassen.

Technisch gesehen benötigen wir zu allererst die entsprechenden Daten und die nötige Computerpower. Problematisch ist häufig auch, dass die Daten – selbst wenn sie in ausreichender Menge vorhanden sind – für den verbreitetsten Anwendungsfall, der Klassifikation ein sogenanntes Label brauchen. Klassifikation bezeichnet das maschinelle Lernen anhand von historischen Daten, deren Ergebnis wir kennen; so erlernt die Maschine dann die mathematische Repräsentation der Daten, indem er versucht, das bekannte Ergebnis möglichst genau abzubilden. Und diese bekannten Ergebnisse sind in dem sogenannten Label beschrieben. Wenn wir also zum Beispiel ein Modell trainieren, das Katzen auf Bildern erkennt, brauchen wir sehr viele Bilder, auf denen Katzen oder andere Dinge drauf zu sehen sind – und jedes dieser vielen Bilder muss händisch mit dem entsprechenden Label „Katze“ oder „keine Katze“ versehen werden. Das ist natürlich extrem aufwendig!

In der Bilderkennung gibt es aber zum Glück inzwischen eine ganze Reihe vortrainierter Modelle, wie Google’s Inception oder ImageNet, die man frei verwenden kann, um seine eigenen Modelle zu trainieren. Wenn man solche vortrainierten Modelle hat, kommt man also auch mit wenig Daten weiter. In vielen spezielleren Anwendungsfällen gibt es die aber nicht, da sind Daten oft der Bottleneck.

Ein anderes Problem kann sein, dass Deep-Learning-Modelle so komplex sind, dass wir ihre Entscheidungen und was sie genau gelernt haben nicht mehr nachvollziehen können – wir bezeichnen sie deshalb als Black Box. Aus rein technischer Sicht ist es natürlich nicht nötig sie zu verstehen, solange das Ergebnis stimmt. Trotzdem plädiere ich dafür, dass es in den meisten Fällen durchaus sinnvoll (oder sogar notwendig) ist, Techniken anzuwenden, die uns zumindest ein annäherndes Verständnis liefern. Denn wenn wir unsere Modelle besser verstehen, können wir unter anderem mögliche Fehler frühzeitig vermeiden: z. B. würden wir erkennen, ob in unseren Trainingsdaten ein versteckter Bias ist, der dazu führt, dass unser Modell die falschen Merkmale in einem Bild erlernt.

Das vielleicht plakativste Beispiel ist das Modell, dass auf Trainingsbildern sehr gut darin war, Panzer von Zivilfahrzeugen zu unterscheiden; als man dieses Modell dann allerdings auf neue Bilder anwendete, wurden fast alle Zivilfahrzeuge auch als Panzer erkannt, und es stellte sich heraus, dass das daran lag, dass die meisten Panzer in den Trainingsbildern in grellem Sonnenlicht entstanden sind, während Zivilfahrzeuge einen deutlich dunkleren Hintergrund hatten. Das Modell hat also nicht die Formen der Fahrzeuge gelernt, sondern die Helligkeit des Hintergrunds.

Um so etwas zu vermeiden, gibt es heute einige Ansätze, die uns zeigen, welche Attribute unserer Daten zu einer Entscheidung geführt haben, wie z.B. LIME (Local Interpretable Model-agnostic Explanation). Ein besseres Verständnis für die Entscheidungen hilft aber auch, ihnen zu vertrauen. Das ist natürlich vor allem entscheidend, wenn wir Modelle in der Medizin einsetzen, z.B. um Brustkrebs auf Mammographie-Bildern zu erkennen oder andere Krankheiten zu diagnostizieren. Aber auch Entscheider in der Wirtschaft wollen in der Regel wissen, ob sie aufgrund einer von Maschinen getroffenen Entscheidung wirklich eine – möglicherweise risikohafte – Entscheidung treffen sollen.

Noch relevanter wird dieses Thema ab dem 25. Mai, denn dann tritt die neue EU-Datenschutzgrundverordnung in Kraft. In ihr sorgen vor allem die Artikel 13, 14, 15 und 22 für Diskussion, denn sie geben allen, die von Algorithmen-basierten Entscheidungen betroffen sind, das Recht, darüber informiert zu werden und eine Erklärung über die dahinterstehende Logik zu bekommen.

Ein weiteres Problem, das alle Modelle betrifft, die anhand von historischen Daten gelernt wurden, ist Fairness und gesellschaftlicher Bias. Wenn die Daten, die zum Lernen genutzt werden, einen Bias enthalten, weil bestimmte Hautfarben oder Gender gesellschaftlich benachteiligt wurden, dann lernen die Modelle natürlich diesen Bias mit – und führen zu einer selbsterfüllenden Prophezeiung, dass z.B. Gefangene mit dunklerer Hautfarbe häufiger wieder im Gefängnis landen werden und deshalb weniger geeignet für eine Bewährungsstrafe sind als solche mit weißer Hautfarbe. Ich reiße das hier nur kurz an, aber das betrifft tatsächlich mehr Anwendungsfälle von Deep Learning, als man vermuten würde und worüber wir uns bewusst sein sollten!

Uwe Friedrichsen: Ich denke, das waren erst einmal genug Stolpersteine <lacht>.

JAXenter: Was ist die Kernbotschaft Eurer Session, die jeder mit nach Hause nehmen sollte?

Uwe Friedrichsen: Nun ja, zunächst ist ja unser Ziel, das Thema DL etwas zu demystifizieren, ohne es zu trivialisieren. Wir wollen den Teilnehmern herüberbringen, dass es zwar ein weitläufiges Thema ist, aber dennoch keine geheime, hochkomplexe Kunst, die nur einigen wenigen Eingeweihten vorbehalten ist, sondern dass man sich auch als „normaler“ Mensch aus der IT da heranwagen kann und auch sollte.

Shirin Glander: Genau, ich möchte zeigen, wie man sich – auch als blutiger Anfänger – dem Thema Deep Learning praktisch nähern kann. Denn durch die vielen Frameworks und Daten, die kostenfrei zur Verfügung stehen, kann man vieles einfach mal ausprobieren. Und durch die große Community, die im Internet um das Thema besteht, findet man auch sehr leicht Anleitungen mit Code-Beispielen und Hilfe, wenn man Fragen hat. Ich zeige darum ein paar Wege, wie man zum Beispiel relativ leicht sein erstes Neuronales Netz bauen kann oder wie man einem Computer beibringen kann, einfache Spiele zu spielen, und hoffe, dass sich einige nach unserer Session mal selbst daran versuchen.

Uwe Friedrichsen: Gerade vor dem Hintergrund der drohenden Monopolisierung des Themas durch einige wenige Unternehmen freue zumindest ich mich über jede einzelne Person, die sich mit DL auseinandersetzt und so die Demokratisierung des Themas ein kleines Stück voranbringt.

Daher ist meine Kernbotschaft: DL ist kein Hexenwerk. Schaut es Euch an, macht mit, gestaltet mit!

JAXenter: Vielen Dank für dieses Interview!

Shirin Glander arbeitet als Data Scientist bei codecentric. Sie hat in der Bioinformatik promoviert und nutzt von Statistik bis Machine Learning verschiedenste Methoden, um aus Daten spannende und neue Erkenntnisse zu gewinnen. Regelmäßig bloggt sie über Data Science Themen und gibt Schulungen zu Deep Learning mit Keras.

 

Uwe Friedrichsen travels the IT world for many years. As a fellow of codecentric AG he is always in search of innovative ideas and concepts. His current focus areas are resilience, scalability and the IT of (the day after) tomorrow. Often, you can find him on conferences sharing his ideas, or as author of articles, blog posts, tweets and more.

 

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: