Tag Archive for: Data Science

tarent solutions GmbH @ DMEXCO 2018

Anzeige

IoT- und KI-Technologien der Zukunft: Wie profitieren wir von der großen Datenmenge?

Die Technologieagentur tarent solutions GmbH präsentiert auf der DMEXCO 2018 neue Wege im Bereich Künstliche Intelligenz. Die Besucher lernen IoT-Projekte wie den interaktiven Funkstreifenwagen und die Mobile Self-Checkout-Lösung “snabble” kennen.

Am 12. und 13. September 2018 findet in Köln die DMEXCO statt, die Digital Marketing Exposition & Conference. Die Technologieagentur tarent solutions GmbH bietet an ihrem Stand (Halle 7, Stand A-031) einen Einblick in konkrete Verfahren und Technologien in den Bereichen “Internet of Things” (IoT) und “Künstliche Intelligenz” (KI).

Predictive Maintenance: Mehr Potenzial nutzen

Für Hersteller und Händler ergeben sich zahlreiche Vorteile, wenn sie die Möglichkeiten von KI und IoT richtig verstehen und effizient einsetzen. Es geht darum, Ausfälle zu minimieren, Störungen rechtzeitig vorherzusehen und sich nicht mehr um Nachbestellungen und Wartungssysteme kümmern zu müssen. Genauso relevant ist es, durch die Analyse des Produktlebenszyklusses nachhaltiger zu agieren und das Kundenverhalten besser zu verstehen und zu nutzen.

Um von diesen Vorteilen zu profitieren, müssen Unternehmen die Daten und Logfiles, die sie bereits haben oder aktuell sammeln, mit den richtigen Verfahren von KI und Machine Learning nutzbar machen – für ihr Produktmanagement, ihr Pricing und ihr Marketing. Wie das funktioniert erläutert die tarent auf der DMEXCO.

Sicher, schnell, erfolgreich: IoT in der Praxis

Ein Beispiel für moderne IoT-Projekte ist der sogenannte “Multi-PC”, der den “interaktiven Funkstreifenwagen” ermöglicht. Dabei handelt es sich um ein multifunktionales System für Sicherheit, Vernetzung und Kommunikation. Bei der Polizei in Brandenburg und Sachsen-Anhalt sind seit vielen Jahren mehrere hundert Geräte im Einsatz. Vorteile sind u. a. schnellere Abläufe durch Echtzeitübertragung, eine flächendeckendere Präsenz, eine höhere Eigen- und Fremdsicherung sowie eine optimierte Ressourcennutzung und Koordination. Neben dem Multi-PC stellt die tarent ihre Mobile Self-Checkout-Lösung “snabble” sowie ihreDigital Signage-Technologie “roomio” für Meeting- und Konferenzraumplanungen vor.

Über die tarent solutions GmbH

Als Technologieagentur mit Sitz in Bonn, Köln, Berlin und Bukarest entwickeln wir seit mehr als 20 Jahren innovative Softwarelösungen für Unternehmen und integrieren diese in komplexe ITLandschaften. Besondere Expertise bieten wir in den Bereichen Wettbewerbsanalyse, Preismanagement und Mobile Self-Checkout sowie in der Erstellung hochskalierbarer Microservice-Plattformen und komplexer Integrationsprojekte.

Mehr auf www.tarent.de.

Broschüren / weiterführende Informationen zu den Angeboten auf  der DMEXCO:

IoT- und KI-Technologien der Zukunft_tarent auf der DMEXCO_Presseinfo

Broschüren / weiterführende Informationen zum Workshop-Angebot von Tarent zu KI for Business:

DMEXCO 2018_tarent solutions GmbH

Ansprechpartner

Philip Braches
Teamleiter Vertrieb
tarent solutions GmbH
E-Mail: p.braches@tarent.de

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.

Funktionsweise künstlicher neuronaler Netze

Künstliche neuronale Netze sind ein Spezialbereich des maschinellen Lernens, der sogar einen eigenen Trendbegriff hat: Deep Learning.
Doch wie funktioniert ein künstliches neuronales Netz überhaupt? Und wie wird es in Python realisiert? Dies ist Artikel 2 von 6 der Artikelserie –Einstieg in Deep Learning.

Gleich vorweg, wir beschränken uns hier auf die künstlichen neuronalen Netze des überwachten maschinellen Lernens. Dafür ist es wichtig, dass das Prinzip des Trainings und Testens von überwachten Verfahren verstanden ist. Künstliche neuronale Netze können aber auch zur unüberwachten Dimensionsreduktion und zum Clustering eingesetzt werden. Das bekannteste Verfahren ist das AE-Net (Auto Encoder Network), das hier aus der Betrachtung herausgenommen wird.

Beginnen wir mit einfach künstlichen neuronalen Netzen, die alle auf dem Perzeptron als Kernidee beruhen. Das Vorbild für künstliche neuronale Netze sind natürliche neuronale Netze, wie Sie im menschlichen Gehirn zu finden sind.

Perzeptron

Das Perzeptron (engl. Perceptron) ist ein „Klassiker“ unter den künstlichen neuronalen Netzen. Wenn von einem neuronalen Netz gesprochen wird, ist meistens ein Perzeptron oder eine Variation davon gemeint. Perzeptrons sind mehrschichtige Netze ohne Rückkopplung, mit festen Eingabe- und Ausgabeschichten. Es gibt keine absolut einheitliche Definition eines Perzeptrons, in der Regel ist es jedoch ein reines FeedForward-Netz mit einer Input-Schicht (auch Abtast-Schicht oder Retina genannt) mit statisch oder dynamisch gewichteten Verbindungen zur Ausgabe-Schicht, die (als Single-Layer-Perceptron) aus einem einzigen Neuron besteht. Das eine Neuron setzt sich aus zwei mathematischen Funktionen zusammen: Einer Berechnung der Nettoeingabe und einer Aktivierungsfunktion, die darüber entscheidet, ob die berechnete Nettoeingabe im Brutto nun “feuert” oder nicht. Es ist in seiner Ausgabe folglich binär: Man kann es sich auch als kleines Lämpchen vorstellen, so dass abhängig von den Eingabewerten und den Gewichtungen eine Nettoeingabe (Summe) bildet und eine Sprungfunktion darüber entscheidet, ob am Ende das Lämpchen leuchtet oder nicht. Dieses Konzept der Ausgabeerzeugung wird Forward-Propagation genannt.

