Deep Learning and Human Intelligence – Part 2 of 2

Data dependency is one of the biggest problem of Deep Learning Architectures. This difficulty lies not so much in the algorithm of Deep Learning as in the invisible structure of the data itself.

This is part 2 of 2 of the Article Series: Deep Learning and Human Intelligence.

We saw that the process of discovering numbers was accompanied with many aspects of what are today basic ideas of Machine Learning. But let us go back, a little before that time, when humankind did not fully discovered the concept of numbers. How would a person, at such a time, perceive quantity and the count of things? Some structures are easily recognizable as patterns of objects, that is numbers, like one sun, 2 trees, 3 children, 4 clouds and so on. Sets of objects are much simpler to count if all the objects of the set are present. In such a case it is sufficient to keep a one-to-one relationship between two different set, without the need for numbers, to make a judgement of crucial importance. One could consider the case of two enemies that go to war and wish to know which has a larger army. It is enough to associate a small stone to every enemy soldier and do the same with his one soldier to be able to decide, depending if stones are left or not, if his army is larger or not, without ever needing to know the exact number soldier of any of the armies.

But also does things can be counted which are not directly visible, and do not allow a direct association with direct observable objects that can be seen, like stones. Would a person, at that time, be able to observe easily the 4-th day since today, 5 weeks from now, when even the concept of week is already composite? Counting in this case is only possible if numbers are already developed through direct observation, and we use something similar with stones in our mind, i.e. a cognitive association, a number. Only then, one can think of the concept of measuring at equidistant moments in time at all. This is the reason why such measurements where still cutting edge in the time of Galileo Galilei as we seen before. It is easily to assume that even in the time when humans started to count, such indirect concepts of numbers were not considered to be in relation with numbers. This implies that many concepts with which we are today accustomed to regard as a number, were considered as belonging to different groups, cluster which are not related. Such an hypothesis is not even that much farfetched. Evidence for such a time are still present in some languages, like Japanese.

When we think of numbers, we associate them with the Indo-Arabic numbers, but in Japanese numbers have no decimal structure and counting depends not only on the length of the set (which is usually considered as the number), but also on the objects that make up the set. In Japanese one can speak of meeting roku people, visiting muttsu cities and seeing ropa birds, but referring each time to the same number: six. Additional, many regular or irregular suffixes make the whole system quite complicated. The division of counting into so many clusters seems unnecessarily complicated today, but can easily be understood from a point of view where language and numbers still form and, the numbers, were not yet a uniform concept. What one can learn from this is that the lack of a unifying concept implies an overly complex dependence on data, which is the present case for Deep Learning and AI in general.

Although Deep Learning was a breakthrough in the development of Artificial Intelligence, the task such algorithms can perform were and remained very narrow. It may identify birds or cancer cells, but it will miss the song of the birds or the cry of the patient with cancer. When Watson, a Deep Learning Architecture played the famous Jeopardy game against two former Champions and won, it still made several simple mistakes, like going for the same wrong answer like the player before. If it could listen to the answer of the candidate, it could delete the top answer it had, and gibe the second which was the right one. With other words, Deep Learning Architecture are not multi-tasking and it is for this reason that some experts in AI are calling them intelligent idiots.

Imagine spending time learning to play a game for years and years, and then, when mastering it and wish to play a different game, to be unable to use any of the past experience (of gaming) for the new one and needing to learn everything from scratch. That could be quite depressing and would make life needlessly difficult. This is the reason why people involved in developing Deep Learning worked from early on in the development of multi-tasking Deep Learning Architectures. On the way a different method of using Deep Learning was discovered: transfer learning. Because the time it takes for a Deep Learning Architecture to learn is very long, transfer learning uses already learned Deep Learning Architectures but for slightly different task. It is similar to the use of past experiences in solving new problems, but, the advantage of transfer learning is, it allow the using of past experiences (what it already learned) which reduces dramatically the amount of new data needed in performing a new task. Still, transfer learning is far away from permitting Deep Learning Architectures to perform any kind of task learning only from one master data set.

The management of a unique master data set which includes all the needed data to enable human accuracy for any human activity, is not enough. One needs another ingredient, the so called cost function which translates, in this case, to the human brain. There are all our experiences and knowledge. How long does it takes to collect sufficient of both to handle a normal human life? How much to achieve our highest potential? If not a lifetime, at least decades. And this also applies to our job: as a IT-developer, a Data Scientist or a professor at the university. We will always have to learn new things, how to use them, and how to expand the limits of our perceptions. The vast amount of information that science has gathered over the last four centuries makes it impossible for any human being to become an expert in all of it. Thus, one has to specialized. After the university, anyone has to choose o subject which is appealing enough to study it for decades. Here is the first sign of what can be understood as data segmentation and dependency. Such improvements can come in various forms: an algorithm in the IT, a theorem in mathematics, a new way to look at particles in physics or a new method to scan for diseases in biology, and so on. But there is a price to pay for specialization: the inability to be an expert in another field or subfield. (Subfields induces limitation!)

Lets take the Deep Learning algorithm itself as an example. For IT and much of everyday life, this is a real breakthrough, but it lacks any scientific, that is mathematical, foundation. There are no theorems which proofs that it will find (converge, to use a mathematical term) the global optimum. This does not appear to be of any great consequences if it can be so efficient, except that, when adding new data and let the algorithm learn the same architecture again, there is no guaranty what so ever that it will be as good as the old model, or even better. On the contrary, it is as real as the efficiency of the first model, that chances are that the new model with the new data will perform worse than the old model, and one has to invest again time in finding a better model, or even a different architecture. On the other hand, with a mathematical proof of convergence, it would be always possible to know in what condition such a convergence can be achieved. In other words, without deep knowledge in mathematics, any proof of a consistent Deep Learning Algorithm is impossible.

Such a situation is true for any other corssover between fields. A mathematical genius will make a lousy biologist, a great chemist will make a average economist, and a top economist will be a poor physicist. Knowledge is difficult to transfer and this is true also for everyday experiences. We learn from very small to play a game like football, but are unable to use the reflexes to play basketball, or tennis better than a normal beginner. We learn a new language after years and years of practice, but are unable to use the way we learned to learn faster other languages. We are trapped within the knowledge we developed from the data we used. It is for this reason why we cannot transfer the knowledge a mathematician has developed over decades to use it in biology or psychology, even if the knowledge is very advanced. Instead of thinking in knowledge, we thing in data. This is similar to the people which were unaware of numbers, and used sets (data) to work with them. Numbers could be very difficult to transmit from one person to another in former times.

Only think on all the great achievements that our society managed, like relativity, quantum mechanics, DNA, machines, etc. Such discoveries are the essences of human knowledge and took millennia to form and centuries to crystalize. Still, all this knowledge is captive in the data, in the special frame in which it was discovered and never had the chance to escape. Imagine the possibility to use thoughts/causalities like the one in relativity or quantum mechanics in biology, or history, or of the concept of DNA in mathematics or art. Imagine a music composition where the law of the notes allows a “tunnel effect” like in quantum mechanics, lower notes to warp the music scales like in relativity and/or to twist two music scale in a helix-like play. How many way to experience life awaits us. Or think of the knowledge hidden in mathematics which could help develop new medicine, but can not be transmitted.

Another example of the connection we experience between knowledge and the data through which we obtain it, are children. They are classical example when it come determine if one is up to explain to them something. Take as an explain something simple they can observe often, like lightning and thunder. Normal concepts like particles, charge, waves, propagation, medium of propagation, etc. become so complicated to expose by other means then the one through which they were discovered, that it becomes nearly impossible to explain to children how it works and that they do not need to fear it. Still, one can use analogy (i.e., transfer) to enable an explanation. Instead of particles, one can use balls, for charge one can use hardness, waves can be shown with strings by keeping one end fix and waving the other, propagation is the movement of the waves from one end of the string to the other end, medium of propagation is the difference between walking in air and water, etc. Although difficult, analogies can be found which enables us to explain even to children how complex phenomena works.

The same is true also for Deep Learning. The model, the knowledge it can extract from the data can be expressed only by such data alone. There is no transformation of the knowledge from one type of data to another. If such a transformation would exists, then Deep Learning would be able to learn any human task by only a set of data, a master data set. Without such a master data set and a corresponding cost function it will be nearly impossible to develop AI that mimics human behavior. With other words, without the realization how our mind works, and how to crystalize by this the data needed, AI will still need to look at all the activities separately. It also implies that AI are restricted to the human understanding of reality and themselves. Only with such a characteristic of a living being, thus also AI, can development of its on occur.

Kiano – visuelle Exploration mit Deep Learning

Kiano – eine iOS-App zur visuellen Exploration und Suche der eigenen Fotos.

Menschen haben kein Problem, komplexe Bilder zu verstehen, es fällt ihnen aber schwer, gezielt Bilder in großen Bildersammlungen (wieder) zu finden. Da die Anzahl von Bildern, insbesondere auch auf Smartphones zusehends zunimmt – mehrere tausend Bilder pro Gerät sind keine Seltenheit, wird die Suche nach bestimmten Bildern immer schwieriger. Ist bei einem gesuchten Foto dessen Aufnahmedatum unbekannt, so kann es sehr lange dauern, bis es gefunden ist. Werden dem Nutzer zu viele Bilder auf einmal präsentiert, so geht der Überblick schnell verloren. Aus diesem Grund besteht eine typische Bildsuche heutzutage meist im endlosen Scrollen über viele Bildschirmseiten mit langen Bilderlisten.

Dieser Artikel stellt das Prinzip und die Funktionsweise der neuen iOS-App “Kiano” vor, die es Nutzern ermöglicht, alle ihre Bilder explorativ mittels visuellem Browsen zu erkunden. Der Name “Kiano” steht hierbei für “Keep Images Arranged & Neatly Organized”. Mit der App ist es außerdem möglich, zu einem Beispielbild gezielt nach ähnlichen Fotos auf dem Gerät zu suchen.

Um Bilder visuell durchsuch- und sortierbar zu machen, werden sogenannte Merkmalsvektoren bzw. Featurevektoren verwendet, die Aussehen und Inhalt von Bildern kompakt repräsentieren können. Zu einem Bild lassen sich ähnliche Bilder finden, indem die Bilder bestimmt werden, deren Featurevektoren eine geringe Distanz zum Featurevektor des Suchbildes haben.

