PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Maschinelles Lernen und Datenanalyse

In der Mess- und Prüftechnik

In der Soziologie

PD Stefan Bosse

Universität Bremen - FB Mathematik und Informatik

1 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Ein- und Ausgabeschnittstellen von Prädiktorfunktionen

Kodierung und Dekodierung von Variablen für kont. Prädiktorfunktionen

Normalisierung und Skalierung von Daten

2 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Kagetorische Variablen

  • Kategorische Variablen müssen für die Verwendung in Prädiktorfunktionen in numerische Werte kodiert werden
    • Multi-level Kodierung: Abbildung von allen kategorischen Werten auf unterschiedlich numerische Werte (skalare und vektorielle Werte)
    • One-hot Kodierung: Abbildung von allen kategorischen Werten auf 01 Vektoren

Aber: Anders als die Intervallkodierung von numerischen Variablen (z.B. für Entsch.bäume) muss im umgekehrten Fall der Kodierung einer kat. Variable in eine numerische Variable eine Intervall- und Verhältnisskalierung existieren!!

3 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Beispiele

  • Farben C={rot,grün,blau,braun}
    • Kodierung in skalaren kont. Variable aber mit diskreten Werten
    • Kodierung in vektorielle Variable mit kont. Werten → RGB

z1(C)=⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪1,C=rot2,C=gruen3,C=blau4,C=braun,z2(C)=⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪(1.0,0.0,0.0),C=rot(0.0,1.0,0.0),C=gruen(0.0,0.0,1.0),C=blau(0.5,0.0,0.5),C=braun

4 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Welche Probleme ergeben sich bei der Multi-level Kodierung (skalar) von Zielvariablen bei typischen Sigmoid Transferfunktionen von Neuronen?

  • Nichtlineare Funktion×
  • Sättigung an den Grenzen×
  • No search results.
5 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Nichtlinearität an den Rändern [0,1]

6 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Ein- und Ausgabeschnittstellen

Verschiedene Kodierungen von ein-/ausg. kat. Variablen

7 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

  • Die One-hot Kodierung von Eingabevariablen erfordert die Berechnung eines diskretwertigen Vektors

  • Aber die One-hot Kodierung von Ausgabevariablen ergibt einen kontinuierlichen Vektor der noch diskretisiert werden muss:

    • Schwellwertfunktion → Es kann zu Mehrdeutigkeiten kommen (Unentscheidbarkeit)
    • Der kont. Ausgangswert yi (Ci) wenn im Bereich [0,1] kann als ein Maß für die Wahkrscheinlichkeit des Auftretens eines Klassensymbols Ci verwendet werden!
    • Softmax Funktion: Diese bildet einen n-dimensionalen Vektor y mit yi ∈ [0,1] und maxyi) = |y| auf einen n-dimensionalen Vektor ab mit maxyi) = 1!
8 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Softmax Funktion

softmax(Y)=⎜ ⎜ey1weight...eynweight⎟ ⎟,weight=eyk,yiY,Y=y1...yn,softmax(Y)[0,1]

9 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Fehleranalyse und Kostenfunktionen

Bewertung der Qualität eines Klassifikators oder von Prädiktorfunktionen

Aufteilung von Datensätzen

Künstliche Erweiterung von Datensätzen

10 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Fehlerfunktionen

  1. Ziel ist ein aussagekräftiger Fehlerwert um die Qualität des Trainings und des erzeugten Modells M(x):xy bewerten zu können

  2. Fehlerwerte bei kategorischen Zielvariablen vergleichen direkt die Übereinstimmung der inferrierten und vorgegebenen Werte der Zielvariablen

    • Gesamtfehler (falsche Klassifikation)
    • Falsch-positiver Fehler (binärer Klassifikator)
    • Falsch-negativer Fehler (binärer Klassifikator)
    • Falsch-C Fehler (Multiklassifikator)
    • Klassenspezifischer Fehler (Multiklassifikator)
11 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Fehlerberechnung

Daten

  • Es sei D die Gesamtmenge der Dateninstanzen D
  • Es sei Dtest die Testdatenmenge DtestD

Klassifikationsfehler

