Posts

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).

Einstieg in Natural Language Processing – Teil 1: Natürliche vs. Formale Sprachen

Dies ist Artikel 1 von 4 der Artikelserie Einstieg in Natural Language Processing – Artikelserie.

Versuche und erste Ansätze, Maschinen beizubringen menschliche Sprache zu verstehen, gibt es bereits seit den 50er Jahren. Trotz der jahrzehntelangen Forschung und Entwicklung gelingt dies bis heute nicht umfassend. Woran liegt dies?

Um diese Frage zu beantworten, hilft es, sich die Unterschiede zwischen „natürlichen“, also sich selbstständig entwickelnden, typischerweise von Menschen gesprochenen Sprachen und den von Computern interpretieren formalen Sprachen klar zu machen. Formale Sprachen, wie zum Beispiel Python zum Ausführen der Codebeispiele in dieser Artikelserie, HTML (Hyper Text Markup Language) zur Darstellung von Webseiten und andere typische Programmier- und Skriptsprachen, sind üblicherweise sehr streng strukturiert.

Alle diese Sprachen weisen eine Reihe von Gemeinsamkeiten auf, welche es Computern einfach machen, sie korrekt zu interpretieren (also den Informationsinhalt zu “verstehen”). Das vermutlich auffälligste Merkmal formaler Sprachen ist eine relativ strikte Syntax, welche (wenn überhaupt) nur geringe Abweichungen von einem Standard erlaubt. Wie penibel die jeweilige Syntax oft einzuhalten ist, wird am ehesten deutlich, wenn diese verletzt wird:

Solche so genannten “Syntax Error”  gehören daher zu den häufigsten Fehlern beim Schreiben von Quellcode.

Ganz anders dagegen sieht es in der Kommunikation mit natürlichen Sprachen aus. Zwar fördert falsche Komma-Setzung in der Regel nicht die Leserlichkeit eines Textes, jedoch bleibt dieser in der Regel trotzdem verständlich. Auch macht es keinen Unterschied ob ich sage „Es ist heiß heute.“ oder „Heute ist es heiß.“. Genau wie in der deutschen Sprache funktioniert dieses Beispiel auch im Englischen sowie in anderen natürlichen Sprachen. Insbesondere Spanisch ist ein Beispiel für eine Sprache mit extrem variabler Satzstellung. Jedoch kann in anderen Fällen eine andere Reihenfolge der selben Worte deren Bedeutung auch verändern. So ist „Ist es heute heiß?“ ganz klar eine Frage, obwohl exakt die selben Worte wie in den Beispielsätzen oben vorkommen.

Ein weiterer wichtiger, hiermit verwandter Unterschied ist, dass es bei formalen Sprachen in der Regel einen Ausdruck gibt, welcher eine spezifische Bedeutung besitzt, während es in natürlichen Sprachen oft viele Synonyme gibt, die ein und dieselbe Sache (oder zumindest etwas sehr ähnliches) ausdrücken. Ein wahrer boolscher Wert wird in Python als

geschrieben. Es gibt keine andere Möglichkeit, diesen Wert auszudrücken (zumindest nicht ohne irgend eine Art von Operatoren wie das Doppelgleichheitszeichen zu benutzen und damit z. B. “0 == 0” zu schreiben).  Anders hingegen zum Beispiel in der Deutschen Sprache: Wahr, richtig, korrekt, stimmt, ja,

Um einen Vorstellung davon zu bekommen, wie verbreitet Synonyme in natürlichen Sprachen sind, lässt sich die Internetseite https://www.openthesaurus.de verwenden. Beispielshalber findet man dutzende Synonyme für das Wort „schnell“ hier: https://www.openthesaurus.de/synonyme/schnell

Eine weitere große Schwierigkeit, welche in den meisten natürlichen Sprachen und nahezu allen Arten von Texten zu finden ist, stellen verschiedene grammatikalische Formen eines Wortes dar. So sind die Worte bin, wäre, sind, waren, wirst, werden… alles Konjugationen desselben Verbs, nämlich sein. Eine durchaus beeindruckende Übersicht über die verwirrende Vielfalt von Konjugationen dieses kleinen Wörtchens, findet sich unter: https://www.verbformen.de/konjugation/sein.htm.