Werden Bilder zweidimensional so angeordnet, dass die Featurevektoren benachbarter Bilder sehr ähnlich sind, so erhält man eine visuell sortierte Bilderlandkarte. Bei einer visuell sortierten Anordnung der Bilder fällt es Menschen deutlich leichter, mehr Bilder gleichzeitig zu erfassen, als dies im unsortierten Fall möglich wäre. Durch die graduelle Veränderung der Bildinhalte wird es möglich, über diese Karte visuell zu navigieren.

Generierung von Featurevektoren zur Bildbeschreibung

Convolutional Neural Networks (CNNs) sind nicht nur in der Lage, Bilder mit hoher Genauigkeit zu klassifizieren, d.h. zu erkennen, welches Objekt – entsprechend einer Menge von gelernten Objektkategorien auf einem Bild zu sehen ist, die Aktivierungen der Netzwerkschichten lassen sich auch als universelle Featurevektoren zur Bildbeschreibung nutzen. Während die vorderen Netzwerkschichten von CNNs einfache visuelle Bildmerkmale wie Farben und einfache Muster detektieren, repräsentieren die Ausgangsschichten des Netzwerks die semantischen Informationen bezüglich der gelernten Objektkategorien. Die Zwischenschichten des Netzwerks sind weniger von den Objektkategorien abhängig und können somit als generelle abstrakte Repräsentationen des Inhalts der Bilder angesehen werden. Hierbei ist es möglich, bereits fertig trainierte Klassifikationsnetzwerke für die Featureextraktion wiederzuverwenden. In der Visual Computing Gruppe der HTW Berlin wurden umfangreiche Evaluierungen durchgeführt, um zu bestimmen, welche Netzwerkschichten von welchen CNNs mit welchen zusätzlichen Transformationen zu verwenden sind, um aus Netzwerkaktivierungen Feature-Vektoren zu erzeugen, die sehr gut für die Suche nach beliebigen Bildern geeignet sind.

Beste Ergebnisse hinsichtlich der Suchgenauigkeit (der Mean Average Precision) wurden mit einem Deep Residual Learning Network (ResNet-200) erzielt. Die 2048 Aktivierungen vor dem vollvernetzten letzten Layer werden als initiale Featurevektoren verwendet, wobei sich die Suchgenauigkeit durch eine L1-Normierung, gefolgt von einer PCA-Transformation (Principal Component Analysis) sogar noch verbessern lässt. Hierdurch ist es möglich, die Featurevektoren auf eine Größe von nur 64 Bytes zu reduzieren. Leider ist die rechnerische Komplexität der Bestimmung dieser hochwertigen Featurevektoren zu groß, um sie auf mobilen Geräten verwenden zu können. Eine gute Alternative stellen die Mobilenets dar, die sich durch eine erheblich reduzierte Komplexität auszeichnen. Als Kompromiss zwischen Klassifikationsgenauigkeit und Komplexität wurde für die Kiano-App das Mobilenet_v2_0.5_128 verwendet. Die mit diesem Netzwerk bestimmten Featurevektoren wurden ebenfalls auf eine Größe von 64 Bytes reduziert.

Die aus CNNs erzeugten Featurevektoren sind gut für die Suche nach Bildern mit ähnlichem Inhalt geeignet. Für die Suche nach Bilder, mit ähnlichen visuellen Eigenschaften (z.B. die auftretenden Farben oder deren örtlichen Verteilung) sind diese Featurevektoren nur bedingt geeignet. Hierfür eignen sich klassische sogenannte “Low-Level”-Featurevektoren besser. Da für eine ansprechende und leicht erfassbare Bildsortierung auch eine Übereinstimmung dieser visuellen Bildattribute wichtig ist, kommt bei Kiano ein weiterer Featurevektor zum Einsatz, mit dem sich diese “primitiven” visuellen Bildattribute beschreiben lassen. Dieser Featurevektor hat eine Größe von 50 Bytes. Bei Kiano kann der Nutzer in den Einstellungen wählen, ob bei der visuellen Sortierung und Bildsuche größerer Wert auf den Bildinhalt oder die visuelle Erscheinung eines Bildes gelegt werden soll.

Visuelle Bildsortierung

Werden Bilder entsprechend ihrer Ähnlichkeiten sortiert angeordnet, so können mehrere hundert Bilder gleichzeitig wahrgenommen bzw. erfasst werden. Dies hilft, Regionen interessanter Bildern leichter zu erkennen und gesuchte Bilder schneller zu entdecken. Die Möglichkeit, viele Bilder gleichzeitig präsentieren zu können, ist neben Bildverwaltungssystemen besonders auch für E-Commerce-Anwendungen interessant.

Herkömmliche Dimensionsreduktionsverfahren, die hochdimensionale Featurevektoren auf zwei Dimensionen projizieren, sind für die Bildsortierung ungeeignet, da sie die Bilder so anordnen, dass Lücken und Bildüberlappungen entstehen. Sollen Bilder sortiert auf einem dichten regelmäßigen 2D-Raster angeordnet werden, kommen als Verfahren nur selbstorganisierende Karten oder selbstsortierende Karten in Frage.

Eine selbstorganisierende Karte (Self Organizing Map / SOM) ist ein künstliches neuronales Netzwerk, das durch unbeaufsichtigtes Lernen trainiert wird, um eine niedrigdimensionale, diskrete Darstellung der Daten des Eingangsraums als sogenannte Karte (Map) zu erzeugen. Im Gegensatz zu anderen künstlichen neuronalen Netzen, werden SOMs nicht durch Fehlerkorrektur, sondern durch ein Wettbewerbsverfahren trainiert, wobei eine Nachbarschaftsfunktion verwendet wird, um die lokalen Ähnlichkeiten der Eingangsdaten zu bewahren.

Eine selbstorganisierende Karte besteht aus Knoten, denen einerseits ein Gewichtsvektor der gleichen Dimensionalität wie die Eingangsdaten und anderseits eine Position auf der 2D-Karte zugeordnet sind. Die SOM-Knoten sind als zweidimensionales Rechteckgitter angeordnet. Das vom der SOM erzeugte Mapping ist diskret, da jeder Eingangsvektor einem bestimmten Knoten zugeordnet wird. Zu Beginn werden die Gewichtsvektoren aller Knoten mit Zufallswerten initialisiert. Wird ein hochdimensionaler Eingangsvektor in das Netz eingespeist, so wird dessen euklidischer Abstand zu allen Gewichtsvektoren berechnet. Der Knoten, dessen Gewichtsvektor dem Eingangsvektor am ähnlichsten ist, wird als Best Matching Unit (BMU) bezeichnet. Die Gewichte des BMU und seiner auf der Karte örtlich benachbarten Knoten werden an den Eingangsvektor angepasst. Dieser Vorgang wird iterativ wiederholt. Das Ausmaß dieser Anpassung nimmt im Laufe der Iterationen und der örtlichen Entfernung zum BMU-Knoten ab.

Um SOMs an die Bildsortierung anzupassen, sind zwei Modifikationen notwendig. Jeder Knoten darf nicht von mehr als einem Featurevektor (der ein Bild repräsentiert) ausgewählt werden. Eine Mehrfachauswahl würde zu einer Überlappung der Bilder führen. Aus diesem Grund muss die Anzahl der SOM-Knoten mindestens so groß wie die Anzahl der Bilder sein. Eine sinnvolle Erweiterung einer SOM verwendet ein Gitter, bei dem gegenüberliegende Kanten verbunden sind. Werden diese Torus-förmigen Karten für große SOMs verwendet, kann der Eindruck einer endlosen Karte erzeugt werden, wie es in Kiano umgesetzt ist. Ein Problem der SOMs ist ihre hohe rechnerische Komplexität, die quadratisch mit der Anzahl der zu sortierenden Bilder wächst, wodurch die maximale Anzahl an zu sortierenden Bildern beschränkt wird. Eine Lösung stellt eine selbstsortierende Karte (Self Sorting Map / SSM) dar, deren Komplexität nur n log(n) beträgt.

Selbstsortierende Karten beginnen mit einer zufälligen Positionierung der Bilder auf der Karte. Diese Karte wird dann in 4×4-Blöcke aufgeteilt und für jeden Block wird der Mittelwert der zugehörigen Featurevektoren bestimmt. Als nächstes werden aus 2×2 benachbarten Blöcken jeweils vier korrespondierende Bild-Featurevektoren untersucht und ihre zugehörigen Bilder gegebenenfalls getauscht. Aus den 4! = 24 Anordnungsmöglichkeiten wird diejenige gewählt, die die Summe der quadrierten Differenzen zwischen den jeweiligen Featurevektoren und den Featuremittelwerten der Blöcke minimiert. Nach mehreren Iterationen wird jeder Block in vier kleinere Blöcke halber Breite und Höhe aufgeteilt und wiederum in der beschriebenen Weise überprüft, wie die Bildpositionen dieser kleineren Blöcke getauscht werden sollten. Dieser Vorgang wird solange wiederholt, bis die Blockgröße auf 1×1 Bild reduziert ist.

In der Visual-Computing Gruppe der HTW Berlin wurde untersucht, wie die Sortierqualität des SSM-Algorithmus verbessert werden kann. Anstatt die Mittelwerte der Featurevektoren als konstanten Durchschnittsvektor für den gesamten Block zu berechnen, verwenden wir gleitende Tiefpassfilter, die sich effizient mittels Integralbildern berechnen lassen. Hierdurch entstehen weichere Übergänge auf der sortierten Bilderkarte. Weiterhin wird die Blockgröße nicht für mehrere Iterationen konstant gehalten, sondern kontinuierlich zusammen mit dem Radius des Filterkernels reduziert. Durch die Verwendung von optimierten Algorithmen von “Linear Assignment” Algorithmen wird es weiterhin möglich, den optimalen Positionstausch nicht nur für jeweils vier Featurevektoren bzw. Bildern sondern für eine deutlich größere Anzahl zu überprüfen. All diese Maßnahmen führen zu einer deutlich verbesserten Sortierungsqualität bei gleicher Komplexität.

Effiziente Umsetzung für iOS