err(Y0,Yp)=1NiD{1,Y0iYpi0,Y0=Dtest(Y),N=|Dtest|

12 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

  • Dabei sind Y0 die vorgegebenen Werte der Zielvariablen und Yp die aus dem trainierten Modell berechneten (inferrierten) Werte

  • Der Inferenzfehler liegt dann im Bereich [0,1]

  • Bei binärer Klassifikation sollten die Falsch-positiv und Falsch-negativ Fehler zusätzlich getrennt bestimmt werden:

errC(Y0,Yp)=1NjD(Y=C){1,Y0jYpj0,N=|Dtest(Y=C)|

13 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Konfusionsmatrix

  • Bei Multiklassifikation bietet sich die Konfusionsmatrix an um eine Bewertung der Klassifikationsqualität mit falsch-C Bewertungen einer Klasse C und somit errC zu erfassen

14 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Kreuzentropie

  • Bei kontinuierlichen Ausgabevariablen (KNN, SVM) aber evtl. kategorischen Zielvariablen ist die Berechnung der Kreutentropie zwischen Y0 und Yp aussagekräftiger

  • Eine Kreuzentropie → 0 bedeutet vollständige Übereinstimmung, Werte > 0 bedeuten Abweichungen

  • Je größer die Kreuzentropie zwischen zwei Vektoren/Matrizen ist, desto größer ist die Abweichung

15 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Berechnung der Kreuzentropie zweier Matrizen

  • Eingabewerte: Matrix U und V mit Zellenwerten im Bereich [0,1]
  • Ergebnis: Skalarer Wert
  • Problem (siehe unten): log(0) → -∞

Ecross(U,V)=mean(sumRows(A+B)),A=(Aij),Aij=Uijlog(max(Vij,19)),B=(Bij),Bij=(1Uij)log(1min(Vij,119)),mean(X)=xi/|X|,sumRows(X)=(Si),Si=Xij

16 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Beispiele

17 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Netzwerkkonfiguration

Konfiguration von ein- und mehrschichtigen neuronalen Netzwerken

Festlegung der Anzahl der Schichten, Knoten pro Schicht, und Vernetzung

18 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Neuronale Netze

  • Ein neuronales Netz ist ein gerichteter Funktionsgraph
  • Einzelne Funktionsknoten können zu Schichten zusammengefasst werden
Eingabeschicht
Die Anzahl der Eingabeneuronen wird durch den Eingangsvektor x und der Kodierung bestimmt! Jedes Element von x ist mit einem Eingang eines Eingangsneurons verbunden
Ausgabeschicht
Die Anzahl der Ausgabeneuronen wird durch den Ausgangsvektor y und der Kodierung bestimmt! Jedes Element von y ist mit einem Ausgang eines Ausgangsneurons verbunden
19 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Innere Schichten
Neuronen die weder mit den Ein- noch den Ausgängen direkt verbunden sind.

Konfiguration

  • Wenn von vollständig verbundenen Schichten ausgegangen wird kann die Konfiguration eines KNN mit einem Vektor/Array angegeben werden. Jedes Element gibt die Anzahl der Neuronen pro Schicht an.

  • Beispiele:

layers=[1] → SLP
layers=[2,1] → SLP
layers=[2,3,1] → MLP
layers=[1,4,3,1] → MLP
20 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Verbindungen

1:1
Der Ausgang eines Neurons einer Schicht i(oder einer Eingabevariable x) wird mit dem Eingang eines folgenden Neurons der Schicht j verbunden
1:n
Die Ausgänge aller Neuronen einer Schicht i(oder alle Eingabevariablen x) werden mit den Eingängen jedes folgenden Neurons der Schicht j verbunden → Vollständig verbundene Schicht
0/1:k
Nur ein Teil der Ausgänge werden mit den Eingängen von folgenden Neuronen verbunden → Unvollständig und irregulär verbundene Schichten (eher Sonderfall)
21 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

16 Vollständig verbundenes Netzwerk

22 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

  • Die statische Festlegung der Konfiguration der inneren Schichten ist schwierig!

  • Es gilt:

    • Linear separierbare Probleme verwenden keine inneren Schichten!
    • Nichtlinear separierbare Probleme können innere Schichten verwenden
    • Beim Training wirken innere Schichten zunächst wie eine "Mauer", die Wirkung auf den Ausgang wird kleiner
    • Bei inneren Schichten muss die Trainingsdatenvarianz und Anzahl der Instanzen groß sein
    • Je mehr innere Schichten und Neuronen um so mehr Trainingsinstanzen und Anstieg der Rechenzeit!
23 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

ML Frameworks

Tensorflow

Neataptic

Torch

ML

24 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Tensorflow

  • Datenverarbeitung mit tiefen Künstlichen Neuronalen Netzwerken ("Deep Learning") → "Google Brain"

  • Strombasierte Datenverarbeitung mit Pipelines (Queues)

    • Datenverarbeitungsgraph (Datenflussdiagram)

103

25 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

  • TensorFlow verwendet ein einheitliches Datenflussdiagramm, um sowohl die Berechnung in einem Algorithmus als auch den Zustand darzustellen, in dem der Algorithmus arbeitet.

  • Im Gegensatz zu herkömmlichen Datenflusssystemen, bei denen Knoten funktionale Berechnungen für unveränderliche Daten darstellen, ermöglicht TensorFlow Kanten mit Berechnungen darzustellen, die einen veränderlichen Zustand besitzen oder aktualisieren [103].

  • https://www.tensorflow.org

26 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

  • Durch die Vereinheitlichung des Berechnungs- und Zustandsmanagements in einem einzigen Programmiermodell ermöglicht TensorFlow Programmierern, mit verschiedenen Parallelisierungsschemata zu experimentieren, die beispielsweise die Berechnung auf Servern oder GPUs erlauben.
  • Eine typische TensorFlow-Anwendung hat zwei verschiedene Phasen:
  1. Die erste Phase definiert das Programm (Z. B. ein zu trainierendes neuronales Netzwerk und die Aktualisierungsregeln) als Symbolisches Datenflussdiagramm mit Platzhaltern für die Eingabedaten und Variablen, die den Status darstellen.
  2. Die zweite phase führt eine optimierte Version des Programms auf einer Menge verfügbarer Geräte aus (z.B. Server, CPU, GPU).
27 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Verabeitungseinheiten

  • Das "Programm" ist zunächst unabhängig von der verwendeten Verarbeitungsarchitektur

  • Abstraktion für heterogene Beschleuniger: Neben Allzweckgeräten wie multicore-CPUs und GPUs können spezielle Beschleuniger für Deep Learning signifikante Leistungsverbesserungen und Energieeinsparungen erzielen.

28 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Verabeitungsmodell und Parallelität

TensorFlow unterscheidet sich von batchbasierten Datenflusssystemen in zweierlei Hinsicht:

  • Das Modell unterstützt mehrere gleichzeitige Ausführungen auf überlappenden Teilgraphen des Gesamtgraphen.

  • Das Modell unterstützt verteilte Berechnung

  • Einzelne Knoten des Graphes können einen veränderlichen Zustand haben, der zwischen verschiedenen Ausführungen des Diagramms geteilt werden kann.

29 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Elemente des Datenflussgraphens

  • In einem TensorFlow-Diagramm stellt jeder Knoten eine Einheit der lokalen Berechnung dar, und jede Kante repräsentiert die Ausgabe von oder Eingabe in einen Knoten.
    • Die Berechnung findet an Eckpunkten mit Operationen auf Werten statt, die entlang der Kanten als Tensoren fließen.
Tensoren
Alle Daten werden als monosortige Tensoren modelliert (n-dimensionale Arrays), wobei die Elemente vom primitiver Typ wie int32, float32 oder string sind (wobei string Binärdaten darstellen kann).
30 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Operatoren
Eine Operation nimmt m ≥ 0 Tensoren als Eingangswerte und erzeugt n ≥ 0 Tensoren als Ausgangswerte.
Zustansbasierte Operationen
Eine Operation kann einen veränderlichen zustand besitzen, der bei jeder Ausführung gelesen und/oder geschrieben wird. D.h. das Ergebnis einer Operation hängt von vorherigen Berechnungen ab!
Queues
TensorFlow unerstützt mehrere Warteschlangenimplementierungen, die Koordination von Berechnungen unterstützen.
31 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

tensforflow.js

  • Tensorflow ist primär in C++ implementiert

    • Ausführung auf speziellen Verarbeitungseinheiten wie GPUs erfordert eine Kodeübersetzung zur Laufzeit
  • Es gibt Python Anbindungen

  • tensorflow.js ist eine Implementierung von Tensorflow rein in JavaScript und kann in Browsern ausgeführt werden

    • GPU Nutzung z.B. über Open/WEBGL
  • https://www.tensorflow.org/js

32 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Nachteile von Tensorflow

  • Durch die Trennung von Daten, Kode, und Verarbeitungseinheiten schlechte Performanz bei "kleinen" Problemen (hohe Initialisierungszeit und Overhead)

    • Beispiel Lernen des EXOR Problems: Tensorflow.js benötigt ca 3-5 Minuten für das Training, Neataptic.js nur 100ms!
  • Durch primäre Matrixalgebra nicht flexibel anpassbar

    • Z.B. kaum Möglichkeit der Verwendung von evolutionären Algorithmen (Dynamische Restrukturierung des KNN)
  • Lernkurve ist am Anfang flach

33 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Neataptic

  • Ebenfalls ein KNN Framework,

    • Reine JavaScript Implementierung
    • Basiert NICHT auf Matrixalgebra; die Neuronen werden einzeln berechnet
  • Aber mit (optionalen) evolutionären Algorithmen

    • Das Training kann neben Kantengewichten auch die Struktur ändern: Knoten und Kanten können getauscht, entfernt, oder hinzugefügt werden!
  • Für kleine Probleme gute Perfomanz

  • Lernkurve ist "steil"
34 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

  • Bietet eine Vielzahl von Berechnungsfunktionen und Strukturen

    • Struktur kann beliebig und irregulär programmiert werden
    • Es gibt "Architekten" für viele gängige Architekturen
    • Forwärtsgekoppelte und rückgekoppelte Architekturen
  • https://wagenaartje.github.io/neataptic/

35 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Torch

  • Torch ist eine open-source-Bibliothek für maschinelles lernen, ein scientific computing framework und eine Skriptsprache, die auf der Programmiersprache Lua basiert.

    • Daher kann mit einer einfach zu erlernden Programmiersprache direkt auf Torch gearbeitet werden
  • http://torch.ch

  • Torch gibt es auch für R!

  • Lernkurve ist "steil"

36 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

ML

  • Eigenes Framework (Stefan Bosse) dass eine Vielzahl von Lernalgorithmen und Modellen zusammenfasst:

    • Entscheidungsbäume (C4.5, ID3, ICE, usw.)
    • KNN (ANN → Neataptic, MLP → SMO, usw.)
    • Belohnungslernen (Reinforcement und Agenten L.)
    • kNN
    • Clustering (SOM)
    • Textanalyse
    • ...
  • Reine JavaScript Implementierung

37 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

  • Trennung von Daten und Algorithmen (d.h. prozedurale Progarmmierung)

    • Viele Modelle sind portabel, d.h. können direkt mit JSON.stringify und JSON.parse serialisiert und deseralisiert werden
  • Enthalten in bzw. verfügbar für verschiedene Software Frameworks:

    • WorkBook
    • NoteBook (digitale Übungen)
    • JAM (JavaScript Agent Machine)
38 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Beispiele

39 / 40

PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks

Zusammenfassung

  • Es wird zwischen Klassifikatoren (kategorische Zielvariablen) und Prädiktorfunktionen (numerische Zielvariablen) unterschieden

    • Klassifikation mit Prädiktorfunktionen erfordert Kodierung und Dekodierung!
  • Die Fehleranalyse während und nach dem Training kann mit den statistischen Größen "Mean Squared Error" und Kreuzentropie erfolgen

  • Die Konfiguration der inneren Schichten von KNN ist schwierig und häufig ein iterativer Prozess

40 / 40