Dieses Problem wird um so schwerwiegender, da viele Verben, insbesondere die am häufigsten genutzten, sehr unregelmäßige Konjugationsformen besitzen und damit keiner generellen Regel folgen. Daher ist computerintern oft ein Mapping für jede mögliche Konjugationsform bei vielen Verben die einzige Möglichkeit, an die Grundform zu kommen (mehr dazu in Teil 3 dieser Artikelserie).

Die Liste der sprachlichen Schwierigkeiten beim computergestützten Auswerten natürlicher Sprache ließe sich an diesem Punkt noch beliebig weiter fortsetzen:

  • Rechtschreibfehler
  • falsche Grammatik
  • Smileys
  • der „Substantivverkettungswahn“ im Deutschen
  • mehrdeutige Worte und Abkürzungen
  • abwegige Redewendungen (z. B. “ins Gras beißen”)
  • Ironie
  • und, und, und …

Ob und welche Rolle jede dieser Schwierigkeiten im einzelnen spielt, hängt natürlich sehr stark von den jeweiligen Texten ab und kann nicht pauschalisiert werden – ein typischer Chatverlauf wird ganz andere Probleme bereithalten als ein Wikipedia-Artikel. Wie man einige dieser Probleme in der Praxis vereinfachen oder sogar lösen kann und welche Ansätze und Methoden zur Verfügung stehen und regelmäßig zur Anwendung kommen wird im nächsten Teil dieser Artikelserie an praktischen Codebeispielen genauer unter die Lupe genommen.

NLTK vs. Spacy – Eine kurze Übersicht

Möchte man einen (oder auch einige) Text(e) mit den Methoden des natural language processings untersuchen um die darin verwendete Sprache auswerten oder nach bestimmten Informationen suchen, so sind insbesondere die Pakete NLTK und spaCy zu empfehlen (bei sehr vielen Texten sieht das schon wieder anders aus und wird am Ende der Artikelserie mit dem Paket gensim vorgestellt); beide bieten eine unglaubliche Vielzahl von Analysemöglichkeiten, vorgefertigten Wortsets, vortrainierte Stemmer und Lemmatiser, POS Tagger und, und, und…

Ist man vor allem an den Ergebnissen der Analyse selbst interessiert, so bietet sich spaCy an, da hier bereits mit wenigen Zeilen Code viele interessante Informationen generiert werden können.

Wer dagegen gerne selber bastelt oder wissen möchte wie die einzelnen Tools und Teilschritte genau funktionieren oder sich seine eigenen Stemmer, Tagger ect. trainieren will, ist vermutlich mit NLTK besser beraten. Zwar ist hier oft mehr Quellcode für das gleiche Ergebnis notwendig, allerdings kann das Preprocessing der Texte hierbei relativ einfach exakt den eigenen Vorstellungen angepasst werden. Zudem bietet NLTK eine Vielzahl von Beispieltexten und bereits fertig getagte Daten, mit welchen eigene Tagger trainiert und getestet werden können.

Weiterbildungsmodul: Machine Learning mit Python

Anzeige

Lernen ist ein zentraler Faktor von Intelligenz. Die Realisierung intelligenter Systeme durch Computer, die nicht programmiert sondern angelernt werden, ist das Ziel von Künstlicher Intelligenz. Maschinelles Lernen befasst sich mit den dazu notwendigen Methoden und Algorithmen. Diese formulieren unterschiedliche Lernziele, adressieren diverse Anwendungsgebiete und stellen verschiedene Anforderungen an die vorhandenen Daten.

Jeder der beruflich größere Datenmengen intelligent nutzen will, um aus ihnen einen Mehrwert zu erzeugen, braucht daher zum einen ein Überblickswissen über Maschinelles Lernen. Zum anderen wird ein tieferes algorithmisches Verständnis benötigt, um Aufwände abzuschätzen und durch Anpassungen Erfolgsraten zu erhöhen. Ziele des Angebots ist es daher, Teilnehmerinnen und Teilnehmer in diesem Sinne für Maschinelles Lernen (theoretisch und praktisch) fit zu machen. Wir werden mit Python und zugehörigen Bibliotheken arbeiten, die Open Source und State-of-the-Art Implementierungen anbieten. Auch Aspekte des Maschinellen Lernens in der Cloud werden mit konkreten Beispielen behandelt.

Maschinelles Lernen ist der algorithmische Kern vieler aktueller Technologien und Entwicklungen bei denen es darum geht, aus Daten zu lernen und dann optimale Entscheidungen zu treffen. Die Algorithmen können aber auch künstlerisch tätig werden und sogar träumen. Ein paar Prognosen sagen sogar voraus, dass der Computer intelligenter als der Mensch werden wird.