Wie so oft, liegen die softwaretechnischen Herausforderungen an ganz anderen Stellen, als man zunächst vermutet. Für eine effiziente Implementierung der zuvor beschriebenen Algorithmen, insbesondere der SSM, stellte es sich heraus, dass die Programmiersprache Swift, in der iOS Apps normaler Weise entwickelt werden, erheblich mehr Rechenzeit benötigt, als eine Umsetzung in der Sprache C. Im Zuge der stetigen Weiterentwicklung von Swift und dessen Compiler mag sich die Lücke zu C zwar immer weiter schließen, zum Zeitpunkt der Umsetzung war die Implementierung in C aber um einen Faktor vier schneller als in Swift. Hierbei liegt die Vermutung nahe, dass der Zugriff auf und das Umsortieren von Featurevektoren als native C-Arrays deutlich effektiver passiert, als bei der Verwendung von Swift-Arrays. Da Swift-Arrays Value-Type sind, kommt es in Swift vermutlich zu unnötigen Kopieroperationen der Fließkommazahlen in den einzelnen Featurevektoren.

Die Berechnung des Mobilenet-Anteils der Featurevektoren konnte sehr komfortabel mit Apples CoreML Machine Learning Framework umgesetzt werden. Hierbei ist zu beachten, dass es sich wie oben beschrieben, nicht um eine Klassifikation handelt, sondern um das Abgreifen der Aktivierungen einer tieferen Schicht. Für Klassifikationen findet man praktisch sofort nutzbare Beispiele, für den Zugriff auf die Aktivierungen waren jedoch Anpassungen notwendig, die bei der Portierung eines vortrainierten Mobilenet nach CoreML vorgenommen wurden. Das stellte sich als erheblich einfacher heraus, als der Versuch, auf die tieferen Schichten eines Klassifizierungsnetzes in CoreML zuzugreifen.

Für die Verwaltung der Bilder, ihrer Featurevektoren und ihrer Position in der sortieren Karte wird in Kiano eine eigene Datenstruktur verwendet, die es zu persistieren gilt. Es ist dem Nutzer ja nicht zuzumuten, bei jedem Start der App auf die Berechnung aller Featurevektoren zu warten. Die Strategie ist es hierbei, bereits bekannte Bilder zu identifizieren und deren Features nur dann neu zu berechnen, falls sich das Bild verändert hat. Die über Appels Photos Framework zur Verfügung gestellten local Identifier identifizieren dabei die Bilder. Veränderungen werden über das Modifikationsdatum eines Bildes detektiert. Die größte Herausforderung ist hierbei das Zeichnen der Karte. Die Benutzerinteraktion soll schnell und flüssig erscheinen, auf Animationen wie das Nachlaufen der Karte beim Verschieben möchte man nicht verzichten. Die Umsetzung geschieht hierbei nicht in OpenGL ES, welches ab iOS 12 ohnehin als deprecated bezeichnet wird. Auf der anderen Seite wird aber auch nicht der „Standardweg“ des Überschreibens der draw-Methode einer Ableitung von UIView gewählt. Letztes führt bekanntlich zu Performanceeinbußen. Insbesondere deshalb, weil das System sehr oft Backing-Images der Ansichten erstellt. Um die Kontrolle über das Neuzeichnen zu behalten, wird in Kiano ein eigenes Backing-Image implementiert, das auf Ebene des Core Animation Frameworks dem View als Layer zugweisen wird. Diesem Layer kann dann sehr komfortabel eine 3D-Transformation zugewiesen werden und man profitiert von der GPU-Beschleunigung, ohne OpenGL ES direkt verwenden zu müssen.

 

Trotz der Verwendung eines Core Animation Layers ist das Zeichnen der Karte immer noch sehr zeitaufwendig. Das liegt an der Tatsache, dass je nach Zoomstufe tausende von Bildern darzustellen sind, die alle über das Photos Framework angefordert werden müssen. Das Nadelöhr ist dann weniger das Zeichnen, als die Zeit, die vergeht, bis einem das Bild zur Verfügung gestellt wird. Diese Vorgänge sind praktisch alle nebenläufig. Zur Erinnerung: Ein Foto kann in der iCloud liegen und zum Zeitpunkt der Anfrage noch gar nicht (oder noch nicht in geeigneter Auflösung) heruntergeladen sein. Netzwerkbedingt gibt es keine Vorhersage, wann oder ob überhaupt das Bild zur Verfügung gestellt wird. In Kiano werden zum einen Bilder in sehr kleiner Auflösung gecached, zum anderen wird beim Navigieren auf der Karte im Hintergrund ein neues Kartenteil als Backing-Image vorbereitet, das dem Nutzer nach Fertigstellung angezeigt wird. Die vorberechneten Kartenteile sind dabei drei Mal so breit und drei Mal so hoch wie das Display, so dass man diese „Hintergrundaktivität“ beim Verschieben der Karte in der Regel nicht bemerkt. Nur wenn die Bewegung zu schnell wird oder die Bilder zu langsam „geliefert“ werden, erkennt man schwarze Flächen, die sich dann verzögert mit Bildern füllen.

Vergleichbares passiert beim Hineinzoomen in die Karte. Der Nutzer sieht zunächst eine vergrößerte und damit unscharfe Version des aktuellen Kartenteils, während im Hintergrund ein Kartenteil in höherer Auflösung und mit weniger Bildern vorbereitet wird. In der Summe geht Kiano hier einen Kompromiss ein. Die Pixeldichte der Geräte würde eine schärfere Darstellung der Bilder auf der Karte erlauben. Allerdings müssten dann die Bilder in so höher Auflösung angefordert werden, dass eine flüssige Kartennavigation nicht mehr möglich wäre. So sieht der Nutzer in der Regel eine Karte mit Bildern in halber Auflösung gemessen an den physikalischen Pixeln seines Displays.

Ein anfangs unterschätzter Arbeitsaufwand bei der Umsetzung von Kiano liegt darin begründet, dass sich die Photo Library des Nutzers jederzeit während der Benutzung der App verändern kann. Bilder können durch Synchronisationen mit der iCloud oder mit iTunes verschwinden, sich in andere Alben bewegen, oder neue können auftauchen. Der Nutzer kann Bildschirmfotos machen. Das Photos Framework stellt komfortable Benachrichtigungen für solche Events zur Verfügung. Der Implementierung obliegt es dabei aber herauszubekommen, ob die Karte neu zu sortieren ist oder nicht, ob das gerade anzeigte Bild überhaupt noch existiert und was zu tun ist, wenn es verschwunden ist.

Zusammenfassend kann man feststellen, dass natürlich die Umsetzung der Algorithmen und die Darstellung dessen auf einer Karte zu den spannendsten Teilen der Arbeiten an Kiano zählen, dass aber der Umgang mit einer sich dynamisch ändernden Datenbasis nicht unterschätzt werden sollte.

Autoren

Prof. Dr. Klaus JungProf. Dr. Klaus Jung studierte Physik an der TU Berlin, wo er im Bereich der Mathematischen Physik promovierte. Bis 2008 arbeitete er als Leiter F&E bei der Firma LuraTech im Bereich der Dokumentenverarbeitung und Langzeitarchivierung. In der JPEG-Gruppe leitete er die deutsche Delegation bei der Standardisierung von JPEG2000. Seit 2008 ist er Professor für Medieninformatik an der HTW Berlin mit dem Schwerpunkt „Visual Computing“.

Prof. Dr. Kai Uwe Barthel

Prof. Dr. Kai Uwe Barthel studierte Elektrotechnik an der TU Berlin, bevor er Assistent am Institut für Nachrichtentechnik wurde und im Bereich Bildkompression promovierte. Seit 2001 ist er Professor der HTW Berlin. Hauptforschungsbereiche sind visuelle Bildsuche und automatisches Bildverstehen. 2009 gründete er die pixolution GmbH www.pixolution.de, ein Unternehmen, das Technologien für die visuelle Bildsuche anbietet.

Data Leader Days 2018

Daten bilden das Fundament der digitalen Transformation. Die richtige Nutzung von Daten entwickelt sich daher zu einer Kernkompetenz und macht im Wettbewerb den Unterschied. Dies gilt sowohl für ganz Unternehmen als auch für einzelne Mitarbeiter, die mit Datennutzung ihre Karriere vorantreiben können.

Erfahrungen von Pionieren und führenden Anwenderunternehmen sind dafür unverzichtbar. Mit den Data Leader Days am 14. und 15. November 2018 in der Digital-Hauptstadt Berlin haben Sie die Chance, direkt von Spitzenkräften aus der Wirtschaft zu lernen und wichtige Impulse für Ihre digitale Weiterentwicklung zu erhalten.

Die Data Leader Days sind das Entscheider-Event für die Datenwirtschaft, das den Schwerpunkt auf die tatsächlichen Nutzer und Anwender-Unternehmen legt. Die Fachkonferenz hat sich seit Gründung im Jahr 2016 als eines der exklusivsten Events rund um die Themen Big Data und künstliche Intelligenz etabliert. In diesem Jahr werden die Data Leader Days erstmalig auf zwei Tage mit unterschiedlichen Schwerpunkten erweitert:

14. November 2018: Commercial & Finance Data

15. November 2018: Industrial & Automotive Data

Agenda

Die Agenda ist stets aktuell direkt auf www.dataleaderdays.com zu finden.

Sponsoren

Speaker der Data Leader Days 2018

 

 

Anmeldung

Die Data Leader Days finden dieses Jahr zum dritten Mal statt und haben sich zur Pflichtveranstaltung für Geschäftsführer, Führungskräfte und Professionals aus den Bereichen IT, Business Intelligence und Data Analytics etabliert und empfehlen sich ebenfalls für Leiter der Funktionsbereiche Einkauf, Produktion, Marketing und Finance, die das hier brachliegende Potenzial ausschöpfen wollen.

Zum Event anmelden können sich Teilnehmer direkt auf www.dataleaderdays.com oder via Xing.com (Klick).

Interview – Künstliche Intelligenz im Unternehmen & der Mangel an IT-Fachkräften

Interview mit Sebastian van der Meer über den Einsatz von künstlicher Intelligenz im Unternehmen und dem Mangel an IT-Fachkräften

Sebastian van der Meer

Sebastian van der Meer ist Managing Partner der lexoro Gruppe, einem Technologie- und Beratungsunternehmen in den Zukunftsmärkten: Data-Science, Machine-Learning, Big-Data, Robotics und DevOps. Das Leistungsspektrum ist vielschichtig. Sie vermitteln Top-Experten an Unternehmen (Perm & IT-Contracting), arbeiten mit eigenen Teams für innovative Unternehmen an spannenden IT-Projekten und entwickeln zugleich eigene Produkte und Start-Ups in Zukunftsmärkten. Dabei immer im Mittelpunkt: Menschen und deren Verbindung mit exzellenter Technologiekompetenz.