Single-Layer-Perceptron

Auch wenn “Netz” für ein einzelnes Perzeptron mit seinem einen Neuron etwas übertrieben wirken mag, ist es doch die Grundlage für viele größere und mehrschichtige Netze.

Betrachten wir nun die Mathematik der Forward-Propagation.

Wir haben eine Menge an Eingabewerten x_0, x_1 \dots x_n. Wobei für x_0 als Bias-Input stets gilt: x_0 = 1,0. Der Bias-Input ist nur ein Platzhalter für das wichtige Bias-Gewicht.

    \[ x = \begin{bmatrix} x_0\\ x_1\\ x_2\\ x_3\\ \vdots\\ x_n \end{bmatrix} \]


Für jede Eingabevariable wird eine Gewichtsvariable benötigt: w_0, w_1 \dots w_n

    \[ w = \begin{bmatrix} w_0\\ w_1\\ w_2\\ w_3\\ \vdots\\ w_n \end{bmatrix} \]

Jedes Produkt aus Eingabewert und Gewichtung soll in Summe die Nettoeingabe z bilden. Hier zeigt sich z als lineare mathematische Funktion, die zwei-dimensional leicht als z = w_0 + w_1 \cdot x_1 mit w_0 als Y-Achsenschnitt wenn x_1 = 0.

    \[ z = w_0 \cdot x_0 + w_1 \cdot x_1 + \dots + w_n \cdot x_n \]

Die lineare Funktion wird nur durch die Sprungfunktion als sogenannte Aktivierungsfunktion zu einer binären Klasseneinteilung (siehe hierzu: Machine Learning – Regression vs Klassifikation), denn wenn z einen festzulegenden Schwellwert \theta überschreitet, liefert die Sprungfunktion \phi mit der Eingabe z einen anderen Wert als wenn dieser Schwellwert nicht überschritten wird.

(1)   \begin{equation*} \phi(z) = \begin{cases} 1 & \text{wenn } z \le \theta \\ -1 & \text{wenn } z < \theta \\ \end{cases} \end{equation*}

Die Definition dieser Aktivierungsfunktion ist der Kern der Klassifikation und viele erweiterte künstliche neuronale Netze unterscheiden sich im Wesentlichen vom Perzeptron dadurch, dass die Aktivierungsfunktion komplexer ist, als eine reine Sprungfunktion, beispielsweise als Sigmoid-Funktion (basierend auf der logistischen Funktion) oder die Tangens hyperbolicus (tanh) -Funktion. Mehr darüber dann im nächsten Artikel dieser Artikelserie, bleiben wir also bei der einfachen Sprungfunktion.

Künstliche neuronale Netze sind im Grunde nichts anderes als viel-dimensionale, mathematische Funktionen, die durch Schaltung als Neuronen nebeneinander (Neuronen einer Schicht) und hintereinander (mehrere Schichten) eine enorme Komplexität erfassen können. Die Gewichtungen sind dabei die Stellschraube, die die Form der mathematischen Funktion gestaltet, aus Geraden und Kurven, um eine Punktwolke zu beschreiben (Regression) oder um Klassengrenzen zu identifizieren (Klassifikation).

Eine andere Sichtweise auf künstliche neuronale ist die des Filters: Ein künstliches neuronales Netz nimmt alle Eingabe-Variablen entgegen (z. B. alle Pixel eines Bildes) und über ein Training werden die Gewichtungen (die Form des Filters) so gestaltet, dass der Filter immer zu richtigen Klasse (im Kontext der Bildklassifikation: die Objektklasse) führt.


Kommen wir nochmal kurz zurück zu der Berechnung der Nettoeingabe z. Da diese Schreibweise…

    \[ z = w_0 \cdot x_0 + w_1 \cdot x_1 + \dots + w_n \cdot x_n \]

… recht anstrengend ist, schreiben Fortgeschrittene der linearen Algebra lieber z = w^T \cdot x.

    \[ z = w^T \cdot x \]

Das hochgestellte T steht dabei für transponieren. Transponieren bedeutet, dass Spalten zu Zeilen werden – oder umgekehrt.

Beispielsweise befüllen wir zwei Vektoren x und w mit beispielhaften Inhalten:

Eingabewerte:

    \[ x = \begin{bmatrix} 5\\ 12\\ 30\\ 2 \end{bmatrix} \]

Gewichtungen:

    \[ w = \begin{bmatrix} 1\\ 2\\ 5\\ 12 \end{bmatrix} \]

Kann nun die Nettoeingabe z berechnet werden, denn der Gewichtungsvektor wird vom Spaltenvektor zum Zeilenvektor. So kann – mathematisch korrekt dargestellt – jedes Element des einen Vektors mit dem zugehörigen Element des anderen Vektors multipliziert werden, die dabei entstehenden Ergebniswerte werden summiert.

    \[ z = w^T \cdot x = \big[1\text{ }2\text{ }5\text{ }12\big] \cdot \begin{bmatrix} 5\\ 12\\ 30\\ 2 \end{bmatrix} = 1 \cdot 5 + 2 \cdot 12 + 5 \cdot 30 + 12 \cdot 2 = 203 \]