Weiterbildungsangebot der AWW und der TH Brandenburg: Machine Learning mit Python

Die Besonderheit des Weiterbildungsangebotes „Machine Learning mit Python“ ist, dass nicht nur einzelne Algorithmen theoretisch abgehandelt werden. Die praktische Anwendung und das Lösen einer echten Aufgabe stehen im Vordergrund. In einer sogenannten “Data Challenge” können sich die Kursteilnehmer dabei mit den Studierenden der Vorlesung “Data Mining” im Masterstudiengang Informatik der Technischen Hochschule Brandenburg messen.

Beim Maschinellen Lernen verderben viele Köche nicht etwa den Brei, sondern machen ihn besser. Dies geschieht mittels sogenannter Ensemble-Methoden, die mehrere Modelle geeignet kombinieren. Welche zwei Standard-Ansätze es dazu gibt und wie diese funktionieren werden die Teilnehmer ebenfalls im Kurs lernen. Natürlich wird auch „Deep Learning“ als das zurzeit heißeste Gebiet von Maschinellem Lernen ein Thema sein. Damit dies alles gelingt wird als technologische Grundlage Python genutzt.

Mit der Programmiersprache Python ist es möglich sofort interaktiv zu beginnen, so dass man sich ganz auf seine Aufgabe, die Daten und ihre Analyse konzentrieren kann. Auch ohne Informatiker zu sein, kann man so schnell Algorithmen des Maschinellen Lernens anwenden und erste Resultate erzielen. Das geht oft bereits mit 20 bis30 Zeilen Code, so behält man leicht den Überblick.

Mit Python kann man bei seinem vertrauten Betriebssystem bleiben. Python ist plattformunabhängig, so dass man seinen Code überallhin mitnehmen kann. Im Bereich von Machine Learning ist Python mit entsprechenden Bibliotheken sehr gut aufgestellt, oft sind die verfügbaren Algorithmen state-of-the-art. Die Frameworks beim sogenannten Deep Learning, das spektakuläre Resultate in Serie erzeugt, setzen nahezu ausschließlich auf Python. Python ist sehr breit einsetzbar, so dass es auch auf sehr spezifische Themen und Fragestellungen angewendet werden kann. Es wird in vielen unterschiedlichen Gebieten angewendet und weiterentwickelt. Deswegen kennen viele, die ihren Hintergrund nicht in der Informatik haben, Python vielleicht bereits.

Ansprechperson:
Dr. Annette Strauß
T +49 3381 355 750
M annette.strauss@aww-brandenburg.de

Einstieg in Natural Language Processing – Artikelserie

Unter Natural Language Processing (NLP) versteht man ein Teilgebiet der Informatik bzw. der Datenwissenschaft, welches sich mit der Analyse und Auswertung , aber auch der Synthese natürlicher Sprache befasst. Mit natürlichen Sprachen werden Sprachen wie zum Beispiel Deutsch, Englisch oder Spanisch bezeichnet, welche nicht geplant entworfen wurden, sondern sich über lange Zeit allein durch ihre Benutzung entwickelt haben. Anders ausgedrückt geht es um die Schnittstelle zwischen unserer im Alltag verwendeten und für uns Menschen verständlichen Sprache auf der einen, und um deren computergestützte Auswertung auf der anderen Seite.

Diese Artikelserie soll eine Einführung in die Thematik des Natural Language Processing sein, dessen Methoden, Möglichkeiten, aber auch der Grenzen . Im einzelnen werden folgende Themen näher behandelt:

1. Artikel – Natürliche vs. Formale Sprachen
2. Artikel – Preprocessing von Rohtext mit Python
3. Artikel – Möglichkeiten/Methoden der Textanalyse an Beispielen (erscheint demnächst…)
4. Artikel – NLP, was kann es? Und was nicht? (erscheint demnächst…)

Zur Verdeutlichung der beschriebenen Zusammenhänge und Methoden und um Interessierten einige Ideen für mögliche Startpunkte aufzuzeigen, werden im Verlauf der Artikelserie an verschiedenen Stellen Codebeispiele in der Programmiersprache Python vorgestellt.
Von den vielen im Internet zur Verfügung stehenden Python-Paketen zum Thema NLP, werden in diesem Artikel insbesondere die drei Pakete NLTK, Gensim und Spacy verwendet.

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


Events

Nothing Found

Sorry, no posts matched your criteria