Data Science Blog: Herr van der Meer, wenn man Google News mit den richtigen Stichwörtern abruft, scheinen die Themen Künstliche Intelligenz, Data Science und Machine Learning bei vielen Unternehmen bereits angekommen zu sein – Ist das so?

Das ist eine sehr gute Frage! Weltweit, vor allem in der USA und China, sind diese bereits „angekommen“, wenn man es so formulieren kann. Allerdings sind wir in Europa leider weit hinterher. Dazu gibt es ja bereits viele Studien und Umfragen, die dies beweisen. Vereinzelt gibt es große mittelständische- und Konzernunternehmen in Deutschland, die bereits eigene Einheiten und Teams in diesen Bereich und auch neue Geschäftsbereiche dadurch ermöglicht haben. Hier gibt es bereits tolle Beispiele, was mit K.I. erreichbar ist. Vor allem die Branchen Versicherungs- und Finanzdienstleistungen, Pharma/Life Science und Automotive sind den anderen in Deutschland etwas voraus.

Data Science Blog: Wird das Thema Data Science oder Machine Learning früher oder später für jedes Unternehmen relevant sein? Muss jedes Unternehmen sich mit K.I. befassen?

Data Science, Machine Learning, künstliche Intelligenz – das sind mehr als bloße Hype-Begriffe und entfernte Zukunftsmusik! Wir stecken mitten in massiven strukturellen Veränderungen. Die Digitalisierungswelle der vergangenen Jahre war nur der Anfang. Jede Branche ist betroffen. Schnell kann ein Gefühl von Bedrohung und Angst vor dem Unbekannten aufkommen. Tatsächlich liegen aber nie zuvor dagewesene Chancen und Potentiale vor unseren Füßen. Die Herausforderung ist es diese zu erkennen und dann die notwendigen Veränderungen umzusetzen. Daher sind wir der Meinung, dass jedes Unternehmen sich damit befassen muss und soll, wenn es in der Zukunft noch existieren will.

Wir unterstützen Unternehmen dabei ihre individuellen Herausforderungen, Hürden und Möglichkeiten zu identifizieren, die der große Hype „künstliche Intelligenz“ mit sich bringt. Hier geht es darum genau zu definieren, welche KI-Optionen überhaupt für das Unternehmen existieren. Mit Use-Cases zeigen wir, welchen Mehrwert sie dem Unternehmen bieten. Wenn die K.I. Strategie festgelegt ist, unterstützen wir bei der technischen Implementierung und definieren und rekrutieren bei Bedarf die relevanten Mitarbeiter.

Data Science Blog: Die Politik strebt stets nach Vollbeschäftigung. Die K.I. scheint diesem Leitziel entgegen gerichtet zu sein. Glauben Sie hier werden vor allem Ängste geschürt oder sind die Auswirkungen auf den Arbeitsmarkt durch das Vordringen von K.I. wirklich so gravierend?

Zu diesem Thema gibt es bereits viele Meinungen und Studien, die veröffentlicht worden sind. Eine interessante Studie hat vorhergesagt, dass in den nächsten 5 Jahren, weltweit 1.3 Millionen Stellen/Berufe durch K.I. wegfallen werden. Dafür aber in den gleichen Zeitnahmen 1.7 Millionen neue Stellen und Berufe entstehen werden. Hier gehen die Meinungen aber ganz klar auseinander. Die Einen sehen die Chancen, die Möglichkeiten und die Anderen sehen die Angst oder das Ungewisse. Eins steht fest, der Arbeitsmarkt wird sich in den nächsten 5 bis 10 Jahren komplett verändern und anpassen. Viele Berufe werden wegfallen, dafür werden aber viele neue Berufe hinzukommen. Vor einigen Jahren gab es noch keinen „Data Scientist“ Beruf und jetzt ist es einer der best bezahltesten IT Stellen in Unternehmen. Allein das zeigt doch auch, welche Chancen es in der Zukunft geben wird.

Data Science Blog: Wie sieht der Arbeitsmarkt in den Bereichen Data Science, Machine Learning und Künstliche Intelligenz aus?

Der Markt ist sehr intransparent. Jeder definiert einen Data Scientist anders. Zudem wird sich der Beruf und seine Anforderungen aufgrund des technischen Fortschritts stetig verändern. Der heutige Data Scientist wird sicher nicht der gleiche Data Scientist in 5 oder 10 Jahren sein. Die Anforderungen sind enorm hoch und die Konkurrenz, der sogenannte „War of Talents“ ist auch in Deutschland angekommen. Der Anspruch an Veränderungsbereitschaft und technisch stets up to date und versiert zu sein, ist extrem hoch. Das gleiche gilt auch für die anderen K.I. Berufe von heute, wie z.B. den Computer Vision Engineer, der Robotics Spezialist oder den DevOps Engineer.

Data Science Blog: Worauf sollten Unternehmen vor, während und nach der Einstellung von Data Scientists achten?

Das Allerwichtigste ist der Anfang. Es sollte ganz klar definiert sein, warum die Person gesucht wird, was die Aufgaben sind und welche Ergebnisse sich das Unternehmen mit der Einstellung erwartet bzw. erhofft. Oftmals hören wir von Unternehmen, dass sie Spezialisten in dem Bereich Data Science / Machine Learning suchen und große Anforderungen haben, aber diese gar nicht umgesetzt werden können, weil z.B. die Datengrundlage im Unternehmen fehlt. Nur 5% der Data Scientists in unserem Netzwerk sind der Ansicht, dass vorhandene Daten in ihrem Unternehmen bereits optimal verwertet werden. Der Data Scientist sollte schnell ins Unternehmen integriert werde um schnellstmöglich Ergebnisse erzielen zu können. Um die wirklich guten Leute für sich zu gewinnen, muss ein Unternehmen aber auch bereit sein finanziell tiefer in die Tasche zu greifen. Außerdem müssen die Unternehmen den top Experten ein technisch attraktives Umfeld bieten, daher sollte auch die Unternehmen stets up-to-date sein mit der heutigen Technologie.

Data Science Blog: Was macht einen guten Data Scientist eigentlich aus?

Ein guter Data Scientist sollte in folgenden Bereichen sehr gut aufgestellt sein: Präsentations- und Kommunikationsfähigkeiten, Machine Learning Kenntnisse, Programmiersprachen und ein allgemeines Business-Verständnis. Er sollte sich stets weiterentwickeln und von den Trends up to date sein. Auf relevanten Blogs, wie dieser Data Science Blog, aktiv sein und sich auf Messen/Meetups etc bekannt machen.

Außerdem sollte er sich mit uns in Verbindung setzen. Denn ein weiterer, wie wir finden, sehr wichtiger Punkt, ist es sich gut verkaufen zu können. Hierzu haben wir uns in dem letzten Jahr sehr viel Gedanken gemacht und auch Studien durchgeführt. Wir wollen es jedem K.I. -Experten ermöglichen einen eigenen Fingerabdruck zu haben. Bei uns ist dies als der SkillPrint bekannt. Hierfür haben wir eine holistische Darstellung entwickelt, die jeden Kandidaten einen individuellen Fingerabdruck seiner Kompetenzen abbildet. Hierfür durchlaufen die Kandidaten einen Online-Test, der von uns mit top K.I. Experten entwickelt wurde. Dieser bildet folgendes ab: Methoden Expertise, Applied Data Science Erfahrung, Branchen know-how, Technology & Tools und Business knowledge. Und die immer im Detail in 3 Ebenen.

Der darauf entstehende SkillPrint/Fingerprint ist ein Qualitätssigel für den Experten und damit auch für das Unternehmen, das den Experten einstellt.

Interesse an einem Austausch zu verschiedenen Karriereperspektiven im Bereich Data Science/ Machine Learning? Dann registrieren Sie sich direkt auf dem lexoro Talent Check-In und ein lexoro-Berater wird sich bei Ihnen melden.

Interview – Von der Utopie zur Realität der KI: Möglichkeiten und Grenzen

Interview mit Prof. Dr. Sven Buchholz über die Evolution von der Utopie zur Realität der KI – Möglichkeiten und Grenzen

Prof. Sven Buchholz hat eine Professur für die Fachgebiete Data Management und Data Mining am Fachbereich Informatik und Medien an der TH Brandenburg inne. Er ist wissenschaftlicher Leiter des an der Agentur für wissenschaftliche Weiterbildung und Wissenstransfer – AWW e. V. angesiedelten Projektes „Datenkompetenz 4.0 für eine digitale Arbeitswelt“ und Dozent des Vertiefungskurses „Machine Learning mit Python“, der seit 2018 von der AWW e. V. in Kooperation mit der TH Brandenburg angeboten wird.

Data Science Blog: Herr Prof. Buchholz, künstliche Intelligenz ist selbst für viele datenaffine Fachkräfte als Begriff noch zu abstrakt und wird mit Filmen wir A.I. von Steven Spielberg oder Terminator assoziiert. Gibt es möglicherweise unterscheidbare Stufen bzw. Reifegrade einer KI?

Für den Reifegrad einer KI könnte man, groß gedacht, ihre kognitiven Leistungen bewerten. Was Kognition angeht, dürfte Hollywood zurzeit aber noch meilenweit führen.  Man kann natürlich KIs im selben Einsatzgebiet vergleichen. Wenn von zwei Robotern einer lernt irgendwann problemlos durch die Tür zu fahren und der andere nicht, dann gibt es da schon einen Sieger. Wesentlich ist hier das Lernen, und da geht es dann auch weiter. Kommt er auch durch andere Türen, auch wenn ein Sensor
ausfällt?

Data Science Blog: Künstliche Intelligenz, Machine Learning und Deep Learning sind sicherlich die Trendbegriffe dieser Jahre. Wie stehen sie zueinander?

Deep Learning ist ein Teilgebiet von Machine Learning und das ist wiederum ein Teil von KI. Deep Learning meint eigentlich nur tiefe neuronale Netze (NN). Das sind Netze, die einfach viele Schichten von Neuronen haben und folglich als tief bezeichnet werden. Viele Architekturen, insbesondere auch die oft synonym mit Deep Learning assoziierten sogenannten Convolutional NNs gibt es seit Ewigkeiten. Solche Netze heute einsetzen zu können verdanken wir der Möglichkeit auf Grafikkarten rechnen zu können. Ohne Daten würde das uns aber auch nichts nützen. Netze lernen aus Daten (Beispielen) und es braucht für erfolgreiches Deep Learning sehr viele davon. Was wir oft gerade sehen ist also, was man mit genug vorhandenen Daten „erschlagen“ kann. Machine Learning sind alle Algorithmen, die ein Modell als Ouput liefern. Die Performanz von Modellen ist messbar, womit ich quasi auch noch eine Antwort zur ersten Frage nachreichen will.

