PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
In der Mess- und Prüftechnik
In der Soziologie
PD Stefan Bosse
Universität Bremen - FB Mathematik und Informatik
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Kodierung und Dekodierung von Variablen für kont. Prädiktorfunktionen
Normalisierung und Skalierung von Daten
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
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!!
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
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
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?
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Nichtlinearität an den Rändern [0,1]
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Verschiedene Kodierungen von ein-/ausg. kat. Variablen
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:
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
softmax(Y)=⎛⎜ ⎜⎝ey1weight...eynweight⎞⎟ ⎟⎠,weight=∑eyk,yi∈Y,Y=⎛⎜⎝y1...yn⎞⎟⎠,∑softmax(Y)∈[0,1]
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Bewertung der Qualität eines Klassifikators oder von Prädiktorfunktionen
Aufteilung von Datensätzen
Künstliche Erweiterung von Datensätzen
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Ziel ist ein aussagekräftiger Fehlerwert um die Qualität des Trainings und des erzeugten Modells M(x):x → y bewerten zu können
Fehlerwerte bei kategorischen Zielvariablen vergleichen direkt die Übereinstimmung der inferrierten und vorgegebenen Werte der Zielvariablen
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
err(Y0,Yp)=1N∑i∈D{1,Y0i≠Ypi0,Y0=Dtest(Y),N=|Dtest|
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)=1N∑j∈D(Y=C){1,Y0j≠Ypj0,N=|Dtest(Y=C)|
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
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
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Ecross(U,V)=−mean(sumRows(A+B)),A=(Aij),Aij=Uijlog(max(Vij,1−9)),B=(Bij),Bij=(1−Uij)log(1−min(Vij,1−1−9)),mean(X)=∑xi/|X|,sumRows(X)=(Si),Si=∑Xij
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Konfiguration von ein- und mehrschichtigen neuronalen Netzwerken
Festlegung der Anzahl der Schichten, Knoten pro Schicht, und Vernetzung
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
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] → SLPlayers=[2,1] → SLPlayers=[2,3,1] → MLPlayers=[1,4,3,1] → MLP
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
16 Vollständig verbundenes Netzwerk
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:
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Tensorflow
Neataptic
Torch
ML
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Datenverarbeitung mit tiefen Künstlichen Neuronalen Netzwerken ("Deep Learning") → "Google Brain"
Strombasierte Datenverarbeitung mit Pipelines (Queues)
103
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].
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
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.
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
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.
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Tensorflow ist primär in C++ implementiert
Es gibt Python Anbindungen
tensorflow.js ist eine Implementierung von Tensorflow rein in JavaScript und kann in Browsern ausgeführt werden
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Durch die Trennung von Daten, Kode, und Verarbeitungseinheiten schlechte Performanz bei "kleinen" Problemen (hohe Initialisierungszeit und Overhead)
Durch primäre Matrixalgebra nicht flexibel anpassbar
Lernkurve ist am Anfang flach
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Ebenfalls ein KNN Framework,
Aber mit (optionalen) evolutionären Algorithmen
Für kleine Probleme gute Perfomanz
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Bietet eine Vielzahl von Berechnungsfunktionen und Strukturen
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Torch ist eine open-source-Bibliothek für maschinelles lernen, ein scientific computing framework und eine Skriptsprache, die auf der Programmiersprache Lua basiert.
Torch gibt es auch für R!
Lernkurve ist "steil"
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Eigenes Framework (Stefan Bosse) dass eine Vielzahl von Lernalgorithmen und Modellen zusammenfasst:
Reine JavaScript Implementierung
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Trennung von Daten und Algorithmen (d.h. prozedurale Progarmmierung)
JSON.stringify
und JSON.parse
serialisiert und deseralisiert werdenEnthalten in bzw. verfügbar für verschiedene Software Frameworks:
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
PD Stefan Bosse - Maschinelles Lernen und Datenanalyse - Modul F: Schnittstellen, Konfiguration, Fehleranaylse, Frameworks
Es wird zwischen Klassifikatoren (kategorische Zielvariablen) und Prädiktorfunktionen (numerische Zielvariablen) unterschieden
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