Zurück zur eigentlichen Aufgabe des künstlichen neuronalen Netzes: Klassifikation! (Regression, Clustering und Dimensionsreduktion blenden wir ja in diesem Artikel als Aufgabe aus 🙂

Das Perzeptron soll zwei Klassen trennen. Dafür sollen alle Eingaben richtig gewichtet werden, so dass die entstehende Nettoeingabe z die Sprungfunktion dann aktiviert, wenn der Datensatz nicht für die eine, sondern für die andere Klasse ausweist.

Da wir es mit einer linearen Funktion z zutun haben, ist die Konvergenz (= Passgenauigkeit des Models mit der Realität) eines Single-Layer-Perzeptrons nur für lineare Trennbarkeit möglich!

Training des Perzeptron-Netzes

Die Aufgabe ist nun, die richtigen Gewichte zu finden – und nicht nur irgendwelche richtigen, sondern genau die optimalen. Die Frage, die sich für jedes künstliche neuronale Netz stellt, ist die nach den richtigen Gewichtungen. Das Training eines Perzeptron ist vergleichsweise einfach, gerade weil es binär ist. Denn binär bedeutet auch, dass wenn eine falsche Antwort gegeben wurde, muss das jeweils andere mögliche Ergebnis korrekt sein.

Das Training eines Perzeptrons funktioniert wie folgt:

  1. Setze alle Gewichtungen auf den Wert 0,00
  2. Mit jedem Datensatz des Trainings
    1. Berechne den Ausgabewert \^{y}
    2. Vergleiche den Ausgabewert \^{y} mit dem tatsächlichen Ergebnis y
    3. Aktualisiere die Gewichtungen entgegen des Fehlers: w_i = w_i + \Delta w_i

Wobei die Gewichtsanpassung \Delta w_i entgegen des Fehlers (bzw. hin zur jeweils anderen möglichen Antwort) geschieht:

\Delta w_i = (\^{y}_j - y_j ) \cdot x_i

Anmerkung für die Experten: Die Schrittweite \eta blenden wir hier einfach mal aus. Bitte einfach von \eta = 1.0 ausgehen.

\Delta w_i ist die Differenz aus der Prädiktion und dem tatsächlichen Ergebnis (Klasse). Alle Gewichtungen werden mit jedem Fehler gleichzeitig aktualisiert. Sind alle Gewichtungen aktualisiert, kommt der nächste Durchlauf (erneuter Vergleich zwischen \^{y} und y), nicht zu vergessen ist dabei natürlich die Abhängigkeit von den Eingabewerten x:

\Delta w_0 = (\^{y}_j - y_j ) \cdot x_0

\Delta w_2 = (\^{y}_j - y_j ) \cdot x_1

\Delta w_2 = (\^{y}_j - y_j) \cdot x_2

\Delta w_n = (\^{y}_j - y_j) \cdot x_n

Training eines Perzeptrons

Das Training im überwachten Lernen basiert immer auf der Idee, den Ausgabe-Fehler (die Differenz zwischen Prädiktion und tatsächlich korrektem Ergebnis) zu betrachten und die Klassifikationslogik an den richtigen Stellschrauben (bei neuronalen Netzen sind das die Gewichtungen) entgegen des Fehlers anzupassen.

Richtige Klassifikations-Situationen können True-Positives und True-Negatives darstellen, die zu keiner Gewichtsanpassung führen sollen:

True-Positive -> Klassifikation: 1 | korrekte Klasse: 1

\Delta w_i = (\^{y}_j - y_j) \cdot x_i = (1 - 1) \cdot x_i = 0

True-Negative-> Klassifikation: -1 | korrekte Klasse: -1

\Delta w_i = (\^{y}_j - y_j) \cdot x_i = (-1 - -1) \cdot x_i = 0

Falsche Klassifikationen erzeugen einen Fehler, der zu einer Gewichtsanpassung entgegen des Fehlers führen soll:

False-Positive -> Klassifikation: 1 | korrekte Klasse: -1

\Delta w_i = (\^{y}_j - y_j) \cdot x_i = (1 - -1) \cdot x_i = 2 \cdot x_i

False-Negative -> Klassifikation: -1 | korrekte Klasse: 1

\Delta w_i = (\^{y}_j - y_j) \cdot x_i = (-1 - 1) \cdot x_i = -2 \cdot x_i

Imaginäres Trainingsbeispiel eines Single-Layer-Perzeptrons (SLP)

Nehmen wir an, dass x_1 = 0,5 ist und das SLP irrtümlicherweise die Klasse \^{y_1} = -1 ausgewiesen hat, obwohl die korrekte Klasse y_1 = +1 wäre. (Und die Schrittweite lassen wir bei \eta = 1,0)

Dann passiert folgendes:

\Delta w_1 = (\^{y}_1 - y_1) \cdot x_1 = (-1 - 1) \cdot 0,5 = -2,0 \cdot 0,5 = -1,0

Die Gewichtung w_1 verringert sich entsprechend w_1 = w_1 + \Delta w_1 = w_1 - 1,0 und somit wird die Wahrscheinlichkeit größer, dass wenn bei der nächsten Iteration (j=1) wieder die Klasse +1 korrekt sei,  den Schwellwert \phi(z) zu unterschreiten und auf eben diese korrekte Klasse zu stoßen.

Die Aktualisierung der Gewichtung \Delta w_i ist proportional zu x_i. So würde beispielsweise ein neues x_1=2,0 (bei Iteration j=2) zu einer irrtümlichen Klassifikation \^(y_2) = -1 (y_2 = +1) führen, würde die Entscheidungsgrenze zur korrekten Prädiktion der Klasse beim nächsten Durchlauf (j = 3) an w_1 noch weiter in die gleiche Richtung verschoben werden:

\Delta w_1 = (\^{y}_2 - y_2) \cdot x_1 = (-1 - 1) \cdot 2,0 = -2,0 \cdot 2,0 = -4,0

Mehr zum Training von künstlichen neuronalen Netzen ist im nächsten Artikel dieser Artikelserie zu erfahren.

Single-Layer-Perzeptrons (SLP) – Beispiel mit der boolischen Trennung

Verlassen wir nun das Training des Perzeptrons und gehen einfach mal davon aus, dass die idealen Gewichte schon gefunden wurden und schauen uns nun an, was ein Perzeptron alles (nicht) kann. Denn nicht vergessen, es soll eigentlich Klassen unterscheiden bzw. die dafür nötigen Entscheidungsgrenzen finden.

Boolische Operatoren unterscheiden Fälle nach boolischen Werten. Sie sind ein beliebtes “Hello World” für die Einarbeitung in die lineare Entscheidungslogik eines Perzeptrons. Es gibt drei grundlegende boolische Vergleichsoperatoren: AND, OR und XOR

  x1     x2   AND OR XOR
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Ein Perzeptron zur Lösung dieser Aufgabe bräuchte also zwei Dimensionen (+ Bias): x_1 und x_2
Und es müsste Gewichtungen haben, die dafür sorgen, dass die Vorhersage entsprechend der Logik AND, OR oder XOR mit \^{y} = \phi(z) = \phi (w_0 \cdot 1 + w_1 \cdot x_1 + w_2 \cdot x_2) funktioniert.

Dabei ist es wichtig, dass wir auch phi \phi als Sprungfunktion definieren. Sie könnte beispielsweise so aussehen, dass sie auf den Wert \phi(z) = 1 springt, wenn z > 0 ist, ansonsten aber \phi(z) = 0 bleibt.

Das Netz und die Gewichtungen (w-Setup) könnten für die AND- und die OR-Logik so aussehen:

Die Gewichtungen funktionieren beim SLP problemlos, denn wir haben es mit linear trennbaren Problemen zutun:

Kleiner Test gefällig? So nehmen wir uns erstmal die AND-Logik vor:

  • Wenn x1 = 0 und x2 = 0 ist, gilt: z = -1,5 \cdot 1 + 1 \cdot 0 + 1 \cdot 0 = - 1,5,
    wie erhalten als Prädiktion \phi(z) = \phi(-1,5) = 0
  • Wenn x1 = 1 und x2 = 0 ist, gilt: z = -1,5 \cdot 1 + 1 \cdot 1 + 1 \cdot 0 = - 0,5,
    wie erhalten als Prädiktion \phi(z) = \phi(-0,5) = 0
  • Wenn x1 = 1 und x2 = 1 ist, gilt: z = -1,5 \cdot 1 + 1 \cdot 1 + 1 \cdot 1 = + 0,5,
    wie erhalten als Prädiktion \phi(z) = \phi(0,5) = 1

Scheint zu funktionieren!

Und dann die OR-Logik mit

  • Wenn x1 = 0 und x2 = 0 ist, gilt: z = -0,5 \cdot 1 + 1 \cdot 0 + 1 \cdot 0 = - 0,5,
    wie erhalten als Prädiktion \phi(z) = \phi(-0,5) = 0
  • Wenn x1 = 1 und x2 = 0 ist, gilt: z = -0,5 \cdot 1 + 1 \cdot 1 + 1 \cdot 0 = + 0,5,
    wie erhalten als Prädiktion \phi(z) = \phi(0,5) = 1
  • Wenn x1 = 1 und x2 = 1 ist, gilt: z = -0,5 \cdot 1 + 1 \cdot 1 + 1 \cdot 1 = + 1,5,
    wie erhalten als Prädiktion \phi(z) = \phi(1,5) = 1

Super! Jedoch stellt sich nun die Frage, wie das XOR-Problem zu lösen ist, denn das bedingt sowohl die Grenzen von AND als auch jene des OR-Operators.

Multi-Layer-Perzeptron (MLP) bzw. (Deep) Feed Forward (FF) Net

Denn ein XOR kann mathematisch auch so korrekt beschrieben werden: x_1 \text{ xor } x_2 = (x_1 \text{ and } \neg x_2) \text{ or } (\neg x_1 \text{ and } x_2)

Testen wir es aus!

  • Wenn x1 = 0 und x2 = 0 ist, gilt:
    z_1 = w_{10} \cdot 1 + w_{11} \cdot x1 + w_{12} \cdot  x2 = -0.5 \cdot 1 + 1,0 \cdot 0 - 1,0 \cdot 0 = -0,5 und somit \phi(z_1) = \phi(-0,5) = 0
    z_2 = w_{20} \cdot 1 + w_{21} \cdot x1 + w_{22} \cdot  x2 = -0.5 \cdot 1 - 1,0 \cdot 0 + 1,0 \cdot 0 = -0,5 und somit \phi(z_2) = \phi(-0,5) = 0
    z_3 = w_{30} \cdot 1 + w_{31} \cdot \phi(z_1) + w_{32} \cdot \phi(z_2) = -0,5 \cdot 1 + 1,0 \cdot 0 + 1,0 \cdot 0 = -0,5 und somit \phi(z_3) = \phi(-0,5) = 0
  • Wenn x1 = 1 und x2 = 0 ist, gilt:
    z_1 = w_{10} \cdot 1 + w_{11} \cdot x1 + w_{12} \cdot  x2 = -0.5 \cdot 1 + 1,0 \cdot 1 - 1,0 \cdot 0 = 0,5 und somit \phi(z_1) = \phi(0,5) = 1
    z_2 = w_{20} \cdot 1 + w_{21} \cdot x1 + w_{22} \cdot  x2 = -0.5 \cdot 1 - 1,0 \cdot 1 + 1,0 \cdot 0 = -1,5 und somit \phi(z_2) = \phi(-1,5) = 0
    z_3 = w_{30} \cdot 1 + w_{31} \cdot \phi(z_1) + w_{32} \cdot \phi(z_2) = -0,5 \cdot 1 + 1,0 \cdot 1 + 1,0 \cdot 0 = 0,5 und somit \phi(z_3) = \phi(0,5) = 1
  • Wenn x1 = 0 und x2 = 1 ist, gilt:
    z_1 = w_{10} \cdot 1 + w_{11} \cdot x1 + w_{12} \cdot  x2 = -0.5 \cdot 1 + 1,0 \cdot 0 - 1,0 \cdot 1 = -1,5 und somit \phi(z_1) = \phi(-1,5) = 0
    z_2 = w_{20} \cdot 1 + w_{21} \cdot x1 + w_{22} \cdot  x2 = -0.5 \cdot 1 - 1,0 \cdot 0 + 1,0 \cdot 1 = 0,5 und somit \phi(z_2) = \phi(0,5) = 1
    z_3 = w_{30} \cdot 1 + w_{31} \cdot \phi(z_1) + w_{32} \cdot \phi(z_2) = -0,5 \cdot 1 + 1,0 \cdot 0 + 1,0 \cdot 1 = 0,5 und somit \phi(z_3) = \phi(0,5) = 1
  • Wenn x1 = 1 und x2 = 1 ist, gilt:
    z_1 = w_{10} \cdot 1 + w_{11} \cdot x1 + w_{12} \cdot  x2 = -0.5 \cdot 1 + 1,0 \cdot 1 - 1,0 \cdot 1 = -1,5 und somit \phi(z_1) = \phi(-0,5) = 0
    z_2 = w_{20} \cdot 1 + w_{21} \cdot x1 + w_{22} \cdot  x2 = -0.5 \cdot 1 - 1,0 \cdot 1 + 1,0 \cdot 1 = 0,5 und somit \phi(z_2) = \phi(-0,5) = 0
    z_3 = w_{30} \cdot 1 + w_{31} \cdot \phi(z_1) + w_{32} \cdot \phi(z_2) = -0,5 \cdot 1 + 1,0 \cdot 0 + 1,0 \cdot 0 = -0,5 und somit \phi(z_3) = \phi(-0,5) = 0

Es funktioniert!

Mehrfachklassifikation mit dem Perzeptron

Ein Perzeptron-Netz klassifiziert binär, die Ausgabe beschränkt sich auf 1 oder -1 bzw. 0 oder 1.

Jedoch wird in der Praxis oftmals eine One-vs-All (OvA) bzw. One-vs-Rest (OvR) Klassifikation implementiert. In diesem Fall steht die 1 für die Erkennung einer konkreten Klasse, während alle anderen übrigen Klassen als negativ betrachtet werden.

Um jede Klasse erkennen zu können, werden n Klassifizierer (= n Perzeptron-Netze) benötigt. Jedes Perzeptron-Netz ist auf die Erkennung einer bestimmten Klasse trainiert.

Adaline – Oder: die Limitation des Perzeptrons

Das Perzeptron wird nur über eine Sprungfunktion aktiviert. Das schränkt die Feinabstimmung des Trainings enorm ein. Besser sind Aktivierungen über stetige Funktionen, die dann nämlich differenzierbar (ableitbar) sind. Das ergibt eine konvexe Fehlerfunktion mit einem eindeutigen Minimum. Der Adaline-Algorithmus (ADAptive Linear NEuron) erweitert die Idee des Perzeptrons um genau diese Idee. Der wesentliche Fortschritt der Adaline-Regel gegenüber der des Perzeptrons ist demnach, dass die Aktualisierung der Gewichtungen nicht wie beim Perzeptron auf einer einfachen Sprungfunktion, sondern auf einer linearen, stetigen Aktivierungsfunktion beruht.

Single-Layer-Adaline

Wie ein künstliches neuronales Netz mit der Kategorie Adaline trainiert werden kann, wird im nächsten Artikel dieser Artikelserie erläutert.

Weiterführende Netz-Konzepte (CNN und RNN)

Wer bereits mit Frameworks wie TensorFlow in das Deep Learning eingestiegen ist, hat möglicherweise schon erweiterte Konzepte der künstlichen neuronalen Netze kennen gelernt. Die CNNs (Convolutional Neuronal Network) sind im Moment die Wahl für die Verarbeitung von hochdimensionalen Aufgaben, beispielsweise die Bilderkennung (Computer Vision) und Texterkennung (NLP). Das CNN erweitert die Möglichkeiten mit neuronalen Netzen deutlich, indem ein Netz zur Dimensionsreduktion vorgeschaltet wird, im Kern steckt jedoch weiterhin die Idee der MLPs. Beim Einsatz in der Bilderkennung funktionieren CNNs vereinfacht gesprochen so, dass der vorgeschaltete Netzbereich die Millionen Bildpixel sektorweise ausliest (Convolution, Faltung durch Auslesen über Sektoren, die sich gegenseitig überlappen), verdichtet (Pooling, beispielsweise über nicht-lineare Funktionen wie max()) und dann – nach diesem Prozedere – ähnlich eim MLP klassifiziert.

 

Eine andere erweiterte Form sind RNNs (Recurrent Neuronal Network), die ebenfalls auf der Idee des MLPs basieren, dieses Konzept jedoch dank Rückverbindungen (Neuronen senden an vorherige Schichten) und Selbstverbindungen (Neuronen senden an sich selbst) wiederum auf den Kopf stellen.

 

Dennoch ist es für das tiefere Verständnis von CNNs und RNNs essenziell, dass vorher das Konzept des MLPs verstanden ist. Es ist die einfachste Form der auch heute noch am meisten eingesetzten und sehr mächtigen Netz-Topologien.

Im Jahr 2016 hatte Fjodor van Veen von asimovinstitute.org hatte – dankenswerterweise – mal eine Zusammenstellung von Netz-Topologien erstellt, auf die ich heute noch immer mal wieder einen Blick werfe:

Künstliche neuronale Netze – Topologie-Übersicht von Fjodor van Veen

Buchempfehlungen

Die folgenden Bücher nutze ich für mein Selbststudium von Machine Learning und Deep Learning und sind teilweise Gedankenvorlagen auch für diesen Artikel gewesen:

 

Machine Learning mit Python und Scikit-Learn und TensorFlow: Das umfassende Praxis-Handbuch für Data Science, Predictive Analytics und Deep Learning (mitp Professional) Deep Learning mit Python und Keras: Das Praxis-Handbuch vom Entwickler der Keras-Bibliothek(mitp Professional)

 

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 – Ü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


Interview – Berufsbegleitender Zertifikatskurs “Data Science”

Interview mit Dr. Peter Lauf, dem wissenschaftlichen Leiter des berufsbegleitenden Zertifikatskurses „Data Science“  der Technischen Hochschule Brandenburg, über die Erfahrungen aus bisher drei erfolgreichen Zertifikatskursen.

Dr. Peter Lauf studierte im Anschluss an eine kaufmännische Ausbildung Volkswirtschaft. Sein Diplom und die Promotion machte er an der Uni Köln. Heute ist er vor allem als Datenanalytiker, Marketing Manager, Management Consultant, Leiter Database und Manager Big Data tätig. Er verfügt über mehr als 20 Jahre Erfahrung mit SPSS, ist zertifizierter SAS‑Programmierer und nutzt die Programmiersprache R seit 2004. Neben seinen Tätigkeiten als Consultant für Daten, steht er in Lehraufträgne an verschiedenen Hochschulen. 

Data Science Blog: Vor welchem Hintergrund haben Sie das Curriculum für die Weiterbildung zum Data Scientist entwickelt?

Maßgeblich waren hier zunächst eigene, über Jahrzehnte hinweg gesammelte Erfahrungen. Ich arbeitete unter anderem als Sozialforscher, Datenbankmanager, Management Consultant und Manager Big Data in den unterschiedlichsten Branchen mit den unterschiedlichsten Technologien. Weil ich bis heute parallel an verschiedenen Hochschulen tätig bin, besitze ich auch einen guten Überblick über aktuelle Webseiten, Blogs und Publikationen.

Data Science Blog: Wie setzen sie diese Erfahrungen und dieses Wissen konkret um?
Durch konsequenten Praxisbezug. Ein Beispiel: In der Praxis besitzt Excel für die Datenvorbereitung eine überragende Rolle. Da werden dann Inputdateien in verformelten Arbeitsblättern vielfach hin und her kopiert. Derartige Lösungen bedingen einen hohen manuellen Aufwand, sind praktisch nicht dokumentierbar und führen zu einer hohen Abhängigkeit von einzelnen Mitarbeitern. Weil ich selbst an der Ablösung solcher Systeme durch ETL-Lösungen mitgearbeitet habe, kann ich den Übergang von der einen zur anderen Lösung und die damit verbundenen Vorteile praxisnah und überzeugend darstellen.

Data Science Blog: Wie kommunizieren Sie mit den Teilnehmern?
Auf durchaus vielfältige Weise. In den Präsenzen spielt das direkte Gespräch eine große Rolle und zwar sowohl in den Unterrichtseinheiten, wie auch im Off, den Kaffeepausen zum Beispiel. Ein offenes Ohr bildet eine Grundvoraussetzung für einen guten Kurs. In den Web-Konferenzen werden ebenfalls Fragen gestellt und beantwortet. Mit Moodle verfügen wir auch über eine leistungsfähige und gern genutzte Lern- und Kommunikationsplattform. Schließlich unterstützen wir aktiv die Bildung einer Community unter den Teilnehmern. Es ist erstaunlich, wieviel Teilnehmer (und Dozenten!) aus diesem Austausch lernen können.

Data Science Blog: Lassen Sie uns hier einhaken, was lernen Sie von den Teilnehmern?

Bisher streut der Kurs ganz erheblich bezüglich Branchen, Alter, Vorerfahrungen, Job-Titles und anderer Kriterien. Diese Diversität konfrontiert uns immer wieder mit neuen Anwendungsfällen, die wir gerne aufgreifen und für die wir Lösungen zur Diskussion stellen. Es ist wie in der Medizin: ein breites Fallspektrum steigert die Qualität.

Data Science Blog: Welche Pläne haben Sie für die Zukunft?

Die dynamische Weiterentwicklung unserer Inhalte. Wir betreiben einen hohen Aufwand um á jour zu bleiben. Die Aktivitäten international führender Data Scientists werden aufmerksam verfolgt und wir werten z. B. Verlagsprogramme und Konferenzen aus. Soweit neue Entwicklungen bereits in Software umgesetzt wurden und für uns interessant sind, testen wir diese Lösungen und integrieren sie in unsere Lernprogramme. Abgesehen von der reinen Datenseite sehen wir einen zukünftigen Schwerpunkt in der Berücksichtigung der Kognitionswissenschaft mit dem Ziel, die Urteilskraft unserer Teilnehmer weiter zu stärken.

Dr. Peter Lauf ist wissenschaftlicher Leiter des berufsbegleitenden Zertifikatskurses „Data Science“, der von der Agentur für wissenschaftliche Weiterbildung und Wissenstransfer (AWW e. V.) an der Technischen Hochschule Brandenburg angeboten wird. Die Module sind als eigene Einheiten konzipiert, so dass ein Einsteigen in den Kurs mit jedem Modul möglich ist. Weitere Hinweise zu diesem Fortbildungsangebot finden sich direkt auf www.aww-brandenburg.de.

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.

Interview – Die Bedeutung von Machine Learning für das Data Driven Business

Um das Optimum aus ihren Daten zu holen, müssen Unternehmen Data Analytics vorantreiben, um Entscheidungsprozesse für Innovation und Differenzierung stärker zu automatisieren. Die Data Science scheint hier der richtige Ansatz zu sein, ist aber ein neues und schnelllebiges Feld, das viele Sackgassen kennt. Cloudera Fast Forward Labs unterstützt Unternehmen dabei sich umzustrukturieren, Prozesse zu automatisieren und somit neue Innovationen zu schaffen.

Alice Albrecht ist Research Engineer bei Cloudera Fast Forward Labs. Dort widmet sie sich der Weiterentwicklung von Machine Learning und Künstlicher Intelligenz. Die Ergebnisse ihrer Forschungen nutzt sie, um ihren Kunden konkrete Ratschläge und funktionierende Prototypen anzubieten. Bevor sie zu Fast Forward Labs kam, arbeitete sie in Finanz- und Technologieunternehmen als Data Science Expertin und Produkt Managerin. Alice Albrecht konzentriert sich nicht nur darauf, Maschinen “coole Dinge” beizubringen, sondern setzt sich auch als Mentorin für andere Wissenschaftler ein. Während ihrer Promotion der kognitiven Neurowissenschaften in Yale untersuchte Alice, wie Menschen sensorische Informationen aus ihrer Umwelt verarbeiten und zusammenfassen.

english-flagRead this article in English:
“Interview – The Importance of Machine Learning for the Data Driven Business”


Data Science Blog: Frau Albrecht, Sie sind eine bekannte Keynote-Referentin für Data Science und Künstliche Intelligenz. Während Data Science bereits im Alltag vieler Unternehmen angekommen ist, scheint Deep Learning der neueste Trend zu sein. Ist Künstliche Intelligenz für Unternehmen schon normal oder ein überbewerteter Hype?

Ich würde sagen, nichts von beidem stimmt. Data Science ist inzwischen zwar weit verbreitet, aber die Unternehmen haben immer noch Schwierigkeiten, diese neue Disziplin in ihr bestehendes Geschäft zu integrieren. Ich denke nicht, dass Deep Learning mittlerweile Teil des Business as usual ist – und das sollte es auch nicht sein. Wie jedes andere Tool, braucht auch die Integration von Deep Learning Modellen in die Strukturen eines Unternehmens eine klar definierte Vorgehensweise. Alles andere führt ins Chaos.

Data Science Blog: Nur um sicherzugehen, worüber wir reden: Was sind die Unterschiede und Überschneidungen zwischen Data Analytics, Data Science, Machine Learning, Deep Learning und Künstlicher Intelligenz?

Hier bei Cloudera Fast Forward Labs verstehen wir unter Data Analytics das Sammeln und Addieren von Daten – meist für schnelle Diagramme und Berichte. Data Science hingegen löst Geschäftsprobleme, indem sie sie analysiert, Prozesse mit den gesammelten Daten abgleicht und anschließend entsprechende Vorgänge prognostiziert. Beim Machine Learning geht es darum, Probleme mit neuartigen Feedbackschleifen zu lösen, die sich mit der Anzahl der zur Verfügung stehenden Daten noch detaillierter bearbeiten lassen. Deep Learning ist eine besondere Form des Machine Learnings und ist selbst kein eigenständiges Konzept oder Tool. Künstliche Intelligenz zapft etwas Komplizierteres an, als das, was wir heute sehen. Hier geht es um weit mehr als nur darum, Maschinen darauf zu trainieren, immer wieder dasselbe zu tun oder begrenzte Probleme zu lösen.

Data Science Blog: Und wie können wir hier den Kontext zu Big Data herstellen?

Theoretisch gesehen gibt es Data Science ja bereits seit Jahrzehnten. Die Bausteine für modernes Machine Learning, Deep Learning und Künstliche Intelligenz basieren auf mathematischen Theoremen, die bis in die 40er und 50er Jahre zurückreichen. Die Herausforderung bestand damals darin, dass Rechenleistung und Datenspeicherkapazität einfach zu teuer für die zu implementierenden Ansätze waren. Heute ist das anders. Nicht nur die Kosten für die Datenspeicherung sind erheblich gesunken, auch Open-Source-Technologien wie etwa Apache Hadoop haben es möglich gemacht, jedes Datenvolumen zu geringen Kosten zu speichern. Rechenleistung, Cloud-Lösungen und auch hoch spezialisierte Chip-Architekturen, sind jetzt auch auf Anfrage für einen bestimmten Zeitraum verfügbar. Die geringeren Kosten für Datenspeicherung und Rechenleistung sowie eine wachsende Liste von Tools und Ressourcen, die über die Open-Source-Community verfügbar sind, ermöglichen es Unternehmen jeder Größe, von sämtlichen Daten zu profitieren.

Data Science Blog: Was sind die Herausforderungen beim Einstieg in Data Science?

Ich sehe zwei große Herausforderungen: Eine davon ist die Sicherstellung der organisatorischen Ausrichtung auf Ergebnisse, die die Data Scientists liefern werden (und das Timing für diese Projekte).  Die zweite Hürde besteht darin, sicherzustellen, dass sie über die richtigen Daten verfügen, bevor sie mit dem Einstellen von Data Science Experten beginnen. Das kann “tricky” sein, wenn man im Unternehmen nicht bereits über Know-how in diesem Segment verfügt. Daher ist es manchmal besser, im ersten Schritt einen Data Engineer oder Data Strategist einzustellen, bevor man mit dem Aufbau eines Data Science Team beginnt.

Data Science Blog: Es gibt viele Diskussionen darüber, wie man ein datengesteuertes Unternehmen aufbauen kann. Geht es bei Data Science nur darum, am Ende das Kundenverhalten besser zu verstehen?

Nein “Data Driven” bedeutet nicht nur, die Kunden besser zu verstehen – obwohl das eine Möglichkeit ist, wie Data Science einem Unternehmen helfen kann. Abgesehen vom Aufbau einer Organisation, die sich auf Daten und Analysen stützt, um Entscheidungen über das Kundenverhalten oder andere Aspekte zu treffen, bedeutet es, dass Daten das Unternehmen und seine Produkte voranbringen.

Data Science Blog: Die Zahl der Technologien, Tools und Frameworks nimmt zu, was zu mehr Komplexität führt. Müssen Unternehmen immer auf dem Laufenden bleiben oder könnte es ebenso hilfreich sein, zu warten und Pioniere zu imitieren?

Obwohl es generell für Unternehmen nicht ratsam ist, pauschal jede neue Entwicklung zu übernehmen, ist es wichtig, dass sie mit den neuen Rahmenbedingungen Schritt halten. Wenn ein Unternehmen wartet, um zu sehen, was andere tun, und deshalb nicht in neue Entwicklungen investiert, haben sie den Anschluss meist schon verpasst.

Data Science Blog: Global Player verfügen meist über ein großes Budget für Forschung und den Aufbau von Data Labs. Mittelständische Unternehmen stehen immer unter dem Druck, den Break-Even schnell zu erreichen. Wie können wir die Wertschöpfung von Data Science beschleunigen?

Ein Team zu haben, das sich auf ein bestimmtes Set von Projekten konzentriert, die gut durchdacht und auf das Geschäft ausgerichtet sind, macht den Unterschied aus. Data Science und Machine Learning müssen nicht auf Forschung und Innovation verzichten, um Werte zu schaffen. Der größte Unterschied besteht darin, dass sich kleinere Teams stärker bewusst sein müssen, wie sich ihre Projektwahl in neue Rahmenbedingungen und ihre besonderen akuten und kurzfristigen Geschäftsanforderungen einfügt.

Data Science Blog: Wie hilft Cloudera Fast Forward Labs anderen Unternehmen, den Einstieg in Machine Learning zu beschleunigen?

Wir beraten Unternehmen, basierend auf ihren speziellen Bedürfnissen, über die neuesten Trends im Bereich Machine Learning und Data Science. Und wir zeigen ihnen, wie sie ihre Datenteams aufbauen und strukturieren können, um genau die Fähigkeiten zu entwickeln, die sie benötigen, um ihre Ziele zu erreichen.

Data Science Blog: Zum Schluss noch eine Frage an unsere jüngeren Leser, die eine Karriere als Datenexperte anstreben: Was macht einen guten Data Scientist aus? Arbeiten sie lieber mit introvertierten Coding-Nerds oder den Data-loving Business-Experten?

Ein guter Data Scientist sollte sehr neugierig sein und eine Liebe für die Art und Weise haben, wie Daten zu neuen Entdeckungen und Innovationen führen und die nächste Generation von Produkten antreiben können.  Menschen, die im Data Science Umfeld erfolgreich sind, kommen nicht nur aus der IT. Sie können aus allen möglichen Bereichen kommen und über die unterschiedlichsten Backgrounds verfügen.

R oder Python – Die Sprache der Wahl in einem Data Science Weiterbildungskurs

Die KDnuggets, ein einflussreicher Newletter zu Data Mining und inzwischen auch zu Data Science, überraschte kürzlich mit der Meldung „Python eats away at R: Top Software for Analytics, Data Science, Machine Learning in 2018. Trends and Analysis“.[1] Grundlage war eine Befragung, an der mehr als 2300 KDNuggets Leser teilnahmen. Nach Bereinigung um die sogenannten „Lone Voters“, gingen insgesamt 2052 Stimmen in die Auswertung ein.

Demnach stieg der Anteil der Python-Nutzer von 2017 bis 2018 um 11% auf 65%, während mit 48% weniger als die Hälfte der Befragungsteilnehmer noch R nannten. Gegenüber 2017 ging der Anteil von R um 14% zurück. Dies ist umso bemerkenswerter, als dass bei keinem der übrigen Top Tools eine Verminderung des Anteils gemessen wurde.

Wir verzichten an dieser Stelle darauf, die Befragungsergebnisse selbst in Frage zu stellen oder andere Daten herbeizuziehen. Stattdessen nehmen wir erst einmal die Zahlen wie sie sind und konzedieren einen gewissen Python Hype. Das Python Konjunktur hat, zeigt sich z.B. in der wachsenden Zahl von Buchtiteln zu Python und Data Science oder in einem Machine Learning Tutorial der Zeitschrift iX, das ebenfalls auf Python fußt. Damit stellt sich die Frage, ob ein Weiterbildungskurs zu Data Science noch guten Gewissens auf R als Erstsprache setzen kann.

Der Beantwortung dieser Frage seien zwei Bemerkungen vorangestellt:

  1. Ob die eine Sprache „besser“ als die andere ist, lässt sich nicht abschließend beantworten. Mit Blick auf die Teilarbeitsgebiete des Data Scientists, also Datenzugriff, Datenmanipulation und Transformation, statistische Analysen und visuelle Aufbereitung zeigt sich jedenfalls keine prinzipielle Überlegenheit der einen über die andere Sprache.
  2. Beide Sprachen sind quicklebendig und werden bei insgesamt steigenden Nutzerzahlen dynamisch weiterentwickelt.

Das Beispiel der kürzlich gegründeten Ursa Labs[2] zeigt überdies, dass es zukünftig weniger darum gehen wird „Werkzeuge für eine einzelne Sprache zu bauen…“ als darum „…portable Bibliotheken zu entwickeln, die in vielen Programmiersprachen verwendet werden können“[3].

Die zunehmende Anwendung von Python in den Bereichen Data Science und Machine Learning hängt auch damit zusammen, dass Python ursprünglich als Allzweck-Programmiersprache konzipiert wurde. Viele Entwickler und Ingenieure arbeiteten also bereits mit Python ohne dabei mit analytischen Anwendungen in Kontakt zu kommen. Wenn diese Gruppen gegenwärtig mehr und mehr in den Bereichen Datenanalyse, Statistik und Machine Learning aktiv werden, dann greifen sie naturgemäß zu einem bekannten Werkzeug, in diesem Fall zu einer bereits vorhandenen Python Implementation.

Auf der anderen Seite sind Marketingfachleute, Psychologen, Controller und andere Analytiker eher mit SPSS und Excel vertraut. In diesen Fällen kann die Wahl der Data Science Sprache freier erfolgen. Für R spricht dann zunächst einmal seine Kompaktheit. Obwohl inzwischen mehr als 10.000 Erweiterungspakete existieren, gibt es mit www.r-project.org immer noch eine zentrale Anlaufstelle, von der über einen einzigen Link der Download eines monolithischen Basispakets erreichbar ist.

Demgegenüber existieren für Python mit Python 2.7 und Python 3.x zwei nach wie vor aktive Entwicklungszweige. Fällt die Wahl z.B. auf Python 3.x, dann stehen mit Python3 und Ipython3 wiederum verschiedene Interpreter zur Auswahl. Schließlich gibt es noch Python Distributionen wie Anaconda. Anaconda selbst ist in zwei „Geschmacksrichtungen“ (flavors) verfügbar als Miniconda und eben als Anaconda.

R war von Anfang an als statistische Programmiersprache konzipiert. Nach allen subjektiven Erfahrungen eignet es sich allein schon deshalb besser zur Erläuterung statistischer Methoden. Noch vor wenigen Jahren galt R als „schwierig“ und Statistikern vorbehalten. In dem Maße, in dem wissenschaftlich fundierte Software Tools in den Geschäftsalltag vordringen wird klar, dass viele der zunächst als „schwierig“ empfundenen Konzepte letztlich auf Rationalität und Arbeitsersparnis abzielen. Fehler, Bugs und Widersprüche finden sich in R so selbstverständlich wie in allen anderen Programmiersprachen. Bei der raschen Beseitigung dieser Schwächen kann R aber auf eine große und wache Gemeinschaft zurückgreifen.

Die Popularisierung von R erhielt durch die Gründung des R Consortiums zu Beginn des Jahres 2015 einen deutlichen Schub. Zu den Initiatoren dieser Interessengruppe gehörte auch Microsoft. Tatsächlich unterstützt Microsoft R auf vielfältige Weise unter anderem durch eine eigene Distribution unter der Bezeichnung „Microsoft R Open“, die Möglichkeit R Code in SQL Anweisungen des SQL Servers absetzen zu können oder die (angekündigte) Weitergabe von in Power BI erzeugten R Visualisierungen an Excel.

Der Vergleich von R und Python in einem fiktiven Big Data Anwendungsszenario liefert kein Kriterium für die Auswahl der Unterrichtssprache in einem Weiterbildungskurs. Aussagen wie x ist „schneller“, „performanter“ oder „besser“ als y sind nahezu inhaltsleer. In der Praxis werden geschäftskritische Big Data Anwendungen in einem Umfeld mit vielen unterschiedlichen Softwaresystemen abgewickelt und daher von vielen Parametern beeinflusst. Wo es um Höchstleistungen geht, tragen R und Python häufig gemeinsam zum Ergebnis bei.

Der Zertifikatskurs „Data Science“ der AWW e. V. und der Technischen Hochschule Brandenburg war schon bisher nicht auf R beschränkt. Im ersten Modul geben wir z.B. auch eine Einführung in SQL und arbeiten mit ETL-Tools. Im gerade zu Ende gegangenen Kurs wurde Feature Engineering auf der Grundlage eines Python Lehrbuchs[4] behandelt und die Anweisungen in R übersetzt. In den kommenden Durchgängen werden wir dieses parallele Vorgehen verstärken und wann immer sinnvoll auch auf Lösungen in Python hinweisen.

Im Vertiefungsmodul „Machine Learning mit Python“ schließlich ist Python die Sprache der Wahl. Damit tragen wir der Tatsache Rechnung, dass es zwar Sinn macht in die grundlegenden Konzepte mit einer Sprache einzuführen, in der Praxis aber Mehrsprachigkeit anzutreffen ist.

[1] https://www.kdnuggets.com/2018/05/poll-tools-analytics-data-science-machine-learning-results.html

[2] https://ursalabs.org/

[3] Statement auf der Ursa Labs Startseite, eigene Übersetzung.

[4] Sarkar, D et al. Practical Machine Learning with Python, S. 177ff.

Tag Archive for: Data Science

Nothing Found

Sorry, no posts matched your criteria