Data Science Blog: Sie befassen sich beruflich seit Jahren mit künstlicher Intelligenz. Derzeitige Showcases handeln meistens über die Bild- oder Spracherkennung. Zweifelsohne wichtige Anwendungen, doch für Wirtschaftsunternehmen meistens zu abstrakt und zu weit weg vom Kerngeschäft. Was kann KI für Unternehmen noch leisten?

Scherzhaft oder vielleicht boshaft könnte man sagen, alles was Digitalisierung ihnen versprochen hat.
Wenn sie einen Chat-Bot einsetzen, sollte der durch KI besser werden. Offensichtlich ist das jetzt kein Anwendungsfall, der jedes Unternehmen betrifft. Mit anderen Worten, es hängt vom Kerngeschäft ab. Das klingt jetzt etwas ausweichend, meint aber auch ganz konkret die Ist-Situation.
Welche Prozesse sind jetzt schon datengetrieben, welche Infrastruktur ist vorhanden. Wo ist schon wie optimiert worden? Im Einkauf, im Kundenmanagement und so weiter.

Data Science Blog: Es scheint sich also zu lohnen, in das Thema fachlich einzusteigen. Was braucht man dazu? Welches Wissen sollte als Grundlage vorhanden sein? Und: Braucht man dazu einen Mindest-IQ?

Gewisse mathematische und informatorische Grundlagen braucht man sicher relativ schnell. Zum Beispiel: Wie kann man Daten statistisch beschreiben, was darf man daraus folgern? Wann ist etwas signifikant? Einfache Algorithmen für Standardprobleme sollte man formal hinschreiben können und implementieren können. Welche Komplexität hat der Algorithmus, wo genau versteckt sie sich? Im Prinzip geht es aber erst einmal darum, dass man mit keinem Aspekt von Data Science Bauchschmerzen hat. Einen Mindest-IQ braucht es also nur insofern, um diese Frage für sich selbst beantworten zu können.

Data Science Blog: Gibt es aus Ihrer Sicht eine spezielle Programmiersprache, die sich für das Programmieren einer KI besonders eignet?

Das dürfte für viele Informatiker fast eine Glaubensfrage sein, auch weil es natürlich davon abhängt,
was für eine KI das sein soll. Für Machine Learning und Deep Learning lautet meine Antwort aber ganz klar Python. Ein Blick auf die bestimmenden Frameworks und Programmierschnittstellen ist da
ziemlich eindeutig.

Data Science Blog: Welche Trends im Bereich Machine Learning bzw. Deep Learning werden Ihrer Meinung nach im kommenden Jahr 2019 von Bedeutung werden?

Bei den Deep Learning Anwendungen interessiert mich, wie es mit Sprache weitergeht. Im Bereich Machine Learning denke ich, dass Reinforcement Learning weiter an Bedeutung gewinnt. KI-Chips halte ich für einen der kommenden Trends.

Data Science Blog: Es heißt, dass Data Scientist gerade an ihrer eigenen Arbeitslosigkeit arbeiten, da zukünftige Verfahren des maschinellen Lernens Data Mining selbstständig durchführen können. Werden Tools Data Scientists bald ersetzen?

Die Prognosen für das jährliche Datenwachstum liegen ja momentan so bei 30%. Wichtiger als diese Zahl alleine ist aber, dass dieses Wachstum von Daten kommt, die von Unternehmen generiert werden. Dieser Anteil wird über die nächsten Jahre ständig und rasant weiter wachsen. Nach den einfachen Problemen kommen also erst einmal mehr einfache Probleme und/oder mehr anspruchsvollere Probleme statt Arbeitslosigkeit. Richtig ist aber natürlich, dass Data Scientists zukünftig methodisch mehr oder speziellere Kompetenzen abdecken müssen. Deswegen haben die AWW e. V. und die TH Brandenburg ihr Weiterbildungsangebot um das Modul ‚Machine Learning mit Python‘ ergänzt.

Data Science Blog: Für alle Studenten, die demnächst ihren Bachelor, beispielsweise in Informatik, Mathematik, Ingenieurwesen oder Wirtschaftswissenschaften, abgeschlossen haben, was würden Sie diesen jungen Damen und Herren raten, wie sie gute Data Scientists mit gutem Verständnis für Machine Learning werden können?

Neugierig sein wäre ein Tipp von mir. Im Bereich Deep Learning gibt es ja ständig neue Ideen, neue Netze. Die Implementierungen sind meist verfügbar, also kann und sollte man die Sachen ausprobieren. Je mehr Netze sie selbst zum Laufen gebracht und angewendet haben, umso besser werden sie.  Und auch nur so  verlieren sie nicht den Anschluss.

Modelling Data – Case Study: Importance of domain knowledge

What´s the relation between earnings and happiness? I saw this chart and was strongly irritated – why is there a linear regression, it´s clearly a logarithmic relationship.
Linear relationship between GDP and happiness.

So I got angry and wanted to know, which model is the better fit. I started to work immediatly, because it´s a huge difference for man kind. Think about it: you give a poor person money and he gets as happy as a rich person with the same amount added – that´s against common sense and propaganda to get rich. Like an cultural desease.

So I gathered the data and did a first comparation, and this logarithmic model was the better fit:
Logarithmic relationship between GDP and happiness.

I was right and seriously willing to clear the mess up – so posted the “correct” model on facebook, to explain things to my friends.

Once I came down…

I asked myself: “What´s the model that fits the data best – that would be more correct?”

So I started to write an algorithm to check polynominal regression levels for fit using a random train and test data split. Finally, I got to this result and was amazed:
Best polynominal relationship between GDP and happiness.

This seriously hit me: “What the f***! There seems to be maximum happiness reachable with a certain amount of income / GDP.” Can you understand, what this result would mean for our world and economy? Think about all economies growing continiously, but well happiest was there or will come there. What would you do? Send income to less developed countries, because you don´t need it? Stop invention and progress, because it´s of no use? Seriously, I felt like a socialist: Stop progress at this point and share.

So I thought a while and concluded: “F***ing statistics, we need a profound econometric model.”

I started modelling: Well, the first amount of money in a market based on money leverages a huge amount of happiness, because you can participate and feed yourself. We can approximate that by infinit marginal utility. Then the more you have, the less utility should be provided by the additional same amount added. Finally, more income is more options, so more should be always better. I concluded, that this is catched by a Cobb Douglas production function. Here´s the graph:
Cobb Douglas relationship between GDP and happiness.

That´s it, that´s the final model. Here I feel home, this looks like a normal world – for an economist.

The Relevance of Domain Knowledge

As this short case study shows, we get completly wrong information and conclusions, if we don´t do it right. If you were the most important decision making algorithm in global economic politics, imagine what desasterous outcomes it would have produced to automatically find an optimum of income.

This is a serious border of AI. If you want to analyse Big Data with algorithms, you may produce seriously wrong information and conclusions. Statistical analysis is allways about using the right model. And modelling is about the assumptions of the model. As long as you can not create the right assumtions for the statistical model automatically, Big Data analysis is near to crazy. So out of this point of view, Big Data analysis is either about very simplistic tendencies (like linear trends) or it´s bound to Data Scientists with domain knowledge checking each model – that´s slow.

Discussion

I´m quite new to the field of Data Science, but this case study shows very though limitations, clearly. It´s not about flexible fitting of data, it´s about right models. And right models don´t scale into the Big Data domain. What do you think is the solution for this issue?

Countries of Happiness – the Full Article

If you are interested in my final article on my personal blog, explaining the final results: Please feel welcome to read the article here. There is a translation widget in the menu, to read in your favorite language. The original article is german.

Data Science Survey by lexoro.ai

Ergebnisse unserer zweiten Data Science Survey

Künstliche Intelligenz, Data Science, Machine Learning – über die Bedeutung dieser Themen für einzelne Unternehmen und Branchen herrscht weiterhin viel Unsicherheit und Unklarheit. Zudem stellt sich die Frage: Welche Fähigkeiten und Kompetenzen braucht ein guter Data Scientist eigentlich?

Es lässt sich kaum bestreiten, dass wir vor einem Paradigmenwechsel stehen, vorangetrieben durch einen technologischen Fortschritt dessen Geschwindigkeit exponentiell zunimmt.
Der Arbeitsmarkt im Speziellen sieht sich auch einem starken Veränderungsprozess unterworfen. Es entstehen neue Jobs, neue Rollen und neue Verantwortungsbereiche. Data Scientist, Machine Learning Expert, RPA Developer – die Trend-Jobs der Stunde. Aber welche Fähigkeiten und Skills verbergen sich eigentlich hinter diesen Jobbeschreibungen? Hier scheint es noch eine große Divergenz zu geben.

Unser zweiter Data Science Leaks-Survey soll hier für mehr Transparenz und Aufklärung sorgen. Die Ergebnisse fließen zudem in die Entwicklung unseres SkillPrint ein, einer individuellen Analyse der Kompetenzen eines jeden Daten-Experten. Eine erste Version davon wird in Kürze fertiggestellt sein.

Link zu den Ergebnissen der zweiten Data Science Survey by lexoro.ai

Viel Spaß beim Lesen unserer Ministudie zum Thema: Data Science… mehr als Python, TensorFlow & Neural Networks

 

Interesse an einem Austausch zu verschiedenen Karriereperspektiven im Bereich Data Science/ Machine Learning? Dann registrieren Sie sich direkt auf dem lexoro Talent Check-In und ein lexoro-Berater wird sich bei Ihnen melden.

Interview – Nutzen und Motivation der medizinischen Datenanalyse

Interview mit Prof. Thomas Schrader zur Motivation des Erlernens von Clinical Data Analytics

Prof. Dr. Thomas Schrader ist Fachbereichsleiter Informatik und Medien an der TH Brandenburg und hat seinen Projekt- und Lehrschwerpunkt in der Medizininformatik. Als Experte für Data Science verknüpft er das Wissen um Informatik und Statistik mit einem medizinischen Verständnis. Dieses Wissen wird genutzt, um eine beweisorientierte Diagnose stellen, aber auch, um betriebswirtschaftliche Prozesse zu verbessern. Prof. Thomas Schrader ist zudem Dozent und Mitgestalter des Zertifikatskurses Clinical Data Analytics.

Data Science Blog: Wie steht es um die medizinische Datenanalyse? Welche Motivation gibt es dafür, diese zu erlernen und anzuwenden?

Die Digitalisierung ist inzwischen auch in der Medizin angekommen. Befunde, Laborwerte und Berichte werden elektronisch ausgetauscht und stehen somit digital zur Verfügung. Ob im Krankenhaus, im Medizinischen Versorgungszentrum oder in der ambulanten Praxis, medizinische Daten dienen zur Befunderhebung, Diagnosestellung oder zur Therapiekontrolle.

Über mobile Anwendungen, Smart Phones und Smart Watches werden ebenfalls Daten erhoben und PatientInnen stellen diese zur Einsicht zur Verfügung.

Die Verwaltung der Daten und die richtige Nutzung der Daten wird zunehmend zu einer notwendigen Kompetenz im medizinischen Berufsalltag. Jetzt besteht die Chance, den Umgang mit Daten zu erlernen, deren Qualität richtig zu beurteilen und den Prozess der fortschreitenden Digitalisierung zu gestalten.

Daten haben Eigenschaften, Daten haben eine Lebenszeit, einen Lebenszyklus. Ähnlich einem Auto, sind verschiedene Personen in unterschiedlichen Rollen daran beteiligt und verantwortlich , Daten zu erheben, zu speichern oder Daten zur Verfügung zu stellen. Je nach Art der Daten, abhängig von der Datenqualität lassen sich diese Daten weiterverwenden und ggf. Schlussfolgerungen ziehen. Die Möglichkeit aus Daten Wissen zu generieren, ist für die medizinische Arbeit eine große Chance und Herausforderung.

Data Science Blog: Bedeutet MDA gleich BigData?

Big Data ist inzwischen ein Buzzwort: Alles soll mit BigData und der Anwendung von künstlicher Intelligenz gelöst werden. Es entsteht aber der Eindruck, dass nur die großen Firmen (Google, Facebook u.a.) von BigData profitieren. Sie verwenden ihre Daten, um Zielgruppen zu differenzieren, zu identifizieren und Werbung zu personalisieren.

Medizinische Datenanalyse ist nicht BigData! Medizinische Datenanalyse kann lokal mit den Daten eines Krankenhauses, eines MVZ oder ambulanten Praxis durchgeführt werden. Explorativ wird das Wissen aus diesen Daten erschlossen. Es können schon auf dieser Ebene Indikatoren der medizinischen Versorgung erhoben werden. Es lassen sich Kriterien berechnen, die als Indikatoren für die Detektion von kritischen Fällen dienen.

Mit einer eigenen Medizinischen Datenanalyse lassen sich eigene Daten analysieren, ohne jemals die Kontrolle über die Daten abzugeben. Es werden dabei Methoden verwendet, die teilweise auch bei Big Data Anwendung finden.

Data Science Blog: Für wen ist das Erlernen der medizinischen Datenanalyse interessant?

Die Medizinische Datenanalyse ist für alle interessant, die sich mit Daten und Zahlen in der Medizin auseinandersetzen. Die Frage ist eigentlich, wer hat nichts mit Daten zu tun?

Im ersten Augenblick fallen die ambulant und klinisch tätigen ÄrztInnen ein, für die MDA wichtig wäre: in einer Ambulanz kommt ein für diese Praxis typisches Spektrum an PatientInnen mit ihren Erkrankungsmustern. MDA kann diese spezifischen Eigenschaften charakterisieren, denn darin liegt ja Wissen: Wie häufig kommen meine PatientInnen mit der Erkrankung X zu mir in die Praxis? Dauert bei einigen PatientInnen die Behandlungszeit eigentlich zu lange? Bleiben PatientInnen weg, obwohl sie noch weiter behandelt werden müssten? Dahinter liegen also viele Fragen, die sich sowohl mit der Wirtschaftlichkeit als auch mit der Behandlungsqualität auseinandersetzen. Diese sehr spezifischen Fragen wird Big Data übrigens niemals beantworten können.

Aber auch die Pflegekräfte benötigen eigentlich dringend Werkzeuge für die Bereitstellung und Analyse der Pflegedaten. Aktuell wird sehr über die richtige Personalbesetzung von Stationen und Pflegeeinrichtungen diskutiert. Das eigentliche Problem dabei ist, dass für die Beantwortung dieser Frage Zahlen notwendig sind: über dokumentierte Pflegehandlungen, Arbeitszeiten und Auslastung. Inzwischen wird damit begonnen, dieses Daten zu erheben, aber es fehlen eine entsprechende Infrastruktur dieses Daten systematisch zu erfassen, auszuwerten und in einen internationalen, wissenschaftlichen Kontext zu bringen. Auch hier wird Big Data keine Erkenntnisse bringen: weil keine Daten vorhanden sind und weil keine ExpertIn aus diesem Bereich die Daten untersucht.

Die Physio-, ErgotherapeutInnen und LogopädInnen stehen aktuell unter dem hohen Druck, einen Nachweis ihrer therapeutischen Intervention zu bringen. Es geht auch hier schlicht darum, ob auch zukünftig alle Therapieformen bezahlt werden. Über die Wirksamkeit von Physio-, Ergo- und Logopädie können nur Statistiken Auskunft geben. Auch diese Berufsgruppen profitieren von der Medizinischen Datenanalyse.

In den Kliniken gibt es Qualitäts- und Risikomanager. Deren Arbeit basiert auf Zahlen und Statistiken. Die Medizinische Datenanalyse kann helfen, umfassender, besser über die Qualität und bestehende Risiken Auskunft zu geben.

Data Science Blog: Was kann genau kann die medizinische Datenanalyse leisten?

Die Technische Hochschule Brandenburg bietet einen Kurs Medizinische/ Klinische Datenanalyse an. In diesem Kurs wird basierend auf dem Lebenszyklus von Daten vermittelt, welche Aufgaben zu leisten sind, um gute Analysen durchführen zu können. Das fängt bei der Datenerhebung an, geht über die richtige und sichere Speicherung der Daten unter Beachtung des Datenschutzes und die Analyse der Daten. Da aber gerade im medizinischen Kontext die Ergebnisse eine hohe Komplexität aufweisen können, kommt auch der Visualisierung und Präsentation von Daten eine besondere Bedeutung zu. Eine zentrale Frage, die immer beantwortet werden muss, ist, ob die Daten für bestimmte Aussagen oder Entscheidungen tauglich sind. Es geht um die Datenqualität. Dabei ist nicht immer die Frage zu beantworten, ob das “gute” oder “schlechte” Daten sind, sondern eher um die Beschreibung der spezifischen Eigenschaften von Daten und die daraus resultierenden Verwendungsmöglichkeiten.

Data Science Blog: Sie bieten an der TH Brandenburg einen Zertifikatskurs zum Erlernen der Datenanalyse im Kontext der Medizin an. Was sind die Inhalte des Kurses?

Der Kurs gliedert sich in drei Module:

– Modul 1 – Daten aus Klinik und Pflege – Von den Daten zur Information: In diesem Modul wird auf die unterschiedlichen Datenquellen eingegangen und deren Qualität näher untersucht. Daten allein sagen zuweilen sehr wenig, sie müssen in einen Zusammenhang gebracht werden, damit daraus verwertbare Informationen. Im Mittelpunkt stehen die Teile des Datenlebenszyklus, die sich mit der Erhebung und Speicherung der Daten beschäftigen.

– Modul 2 – Anwenden der Werkzeuge: Analysieren, Verstehen und Entscheiden – Von Information zum Wissen. Der Schritt von Information zu Wissen wird dann begangen, wenn eine Strukturierung und Analyse der Informationen erfolgt: Beschreiben, Zusammenfassen und Zusammenhänge aufdecken.

– Modul 3 – Best practice – Fallbeispiele: Datenanalyse für die Medizin von morgen – von smart phone bis smart home, von Registern bis sozialen Netzen: In diesem Modul wird an Hand von verschiedenen Beispielen der gesamte Datenlebenszyklus dargestellt und mit Analysen sowie Visualisierung abgeschlossen.

Data Science Blog: Was unterscheidet dieser Kurs von anderen? Und wie wird dieser Kurs durchgeführt?

Praxis, Praxis, Praxis. Es ist ein anwendungsorientierter Kurs, der natürlich auch seine theoretische Fundierung erhält aber immer unter dem Gesichtspunkt, wie kann das theoretische Wissen direkt für die Lösung eines Problems angewandt werden. Es werden Problemlösungsstrategien vermittelt, die dabei helfen sollen verschiedenste Fragestellung in hoher Qualität aufarbeiten zu können.

In wöchentlichen Online-Meetings wird das Wissen durch Vorlesungen vermittelt und in zahlreichen Übungen trainiert. In den kurzen Präsenzzeiten am Anfang und am Ende eines Moduls wird der Einstieg in das Thema gegeben, offene Fragen diskutiert oder abschließend weitere Tipps und Tricks gezeigt. Jedes Modul wird mit einer Prüfung abgeschlossen und bei Bestehen vergibt die Hochschule ein Zertifikat. Für den gesamten Kurs gibt es dann das Hochschulzertifikat „Clinical Data Analyst“.

Der Zertifikatskurs „Clinical Data Analytics“ umfasst die Auswertung von klinischen Daten aus Informationssystemen im Krankenhaus und anderen medizinischen und pflegerischen Einrichtungen. Prof. Thomas Schrader ist einer der Mitgestalter des Kurses. Weitere Informationen sind stets aktuell auf www.th-brandenburg.de abrufbar.

Interview – Über die Kunst, Daten als Produktionsfaktor zu erkennen

Interview mit Dr. Christina Bender über die Digitalisierung und Data Science in einem 270-jährigem Familienunternehmen.

Dr. Christina Bender ist Senior Digital Strategist mit Schwerpunkt auf Data Science bei der Villeroy & Boch AG. Sie ist Diplom-Finanzökonomin und promovierte Mathematikerin. Als „Quant“ bei der UniCredit und Unternehmensberaterin bei der d‑fine GmbH sammelte sie bereits langjährige Erfahrung in der Konzeption und Umsetzung interdisziplinärer Digitalisierungs- und Prozessthemen in diversen Branchen. Als letzte Herausforderung im „echten“ Beraterleben hat sie bei d-fine als Prokuristin den Geschäftsbereich „Digitalisierung im Gesundheitswesen“ mit aufgebaut.

In der Digital Unit bei V&B bündelt sie als eine Art interne Beraterin alle Aktivitäten rund um Data Science (interimsweise inklusive Process Digitisation) für den Gesamtkonzern von Produktion über SCM bis CRM und Sales von der Strategie bis zur Betreuung der Umsetzung. Als Gründungsmitglied der Digital Unit hat sie die neue Unit und die digitale Roadmap von V&B aktiv gestaltet.

In ihrer beruflichen Karriere spielten komplexe Zusammenhänge und Daten also schon früh eine Rolle. Durch ihr breites Erfahrungsspektrum hat sie gelernt, dass Daten erst zum Produktionsfaktor werden, wenn sie in Anwendungsgebieten richtig angepasst eingesetzt und überzeugend präsentiert werden.

Data Science Blog: Frau Dr. Bender, womit genau befassen Sie sich als Digital Strategist? Und wie passt Data Science in dieses Konzept?

Zunächst war es die Aufgabe eine digitale Roadmap zu entwickeln und zwar abgestimmt auf ein Traditionsunternehmen, das sich in den letzten 270 Jahren ständig durch Innovation verändert hat. Als Beispiel, V&B hatte einen erfolgreichen „Merger“ vollzogen, da gab es das Wort „M&A“ noch gar nicht.

Ein erster Schritt war es dabei Themen zu sammeln und ein Vorgehen zu entwickeln, diese zu verstehen, zu priorisieren und sie dann stets als Ziel im Blick umzusetzen. Die meisten der Themen haben immer mit Daten und damit häufig mit Data Science zu tun. Das geht von Fragestellungen z.B. im Vertrieb, die durch einen Bericht im ERP-System abbildbar sind, bis hin zu komplexen Fragen der Bild­er­kennungstechnologie in der Produktion oder im Customer Relationship Management.

Um weiterhin die wirklich wichtigen Themen zu finden, ist es entscheidend die Chancen und Risiken der Digitalisierung und den Wert der richtigen Daten weit in die Fläche des Unternehmens zu tragen. Dieser Aufbau interner Kompetenzen durch uns als Digital Unit schafft Vertrauen und ist neben dem Vorantreiben konkreter Anwendungsfälle essentieller Bestandteil für eine erfolgreiche Digitalisierung.

Data Science Blog: An was für Anwendungsfällen arbeiten Sie konkret? Und wohin geht die Reise langfristig?

Derzeit arbeiten wir sowohl an kleineren Fragestellungen als auch an ca. vier größeren Projekten. Letztere sollen pain points gemeinsam mit den Fachexperten lösen und dadurch zu Leuchtturm­projekten werden, um eben Vertrauen zu schaffen. Dafür müssen wir ein “Henne-Ei”-Problem lösen. Oft sind die richtigen Daten für die Fragestellung noch nicht erfasst und/oder einige Menschen involviert, die eben erst durch ihnen nahestehende Leuchtturmprojekte überzeugt werden müssten. Daher arbeiten wir für eine erfolgreiche Umsetzung mit im täglichen Geschäft involvierten Fachexperten und erfahrenen Data Scientists mit gewissem Fach-Know-How, die uns einen gewissen Vertrauensvorsprung geben.

Das dauert seine Zeit, insbesondere weil wir stark agil vorgehen, um uns nicht zu verheddern. D.h. oft sieht eine Fragestellung am Anfang leicht aus und ist dann schlicht weg nicht realisierbar. Das muss man dann akzeptieren und eben auf die nächst priorisierte Fragestellung setzen. “Keramik ist halt anders als die Autoindustrie.” Über genaue Use Cases möchte ich daher noch nicht sprechen. Wir sind auf einem guten Weg.

Langfristig wünsche ich mir persönlich, dass Werte aus Daten – insbesondere bessere Ent­schei­dun­gen durch Wissen aus Daten – möglichst selbständig durch Business-Experten geschaffen werden und dies durch ein schlagkräftiges zentrales Team ermöglicht wird. D.h. das Team sorgt für eine entsprechen­de stets aktuell für Data Science geeignete Infrastruktur und steht bei komplexen Fragestellungen zur Verfügung.

Data Science Blog: Welche Algorithmen und Tools verwenden Sie für Ihre Anwendungsfälle?

Wir arbeiten auch mit Methoden im Bereich „Deep Learning“, zum Beispiel für die Bilderkennung. Allerdings gerade um die Erwartungshaltung im Unternehmen nicht zu hoch zu hängen, schauen wir immer wofür sich diese Methodik eignet und wo sie nicht unsere eigentliche Frage beantworten kann (siehe unten) oder schlicht weg nicht genügend Daten verfügbar sind. Insbesondere, wenn wir die eigentlich Ursache eines Problems finden und darauf reagieren wollen, ist es schlecht, wenn sich die Ursache „tief“ im Algorithmus versteckt. Dafür eignet sich z.B. eine logistische Regression, sofern gut parametrisiert und mit gut aufbereiteten Daten befüttert, häufig deutlich besser.

Wir nutzen kostenpflichtige Software und Open Source. Wunsch wäre, möglichst jedem im Unternehmen die richtige Anwendung zur Verfügung zu stellen, damit sie oder er leicht selbst die richtige Exploration erstellen kann, um die richtige Entscheidung zu treffen. Für den Data Scientist mag das ein anderes Tool sein als für den Fachexperten im Geschäftsbereich.

Data Science Blog: Daten werden von vielen Unternehmen, vermutlich gerade von traditionsreichen Familienunternehmen, hinsichtlich ihres Wertes unterschätzt. Wie könnten solche Unternehmen Daten besser bewerten?

Unternehmen müssen sich genau überlegen, was die für sie richtigen Fragen sind. Aus welchen Daten oder deren Verknüpfung kann ich Wissen generieren, dass diese für mich relevante Fragen (überhaupt) beantwortet werden können, um mit vertretbarem Aufwand nachhaltig Mehrwerte zu generieren. Natürlich sind die schlimmsten „pain points“ immer am schwierigsten, sonst hätte sie vermutlich jemand vor mir gelöst. Dies wird stets begleitet, warum mit den schon gesammelten Daten noch kein Mehrwert generiert wurde und somit ggf. begründet warum kein (Zeit-)Budget frei gegeben wird, um weitere (dann hoffentlich die richtigen) Daten zu sammeln.

Als erstes ist es m.E. daher wichtig dem Entscheidungsträger klar zu machen, dass es keine Maschine gibt in die ggf. wahllos gesammelte Daten reingeworfen werden und die „KI“ spuckt dann die richtigen Antworten auf die richtigen nie gestellten Fragen heraus. Denn gäbe es diese Art künstlicher Intelligenz, wäre der Erfinder wohl längst der reichste Mensch der Welt.

Nein, dafür wird menschliche Intelligenz gebraucht und Freiraum für die Mitarbeiterinnen und Mitarbeiter, die richtigen Fragen und Antworten zu suchen und auch auf diesem Weg manchmal kurzfristig zu scheitern. Kurz gesagt, braucht es eine Datenstrategie, um alle, Vorstand und Mitarbeiterinnen und Mitarbeiter, auf diesen Weg mitzunehmen.

Data Science Blog: Wie erstellen Unternehmen eine Datenstrategie?

Unternehmensleiter wollen Ergebnisse sehen und verstehen oft nicht gleich, warum sie Geld in Daten investieren sollen, wenn erst mittel- bis langfristig ein Mehrwert herausspringt. Die alleinige Drohkulisse, wenn nicht jetzt, dann eben in 10 Jahren ohne uns, hilft da oft nur bedingt oder ist gar kontraproduktiv.

Wichtig ist es daher, alle an einen Tisch zu holen und gemeinsam eine Unternehmensvision und Ziele zu diskutieren, zu begreifen und zu vereinbaren, dass Daten dafür ein Faktor sind (oder ggf. vorerst auch nicht). Noch wichtiger ist der Weg dahin, die Datenstrategie, nämlich wie aus Daten langfristig nachhaltige Mehrwerte gehoben werden.

Um eine Datenstrategie zu erstellen, braucht es eine gewisse Mindestausstattung einerseits an dafür zumindest zum Teil freigestellten Experten aus dem Business und anderseits Datenexperten, die mit diesen Experten reden können. Sie müssen nach erfolgreicher Zielbildung einen minimalen Werkzeug­kasten aus KnowHow und Technologie schaffen, der es erst ermöglicht Leuchtturmprojekte erfolgreich umzusetzen. Diese Leuchtturmprojekte dienen als erste erfolgreiche Beispielwege. Damit fällt es auch leichter den Werkzeugkasten als Grundlage zur Lösung größerer pain points weiter auszubauen. In Zeiten, wo halbwegs kommunikative Data Scientists mit Businessverständnis Mangelware sind, ist dies manchmal nur mit externer Unterstützung möglich. Doch Obacht, wichtig ist ein interner Koordinator, der alle Zügel in Händen behält, damit nicht viele richtige Antworten auf irrelevante nicht gestellte Fragen gegeben werden. Denn dann geht anfängliche Akzeptanz leicht verloren.

Data Science Blog: Wie stellen Sie ein Data Science Team auf? Und suchen Sie für dieses Team eher Nerds oder extrovertierte Beratertypen?

Kurz und knapp: Die gesunde Mischung wie ich selbst.

Natürlich ist je nach Aufgabengebiet die Gewichtung etwas verschoben. Gerade in einem Unternehmen, das gerade erst den Wert von Daten am entdecken ist, ist es entscheidend, dass diese Werte den Businessexperten auch begreiflich gemacht bzw. mehr noch zusammen entwickelt werden. Dafür brauchen wir Menschen, die beides beherrschen. D.h. sie können komplizierte Inhalte anschaulich vermitteln – „Anteil extrovertierter  Berater“, und hinter den Kulissen den tatsächlichen Wert aus Daten finden. Für letzteres brauchen wir die Eigenschaften eines „Nerds“. Mal ehrlich, durch meine Lehrtätigkeit habe ich selbst gelernt: Erst wenn ich etwas selbst verständlich erklären kann, habe ich es selbst verstanden und kann mein Tun stetig verbessern.


Dr. Christina Bender präsentiert am 15. November 2018, dem zweiten Tag der Data Leader Days 2018, über die „Tradition und digitale Innovation bei einem Keramikhersteller – warum Deep Learning nicht immer das Allheilmittel ist“. Mehr über die Data Leader Days erfahren Sie hier: www.dataleaderdays.com


Data Science mit dem iPad Pro (und der Cloud)

Seit einiger Zeit versuche ich mein iPad Pro stärker in meinen Arbeitsaltag zu integrieren. Ähnlich wie Joseph (iPad Pro 10.5 as my Main Computer – Part 1, Part 2 und Part 3) sprechen auch für mich seit der Einführung des iPad Pro 9,7″, das nochmal verbesserte Display, die größeren Speicheroptionen, das faltbaren Smart Keyboard (funktioniert über einen seitlichen Konnektor und nicht über eine störanfällige BlueTooth-Verbindung) und der Apple Pencil dafür, dieses Gerät statt eines Notebooks zu nutzen.

Abbildung 1: Mein Homescreen

Neben der besseren Mobilität ist hier vor allen Dingen iOS 11 und das kommende iOS 12 zu nennen, welches mit einem verbesserte Dateisystem (transparente Einbindung von iCloud, DropBox, Google Drive etc.) und die Möglichkeit zwei Apps nebeneinander im Splitscreen auszuführen.

 

Apropos Apps: Diese sind ein weiteres Argument für mich, dieses Setup zu testen ist die unverändert gute bis sehr gute Qualität der verfügbaren iOS-Apps zu nutzen. Vorbei sind zum Glück die Zeiten, in der man keine eigenen Schriftarten (nach-) installieren kann (ich nutze dafür AnyFont), keine Kommendozeilenwerkzeug existieren (ich nutze StaSh), kein SSH-Tunneling (hier nutze ich SSH Tunnel von Yuri Bushev) funktioniert und sich GitHub/GitLab nicht nutzen lässt (hier nutze ich WorkingCopy). Ganze Arbeitsabläufe lassen sich darüber hinaus mit Hilfe von Workflow (und in iOS 12 mit Siri Shortcuts) automatisieren. Zum schreiben nutze ich verschiede Anwendungen, je nach Anwendungsfall. Für einfache (Markdown-) Texte nutze ich iA Writer und Editorial. Ulysses nutze ich nicht, da ich in dem Bereich Abomodelle nicht umbedingt bevorzuge, wenn es sich nicht vermeiden lässt.

Software Entwicklung

Die Entwicklung von Software nativ auf dem iPad Pro funktioniert am besten mit Pythonista. Für alles andere benötigt man entsprechende Server auf denen sich der benötigte Tool-Stack befindet, welchen man benötigt. Hier nutze ich am liebsten Linux-Systeme (CentOS oder Ubuntu) da diese sehr nah an Systemen sind, welche ich für Produktivsysteme nutze.
Mit der Nutzung von Cloud-Infrastrukturen wie sie einem zum Beispiel Amazon Web Service bietet, lassen sich sehr schnell und vor allen Dingen on-demand, Systeme starten. Schnell merkt man, dass sich dieser Vorgang stark automatisieren lässt, möchte man nicht ständig mit Hilfe der AWS Console arbeiten. Mit Pythonista und der StaSh lässt sich zu diesem Zweck sehr einfach die boto2-Bibliothek installieren, welche eine direkte Anbindung des AWS SDKs über Python ermöglicht. Damit wiederum lassen sich alle AWS-Dienste als Infrastructure-as-Code nutzen.
Mit boto3 lassen sich nicht nur EC2-Instanzen starten oder der Inhalt von S3-Buckets bearbeiten. Es können auch die verschiedenen Amazon-Dienste zum Beispiel aus dem Bereich Maschine Learning genutzt werden. Damit lassen sich dann leicht Objekte in Bildern erkennen oder der Inhalt von Texten analysieren.

Mosh und Blink

Möchte man effizient auf EC2-Instanzen arbeiten so lohnt ein Blick auf die UDP-basierte Mosh. Im Gegensatz zu normalen SSH-Verbindungen über TCP/IP, puffert Mosh Verbindungsabbrüche. So lassen sich Verbindungen auch nach mehreren Tagen noch ohne Probleme weiter nutzen. Genau wie SSH benötigt Mosh auch eine entsprechende Server-Komponente auf dem Host und ein Terminal, welches Mosh kann. Die Installation ist jedoch auch nicht schwieriger als bei anderer Software. Auf der Seite des iPads nutzte ich sowohl für SSH als auch Mosh die Termial-App Blink.

Mehrere Terminals

Wenn ich früher meinen Mac genutzt habe, dann hatte ich in der Regel mehr als eine (SSH-) Verbindung zum Zielsystem offen. Grund hierfür war, dass ich gern mehrere Dienste auf einem Server-Systems gleichzeitig im Auge behalten wollte. Ein oder zwei Fenster für die Ansicht von Logdateien mit ‘tail’, ein Fenster für meinen Lieblingseditor ‘vim’ und ein Fenster für die Arbeit auf der Kommandozeile. Seit dem ich das auf dem iPad mache, habe ich den Terminalmultiplexer tmux schätzen gelernt. Dieser ermöglicht, wie der Name sagt, die Verwaltung getrennter Sitzungen innerhalb eines Terminals (mehr dazu unter https://robots.thoughtbot.com/a-tmux-crash-course).

Offline Dokumentation

Abbildung 2: Pythonista und Boto3 – Mit dem iPad die AWS kontrollieren

Seitdem es den Amazon Kindle in Deutschland gibt, nutze ich diesen Dienst. Ich hatte mir 2010 den Kindle2 noch aus den USA schicken lassen und dann irgendwann mein Konto auf den deutschen Kindle-Store migriert. Demnach nutze ich seit gut 9 Jahren die Kindle-Apps für meine Fachbücher. Auf dem iPad habe ich so bequem Zugriff auf über hundert IT- und andere Fachbücher. Papers und Cheat-Sheets speichere ich als PDFs in meinem DropBox- oder GoogleDrive-Account. Damit ich auch offline Zugriff auf die wichtigsten Manuelas habe (Python, git, ElasticSearch, Node.js etc.), nutze ich das freie Dash.

Data Science

Für die Entwicklung von MVPs für den Bereich Data Science ist  Spark, und hier vor allen Dingen PySpark in Kombination mit Jupyter Notebook, mein Werkzeug der Wahl. Auf den ersten Blick eine Unmöglichkeit auf dem iPad. Auf den zweiten aber lösbar. In der Regel arbeite ich eh mit Daten, welche zu groß sind um auf einem normalen Personalcomputer in endlicher Zeit effizient verarbeitet werden zu können. Hier arbeite ich mehr und mehr in der Cloud und hier aktuell verstärkt in der von Amazon.

Mein Workflow funktioniert demnach so:

  1. Erstellung des nötigen Python Skripts für die Ausführung einer bestimmten AWS-Umgebung (EMR, SageMaker etc.) mit boto3 in Pythonista auf dem iPad
  2. Ausführen der Umgebung inkl. Kostenkontrolle (Billing-API)
  3. Aufbau eines SSH-Tunnels mit Hilfe eines SSH Tunnel / alternativ mit Mosh
  4. Nutzung von Blink bzw. SSH Pro für die SSH-Verbindung
  5. Nutzung von Juno um eine entfernte Jupyter Notebook / Jupyter Hub Installation nutzen zu können

PySpark im Jupyter Notebook

Abbildung 3: Mit Juno Jupyter Notebook aus auf dem iPad nutzen

Amazons Elastic Map Reduce Dienst bringt bereits eine Jupyter Notebook Installation inkl. Spark/PySpark mit und ermöglicht einen sicheren Zugang über einen verschlüsselten Tunnel. Einziges Problem bei der Nutzung von EMR: Alle Daten müssen in irgend einem System persistiert werden. Dies gilt nicht nur für die eigentlichen Daten sondern auch für die Notebooks. Günstiger Storage lässt sich über S3 einkaufen und mit Hilfe von s3fs-fuse (https://github.com/s3fs-fuse/s3fs-fuse) in das lokale Dateisystem eines EMR Clusters einhängen. Wie man das innerhalb eines geeigneten Bootstrap-Scripts macht habe ich auf GitHub (https://github.com/rawar/emr-ds-tools) dokumentiert. So lassen sich die eigenen EMR-Experimente auch nach dem herunterfahren des Clusters aufbewahren und weiter entwicklen.

Fokussierung im Großraumbüro

Jeder der ab und zu mal in Großraumbüros, in der Bahn oder Flugzeug arbeitet muß, kennt das Problem: Ab und zu möchte man sein Umfeld so gut es geht ausblenden um sich auf die eigene Arbeit voll und ganz zu konzentrieren. Dabei helfen kleine und große Kopfhörer ob mit oder ohne Noice Cancelation. Mit sind die Kabellosen dabei am liebsten und ich nutze lieber In-Ears als Over-Ears wegen der Wärmeentwicklung. Ich mag einfach keine warme Ohren beim Denken. Nach dem das geklärt ist wäre die nächste Frage: Musik oder Geräusche. Ab und zu kann ich Musik beim Arbeiten ertragen wenn sie

1. ohne Gesang und
2. dezent rhythmisch ist.

Zum Arbeiten höre ich dann gern Tosca, Milch Bar, oder Thievery Corporation. Schreiben kann ich unter Geräuscheinwirkung aber besser. Hier nutze ich Noisly mit ein paar eignen Presets für Wald-, Wind- und Wassergeräusche.

Fazit

Das iPad Pro als Terminal des 21. Jahrhunderts bietet dank hervorragender Apps und der Möglichkeit zumindest Python nativ auszuführen, eine gute Ausgangsbasis für das mobile Arbeiten im Bereich Data Science. Hier muss man sich nur daran gewöhnen, dass man seinen Code nicht lokal ausführen kann, sondern dazu immer eine entsprechende Umgebung auf einem Server benötigt. Hier muß es nicht zwingend ein Server in der Cloud sein. Ein alter Rechner mit Linux und den nötigen Tools im Keller tut es auch. Für welches Modell man sich auch entscheidet, man sollte sehr früh Anfangen das Aufsetzten der entsprechenden Server-Umgebungen zu automatisieren (Infrastructure-as-Code). Auch hier bietet sich Pythonista (in Kombination mit Workflow) an. Was bei der täglichen Arbeit auf dem iPad manchmal stört ist, dass nicht alle Aktionen mit der Tastatur ausgeführt werden können und es hier immer noch zu einem haptischen Bruch kommt, wenn man einige Dingen nur über das Touch-Display macht und einige ausschließlich über die Tastatur. Manchmal würde ich mir auch ein größeres Display wünschen oder die Möglichkeit den Winkel des iPads auf der Tastatur ändern zu können. Diese Nachteile würde ich allerdings nicht gegen die Mobilität (Gewicht + Akkulaufzeit) eintauschen wollen.