Überblick

Wie können wir Zusammenhänge in der Werkstofftechnik mit Prüfungen bestimmen?

Wie können wir Zusammenhänge aus Daten ableiten?

Wie können wir automatisiert Schäden aus Daten erkennen und charakterisieren?

Verfahren, Methoden, Algorithmen, Modelle

Anwendungen

Anwendungsklassen von Maschinellen Lernen

Motivation

Dieser Kurs mit interaktiven Übungen soll:

Einen anwendungsorientierten Einstieg in die Datenanalyse und Modellierung mit Daten in der Werkstoff- und Prüftechnik sowie Interpretation mit Verfahren des Maschinellen Lernens bieten;

Einen Überblick über gängige und weniger gängige Verfahren geben;

Interaktive Tutorials und Übungen mit zielgruppenorientierten Fallbeispielen sollen Verfahren begreifbar und erfahrbar machen!

Beware of the Dog

Abbildung 1-1. ML Modelle sind häufig hoch nichtlineare und teils unstetige Funktionen mit unvorhersehbaren Verhalten außerhalb des Trainingsparameterraums

Inhalte

Die Ontologie des Kurses besteht aus den Bausteinklassen:

Modelle (Datenstrukturen)

Verfahren (Algorithmen: Training, Test, Inferenz)

Überwachtes Training

Nichtüberwachtes Training

Weiterhin aus den Anwendungs- und Datenklassen:

Sensorische und experimentelle Daten (Mess- und Prüftechnik)

Schadensmerkmale und Eigenschaften von Werkstoffen

Metrische und Kategorische Variablen

Die Grenzen der Datenklassen sind fließend! Material, Maschine und Bauteil als Sensoren!

Abbildung 1-2. Gemeinsame Verfahren und Modelle → Unterschiedliche Daten, Aussagen, Anwendungen

Organisation der Veranstaltung

Vorlesungen mit integrierten Übungen

Vermittlung der Grundlagen

Unmittelbare Übung und Anwendung der Grundlagen mit einfachen Übungen

Asynchrone Videos und Tutorials

Auch offline seh- und hörbar

Gemeinsame Treffen mit Videokonferenz (Zoom, falls erforderlich) sowie vor Ort (Blöcke)

Interaktive Tutorials und Übungen mit NoteBook und WorkBook (NoteBook-2) im Web Browser!

Offline ausführbar (evtl. werden Daten von einem Server geladen)

Programmiersprache: R

Lernfelder: Forschendes Lernen

Nach Einführung der Grundlagen und einigen interaktiven Übungen gibt es konkrete zu bearbeitende Beispiele

Die Lernfelder sind die Verknüpfung zu den Grundlagen von ML und Datenanalyse

Texte und Folien

Vorlesungsskript (am Anfang: für jedes Modul/jede Einheit) als Ebook

Das Vorlesungsskript gibt die Folieninhalte 1:1 wieder (nur anderes Layout und kompaktiert)

Alle Folien im HTML Format (auch offline lesbar) und PDF

Begleitende Literatur (Bücher im PDF)

Lernfelder

Orientierung an den Daten

Skalare Daten in Tabellen

Skalare Materialeigenschaften

Prozess- und Materialdaten

Daten ais der Prüftechnik, z.B. Messung der Rauheit oder Härte

Vektorielle Daten

Daten- und Zeitserien

Messkurven, z.B. Dehnungstest

Zeitaufgelöste Signale, wie z.B. akustische Maschinendaten

Services

Web Service: Informationen, Dokumente, Folien, Videos:
https://edu-9.de/Lehre/asd3k

Videos: https://edu-9.de/Lehre/asd3k

Prüfungsleistungen

Bearbeitung der Aufgaben (Programmierung und Dokumentation, jeweils 1 Punkt)

Mündliche Prüfung

Alternativ: Schriftliche Seminararbeit (Umfang ca. 20-30 Seiten)

Literatur

Zur Vertiefung!

S\. Richter, Statistisches und Maschinelles Lernen. Springer Spektrum, 2019.

E\. Alpaydın, Introduction to Machine Learning. MIT Press, 2010.

Programmierung

Hadley Wickham, Garrett Grolemund, R for Data Science: Import, Tidy, Transform, Visualize, and Model Data. 2017

Uwe Ligges, Programmieren mit R. 2006.

Domainspezifische Literatur

J\. Bell, Machine Learning - Hands-On for Developers and Technical Professionals. John Wiley & Sons, Ltd, 2015.

C\. R. Farrar and K. Worden, Structural Health Monitoring: A Machine Learning Perspective. Wiley-Interscience, 2013.

Software

Anforderungen und Eigenschaften

Textuelle oder grafische Programmierung?

Effiziente Berechnung (Performanz)?

Lernkurve und Einfachheit bei gleichzeitig hoher Ausdrucksfähigkiet (Abstraktion)?

Programmiersprachen

Python

Prozedurale und objektorientierte Programmiersprache

Mittlere Ausdrucksstärke

Polymorphie

"Unhandliche" Syntax durch Einrückung

R

Prozedurale, funktionale, und teils deklarative Sprache

Arrays

Teils sehr mächtige Funktionen und Ausdrücke

Abstraktion von Ausdrücken, deklarativ

Polymorphie

JavaScript

Prozedurale, funktionale, und teils objektorientierte Sprache

Gepackte Arrays (C Layout)

Polymorphie

Programmiersprachen: Implementierung

Python

Virtuelle Maschine

Bytecode Interpreter (langsam!)

Terminal

Browser: Jupyter mit Server

Numerische Berechnungen nicht direkt in Python möglich (nur C/C++)

R

Virtuelle Maschine

Bytecode Interpreter (mittel!)

Just-in-time native code Compiler (?, JIT, schnell)

Terminal

Browser: R Studio mit Server

Numerische Berechnungen eventuell direkt in R möglich (sonst C/C++)

JavaScript

Virtuelle Maschine

Bytecode Interpreter (schnell!) und teils

Just-in-time native code Compiler (JIT, sehr schnell)

Terminal und Browser

Numerische Berechnungen direkt in JavaScript möglich

NoteBook

Interaktive vorwiegend praktische Übungen werden rein digital im Web Browser mit den NoteBooks durchgeführt

Ein digitale Übung (oder Tutorial) besteht aus:

Textabschnitten

Informationsblöcken

Aufgaben (mit Lösungen)

Editoren für Programmcode

Ausführungsterminals für Programmcode

uvm.

Abbildung 1-3. Ein NoteBook im WEB Browser

NoteBook Konzept

Top-down Bearbeitungsfluss

Statische Struktur mit dynamischen Inhalten

Alle dynamischen Inhalte können in einer JSON Datei gespeichert und wieder geladen werden

Es können Notizzettel überall im NoteBook angeheftet werden (werden auch gespeichert)

Musterlösungen (dynamische Inhalte) können eingebettet und mit einem Schlüssel freigeschaltet werden

R+ WorkBook Konzept

Dynamische Struktur mit dynamischen Inhalten ⇒ Freies Experimentieren (optional), ähnlich Jupyter

Ein R+ WorkBook besteht aus

Textabschnitten (MarkDown)

Codesnippets mit Editoren und Ausgabekonsolen

Speziellen Snippets wie editierbare Tabellen oder allg. Formulare

Programmierung in R(+),

Alle dynamischen Inhalte und Daten können im JSON Format gespeichert und wieder geladen werden

Abbildung 1-4. Ein R+ WorkBook Beispiel

Programmiersprache?

Python

import numpy as np
l=1 r=1 y=l+t
v=np.array([1,2,3])
w=np.array([4,5,6])
u=np.add(v, w)

R

l=1 r=1 y=l+r
v=c(1,2,3)
w=c(4,5,6)
u=v+w

JS

l=1 r=1 y=l+r
v=[1,2,3]
w=[4,5,6]
u=v.map((x,i) =>
    (x+w[i]))
v=new Float32Array([1,2,3])
w=new Float32Array([4,5,6])
u=new Float32Array(3)
for(var i=0;i<v.length;i++)
  u[i]=v[i]+w[i];

R:

Weit verbreitet,

Läuft nicht im Browser oder nw.js direkt

Umfrangreiche Softwareinstallation und DevTools erforderlich

WorkBook/JS:

Nicht weit verbreitet,

Läuft im Browser und nw.js direkt,

Keine Softwareinstallation notwendig (außer nw.js)

R+ ist die Synthese: R in JS mit Compiler R → JS und Unterstützung gängiger Bibliotheken (Math, ML, Statistics, Tensorflow, C5.0)

Abbildung 1-5. Vergleich der Softwarearchitekturen für verschiedene Programmiersprachen

Programmiersprache R+!

Wir verwenden im Kurs R+, ein R Dialekt.

R+ ist selber in JavaScript implementiert, erweiterbar, und läuft daher in jedem Web Browser und nw.js

Alle digitalen Übungen beinhalten R+

R+ gleicht einige syntaktische und operationale Schwächen von R aus, führt Vereinfachungen ein, ist aber daher nicht vollständig kompatibel zu R

Wichtig: In diesem Kurs soll nicht programmiert sondern beobachtet und evaluiert werden.

Daher dürften die meisten programmatischen Abschnitte weniger als 10 Zeilen R+ umfassen.

/webrwork.html"

Machinelles Lernen

Schlüsselwörter und Begriffe

Welche Begriffe werden häufig bei ML genannt:

Anwendungsgebiete

Welche Anwendungsgebiete gibt es:

"Material Informatik"

[1] Y. Liu, T. Zhao, W. Ju, and S. Shi, “Materials discovery and design using machine learning,” J Materiomics, vol. 3, 2017.

Abbildung 1-6. Vorhersage von Materialeigenschaften von kombinierbaren/parametrisierbaren Legierungen [Ozerdem MS, Kolukisa S (2009)]

Fragestellungen

Welche Fragestellungen (zu lösende Probleme) gibt es:

Inhalte

Eingabe x: Daten (Attribute) und Eigenschaften (Analyse)

Sensoren: Erfassung von Daten, S(welt): welt → x

Ausgabe y: Numerische und kategorische Werte

Metriken und Taxonomie: Grundlagen des Maschinellen Lernens

Algorithmen und Modelle: f(x): x → y

Training, Lernen, Prädiktion, Test M(<x,y>): <x,y> → f

Anwendungen

Geschichte

[www.pinterest.com]

Abbildung 1-7. Die Geschichte fokussiert auf Neuronale Netze. Es gibt mehr.

Modelle

Entscheidungsbäume (gerichtete Graphen)

Funktionen (z.B. Polynome)

Funktionsgraphen (z.B. künstliche neuronale Netzwerke)

Ungerichtete Graphen (Gruppenbildung)

Zyklische und azyklische Graphen

Algorithmen

Entscheidungsbäume: C4.5, ID3, IDT, C5.0 (R!), Regressionsbäume

Teilungsverfahren (mit Entropie, Informationsgewinn, usw.)

Lineare und nichtlineare Regression, Support Vector Machines (SVM)

Least Square Fit (iterativ, mehrschrittig)

Lineare Algebra (numerisch, einschrittig)

Datenanalyse!: Hauptkomponentenanalyse, statistische Methoden

Bayesien Netzwerke mit statistischem Methoden (probabalistische Verfahren)

Rückwärtspropagation von Fehlergradienten (vor allem KNN) aus Vorwärtsberechnung

Überwachte und nichtüberwachte Trainingsverfahren

Zustandsbasierte Funktionen (LSTM) für Datenserien

Datenanalyse und Eigenschaftsselektion

Wir unterscheiden folgende Klassen von Eigenschaften in der Datenanalyse und Prädiktion (Merkmale, Features):

Eigenschaften der Eingabedaten, vor allem dominante Eigenschaften abgeleitet aus den Eingabedaten x mit starker y Korrelation

Beispiel: Charakteristische Signalfrequenz einer Betriebsschwingung die auf einen Schaden hindeutet (NDT/SHM)

Zieleigenschaften, also Werte der Zielvariable y

Numerische Eigenschaften (kontinuierlich oder diskret), z.B. Materialdichte, Schadensposition, Bruchdehnung

Kategorische Eigenschaften, Z.B. Farbe, Tierart, Schadensklasse, Entscheidungen

Häufig sind die rohen sensorischen Daten(variablen) zu hochdimensional und noch abhängig voneinander (schwache Korrelation mit y)

Reduktion auf wesentliche Merkmale kann ML Qualität deutlich verbessern!

Häufig besitzen einzelne Sensorvariablen keine oder nur geringe Aussagekraft (geringe Entscheidbarkeitsqualität) → geringe bis keine Korrelation mit y oder sogar Antikorrelation (Störung)

Datenverarbeitung

Die Daten die als Grundlage für die Induktion (Lernen) und die Deduktion (Applikation/Inferenz der Zielvariablen) müssen i.A. vorverarbeitet werden → Merkmalsselektion

Abbildung 1-8. Maschinelles Lernen ist ein Werkzeug der Datenanalyse und des Data Minings [6]

Datenverarbeitung und Programmausführung

Abbildung 1-9. Vergleich verschiedener Ausführungs und Datenverarbeitungskonzepten

Modellbildung

Abbildung 1-10. Kausale vs. Prädiktive Modellbildung und Physikalische Modelle versa algorithmisch bestimmte Modelle (Hypothesen) [100]

Abbildung 1-11. Am Anfang stehen Messdaten aus Experimenten

Abbildung 1-12. Ableitung von Eingabemerkmalen aus den Messdaten

Abbildung 1-13. Training passt Modellparameter derart an dass *f*(*x*);*x*→*y* die Eingabemerkmale mit geringsten Fehler auf die Ausgabemerkmale anpasst

Induktion und Deduktion

Abbildung 1-14. Ablauf Überwachtes Lernen mit Trainings- (Induktion) und Applikationsphasen (Deduktion). Aber: Meistens keine Verallgemeinerung! [6]

Daten und Sensoren

Metriken von Daten

Metriken von Aussagen

Sensoren als Datenquellen

Messverfahren und Sensorsysteme

Daten

Daten sind die Grundlage für die Modellbildung und Modelltestung

Daten können aus einer Vielzahl von Quellen stammen

Experiment

Simulation

Feldstudie

Abgeleitet aus anderen Datensätzen:
MapAndReduce(D): D → D'

Allgemein kann man Daten und deren Werte unterteilen in:

Skalare Werte, wie Temperatur, Alter, usw.

Serien von Skalaren Werten, wie Zeitserien

Vektorielle Werte wie Bilder

Zusammengesetzte Daten, also Datenstrukturen (Records)

Daten haben daher eine Dimensionalität 𝕏N, wobei die Wertemenge 𝕏 einer Dimension aus den ganzen ℕ, reelen ℝ, der Zeit 𝕋 oder kategorischen Wertemengen 𝕊 bestehen kann (oder Untermengen davon).

Datenreduktion

Ziel der Datenanalyse ist die Reduktion von Eingabedaten bezüglich Größe und Dimensionalität:

image-placeholder
(2-1)

Materialwissenschaften und Messtechnik:

Häufig metrische Eingabevariablen

Häufig metrische oder kategorische Ausgabevariablen (inkl. Boolescher Variablen)

1: isRaining <- function (temp,sunrad,moisture) {
2:   x = TRUE
3:   x[temp < 0] = FALSE
4:   x[temp > 40] = FALSE
5:   x[(sunrad-moisture) > 30] = FALSE
6:   x
7: }

Beispiel 2-1. Beispiel aus der Messtechnik mit einer Datenreduktionsfunktion ℝ^3^ → 𝔹

Datenklassen

Numerische und Metrische Werte

Das sind Werte die abzählbar sind und wo man Relationen (wie kleiner oder größer) sinnvoll definieren kann, also alle reellen und ganzen Zahlen.

Beispiele: Temperatur, Länge, Dichte, Porengröße, Dehnung, Kraft, Ort, Zeit

Kategorische Werte

Das sind symbolische Werte für die entweder keine (sinnvolle) Ordnungsrelation existiert oder wo sich wenigstens keine Differenzen bilden lassen.

Beispiele: Schadenstyp, charakteristisches Merkmal (Anomalie?)

Datenklassen in R

1: Boolean:      TRUE FALSE
2: Numerisch:    0 1 1.23 1.2e-3 -5 1L
3: Kategorisch:  "A" "klein" "gross"
4: Klassen:      colors <- list("red"=1,"green"=2,"blue"=3)

/webwork

size

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

Datenklassen in R

Abbildung 2-1. Kerndatentypen in R [https://www.javatpoint.com/r-data-types]

Skalierung der numerischen Werte

Intervallskaliert

Für diese Art von Attributen sind nur Unterschiede (Addition oder Subtraktion) sinnvoll. Beispielsweise wird die in °C oder °F gemessene Temperatur intervallskaliert. Wenn es 20 °C an einem Tag und 10 °C am folgenden Tag ist, ist es sinnvoll, über einen Temperaturabfall von 10 °C zu sprechen, aber es ist nicht sinnvoll zu sagen, dass es doppelt so kalt ist wie am Vortag.

Verhältnisskaliert

Hier kann man sowohl Differenzen als auch Verhältnisse zwischen Werten berechnen. Zum Beispiel kann man für das Alter sagen, dass jemand, der 20 Jahre alt ist, doppelt so alt ist wie jemand, der 10 Jahre alt ist.

Ordnungsrelationen

Nominal

Die Attributwerte in der Domäne sind ungeordnet und somit nur Gleichheitsvergleiche sinnvoll. Das heißt, wir können nur überprüfen, ob der Wert des Attributs für zwei bestimmte Instanzen gleich ist oder nicht. Zum Beispiel ist Geschlecht ein nominales Attribut.

Ordinal

Die Attributwerte sind geordnet und somit Gleichheitsvergleiche (ist ein Wert gleich einem anderen?) und relationale Vergleiche (ist ein Wert kleiner oder größer als ein anderer?) sind erlaubt, obwohl es möglicherweise nicht möglich ist, die Differenz zwischen den Werten zu quantifizieren!

Datenklassen (longitudinal)

Sensor- und Messdatenvariablen (sowohl kategorisch wie auch metrisch) können weiter unterschieden werden in:

Statisch

Die Variable s ist zeitlich nicht veränderlich bzw. ist in einem wesentlichen Zeitintervall t ∈ [t₀, t₁] als stationär (unveränderlich) anzusehen.

Dynamisch

Zeitlich veränderliche Variable s(t) ist zeitabhängig und bildet eine Datenserie (oder Zeitvektor) s(t)={s₀,s₁,..st} bei disketer Erfassung, d.h., wir sprechen von longitudinalen Daten.

Ein Sensorsignal ist zeitlich immer diskret, aber die physikalische Variable die der Sensor misst ist zeitlich kontinuierlich (Sampingtheorem beachten)

Strukturierte Daten

Abbildung 2-2. Strukturierung von Daten in Vektoren, Listen, Matrizen und Arrays (Tensoren) [http://venus.ifca.unican.es/Rintro/dataStruct.html]

Vektoren: eindimensionale Arrays, die zum Speichern von Sammlungsdaten desselben Modus verwendet werden

Numerische Vektoren (Modus: numerisch)

Komplexe Vektoren (Modus: komplex)

Logische Vektoren (Modell: logisch)

Zeichenvektor oder Textzeichenfolgen (Modus: Zeichen)

Matrizen: zweidimensionale Arrays zum Speichern von Datensammlungen desselben Modus. Auf sie wird über zwei ganzzahlige Indizes zugegriffen.

Arrays: ähnlich wie Matrizen, aber sie können mehrdimensional sein (mehr als zwei Dimensionen)

Faktoren: Vektoren kategorialer Variablen, die die Komponenten eines anderen Vektors gleicher Größe gruppieren sollen

Listen: geordnete Sammlung von Objekten, wobei die Elemente unterschiedlichen Typs sein können

Datenrahmen: Verallgemeinerung von Matrizen, in denen verschiedene Spalten unterschiedliche Modusdaten speichern können.

Funktionen: Objekte, die vom Benutzer erstellt und für Berechnungen wiederverwendet werden.

Datensätze als Matrizen

Ein Menge von Daten kann in Matrizenform als Matrix D dargestellt werden (Analogie zur Tabellenform) [1]:

Der Vektor X ist die Menge aller Variablen (Sensoren) und die Spalten der Matrix D:

image-placeholder
(2-2)

Jede Zeile xj ist ein Rekord der Variablenmenge {Xi|i=1,d} mit konkreten Werten und geben als d-stelliges Tupel je nach Anwendung und Zielsetzung einzelne Beispiele, Instanzen, Experimente, Entitäten, Objekte, und Eigenschaftsvektoren wieder:

image-placeholder
(2-3)

1: D <- matrix(0,nrow=10,ncol=3)
2: colnames(D) <- c("x1","x2","y")

/webwork

size

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

Datentabellen

emp.data <- data.frame(
  emp_id = c (1:5),
  emp_name = c("Rick","Dan","Michelle",
               "Ryan","Gary"),
  salary = c(623.3,515.2,611.0,729.0,843.25),
  start_date = as.Date(c("2012-01-01", "2013-09-23",
                         "2014-11-15", "2014-05-11",
                         "2015-03-27")),
  stringsAsFactors = FALSE
)

print(emp.data)
 emp_id    emp_name     salary     start_date
1     1     Rick        623.30     2012-01-01
2     2     Dan         515.20     2013-09-23
3     3     Michelle    611.00     2014-11-15
4     4     Ryan        729.00     2014-05-11
5     5     Gary        843.25     2015-03-27

Eingabe- und Ausgabevariablen

Die Variablenmenge setzt sich aus Ein- und Ausgabevariablen zusammen

Sensoren sind typischerweise Eingabevariablen x

Aussagen sind Ausgabevariablen y, also Ergebnisse die sich aus den Eingangsvariablen ableiten lassen können (durch eine Funktion F):

image-placeholder
(2-4)

mit u+v=d.

Merkmale und Eigenschaften (Features)

Wir unterscheiden zwei Arten von Merkmalen:

Eingabemerkmale Fti

Das sind Merkmale der Eingabedaten x. Das können z.B. statistische Eigenschaften wie der Mittelwert oder Frequenzen eines Zeitsignals sein. Die Merkmale sollen möglichst die Zielmerkmale verstärken, also eine signfikante (wenn auch noch nicht bekannte) Abhängigkeit Fto(Fti) besitzen

Ziel- und Ausgabemerkamel Fto

Das sind die Ergebnisse der Datenanalyse, z.B. die Antwort auf die Frage Schaden Ja/Nein?, oder eine Schadensposition, eine Überlebenswahrscheinlichkeit. Die Eingabemerkmale sind die starken Variablen für die Modellfunktion M, die wir suchen.

Die Merkmalsselektion ist also die Vorstufe und Datenvorverarbeitung, selten werd mit Rohdaten direkt gearbeitet

Es muss eine Merkmalsselektionsfunktion MF geben, die automatisch die Merkmale aus den den Daten ableitet:

image-placeholder
(2-5)

Beispiel einer Datenmatrix

Botanischer Datensatz mit geometrischen (numerischen) Eigenschaften einer Pflanze und kategorischer Klassifikation:

[M\. J. Zaki and W. Meira, Data Mining and Machine Learning - Fundamental Concepts and Algorithms,2020]

Messdatensatz

Berechnetes Dehnungs-Spannungsdiagramm

[www.precifast.de/elastizitaetsmodul-e-modul]

Messdaten aus Dehnversuch

Dehnung [mm] | Kraft [kN]
0 | 0
0.1 | 0.2
0.2 | 0.7
0.3 | 1.5
0.4 | 1.7
0.5 | 1.9
0.6 | 2.0
0.7 | 0.2
0.8 | -0.5

Prüftechnik und Messung

Abbildung 2-3. Dehnungsversuch mit Dehnungs-Kraft Diagramm [Quality Magazin, 2017]

Attribute

Die gemessenen Variablen X₁ bis X₄ sind metrische Datenvariablen, die Variable X₅=y ist eine kategorische Variable!

Die gemessenen Variablen X₁ bis X₄ (also Sensoren) nennt man Attribute, da sie Eigenschaften und beschreibende Variablen der Zielvariablen y sind

Sensoren

Welche Sensoren und Messdaten kennt ihr:

Messtechnik

Physikalische Größen wie Temperatur, Dehnung, Spannung, Zeit

Fusionierte Umfragevariablen (z.B. Ensemblemittelwerte)

Bei der Messung mit Sensoren unterscheidet man:

Einmalige bzw. einzelne Messungen (single shot)

Wiederholte Messungen der gleichen physikalischen Größe (Mittelwertbildung..)

Serien von Messwerten, vor allem zeitaufgelöste Datenserien:
D = {d₁,d₂,..,dn}, wobei i.A. Δt(di,di+1)=constant

Soziotechnische Systeme, Umfragen

Umfragevariablen (Antworten auf Fragen) sind Sensoren von einzelnen Menschen

Fusionierte Umfragevariablen (z.B. Ensemblemittelwerte) sind Sensoren von Menschengruppen

Allgemein verfügbare Daten

Soziale Netzwerke und soziale Medien

Datenbanken von Behörden usw.

Zeitserien

Abbildung 2-4. Zeitaufgelöste Ultraschallsignale (geführte Wellen) in der Schadensdiagnostik [R\. Jha and S. V. Barai,Neural Networks and Genetic Algorithms in Struc-tural Health Monitoring, 2016]

Sensormodell

Ein Sensor ist ein Messwandler, auch in der Soziologie (Indikator für eine Eigenschaft die nicht direkt messbar ist)

Ein Sensor bildet daher eine i.A. physikalische Größe x auf eine andere Größe y ab:

image-placeholder
(2-6)

Es gibt i.A. eine Kalibrierungsfunktion K(f,x,y)

Beispiele:

Druck → Spannung, Strahlung → Strom, usw.

Soziale Vernetzung → Numerischer Radiuswert, Wählerstimmen → Politik, d.h., Zuordnung von Zahlen zu Objekten oder Ereignissen nach festgelegten Regeln

Sensordaten

Sensoren S sind Datenquellen d von physikalischen, soziologischen oder sonstigen natürlichen nicht direkt erfassbaren Größen x

Die Datenwerte (numerisch) werden in einem definierbaren Intervall liegen

Die Kenntnis des Werteintervalls ist wichtig für spätere Datenverarbeitung, Analyse, und Maschinelles Lernen!

Kategorische Werte werden ebenfalls durch eine Menge definiert

image-placeholder
(2-7)

Mess- und Sensorische Systeme

Der Ursprung der Daten für Analyse und Maschinelles Lernen!

Ein Sensor kommt selten allein.

Messverfahren

Man unterscheidet zwei verschiedene Messverfahren:

Passives Messverfahren

Die sensorischen Werte sind Ergebnis einer intrinsischen Eigenschaft (Dichte) oder bereits existierender externer Größen (Temperatur). Der Stimulus der Messung ist das Bauteil, der Mensch, die Umwelt.

Aktive Messverfahren

Es gibt einen aktiven Stimulus dessen Antwortsignal durch den Sensor erfasst wird. Beispiel ist das Ultraschallmessverfahren mit geführten Wellen. Das Sensorsignal ist immer abhängig vom Stimulus. In der Soziologie ist der Stimulus z.B. ein Fragenkatalog in einer Umfrage, die Antworten sind die Sensorvariablen.

Sensoraggregation

Sensorklassen

Physische Sensoren

Physische Sensoren messen direkt eine Größe mit einem Messinstrument (kann auch die Auswertung einer Frage in einem Fragebogen sein), Smartphone

Virtuelle Sensoren

Verwenden Daten (von physischen und anderen virtuellen Sensoren) um neue sensorische Werte zu berechnen (kein Messinstrument) → Aggregatoren!!

Schichtenmodell von Sensorischen Systemen

In sensorischen Systemen werden Sensordaten in verschiedenen Ebenen verarbeitet:

Vertikale Ebenen repräsentieren die sensorischen Domainen und die Sensorklassen;

Horizontale Ebenen repräsentieren die Datenverarbeitung.

Vertikale Ebenen

Perzeption

Hier findet die Akquisition der rohen Sensordaten statt. Die Sensoren sind räumlich verteilt und werden lokal vorverarbeitet.

Aggregation

Einzelne Sensordaten werden zeitlich und räumlich zusammengeführt und gesammelt (Sensorfusion)

Applikation

Die gesammelten Daten werden nutzbar gemacht: Weitere Datenverarbeitung, Aufbereitung, Eigenschaftsselektion, Informationsgewinnung, Visualisierung

Horizontale Ebenen

Die horizontalen Ebenen durchziehen alle vertikalen Ebenen:

Sicherheit

Datenverarbeitung

Kommunikation

Datenspeicherung

Nachrichtenvermittlung

Management

Abbildung 3-1. Grundlegender Zusammenhang der horizontalen und vertikalen Ebenen in Sensorischen Systemen

Abbildung 3-2. Räumliche Abbildung der vertikalen Ebenen auf Cloud Computing

Sensoren in den Ebenen

Erfassung

Vorwiegend physische Sensoren

Aggregation

Virtuelle Sensoren, Datenreduktion (Größe und Dimensionalität)

Applikation

Datenanalyse und Modellbildung, Inferenz von Information, Maschinelles Lernen

Messfehler und Vertrauen

Die Messgrößen können statisch (zeitlich konstant) oder dynamisch (zeitlich veränderlich) sein. Die Wandlung dieser Messgrößen ergeben dann entsprechend Gleich- und Wechselsignale.

Auch eine prinzipiell zeitlich unveränderliche Messgröße (bezogen auf die Messung in einem vorgegeben Zeitinterval τ) erzeugt kein konstantes Signal. Ursache: Rauschen

Wiederholt man daher eine Messung N-mal unter gleichen Bedingungen, so wird man eine Reihe von verschiedenen Messwerten {s₁,s₂,...,sn} erhalten.

Es gibt systematische und zufällige Fehler bei der Messung, die sich überlagern.

Systematische Abweichung (systematischer Fehler)

Abweichung wird durch den Sensor verursacht

z\.B.: falsche Eichung, dauernd vorhandene Störungen wie Reibung

lässt sich nur durch sorgfältiges Untersuchen der Fehlerquelle beseitigen

Zufällige Abweichung (zufälliger oder statistischer Fehler)

Abweichung wird durch unvermeidbare, regellose Störungen verursacht

bei wiederholter Messung weichen Einzelergebnisse voneinander ab

Einzelergebnisse schwanken um einen Mittelwert

Abbildung 3-3. Offset und Präzision bei der Messung einer Variable *X* [J\. G. Webster, Measurement, Instrumentation and Sensors Handbook, 1999]

Systematische Fehler

Eine Messgröße X ist meistens durch störende Messgrößen Y,Z,... usw. überlagert:

image-placeholder
(3-1)

So kann z.B. bei einer Messung einer Kraft oder einer Dehnung die umgebende Temperatur T oder Strukturschwingungen Einfluss auf den Sensor und dessen Übertragungsfunktion und somit auf das Messsignal S haben.

So kann z.B. bei einer Messung von sozialpsychologischen Parametern der Wohnort und die Lebensumgebung Einfluss auf den Sensor und dessen "Übertragungsfunktion" und somit auf das "Messsignal" S haben.

[J\. G. Webster, Measurement, Instrumentation and Sensors Handbook, 1999]

Systematische Fehler verfälschen die Kalibrierungsfunktion (z. B. bei Geraden den Offset und Steigung). Sind sie bekannt, können sie kompensiert (rausgerechnet) werden.

Systematische Fehler können aber auch während der Signalverarbeitung entstehen, so z.B.

Offsetspannungen und zeitlicher Drift von Parametern (Verstärkungsfaktor); durch

Rundungsfehler oder Verwendung von Funktionsmodellen außerhalb ihres Spezifikationsbereiches.

Zufällige Fehler - Streuung

Zufällige Fehler beeinflussen die Genauigkeit einer Messung (Rauschen).

Rauschen beeinflußt die Berechung von Eingabedaten- und Zieleigenschaften (ML Ausgabe)!

Wiederholt man eine Messung einer Größe X die durch reine zufälligen Fehler verfälscht wird, so ist die Häufigkeitsverteilung der Messwerte S={s₁,s₂,...,sn} um einen Mittelwert image-placeholder durch eine Gaussverteilung gegeben (dabei muss die Anzahl der Messungen N groß sein).

Abbildung 3-4. Häufigkeitsverteilung nach Gauss von Messwerten um einen Mittelwert [J\. G. Webster, Measurement, Instrumentation and Sensors Handbook, 1999]

Der Mittelwert S repräsentiert die Abschätzung des wahren/wirklichen Wertes Σ der Messgröße X (oder S):

image-placeholder
(3-3)

Die Standardabweichung ist ein Maß für die Zuverlässigkeit (Präzision) der einzelnen Messwerte einer Messreihe {s₁,s₂,...,sn}:

image-placeholder
(3-4)

Eine Vergrößerung der Anzahl N der Messungen (unter gleichen Bedingungen!) führt zu einer Verbesserung des Mittelwertes image-placeholder (Grenzfall N → ∞), nicht aber zu einer wesentlichen Verkleinerung der Standardabweichung σ, da die Genauigkeit nicht steigt!

Der wirkliche Mittelwert Σ ist nicht bekannt (nur im Grenzfall N → ∞ ist image-placeholder=Σ) - Es gibt aber ein Vertrauensintervall mit einer Wahrscheinlichkeit P dass dieser darin enthalten ist:

Σ ∈ [image-placeholder-σ,image-placeholder+σ] mit 68.3%

Σ ∈ [image-placeholder-2σ,image-placeholder+2σ] mit 95.4%

Σ ∈ [image-placeholder-3σ,image-placeholder+3σ] mit 99.73%

Auch in der Soziologie!

Abbildung 3-5. Rauschquellen bei einer Messung

Beispiele: Statistische Analyse

/webwork

size

Plot

Plot(Array.random(200),{width:'70%',size:20})

Analysis

Math.statistics.analysis(Array.random(200))

Zusammenfassung

Daten können klassifiziert werden in:

Kategorische Variablen und Werte

Metrische Variablen und Werte

Zeitlich statische Variablen

Zeitl dynamische Variablen (Zeitserien)

Alle Sensorvariablen unterliegen Messfehlern:

Rauschen

Verzerrung

Verschiebung (Bias)

Problem der Reproduzierbarkeit und systematische Fehler (Umgebung!)

Eine (statistische) Datenanalyse ist häufig erster Schritt im ML Workflow

Datenanalyse und Eigenschaftsselektion

Häufig sind die rohen sensorischen Daten(variablen) zu hochdimensional und abhängig voneinander

Reduktion auf wesentliche Merkmale kann ML Qualität deutlich verbessern

Häufig besitzen einzelne Sensorvariablen keine oder nur geringe Aussagekraft (geringe Entscheidbarkeitsqualität)

Datenqualität

Die Daten D werden durch fünf wesentliche Eigenschaften beschrieben, die auch mit statistischer Analyse quantifiziert werden können:

Rauschen. Rauschen ist die Verzerrung der Daten. Diese Verzerrung muss entfernt oder Ihre nachteiligen Auswirkungen vermindert werden, bevor ML Algorithmen ausgeführt werden, da die Leistung und Qualität der Algorithmen beeinträchtigen werden kann.

Es gibt eine Vielzahl von Filteralgorithmen um den Einfluss von Rauschen auf das eigentliche Sensorsignal zu vermindern. Aber Rauschminderung erhöht nicht den Informationsgehalt eines Signals und basiert auf einem statistischen Modell (muss bekannt sein).

Ausreißer. Ausreißer sind Instanzen, die sich erheblich von anderen Instanzen im Datensatz unterscheiden.

Beispiel: Zugversuch.

Bei einem Zugversuch treten hohe Kräfte auf. Wenn die Einspannung des Werkstücks unzureichend ist könnte sich kurz vor dem bruch das Werkstück etwas lösen und die Dehnungskurve wird verzerrt hin zu größeren Dehnungen. Nicht einfach zu erkennen!

Aber: Ausreißer können in besonderen Fällen nützliche Muster darstellen und die Entscheidung, sie zu entfernen, hängt vom Kontext und der Fragestellung ab. Zum Beispiel vereinzeltes vorzeitiges Versagen von Werkstücken durch innere Materialdefekte, die dann zu einer gezielten Untersuchung führen (aber schwierig da selten).

Bias. Systematische Verschiebung von Messdaten (Offset).

Beispiel: Externe Umwelteinflüsse können die Empfindlichkeit eines Sensors verändern.

Beispiel: Elektrische Potentialverschiebung verschiebt den Nullpunkt eines Ultraschallsensors

Aber auch Veränderung des Testobjekts (Lastsituation, Alterung, Materialveränderung)

Systematische Verschiebung kann nur durch zusätzliche Modellfunktionen oder Sensorfusion kompensiert werden!

Fehlende Werte. Fehlende Werte sind Funktionswerte, die in Instanzen fehlen.

Im Ingenieursbereich sind fehlende Werte der Standardfall. Der Versuchsplan wird immer Lücken aufweisen. Entweder wall nicht alle Parameter der Versuche lückenlos eingestellt werden können, die Anzahl der Parametervariationen nur eine Auswahl darstellt, oder Versuche fehlschlagen.

Bei der Untersuchung von Schäden kann häufig nur ein Schaden pro Probe erzeugt werden (Einschlagschaden), oder diese sind ungleichmäßig verteilt (Risse).

Um dieses Problem zu lösen, können wir

Instanzen mit fehlenden Werten entfernen;

Fehlende Werte schätzen (Z. B. durch den gängigsten Wert ersetzen); oder

Fehlende Werte ignorieren, wenn Data Mining Algorithmen ausgeführt werden.

Duplikate. Doppelte Daten treten auf, wenn mehrere Instanzen mit genau denselben Funktionswerten vorhanden sind.

Duplikate treten im geplanten Versuchsumfeld eher selten auf. Und Duplikat heißt nicht notwendigerweise identisch.

Je nach Kontext können diese Instanzen entweder entfernt oder beibehalten werden. Wenn Instanzen beispielsweise eindeutig sein müssen, sollten doppelte Instanzen entfernt werden.

Statistische Analyse

Statistische Analysen von Mess- und Sensordaten können neue Datenvariablen erzeugen und Informationen über die Daten liefern:

Eigenschaftsselektion (Feature Selection) für ML und Informationsgewinnung

Variablentransformation mit Datenreduktion

Statistische Analyse liefert eine Reihe von Kennzahlen über Datenvariablen, das können Eigenschaften für die Weiterverarbeitung sein:

image-placeholder
(4-1)

Welche statistische Größen gibt es? Was können statistische Größen über Daten aussagen?

Statistische Funktionen

[2:173]

[2:173]

/webwork

title

size

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

dataan1

library("math")
library("plot")
data <- sample(100,20)
plot(data)
print(statistics.analysis(data))

dataan2

data <- sapply(1:50,"function (x) { return Math.sin(x/5) }")
plot(data)
print(statistics.analysis(data))

dataan3

data <- sapply(1:50,"function (x) { return Math.random.select(['A','B','C']) }")
print(data)
print(statistics.analysis(data))

Statistische Funktionen in R

Anwendung i.A. auf Vektoren, Matrizen, oder Arrays.

R | Beschreibung
fivenum(x) | Liefert min, q1, median, mean, q3, max
mean(x) | Arithmetischer Mittelwert
min(x), max(x) | Extremwerte
moment(x,order) | Statistisches Moment einer Datenserie
rnorm(n,a,b) | Normalverteilte Zufallszahlen [a,b]
runif(n,a,b) | Uniform verteilte Zufallszahlen [a,b]
sd(x) | Standardabweichung
sum(x) | Arithmetische Summation
var(x) | Varianz (Achtung hier: sd²)

Korrelation von Datenvariablen

Variablen X sollten möglichst (linear) unabhängig sein,

Um eine geeignete, robuste und genaue Modellsynthese (also ML) zu ermöglichen, d.h.

Es sollte möglichst keine Zusammenhänge der Form ∃correlation(Xi,Xj) geben!

Um den Modellsyntheseprozess zu beschleunigen (also das Training); Rechenzeit reduzieren

Um Modelle klein und kompakt zu halten

Um Modellspezialisierung zu vermeiden und Varianz zu erhöhen

Abhängige Variablen sollten identifiziert und in unabhängige "transformiert" werden!

Beispiel Prozessanalyse

Eine Datentabelle D mit experimentellen Messgrößen und Fertigungsparametern (Prozessparameter) von additiv gefertigten Bauteilen hatte zunächst 7 Variablen (numerisch):

X₁: Hatchabstand [mm]

X₂: Scangeschwindigkeit [mm/s]

X₃: Laserleistung [W]

X₄: Schichtstärke [mm]

X₅: Volumenenergiedichte [J/mm³]

X₆: Bauplatten Position x

X₇: Bauplatten Position y

Y₁: Dichte (%)

D bestand aus 61 Experimenten mit unterschiedlichen Fertigungsserien

Mit einer Principle Component Analysis (PCA) konnte die ganze Tabelle auf die Variablen PC₁ und Y₁reduziert werden!

Die Genauigkeit der mit ML synthetisierten Funktion M(X): X → Dichte konnte ohne signifikanten Genauigkeitsverlust nur aus PC₁ abgeleitet werden, d.h. M(PC₁): PC₁ → Dichte

Aber: Für die Inferenz (Applikation) von M muss die PCA für die Eingabedaten X wiederholt werden bzw. die Datentransformation durchgeführt werden!

Analyse Kategorischer Variablen

Die Analyse von kategorischen Variablen vereint die Konzepte:

Mengenlehre

Kodierung/Dekodierung

Verteilung (Wahrscheinlichkeit des Auftretens)

Abbildung 4-1. Beispiel von rein kategorischen Attributen einer Datentabelle ***D*** [5]

Messdaten

Abbildung 4-2. Beispiel einer rein kategorischen Datentabelle ***D***. Die Zielvariable *Klasse* mit den Werten {N,P} ist ebenfalls kategorisch, z.B. Klasse=P ⇒ Sportliche Aktivität [5:53]

Gemischte Variablenklassen

Abbildung 4-3. Einige Datenvariablen wurden mit numerischen/metrischen Werten ersetzt (Klasse → Play-time) [7:47]

Kann aus der vorherigen Datentabelle mit numerischen Variablen noch ein Zusammenhang aus X zu Y hergestellt werden?

Reicht die Anzahl der Experimente im Vergleich zu der rein kategorischen Datentabelle?

Wo liegen die Probleme?

Weiteres Beispiel

[7:7]

Kodierung

Kategorische Variablen (sowohl Attribute als auch Zielvariablen) können von einer Vielzahl von numerisch basierten ML Verfahren nicht verarbeitet werden (wie neuronale Netze)

Eine Lösung ist die Abbildung von kategorischen Werten (also Mengen von Symbolen) auf numerische Werte → Kodierung

Kodierte Werte sind aber i.A. weder intervall- noch verhältnisskalierbar!

Kodierungsformate

Linear und nicht akkummulativ (skalar), d.h.
{α,β,γ,..} → {δ,2δ,3δ,..}

Exponentiell (z.B. zur Basis B=2) und akkummulativ (skalar), d.h.
{α,β,γ,..} → {2⁰,2¹,2²,..}

One-hot und evtl. akkummulativ (vektoriell), d.h.
{α,β,γ,..} → {[1,0,0,...],[0,1,0,..],[0,0,1,..],..}

Expontentielle Kodierungen können multiple verschiedene kategorische Werte in einem numerischen Wert darstellen! Z.B. mehrfache kategorische Antworten bei einer Frage einer Umfrage.

Beispiele

1: {sonnig,bewölkt,regnerisch} → {3,2,1}
2: {ja,nein} → {1,0}
3: {Schaden A, Schaden B, Schaden C} → { 1,2,3 }
4: {rot,grün,blau,braun,weiß} → {1,2,4,8,16}
5: {Sport, Kino, Theater, Musik} → {1,2,4,8}
6: {heiß,kalt} → {[1,0],[0,1]}

Numerische/metrische Werte können auf kategorische durch Intervallkodierung reduziert werden:

image-placeholder
(4-2)

Z\.B. die Kategorisierung von Schadenspositionen in einer mechanischen Struktur durch räumliche Bereiche (Segmente) {S1,S2,S3,..,S9}

Z\.B. Temperaturen durch "gefühlte" Attribute {heiß, warm, moderat, kalt, eiskalt}

Z\.B. Zeitangaben durch Epochen {Steinzeit, Bronzezeit, Kohlezeit, .. }

Dekodierung

Die Kodierung ist umkehrbar mit einer Dekodierungsfunktion (unter Kenntnis der Kodierungsvorschrift)

Verwendung der switch und factor Funktionen

/webwork

title

size

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

codes1

use math
c1 = switch('A',A=1,B=2,C=3)
c2 = factor(['A','B'],['A','B','C'],[1,2,4])
c3 = switch('heute',heute=0,gestern=-1,morgen=1)
logg(c1,c2,c3)
logg(sum(c2))

codes2

c2 = factor(['A','B'],['A','B','C'],[1,2,4])
d2 = factor([c2],[1,2,3],['A','B','C'])
logg(c2,d2)

Beispiele in R(+)

use math
# Kodierung
c1  = switch('A',A=1,B=2,C=3)
c12 = switch(['A','N'],A=1,B=2,C=3)
c2  = factor(['A','B'],['A','B','C'],[1,2,4])
c3  = switch('heute',heute=0,gestern=-1,morgen=1)
logg(c1,sum(c12),c2,sum(c2))
# Dekodierung
d2 = factor(c2,[1,2,3],['A','B','C'])
logg(d2)

Entropie und Informationsgehalt

Sensorvariablen können unterschiedlichen Informationsgehalt besitzen

Nur auf den Dateninhalt (Werte) der Variable Xi bezogen (inherenter Informationsgehalt)

Oder zusätzlich bezogen auf die Zielvariable Y (abhängiger Informationsgehalt)

Der Informationsgehalt einer Menge X aus Elementen der Menge C wird durch die Entropie E(X) gegeben:

image-placeholder
(4-3)

Dabei ist k die Anzahl der unterscheidbaren Elemente/Klassen Val(X) ⊆ C in der Datenmenge X (z.B. die Spalte einer Tabelle) und pi die Häufigkeit des Auftretens eines Elements ci ∈ C in X.

Beispiele:

1: X₁={A, C, B, C, B, C} → Val(X₁)=C={A, B, C},N=6
2: E(X₁)=-(1/6)log(1/6)-(2/6)log(2/6)-(3/6)log(3/6)=1.46
3: X₂={A, B, C} → Val(X₂)=C={A, B, C},N=3
4: E(X₂)=-(1/3)log(1/3)-(1/3)log(1/3)-(1/3)log(1/3)=1.58
5: X₃={A, A, A, A, B, B} → Val(X₃)={A,B} ⊂ C={A, B, C},N=6
6: E(X₃)=-(4/6)log(4/6)-(2/6)log(2/6)-(0/6)log(0/6)=0.92
7: X₄={A, A, A, A, B, B} → Val(X₄)=C={A, B},N=6
8: E(X₄)=-(4/6)log(4/6)-(2/6)log(2/6)=0.92

Die Entropie ist Null wenn die Datenmenge X "rein" ist, d.h., nur Elemente einer einzigen Attributklasse c₁ ∈ C enthält, z.B. X={A,A,A}.

Die Entropie ist log₂(|C|) wenn alle Werte gleichverteilt vorkommen, wenn nicht dann kleiner (nicht gleichverteilt).

Die Entropie reicht allein zur Bewertung des Informationsgehaltes nicht aus:

X1 | X2 | Y
A | C | P
B | C | P
A | D | N
B | D | N

E(X1)=1, E(X2)=1 !! Welche Variable X ist für die Entscheidung der Zielvariable Y geeignet?

/webwork

title

size

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

DataSports

data = as.data.frame({ { Beispiel = 1,
    Aussicht = 'sonnig',
    Temperatur = 'hei�',
    'Luftfeuchtigk.'= 'hoch',
    'Windig?'= 'nein',
    Klasse= 'N' },
  { Beispiel= 2,
    Aussicht= 'sonnig',
    Temperatur= 'hei�',
    'Luftfeuchtigk.'= 'hoch',
    'Windig?'= 'ja',
    Klasse= 'N' },
  { Beispiel= 3,
    Aussicht= 'bew�lkt',
    Temperatur= 'hei�',
    'Luftfeuchtigk.'= 'hoch',
    'Windig?'= 'nein',
    Klasse= 'P' },
  { Beispiel= 4,
    Aussicht= 'regnerisch',
    Temperatur= 'mild',
    'Luftfeuchtigk.'= 'hoch',
    'Windig?'= 'nein',
    Klasse= 'P' },
  { Beispiel= 5,
    Aussicht= 'regnerisch',
    Temperatur= 'kalt',
    'Luftfeuchtigk.'= 'normal',
    'Windig?'= 'nein',
    Klasse= 'P' },
...

AnalysisSports

logg(statistics.analysis(data[,'Aussicht']))
logg(statistics.analysis(data[,'Temperatur']))
logg(statistics.analysis(data[,'Luftfeuchtigk.']))
logg(statistics.analysis(data[,'Windig?']))
logg(statistics.analysis(data[,'Klasse']))

DataLenses

data=as.data.frame({ { Age= 'Young',
    'Spectacle Prescription'= 'Myope',
    Astigmatism= 'No',
    'Tear Production Rate'= 'Reduced',
    'Recommended Lenses'= 'None' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Myope',
    Astigmatism= 'No',
    'Tear Production Rate'= 'Normal',
    'Recommended Lenses'= 'Soft' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Myope',
    Astigmatism= 'Yes',
    'Tear Production Rate'= 'Reduced',
    'Recommended Lenses'= 'None' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Myope',
    Astigmatism= 'Yes',
    'Tear Production Rate'= 'Normal',
    'Recommended Lenses'= 'Hard' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Hypermetrope',
    Astigmatism= 'No',
    'Tear Production Rate'= 'Reduced',
    'Recommended Lenses'= 'None' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Hypermetrope',
    Astigmatism= 'No',
    'Tear Production Rate'= 'Normal',
    'Recommended Lenses'= 'Soft' },
...

AnalysisLenses

logg(statistics.analysis(data[,'Age']))
logg(statistics.analysis(data[,'Spectacle Prescription']))
logg(statistics.analysis(data[,'Astigmatism']))
logg(statistics.analysis(data[,'Tear Production Rate']))
logg(statistics.analysis(data[,'Recommended Lenses']))

Entropie von numerischen Werten

Die Entropie ist primär bei kategorischen Variablen zu verwenden

Bei numerischen und vor allem kontinuierlich verteilten Variablen ist eine Intervalldiskretisierung vorzunehmen:

# sample from continuous uniform distribution
x1 = runif(10000)
# discretize into 10 categories
y1 = discretize(x1, numBins=10, r=c(0,1))
# compute entropy from counts
entropy(y1) # empirical estimate near theoretical maximum
log(10) # theoretical value for discrete uniform distribution with 10 bins

Informationsgewinn (Gain)

Ansatz: Die Datenmenge Y wird nach den möglichen Werten von X partitioniert, also je eine Partition pro ci ∈ Val(X).

image-placeholder
(4-4)

Die Menge Yv enthält nur Werte für die X=v ist!

Ein Verteilungsvektor ist dann Dist(X)=[|v₁|,|v₂|,..] und bedeutet wie häufig der bestimmte Wert vi ∈ Val(X) in X auftaucht!

Ein Verteilungsvektor ist dann Dist(Yv|X)=[|u₁|,|u₂|,..] und bedeutet wie häufig der bestimmte Wert u ∈ Val(Y) in Yv auftaucht!

Beispiele

[12]

/webwork

title

size

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

DataSports

data = as.data.frame({ { Beispiel = 1,
    Aussicht = 'sonnig',
    Temperatur = 'hei�',
    'Luftfeuchtigk.'= 'hoch',
    'Windig?'= 'nein',
    Klasse= 'N' },
  { Beispiel= 2,
    Aussicht= 'sonnig',
    Temperatur= 'hei�',
    'Luftfeuchtigk.'= 'hoch',
    'Windig?'= 'ja',
    Klasse= 'N' },
  { Beispiel= 3,
    Aussicht= 'bew�lkt',
    Temperatur= 'hei�',
    'Luftfeuchtigk.'= 'hoch',
    'Windig?'= 'nein',
    Klasse= 'P' },
  { Beispiel= 4,
    Aussicht= 'regnerisch',
    Temperatur= 'mild',
    'Luftfeuchtigk.'= 'hoch',
    'Windig?'= 'nein',
    Klasse= 'P' },
  { Beispiel= 5,
    Aussicht= 'regnerisch',
    Temperatur= 'kalt',
    'Luftfeuchtigk.'= 'normal',
    'Windig?'= 'nein',
    Klasse= 'P' },
...

AnalysisSports

use stats
logg(gain(data,target="Klasse"))

DataLenses

data=as.data.frame({ { Age= 'Young',
    'Spectacle Prescription'= 'Myope',
    Astigmatism= 'No',
    'Tear Production Rate'= 'Reduced',
    'Recommended Lenses'= 'None' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Myope',
    Astigmatism= 'No',
    'Tear Production Rate'= 'Normal',
    'Recommended Lenses'= 'Soft' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Myope',
    Astigmatism= 'Yes',
    'Tear Production Rate'= 'Reduced',
    'Recommended Lenses'= 'None' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Myope',
    Astigmatism= 'Yes',
    'Tear Production Rate'= 'Normal',
    'Recommended Lenses'= 'Hard' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Hypermetrope',
    Astigmatism= 'No',
    'Tear Production Rate'= 'Reduced',
    'Recommended Lenses'= 'None' },
  { Age= 'Young',
    'Spectacle Prescription'= 'Hypermetrope',
    Astigmatism= 'No',
    'Tear Production Rate'= 'Normal',
    'Recommended Lenses'= 'Soft' },
...

AnalysisLenses

use stats
logg(gain(data,target="Recommended Lenses"))

Principle Component Analysis

PCA: Klassische Methode zur unüberwachten linearen Dimensionsreduktion → Analyse der Hauptkomponenten (Eigenwertproblem)

PCA ist noch keine Reduktionsmethode. PCA liefert bei einem n-dimensionalen Vektor X→ genau n Vektoren der Dimensionalität n!

Aber: Reduktion von Redundanz in den Attributen X ist mit diesen Hauptkomponenten möglich.

Bessere Trennung bei der Inferenz von kategorischen (und ggfs. auch numerischen) Zielvariablen

Weitere Verfahren:

Lineare Diskriminanzanalyse (LDA)

Singuläre Wertzerlegung (SVD)

Beispiel

D=[X₁,X₂,Y], mit Val(Y)={Class1,Class2}

"Rotation" des zweidimensionalen Attributraums führt zu einer reduzierten Datentabelle D'=[PC₁,Y] (PC₂ kann weg gelassen werden)

[Czarnek, RG]

Spektrale Analyse

Diskrete Fourieranalyse

(DFT) und schnelle FA (FFT) → (Frequenzspektrum)

Spektrum der DFT/FFT hat nur N/2 Punkte (Datenreduktion)

Aber Problem bei DFT ist: Wenn Anzahl Datenpunkte N klein ist gibt es schlechte Auflösung des Spektrums

Vor allem bei "kontinuierlichen" Datenströmen mit fließenden Fensterverfahren ein Problem (Fensterbreite Nwin ist klein)

Es gilt: Das aus der DFT erhaltene Frequenspektrum hat die höchste Frequenz:

image-placeholder
(4-5)

Diskrete Fouriertransformation

Eine zeitaufgelöste Variable X wird in eine frequenzaufgelöste Variable F transformiert:

image-placeholder
(4-6)

für k = 0,1,2, ... , N–1

Dabei ist X eine komplexwertige Datenserie {⟨re(xi),im(xi)⟩|i=0,1,..,N-1}, und

Das Ergebnis F ist ebenfalls eine komplexwertige Datenserie {⟨re(fi),im(fi)⟩|i=0,1,..,N-1}

Der Imaginärteil von X wird i.A. auf Null gesetzt (Sensoren sind i.A. reellwertig).

Amplitudenspektrum

image-placeholder
(4-7)

Phasenspektrum

image-placeholder
(4-8)

Leistungsspektrum

image-placeholder
(4-9)

Beispiel für Spektrale Eigenschaftsselektion

Sinus- und Kosinusschwingungen

/webwork

title

size

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

SinWaves

use plot,math
x=seq(1,128)
data1=sin(x)
data2=cos(x)
data3=sin(x/2)
plot({sin=data1,cos=data2,sinx=data3},type='l')

FFT

use fft
data1.fft = fft(data1)
data2.fft = fft(data2)
data3.fft = fft(data3)
plot({sin=spectrum(data1.fft),
      cos=spectrum(data2.fft),
      sinx=spectrum(data3.fft)},
      main="FFT()",
      type='b')

Waveletanalyse

Diskrete Wavelet Transformation (DWT)

DFT liefert nur Informationen im Frequenzraum

DWT liefert Informationen aus Zeit- und Frequenzraum

Höherer Informationsgehalt

DWT verwendet lange Zeitfenster für niedrige Frequenzen und kurze Zeitfenster für höhere Frequenzen, was zu einer guten zeitfrequenzanalyse führt.

DWT kann mit digitalen Filterkaskaden aufgebaut werden:

Jede Ebene der Filterkaskade besteht aus einem Hoch- und einem Tiefpassfilter

Der Hochpassfilter liefert die Details, der Tiefpassfilter die Approximation der DWT auf der n-ten Ebene

Die Approximation der Ebene n ist das Eingangssignal für die Ebene n+1

In jeder Ebene wird der Eingangsvektor |xi|=N auf N/2 reduziert, d.h. |xi+1|=N/2

Histogrammanalyse

Ein Histogramm gibt die (intervallbasierte) Verteilung von unterscheidbaren Elementen in einer Datenmenge X an

Beispiel sind Histogramme von Bildern die die Verteilung der Farb-/Grauwerte mit den Werten == Kanälen {0,1,..,255} wiedergeben.

[wavemetrics]

/webwork

title

size

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

Histogram

x=seq(1,1000)
data1=sin(x)
data2=runif(1000)
hist(data1,breaks=20,xlim=[0,1])
hist(data2,breaks=20,xlim=[0,1])

Analyse von Datenserien

Welcher Sensoren können bei der Bauteilprüfung und Schadensüberwachung Zeit- oder Datenserien erzeugen..

Messdaten

Abbildung 4-4. Zeitaufgelöste Sensordaten *s*(*t*) eines Beschleunigungssensors einer Maschine ohne und mit Schäden [C\. R. Farrar and K. Worden, Structural Health Monitoring: A Machine Learning Perspective. Wiley-Interscience, 2013, pp. 164]

Korrelationsanalyse

Abbildung 4-5. Autokorrlelation der zeitaufgelösten Sensordaten *s*(*t*) eines Beschleunigungssensors einer Maschine ohne und mit Schäden [C\. R. Farrar and K. Worden, Structural Health Monitoring: A Machine Learning Perspective. Wiley-Interscience, 2013, pp. 164]

Spektralanalyse

Abbildung 4-6. Spektralanalyse der zeitaufgelösten Sensordaten *s*(*t*) eines Beschleunigungssensors einer Maschine ohne und mit Schäden [C\. R. Farrar and K. Worden, Structural Health Monitoring: A Machine Learning Perspective. Wiley-Interscience, 2013, pp. 167]

Merkmalsselektion

Abbildung 4-7. Die statistische und weitere Analysen können die Eingabe für ML liefern, aber auch die Modellsynthese parametrisieren bzw. beeinflussen

Zusammenfassung

Die statistische Analyse von Datentabellen liefert wichtige Informationen über die Qualität der Daten

Die Merkmalsselektion transformiert die Rohdaten auf neue möglichst linear unabhängige Attribute

Datenreduktion → Dimensionalität

Datenreduktion → Datengröße

Datenqualitätserhöhung

Es werden Verfahren für kategorische und numerische Datenvariablen unterschieden

Taxonomie des Maschinellen Lernens

Zielvariablen: Kategorische Klassifikation, Numerische Prädiktorfunktionen, Gruppierung

Modellfunktionen: Mit welchen Daten- und Programmarchitekturen können Eingabevariablen auf Zielvariablen abgebildet werden?

Training und Algorithmen: Wie können die Modellfunktionen an das Problem angepasst werden?

Überwachtes, nicht überwachtes und Agentenlernen

Datenverarbeitung

Die Daten die als Grundlage für die Induktion (Lernen) und die Deduktion (Applikation/Inferenz der Zielvariablen) müssen i.A. vorverarbeitet werden → Merkmalsselektion

Abbildung 5-1. Maschinelles Lernen ist ein Werkzeug der Datenanalyse und des Data Minings [6]

Die Modellfunktion

Die Modellfunktion F soll möglichst genau und effizient die Eingabedaten X auf die Zielvariablen Y abbilden:

image-placeholder
(5-1)

Die Modellfunktion F approximiert eine i.A. nicht bekannte Funktion M, d.h. eine axiomatisch oder analytisch abgeleitete Modellfunktion (z.B. phys. Gesetze) → F ist Hypothese von M!

Beispiel

Abbildung 5-2. Kausale vs. Prädiktive Modellbildung und Physikalische Modelle versa algorithmisch bestimmte Modelle (Hypothesen) [100]

Lernen

Lernen bedeutet die unbekannte Modellfunktion M möglichst genau durch F aus Daten so zu approximieren dass min error(|Y₀-Y|) für alle (X,Y₀) Paare gilt (Y₀: Referenzdaten).

I\.a. ist F eine parametrisierbare Funktion f(P) oder eine parametrisierbare Datenstruktur

Der Parametersatz P={p₁,p₂,..,pi} bestimmt sowohl Funktion als auch Struktur (z.B. eines Entscheidungsbaumes)

Es gibt nicht eine Modellfunktion F, sondern eine große Menge möglicher Funktionen, genannt Hypothesen ℍ={F₁,F₂,..}.

Lernen bedeutet also die bestmögliche Anpassung der Parametersätze P um den Fehler zu minimieren und eine geeignet Hypothesenfunktion zu finden.

Man unterscheidet bekannte Referenzwerte der Zielvariablen (und Beziehung zu X) Y₀, auch Labels genannt, und prognostische Werte Y die als Ergebnis von F(X) geliefert werden (Inferenzwerte), d.h. bei der Applikation ist der wahre Wert Yt unbekannt (Schätzung von Yt)

image-placeholder
(5-2)

Beispiele

Abbildung 5-3. Verschiedene Modellfunktionen *M* die die (Trainings) Daten repräsentieren

Kreuzvalidierung

Beim Training wird ein Inferenzfehler zunächst aus Trainingsdaten bestimmt → Trugschluss!

Stattdessen müssen auch unabhängige Testdaten für eine Kreuzvalidierung herangezogen werden, und dann ...

[13]

Abbildung 5-4. Durch Kreuzvalidierung (CV) werden ungeeignete Hypothesenmodelle erkannt

Fehler (Verlust)

Jede Hypothesenfunktion F ∈ ℍ führt zu einem Informationsverlust durch Approximation der tatsächlichen und unbekannten Modellfunktion M.

Es gilt also:

image-placeholder
(5-3)

mit E als eine Fehlerfunktion (i.A. zufälliger Fehler) und image-placeholder als mittlerer Prädiktionsfehler und S als systematischer Fehler.

Die Hypothesenmenge ℍ ist also tatsächlich eine Approximation eines unbekannten "exakten" Modells (Modellfunktion) MF, die z.B. mittels physikalischer oder soziologischer Modelle ableitbar wäre.

Genauso wie eine Sensor eine physikalische Größe nur approximieren kann, der tatsächliche Wert der zu messenden Größe ist nicht bekannt

Abbildung 5-5. Training als Anpassung von Hypothesen für die Abbildungsfunktion *X* → *Y* mit Trainingsdaten [11]

Parametrisierung

Die einzelnen Parameter in dem Parametersatz P lassen sich in zwei Klassen unterteilen:

Statische Parameter Ps

Parameter die die Modellimplementierung (Funktion, Datenstruktur, usw.) festlegen und i.A. während des Trainings und der Applikation unverändert bleiben. (Ausnahme: Evolutionäre Algorithmen) → Konfiguration

Dynamische Parameter Pd

Parameter die während des Trainings verändert (angepasst) werden. Z.B. Funktionsparameter oder Kantengewichte von neuronalen Netzen → Adaption

Beispiele

Zwei mögliche Numerische Prädiktorfunktionen mit unterschiedlicher Struktur und Parametersätzen, aber gleicher Signatur(T: Temperatur, S: Satisfaction) → Regression

image-placeholder
(5-5)

Künstliches Neuronales Netzwerk

Daten

Trainingsdaten Dtrain

Datentabellen die aus Zeilen mit einer bekannten Beziehung (X,Y) bestehen und verwendet werden die Modellfunktion M durch Veränderung von P zu approximieren

Testdaten Dtest

Datentabellen die aus Zeilen mit einer bekannten Beziehung (X,Y) bestehen und verwendet werden die Modellfunktion M auf Genauigkeit und Fehler zu testen. Man spricht auch von einer Kreuzvalidierung da Dtest ∩ Dtrain = ∅ sein sollte.

Inferenzdaten Dinf

Datentabellen die nur aus Zeilen X bestehen (Y ist unbekannt)

Es gilt: Dtrain ⊆ Dall, Dtest ⊆ Dall, Dinf ⊆ Dall aber Dtrain ∩ Dtest = ∅ und Dtrain ∩ Dtest ∩ Dinf ≠ ∅ (Idealfall!)

Die großen Probleme beim Modellieren aus Daten:

Die Trainingsdaten sind nicht repräsentativ (Umfang, Varianz, Qualität)

Die Testdaten sind nicht repräsentativ (Umfang, Varianz, Qualität)

Die Trainingsdaten enthalten schwache Variablen die nicht entfernt wurden (Inkonsistenz und geringer Informationsgewinn)

Generalisierung. Das gelernte Modell F bildet alle drei Datenmengen gleichermaßen gut ab!

Ergänzung:

Bewertungsdaten

Beim Einsatz eines gelernten Modells kann eine Evaluierung bezüglich Qualität / Genauigkeit stattfinden. Diese Daten können dann ggfs. für eine Adaption des Modells und dessen Parametersatz P verwendet werden.

D.h. bei der Anwendung des Modells können somit auch neue Trainingsdaten gewonnen werden, z.B. im Rahmen eines Produktlebenszyklusmanagements!

Lernverfahren

Überwachtes Lernen

Es gibt Trainingsdaten mit bekannten Beziehungen (X,Y) die verwendet werden um die Modellfunktion mit minimalen Fehler anzupassen. Überwachung benötigt i.A. einen Experten der die Beziehungen (X,Y) erstellt und analytisch den Fehler bewertet.

Unüberwachtes Lernen

Es gibt Trainingsdaten ohne bekannte beziehung (X,Y), d.h., schon das Lernen führt zu einer automatischen Inferenz der Zielvariablen Y, die aber in diesem Fall i.A. nur durch Gruppenmengen ℚ bestehen. Eine Gruppenmenge Q={Xi} ⊆ ℚ bringt verschiedene Eingabewerte in Beziehung. D.h. Y ≡ ℚ.

Belohnungs- und Agentenlernen (Rückkopplung)

Die Abbildungsfunktion f(X): X → Y wird schrittweise durch eine Evaluierung des inferrierten Y mit einem Belohnungswert r=[0,1] gelernt. Training und Inferenz findet gleichzeitig statt.

Abbildung 5-6. Ablauf Überwachtes Lernen mit Trainings- (Induktion) und Applikationsphasen (Deduktion) [6]

Taxonomie der Verfahren

[Abdul Rahid,www.wordstream.com]

Überwachte Lernverfahren - Unterklassen

Abbildung 5-7. Zwei wichtige Unterklassen von überwachten Lernen: Regression (Numerische Zielvariablen) und Klassifikation (Kategorische Zielvariablen) [4]

Dimensionalitätsreduktion

ML kann auch für die Reduktion von Datendimensionalität eingesetzt werden (Informationen sind reduzierte Daten)

Beispiele: Principle Component Analysis, Single Value Decomposition, ..

Abbildung 5-8. Abbildung von hochdimensionale Daten *X*^n^ auf niederdimensionale *X*^m^ mit *m* < *n* [4]

Unüberwachtes Lernen - Unterklassen

Abbildung 5-9. Zwei wichtige Unterklassen von nicht überwachten Lernen: Clustering (Gruppenbildung) und Ausreißerdetektion [4]

Training

Das Training einer Modellfunktion M kann:

monolithisch (alle Dateninstanzen werden "parallel" verwendet), oder

stapelbasiert (batch, d.h. Gruppen von Instanzen werden "parallel" verarbeitet), oder

iterativ (Dateninstanzen werden "sequenziell" verwendet), und

inkrementell (iterativ mit neuen Daten).

Es gibt beim Training eine Fehlerfunktion (Cost or Loss Function). Der Fehler ergibt sich aus der Anwendung der Trainingsdaten auf das bisherigen Modell. Der Fehler dient zur Korrektur der dynamischen Parameter. Der Fehler kann dann aus einzelnen ("on-line") oder einer Gruppe ("batch") von Trainingsdaten berechnet werden.

Inkrementelle Trainings- und Anpassungsverfahren können alte Datensätze verwerfen → Stromdatenlernen!

Nicht jede Modellimplementierung ist geeignet:

Graphen (Bäume) können i.A. nur monolithisch trainiert = erzeugt werden!

Regression von math. Funktionen kann monolithisch, weniger stapelbasiert, und/oder iterativ erfolgen;

Neuronale Netze können monolithisch, stapelbasiert, iterativ, und vor allem inkrementell trainiert werden.

Fehlerfunktion

Man unterscheidet Fehlerfunktionen zur Bewertung der Qualität der Anpassung und Fehlerfunktionen für die Anpassung:

Der Fehler kann auf einen Dateninstanz oder auf alle akkumulativ bezogen sein (oder nur einen Teil / batch))

Man unterscheidet verschiedene Ordnungen der Fehlerfunktionen (y: Inferierter und berechneter Wert, y₀:Vergleichswert):

image-placeholder
(5-6)

Modellimplementierungen

Es gibt im wesentlichen vier verschiedene Architekturen die Modelle M zu implementieren:

Funktionen

Die Struktur einer mathematischen Funktion wird durch ihre Terme gebildet (Berechnungsknoten), z.B. ax+bx². Zu jedem Term gehört ein dynamischer Parameter der beim Training angepasst wird um den Fehler zu minimieren. Das Ergebnis ist die Zielvariable y.

Gerichtete Graphen

Gerichtete Graphen (oder Entscheidungsbäume) bestehen aus Knoten und Kanten. Die Knoten repräsentieren eine Eingabevariable (Attribute) x ∈ X. Die Kanten beschreiben die Entwicklung eines Graphen beginnend vom Wurzelknoten hin zu den Blättern. Die Blätter enthalten die Werte der Zielvariable(n) y. Der dynamische Parametersatz ist der Graph (dessen Struktur).

Funktionale Graphen

Hybrid aus gerichteten Graph und Funktion → Künstliche Neuronale Netze. Die Knoten repräsentieren Berechnungsfunktionen, die Kanten verbinden Ausgänge von Funktionen mit Eingängen. Es gibt Eingangsknoten die mit den Eingabevariablen X verbunden sind, und Ausgangsknoten die mit den Ausgangsvariablen Y verbunden sind.

Ungerichtete Graphen

Hier repräsentieren die Knoten Dateninstanzen X, und die Kanten verbinden die nächsten Nachbarn miteinander. Hier geht es um Gruppenbildung (k nächste Nachbarn/kNN Problem).

Abbildung 5-10. Verschiedene Modellimplementierungen

Hybride Modelle

Multiinstanz Modelle

Ensemblelernen vereint multiple Modelle (gleicher Klasse oder unterschiedlich)

image-placeholder
(5-7)

Die einzelnen Modellinstanzen arbeiten mit gleichen oder verschiedenen Dateninstanzen

Es gibt eine Split- und eine Join Schicht (Kombinierer, Modellfusion)

Abbildung 5-11. Verschiedene Architekturen für Multiinstanz Lernen und Inferenz [Jay Budzik, www.thetalkingmachines.com]

Instanzklassifikation

SLSP

Einzelinstanz Lernen (auf allen Daten) und Einzelinstanz Prädiktion (Inferenz auf allen Daten)

SLMP

Einzelinstanz Lernen (auf allen Daten) und replizierte Multiinstanz Prädiktion (Inferenz auf Teildaten mit Modellfusion)

MLSP

Multiinstanz Lernen (auf Teildaten) mit Modellfusion und Einzelinstanz Prädiktion (Inferenz auf allen Daten)

MLMP

Multiinstanz Lernen und Multiinstanz Prädiktion (Modellfusion)

Variation:

MLSP: Mehrere Modellfunktion {Fi} werden auf den gleichen (oder Teilmengen) trainiert und Verwendung von randomisierten Algorithmen (u.A. auch Initialisierung von Parametern) wie Monte Carlo Simulation. Am Ende wird das beste Modell ausgewählt.

Ablauf und Phasen von ML

Statistische Analyse und Bewertung der Daten

Merkmalsselektion

Aufteilung der Daten in Trainings- und Testdaten (i.A. randomisiert) D=Dtrain ∪Dtest

Training einer Modellfunktion F mit bekannten (markierten bei ÜL) Trainingsdaten Dtrain unter Bewertung des Modellfehlers E(X)

Test und Bewertung von F mit bekannten Daten Dtest

Applikation (Inferenz) von F auf unbekannten Daten D

Die Aufteilung der gesamten Dateninstanzen in Trainings- und Testdaten ist so zu wählen dass 1. Die Traininsmenge groß genug (im Sinne der Repräsentanz und Varianz) und 2. Die Testmenge linear unabhängig von der Trainingsmenge ist.

Ein Datensatz D wird randomisiert in die Teilmengen durch exklusive Stichprobennahme verteilt (bis D "leer" ist)

Beim Training der Hypothesenfunktion F wird ebenfalls ein Fehler aus den Terainingsdaten berechnet:

Akkumulativ oder als Batch (randomisierte Auswahl einer kleinen Teilmenge)

Nach jeder Parameteranpassung mit einem oder Batch Datensatz

Beim Test werden immer alle Testbeispiele bewertet

Beispiel Dehnungstest

/webwork

size

workdir

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

Load

dataframe<-fromJSON(file="tensiletest1.json",flatten=TRUE)
datalist<-fromJSON(file="tensiletest1.json")
print(dataframe)
print(datalist)

Anal

plot(datalist$f)
plot(datalist$d)
stats<-statistics.analysis(datalist$f)
print("Force [N]")
print(stats)
stats<-statistics.analysis(datalist$d)
print("Displacement [mm]")
print(stats)

Fit

F<-function (d,k1,k2) {
  k1+k2*d
}
error1<-function (y,y0) {
  abs(y-y0)
}
error2<-function (y,y0) {
  (y-y0)**2
}
errorR<-function (y,y0) {
  if ((y+y0)==0) { r<-0 } else {
  r<-abs(y-y0)/(y+y0) }
  r
}
erravg1<-0
erravg2<-0
erravgR<-0
N<-62
k1<-0
k2<-0.05
result<-matrix(0,62,3)
colnames(result)<-c("D","Y0(f)","Y(f)")
for(i in 1:N) {
  d<-datalist$d[i]
  y0<-datalist$f[i]
  y<-F(d,k1,k2)
  result[i,1]<-d
  result[i,2]<-y0
  result[i,3]<-y
  erravg1<-erravg1+error1(y,y0)
...

Naturwissenschaftliche Modellinferenz

Neben der kausalen Modellinferenz können auch prädiktive Modellinferenzverfahren - also ML - eingesetzt werden

Spannende Frage: Wie ist die Korrelation von kausal und prädiktiv gewonnenen Modellen?

Was bedeutet eine Abweichung?

Kernfrage ist die Erklärbarkeit von algorithmisch erzeugten Modellen mit ML Verfahren, auch in der Mess- und Prüftechnik!

ML in den Fertigungs- und Materialwissenschaften

ML ist auch hier ein Werkzeug um analytisch und physikalisch nicht mathematisch modellierbare Zusammenhänge zu approximieren (quasi ein vorläufiger Modellersatz)

Auch hier kann es Probleme grundsätzlicher Art geben:

Fehlende Nachverfolgbarkeit (warum kommt ein Y bei einem X?)

Fehlende Erklärbarkeit (wie ist der Zusammenhang Y(X) zu verstehen?)

Fehlende Rückverfolgung (welches X aus gegebenen Y?)

Inverse ML Modellierung ist von großer Bedeutung (z.B. welche Prozessparameter müssen gewählt werden wenn bestimmte Materialparameter als Ergebnis einer Fertigung gegeben sind)

Vorwärts- und Rückwärtsmodellierung

Vorwärtsmodellierung

Typischerweise schließt man von Eingabedaten (Sensoren) auf Ausgabedaten (Systemvariablen, Aggregatvariablen)

Eingabedaten sind i.A. individuell (Einzelfall)

Ausgabedaten von Modellfunktionen repräsentieren häufig statistische Ensemblemittelwerte!

Viele ML Modelle sind daher Mittelwertbilder!

Eine Funktion F(X→): X→ → Y→ bildet i.A. einen hochdimensionalen Eingaberaum n=|X→| auf einen niederdimensionalen Ausgabe/Ergebnisraum m=|Y→| mit m ≪ n ab

Rückwärtsmodellierung

Bei der Rückwärtsmodellierung möchte man von den System- und Aggregatvariablen auf die Sensordaten schließen: G( Y→ ): Y→ → X→

Die Modellfunktion G kann durch Invertierung des Vorwärtsmodells F gewonnen werden, d.h., G=F⁻¹

Kann F noch durch ein vollständig bestimmtes mathematisches Problem beschrieben werden (d.h. Abbildung X→ → Y→ ist eindeutig), so ist die Inversion i.A. ein unterbestimmtes Problem (Mehrdeutigkeit aufgrund der Dimensionalitätserhöhung)

Wissenschaft versa ML

Naturwissenschaftliche Theorie ist oft hypothesengetrieben, während maschinelles Lernverfahren datengetrieben sind!

Beim maschinellen Lernen beginnt man mit einem Datensatz, um eine Hypothese aufzustellen, während man in den Natur- und Ingenieurwissenschaften oft mit einer Hypothese beginnt.

Beide verwenden (oder eher ML, beide sollten zumindest) eine Auswertung außerhalb der Stichprobe, um Ihre Hypothesen zu testen.

Beim maschinellen Lernen liegt der Fokus im Allgemeinen auf der Vorhersage, ohne zu erklären, warum ein Phänomen Auftritt (Erklärbarkeit und Verfolgbarkeit).

Beim maschinellen Lernen glaubt man nicht, dass das Modell richtig ist, d.h. es wird nicht angenommen, dass das Modell der datengenerierende Mechanismus ist.

Datengetriebene Modelle werden nur danach ausgewertet, wie gut Sie anhand von Daten Vorhersagen machen, aus denen Sie selber erstellt wurden, und nicht erklären wie sie zu Stande kommen.

Der Fokus des maschinellen Lernens lag traditionell nicht auf kausalen Effekten, obwohl Maschinelles lernen bei kausalen Inferenzproblemen nützlich sein kann.

Zusammenfassung

Maschinelles Lernen besteht aus:

Modellimplementierungen:

Funktionen, Gerichtete Graphen, Funktionalen Graphen, Ungerichtete Graphen, also mit/für

Regression, Entscheidungsbäume, Neuronale Netze, Clustering (kNN)

Aufgaben

Regression, Klassifikation, Gruppierung (Clustering), Prognostik

Methoden und Verfahren

Überwachtes, nicht überwachtes, und rückgekoppeltes Belohnungslernen

Monolithisches, stapelbasiertes, iteratives, und inkrementelles Lernen

Einzel- versa Multiinstanzlernen

Enscheidungsbaumlernen (Konstruktion), Support Vector Machines (Regression), Backpropagation in Neuronalen Netze, usw.

ML besteht aus mehreren Phasen:

Datenerhebung (Messung), Datenvorverarbeitung, Statistische Bewertung, Merkmalsselektion, Modellerstellung, Training, Test und Analyse (Kreuzvalidierung), Anwendung/Inferenz

Daten werden unterteilt in:

Trainingsdaten , Testdaten, Anwendungsdaten

Trainings- und Testdaten bei ÜL mit (x,y) Beziehungen (Markierung/Labelling)

Klassifikation und Regression mit Entscheidungsbäumen

Zielvariablen: Primär Kategorische Variablen; Sekundär Numerische Variablen

Eigenschaftsvariablen: Kategorische und Numerische Variablen

Modell: Gerichteter azyklischer Graph (Baumstruktur)

Training und Algorithmen: C4.5, ID3, C5.0, ICE, CART, RF

Klasse: Überwachtes Lernen

Entscheidungsbäume

Ein Entscheidungsbaum ist ein gerichteter azyklischer Graph bestehend aus einer Menge von Knoten N die mit den Eingabevariablen x verknüpft sind und Kanten E die die Knoten verbinden

Die Endknoten sind Blätter und enthalten Werte der Zielvariablen y (daher kann y nur eine kategorische Variable sein, oder eine intervallkategorisierte)

Die Kanten bestimmen die Evaluierung des Entscheidungsbaum beginnend von dem Wurzelknoten bis zu einem Blattknoten

Jede Kante hat eine Evaluierungsbedingung ε(x) der Variable des ausgehenden Knotens x

Ein Entscheidungsbaum besteht aus Regeln. Jeder Knoten kann als eine Evaluierungsregel aufgefasst werden.

Zusammengefasst ausgedrückt:

image-placeholder
(6-1)

Entscheidungsbäume können neben einem Graphen auch funktional dargestellt werden:

image-placeholder
(6-2)

Baumklassen

Man unterscheidet:

Binäre Bäume. Jeder Knoten hat genau (oder maximal) zwei ausgehende Kanten (Verzweigungen). Der Test der Variable x kann daher nur x < v, x > v, x ≥ v, oder x ≤ v sein! Wird vor allem bei numerischen Variablen eingesetzt.

Bereichs- und Mehrfachbäume. Jeder Knoten hat 1..k ausgehende Kanten (Knotengrad k). Der Test der Variable x kann auf einen bestimmten Wert x ∈ V oder auf ein Intervall [a,b] erfolgen! Wird vor allem bei kategorischen Variablen eingesetzt.

Baumstruktur

Abbildung 6-1. Grundlegende Struktur eines Entscheidungbaumes

Vorteile

⊕ Entscheidungsbäume sind einfach aufgebaut und können mit einfachen Algorithmen erzeugt werden.
⊕ Entscheidungsbäume als inferiertes Modell erlauben eine Erklärbarkeit des Modells, also die Antwort auf die Frage wie sich ein y aus einem x ergibt.
⊕ Weiterhin ist eine Ableitung eines inversen Problems möglich, d.h. welche Werte x für gegebenes y sind möglich?

Nachteile

⊗ Entscheidungsbäume können schnell spezialisieren, d.h. es fehlt an Generalisierung.
⊗ Theoretisch kann mit einem Entscheidungsbaum jede Trainingsdatentabelle mit einer Trefferquote von 100% abgebildet werden. Der Test mit nicht trainierten Daten ergibt aber Prädiktion in der Größenordnung der Ratewahrscheinlichkeit!

Bevor man das Training start, insbesondere bei mehrschrittigen Verfahren, kann es hilfreich sein den Fehler für die "Ratewahrscheinlichkeit" gemäß der im Training benutzten Fehlerfunktion (loss) zu berechnen.

Beispiel Regression:

use math
x=[1,2,3,4,5,6,7,8]
y=[1,2,3,4,5,6,7,8]
y.median = fivenum(y)$median
loss2 = sqrt(mean((y-y.median)^2))
>> 2.29

Solange beim oder nach dem Training der fehler/Verlust nicht nennenswert kleiner (mindestens 1/2, besser 1/10) ist kann ist das Modell nicht brauchbar (bei Regressionsmodellen spricht man auch von der Todeslinie wenn das Modell konstant ungefähr den Median ausgibt).

Training

Das Training mit Trainingsdaten Dtrain erzeugt den Baum schrittweise:

Es werden geeignete Variablen x ∈ X ausgewählt die einen Knoten im Baum erzeugen

Jeder hinzugefügte Knoten erzeugt neue Teilbäume (durch Verzweigungen)

Die Verzweigungsbedingungen ε (Kanten) werden ebenfalls vom Trainer anhand der Werte der Variable x in Abhängigkeit von der Zielvariablen y gewählt/berechnet.

Die Auswahl der Variablen und die Verzweigungsbedingungen können je nach Algorithmus und Baumklasse variieren!

Beispiel

Abbildung 6-2. Schrittweise Erzeugung des Entscheidungsbaums aus den Eingabedaten (a) erst mit einer Variable (b,c), dann mit zwei (d) unter Beachtung des Klassifikationsfehlers [10]

Jeder Knoten in einem binären Baum stellt eine lineare Separation des Eingabedatenraums dar.

Probleme bei Mehrbereichsbäumen

Wenn die Wertemenge val(x) groß ist gibt es entsprechend auch viele Verzweigungen im Baum!

Die Größe des Baums wächst an (Speicher)

Die Rechenzeit für das Training (Induktion) aber auch die Anwendung (Inferenz, Deduktion) wächst

Die Entropie kann als Maß der Varianz der Wertemenge gesehen werden.

Das "NP" Problembeispiel

Abbildung 6-3. k-stelliger Entscheidungsbaum für kategorische Variablen [14]

Das Titanic Überlebensbeispiel

Abbildung 6-4. Binärer Entscheidungsbaum (Relation und Auswahl) für numerische und kategorische Variablen: Beantwortung "soziologischen Fragen", und nicht Prädiktion [www.statistik-dresden.de]

Beispiel Materialeigenschaften

Abbildung 6-5. (Links) Entscheidungsbaum für die Vorhersage von Reibungskoeffizienten von Materialien auf der Grundlage von sechs grundlegenden Materialmerkmalen (Rechts) Vergleich der vorhergesagten und experimentellen Reibungskoeffizienten [100]

Trainingsalgorithmen

Es gibt verschiedene Trainingsverfahren (für verschiedene Baumklassen):

ID3. Der Klassiker (Iterative DiChaudomiser 3, Ross Quinlan, 1975-1986) für kategorische Variablen (k-stelliger Baum)

C4.5. Der Klassiker (Ross Quinlan 1988-1993) für numerische (und kategorische) Variablen (Binär- und k-stelliger Baum) als Erweiterung des ID3 Verfahrens.

C5.0 Nachfolger von C4.5 mit verbesserten Split und Baumreduzierung

INN. Die Eigenkreation (auch ICE, Stefan Bosse, 2016) für numerische unsichere und verrauschte Sensorwerte mit Intervallarithmetik (also im Prinzip Intervallkategorisierung und Kantenbedingungen sind x ∈ [a,b]), basierend auf C4.5 und ID3

CART Classification and Regression Tree (kat. und kont. numerische Zielvariablen)

Bewertung

Binäre Kreuzentropie bei kategorischen Ausgabevariable(n)

Die Kreuzentropie ist in der Informationstheorie und der mathematischen Statistik ein Maß für die Qualität eines Modells für eine Wahrscheinlichkeitsverteilung. Eine Minimierung der Kreuzentropie in Bezug auf die Modellparameter kommt einer Maximierung der Log-Likelihood-Funktion gleich. Es gilt mit p als Zielwertverteilung von y und q als verteilung der Prädktion yp:

image-placeholder
(6-3)

Logloss, die Abkürzung für logarithmischer Verlust, misst die Genauigkeit eines Klassifikators mit kontinuierlichen Ausgabevariablen, d.h. im Werteintervall [0,1], indem es falsche Klassifizierungen bestraft. Für eine binäre Klassifizierung mit echter Bezeichnung y={0,1} und vorhergesagter Wahrscheinlichkeit p=[0,1] ist der Logloss gegeben durch:

image-placeholder
(6-4)

MSE/RMSE bei numerischen Ausgabevariablen (sowohl diskrete als auch regressive Bäume), hier ist yp der vom Modell vorhergesagte Wert, und y₀ der bekannte Ground Truth Wert:

image-placeholder
(6-5)

Weitere Informationen und Vertiefung:

https://towardsdatascience.com/understanding-binary-cross-entropy-log-loss-a-visual-explanation-a3ac6025181a

Vergleich ID3 - C4.5

Der ID3-Algorithmus wählt das beste Attribut basierend auf dem Konzept der Entropie und dem Informationsgewinn für die Entwicklung des Baumes.

Der C4.5-Algorithmus verhält sich ähnlich wie ID3, verbessert jedoch einige ID3-Verhaltensweisen:

Möglichkeit, numerische (kont.) Daten zu verarbeiten.

Verarbeitung unbekannter (fehlender) Werte

Möglichkeit, Attribute mit unterschiedlichen Gewichten zu verwenden.

Beschneiden des Baumes nach der Erstellung (Modellkompaktierung).

Vorhersage der Fehler

Hervorhebung und Extraktion von Teilbäumen

ID3 Verfahren

[1] J. R. Quinlan, “Induction of Decision Trees,” in Machine Learning, Kluwer Academic Publishers, Boston, 1986.

Entropie

Ausgangspunkt für die Konstruktion des Entscheidungsbaums ist die (Shannon) Entropie einer Spalte X der Datentabelle (mit der Variable x):

image-placeholder
(6-6)

Alle Werte gleich ⇒ Entropie=0; Alle Werte gleichverteilt ⇒ Entropie=-log₂|ci|

Abbildung 6-6. Illustration der Bedeutung der Entropie: Entropie hat ihre Wurzeln in der Physik- sie ist ein Maß für Unordnung oder Unvorhersehbarkeit in einem System. [https://towardsdatascience.com/understanding-entropy-the-golden-measurement-of-machine-learning-4ea97c663dc3]

Entscheidungsbäume verwenden Entropie für ihre Konstruktion: Um Eingaben so effektiv wie möglich nach einer Reihe von Bedingungen zu einem korrekten Ergebnis (Zielvariable) zu lenken, werden Merkmalteilungen (mit Bedingungen) mit niedrigerer Entropie (höherer Informationsgewinn) höher im Baum platziert.

Um die Idee von Bedingungen mit niedriger und hoher Entropie zu veranschaulichen, betrachten wir hypothetische Merkmale mit einer durch Farbe (rot oder blau) markierten Klasse und der durch eine vertikale gestrichelte Linie markierten Teilung.

y , dann ergibt sich ein hoher Informationsgewinn bei niedriger Entropie (von y ) für eine gute Teilung

Abbildung 6-7. Betrachtet man die Verteilung der Zielvariablen [https://towardsdatascience.com/understanding-entropy-the-golden-measurement-of-machine-learning-4ea97c663dc3]

Entscheidungsbäume berechnen die Entropie von Merkmalen und ordnen sie so an, dass die Gesamtentropie des Modells minimiert (und der Informationsgewinn maximiert) wird.

Mathematisch bedeutet dies, dass die Bedingung mit der niedrigsten Entropie oben platziert wird, so dass sie dazu beitragen kann, Knoten darunter zu spalten, um die Entropie zu verringern.

Informationsgewinn und relative Entropie, die beim Training von Entscheidungsbäumen verwendet werden, sind definiert als der Abstand zwischen zwei Wahrscheinlichkeitsverteilungen p(x) und q(x) (siehe vorherige Abb.).

Bedingte Entropie

Interessant ist die Werteverteilung einer Eingabevariablen X in Bezug auf die Werte (Partitionen) der Zielvariable Y ⇒ Bedingte Entropie

image-placeholder
(6-7)

C ist die Menge aller unterscheidbaren Werte von X!

Beispiel

a | b | y
u | u | A
v | v | A
w | u | B
w | v | B

image-placeholder
(6-8)

Informationsgewinn

Ausgehend von der bedingten Entropie kann der Informationsgewinn einer Spalte X hinsichtlich der Zielvariablenspalte Y berechnet werden:

image-placeholder
(6-9)

Der Informationsgewinn, der durch Auswahl des Attributs x und der Spalte X erzielt wird, errechnet sich dann als Differenz der Entropie von Y und der erwarteten/durchschnittlichen Entropie von Y bei Fixierung von x.

Der Informationsgewinn ist auf Y Verteilung bezogen, nicht wie vorher auf X!

Algorithmus

 1: 0. Starte mit leeren Baum, allen Eingansattributen X, der Zielvariablen Y,
 2:    und der vollständigen Datentabelle D(X,Y).
 3: 1. Berechne den Informationsgewinn für jede Attributevariable x ∈ X.
 4: 2. Wenn nicht alle Zeilen zum selben Zielvariablenwert gehören,
 5:    wird der Datensatz D in Teilmengen D'~xbest,v1~, D'xbest,v₂, usw.
 6:    aufgeteilt für das Attribut xbest ∈ X mit dem größten Informationsgewinn.
 7: 3. Es wird ein Knoten mit der Attributvariable xbest erstellt.
 8: 4. Wenn alle Zeilen zur selben Klasse gehören, wird ein Blattknoten
 9:    mit dem Wert der Zielvariable erstellt.
10: 5. Wiederholung von 1-4 für die verbleibenden Attribute X'=X / xbest,
11:    allen Teilbäumen (Verzweigungen von aktuellen Knoten) mit jeweiligen D',
12:    bis alle Attribute verwendet wurden,
13:    oder der Entscheidungsbaum alle Blattknoten enthält.

C4.5 Verfahren

[1] J. R. Quinlan, "C4.5: Programs For Machine Learning". Morgan Kaufmann, 1988.

Wie ID3 werden die Daten und Attribute an jedem Knoten des Baums bewertet um das beste Teilungsattribut zu bestimmen.

Aber C4.5 verwendet die Methode der "gain ratio impurity", um das Teilungsattribut zu bewerten (Quinlan, 1993).

Entscheidungsbäume werden in C4.5 mithilfe eines Satzes von Trainingsdaten oder Datensätzen wie in ID3 erstellt.

An jedem Knoten des Baums wählt C4.5 ein Attribut der Daten aus, das seinen Satz von Samples am effektivsten in Teilmengen aufteilt, die in der einen oder anderen Klasse verteilt sind.

Das Kriterium ist der normalisierte Informationsgewinn:

Verhältnis des Informationsgewinns G (Gain) zu einer sog. Teilungsqualität (Split Info SI), die sich aus der Zielvariable Y zum Aufteilen nach den Y Werten der Daten ergibt.

Das Attribut mit dem höchsten Verhältnis GR (Gain Ratio) wird ausgewählt, um die Entscheidung für die Teilung zu treffen.

image-placeholder
(6-10)

Teilung von kategorischen und numerischen Variablen

Bei kategorischen Variablen bestimmen die Werte Val(X) einer Spalte der Datentabelle einer Variablen x die Aufteilung eines Entscheidungbaums (Partitionierung).

Bei numerischen Variablen muss ein Wert als Teilungspunkt aus der Werteverteilung bestimmt!

Nicht trivial; Welches Kriterium?

Intervallkategorisierung und Wertepartitionierung kann helfen!

D\.h. mit intervallkategorisierten diskrete Werter wird die Spalte X entsprechend der Zielvariable Y partitioniert.

Und diese Partitionen werden bewertet und der Teilungspunkt xsplit ∈ X bestimmt (z.B. über Mittelwerte der Intervalle)

Teilung von numerischen Variablen mit Intervallanalyse

Naiver Ansatz:

Paritionierung der x Variable in Paritionen x|y (also nach y Werten)

Berechnung der statistischen fivenum Verteilunge: {min,q1,meadian,q3,max}

Die Intervalle [min,max] der Paritionen aufsteigen sortieren

Fall A: Zwei Parititionen P₁ und P₂ besitzen nicht überlappende Intervalle ⇒ Teilungspunkt ist Mittelpunkt (max₂-min₁)/2

Fall B: Zwei Parititionen P₁ und P₂ besitzen überlappende Intervalle,aber q3₁ < q1₂ ⇒ Teilungspunkt ist Mittelpunkt (q1₂-q3₁)/2

Fall C: Zwei Parititionen P₁ und P₂ besitzen überlappende Intervalle,aber median₁ < median₂ ⇒ Teilungspunkt ist Mittelpunkt (meadian₂-median₁)/2

Vertiefung

[1] L. Rokach and O. Maimon, Data Mining with Decision Trees - Theory and Applications. World Scientific Publishing, 2015.

Intervallkodierung

Abbildung 6-8. Einteilung von kontinuierlichen Werteverteilungen in Intervalle und Abbildung auf kategorische (diskrete) Werte

Man kann die R cut Funktion benutzen im eine kontinuierliche numerische Variable in eine kategorische zu überführen.

# Äquidistante Intervalle
x=runif(10)
x.disc = cut(x,breaks=3,labels=['A','B','C'])
# ['A','B','A','C',...]
# Unregelmäßige Intervalle
x=runif(10)
x.disc = cut(x,breaks=[0,0.2,0.8,1],labels=['A','B','C'])
# ['A','B','A','C',...]

Unvollständige Trainingsdaten

Es kommt vor allem in der Soziologie aber auch in der Mess- und Prüftechnik vor, dass nicht alle Werte der Attributvariablen X für alle Trainingssätze bekannt sind.

Die Behandlung fehlender Attributwerte in den Zeilen der Datentabellen ist schwierig

Es gibt keine Universallösung für den Umgang mit ? Werten. Möglichkeiten:

Ersetzen des fehlenden Wertes mit einem Standardwert

Ersetzen des fehlenden Wertes mit einem probabalistisch über Verteilungshäufigkeiten bestimmten Wert (auch unter Einbeziehung des gesamten Datensamples)

Attributvariablen mit fehlenden Werten nicht verwenden

ICE/INN Intervallkategorisierte Entscheidungsbäume

Bisherige Entscheidungsbäume (C4.5/ID3) wurden entweder mit einer diskreten Anzahl von kategorischen Werten verzweigt oder mittels binärer Relationen!

Aber Sensoren (sowohl in der Mess-und Prüftechnik als auch in der Soziologie) sind fehlerbehaftet, d.h. es gibt bei jedem x-Wert ein Unsicherheitsintervall [x-δ,x+δ] → Rauschen, ebenso Teilungsintervalle [x₁-δ,x₂+δ]

Damit können Entscheidungsbäume (anders als Neuronale Netze oder Regressionslerner) nicht umgehen.

Wenn die Teilung mit x<50 und x≥50 an einem Knoten mit x erfolgt würde bei Werten um 50 und überlagerten Rauschen ein Entscheidungsproblem entstehen!

Lösung: k-stellige Knoten mit Intervallverzweigungen, also:

image-placeholder
(6-11)

Abbildung 6-9. Vergleich der verschiedenen Baumarten und Knotenverzweigungen

Bei der Konstruktion des Entscheidungsbaums werden wieder nach Informationsgewinn bzw. Gewinnverhältnis Attributvariablen und Spalten der Datentabelle ausgewählt.

Die numerischen Werte werden sowohl beim Training als auch bei der Inferenz durch Intervalle ersetzt → Ersetzung von diskreter mit Intervallarithmetik

Entropie usw. werden durch kategorisierte Intervalle bestimmt

Das große Problem: Für jede Variable muss ein ε abgeschätzt werden → Statistisches Modell erforderlich.

Und was bedeuten jetzt überschneidende Intervalle?

Überschneidungen bedeuten Ununterscheidbarkeit!

Inferenz mit NN Suche

Jeder Knoten xi hat ausgehende Kanten mit annotierten Intervallen [vj-ε,vj+ε]

Bei einem neuen zu testenden Variablenwert v wird einerseits auch ein Intervall [v-ε,v+ε] gebildet und mit den Kantenintervallen verglichen, andererseits wird das nächstliegende Intervall gesucht

Gini-Index/Gini-Unreinheit

Die Gini-Unreinheit (Ginit Impurity GI) ist die Wahrscheinlichkeit, ein zufällig ausgewähltes Element im Datensatz falsch zu klassifizieren, wenn es gemäß der Klassenverteilung im Datensatz zufällig annotiert wurde. GI wird berechnet als:

image-placeholder
(6-12)

wobei C die Anzahl der Klassen und p(i) die Wahrscheinlichkeit ist, zufällig ein Element der Klasse i auszuwählen.

Beim Trainieren eines Entscheidungsbaums wird die beste Aufteilung ausgewählt, indem der Gini-Gewinn maximiert wird, der durch Subtraktion der gewichteten Unreinheiten der Zweige von der ursprünglichen Unreinheit berechnet wird.

Wir bestimmen die Qualität der Aufteilung, indem wir die Unreinheit jedes Zweigs mit der Anzahl seiner Elemente gewichten.

image-placeholder
(6-13)

Beispiele: https://victorzhou.com/blog/gini-impurity/

Beispiel

graph {
  A [label="Count=100 (A:50,B:50)\nGiniImp=0.5\nRule:x1<10" ]
  B [label="Count=46  (A:8,B:38)\nGiniImp=0.28\nRule:x2<5" ]
  C [label="Count=37  (A:1,B:37)\nGiniImp=0.97" ]
  D [label="Count=9   (A:7,B:2)\nGiniImp=0.22" ]
  E [label="Count=54  (A:42,B:12)\nGiniImp=0.35\n\n"]
  A->B
  A->E
  B->C
  B->D

}

Weighted Gini-Impurity (erster Split) = 46/100•0.28 + 54/100•0.35 = 0.32, Split Gain = 0.5 - 0.32

Random Forest Trees

Konzept und Idee: Mehrere schwache Modelle zu einem starken kombinieren.

Multiinstanzmodell

Es werden m Entscheidungsbäume DT={dt₁,..,dtm} getrennt gelernt und erzeugt

"Random": Die Aufteilung der Daten in Teilungsvariablen erfolgt randomisiert!

Eingabedaten werden zur Inferenz an alle Teilbäume dti ∈ DT gegeben

Alle Ausgabevariablen der Teilbäume werden fusioniert

Fusion:

Mittelwert (bei intervallkodierten oder intervallskalierbaren kat. Zielvariablen durch Dekodierung in numerische Werte)

Mehrheitsentscheid

Konsensfindung (Verhandlung)

Parametersatz:

Stelligkeit eines Knotens (Anzahl der ausgehenden Kanten)

Anzahl der Teilbäume

Partitionierung des Eingaberaums (d.h. ein bestimmter Baum verwendet nur eine Teilmenge der Spalten aus D)

Maximale Höhe eines Teilsbaumes

Fusionsmodell und Algorithmus

Abbildung 6-10. Grundprinzip von Multibaumklassifikatoren [Abhishek Sharma, 2020, www.analyticsvidhya.com]

Beispiel

Experiment

Sensornetzwerk von (3 × 4) Dehnungssensoren

Stimulus: Bauteilschwingung

Varianz: Bauteilschäden (Defekte)

Zielvariable: Schadensklassifikation (9 Positionen)

Merkmalsvektor: Downgesampletes zeitaufeglöstes Sensorsignal einer

Ressourcen

Genauigkeit

Regressionsbäume

Classification and Regression Tree CART

Bisher gaben Entscheidungsbäume diskrete kategorische Werte oder intervallkodierte numerische Werte aus. Ausgabewerte die nicht in den Trainingsdaten enthalten waren können auch nicht ausgegeben werden. Es gibt keine Inter- und Extrapolation!

Regressionsbäume können zwar auch nur eine diskrete Menge von Werten ausgeben, die aber nicht unmittelbar in den Trainingsdaten enthalten sein müssen (nur numerische Zielvariablen) und aus einer statistischen Analyse stammen

Ein Regressionsbaum ist ein Hybrid aus Regressionsfunktion und Entscheidungsbaum.

Breiman, Friedman, Olshen, and Stone (1984)

Ein CART gruppiert einzelne Dateninstanzen und Trainingsbeispiele in Gruppen und berechnet statistische Größen der Zielvariable: Mittelwert, Standardabewichung usw.

Jeder Knoten ist hier auch ein Zielknoten der diese statistischen Informationen der Zielvariablen liefert und kann für die Beantwortung einzelner Fragen verwendet werden d.h.,

Der Einfluss von Variablen und deren Wertebereiche auf die Zielvariable ist unmittelbar ablesbar,

Pfade entlang des Baumes ergeben Variablenkonditionale (also wenn A und dann B dann ...)

Jeder Knoten des Baumes ist die Wurzel eines Teilbaums mit einer statistisch gegebenen Verteilung der Zielvariablewerte

Je tiefer ein Knoten sich im Baum befindet, desto geringer sollte die Streuung und Breite der verteilung der Ergebnisvariable sein

Bei kategorischen Zielvariablen wird entropiebasiert der Trainingsdatensatz geteilt und auf Teilbäume abgebildet. Das geht bei kontinuierlichen variablen nicht!

Bei Regressionsbäumen wird i.A. der mittlere Teilungsfehler für einen gegebenen Teilungspunkt berechnet und verwendet (i.a. Binärbaum bei nuemrischen Eingabevariablen)

image-placeholder
(6-14)

wobei Y der vorgebenene Trainingswert ist und Y^ der berechnete (vorhergesagte) Zielvariabenwert ist.

Abbildung 6-11. CART mit der Zielvariable y:Raucher? und verschiedenen Eingabevariablen (Attributen): Alter (Monate!), Elternstress (Score 0-5) [14]

Als eine statistische Methode gruppiert CART Individuen in eine Reihe von sich gegenseitig ausschließenden und repräsentativen Gruppen, die auf starke Zusammenhänge zwischen den unabhängigen Variablen basieren. CART ist eine effektive explorative statistische Technik.

Ohne auf einem speziellen statistisches Modell zu basieren, enthält CART keine komplexen mathematischen Gleichungen (die das statistische Modell beschreiben). Die Ergebnisse sind leicht zu interpretieren und zu verstehen.

Vertiefung: [https://towardsdatascience.com/cart-classification-and-regression-trees-for-clean-but-powerful-models-cc89e60b7a85] [https://medium.com/analytics-vidhya/regression-trees-decision-tree-for-regression-machine-learning-e4d7525d8047]

Algorithmus

Ziel: Mit jeder Ebene/Knoten die "Unordnung" (Impurity) der Datenverteilung mit Bezug zu der Zielvariable zu reduzieren

Es wird wieder die Entropie ε als Maß für die Unordnung herangezogen (der Zielvariable)

Der Grad der Verringerung der Unordnung, der mit der Partitionierung eines übergeordneten Knotens in zwei untergeordnete Knoten verbunden ist, wird berechnet als [14]:

image-placeholder
(6-15)

wobei ε(τ) die Entropie des Elternknoten ist.

Baumkompaktierung

Viele Baumstrukturen können nach dem Training vereinfacht werden ⇒ Tree Pruning

Dabei können auf gleicher Ebene Teilungsknoten und Blätter zusammengafasst werden (Redundanzen)

Aber auch Reduktion ganzer Teilbäume ist möglich (Komplexität)

Man unterscheidet Pre- und Postkompaktierung

[https://www.kdnuggets.com/2022/09/decision-tree-pruning-hows-whys.html]

Pre-Kompaktierung

Eigentlich Verhinderung von überkomplexen Bäumen!

Die Vorbeschneidungstechnik von Entscheidungsbäumen besteht darin, die Hyperparameter vor der Trainingspipeline zu optimieren. Es beinhaltet die Heuristik, die als 'frühes Stoppen' bekannt ist und das Wachstum des Entscheidungsbaums stoppt - und verhindert, dass er seine volle Tiefe erreicht.

Es stoppt den Baumbildungsprozess, um zu vermeiden, dass Blätter mit kleinen Proben produziert werden. Während jeder Phase der Aufteilung des Baums wird der Kreuzvalidierungsfehler überwacht. Wenn der Wert des Fehlers nicht mehr abnimmt, stoppen wir das Wachstum des Entscheidungsbaums.

Die Hyperparameter, die für ein frühzeitiges Stoppen und Verhindern einer Überanpassung eingestellt werden können, sind:

max_depth, min_samples_leaf und min_samples_split

Dieselben Parameter können auch zum Abstimmen verwendet werden, um ein robustes Modell zu erhalten. Sie sollten jedoch vorsichtig sein, da ein frühzeitiges Anhalten auch zu einer Unteranpassung führen kann.

Post-Kompaktierung

Post-Pruning bewirkt das Gegenteil von Pre-Pruning und ermöglicht es dem Entscheidungsbaummodell, seine volle Tiefe zu erreichen. Sobald das Modell seine volle Tiefe erreicht hat, werden Äste entfernt, um eine Überanpassung des Modells zu verhindern.

Der Algorithmus partitioniert die Daten weiterhin in kleinere Teilmengen, bis die endgültigen erzeugten Teilmengen in Bezug auf die Ergebnisvariable ähnlich sind. Wenn jedoch ein neuer Datenpunkt eingeführt wird, der sich von den gelernten Daten unterscheidet, wird er möglicherweise nicht gut vorhergesagt.

"Cost Complexity Pruning" ist eine gängige parametrisierbare Methode um die Komplexität von Bäumen iterativ zu reduzieren

C4.5/ID3 bieten kaum eingebaute Möglichkeiten die Komplexität und Redundanzen zu reduzieren

C5.0 bietet Kompaktierung zur Trainingszeit

ICE kann Blattknoten zusammenfassen (mit fusionierten Intervallen)

Zusammenfassung

graph {
  scale=0.7
  label = "Bäume"
  labelloc = "t"
  graph {
    label = "Binär"
    N1 [label="x"]
    N2 [label="y" shape=circle]
    N3 [label="y" shape=circle]
    N1->N2 [label="x<ε"]
    N1->N3 [label="x≥ε"]
  }
  graph {
    label = "Mehrfach - Diskret"
    N4 [label="x"]
    N5 [label="y" shape=circle]
    N6 [label="y" shape=circle]
    N7 [label="y" shape=circle]
    N8 [label="y" shape=circle]
    N4->N5 [label="x=ε1"]
    N4->N6 [label="x=ε2"]
    N4->N7 [label="x=ε3"]
    N4->N8 [label="x=ε4"]
  }
  graph {
    label = "Mehrfach - Bereich"
    N9   [label="x"]
    N10  [label="y" shape=circle]
    N11  [label="y" shape=circle]
    N12  [label="y" shape=circle]
    N13  [label="y" shape=circle]
    N9->N10 [label="x∈[ε1,ε2]" fontsize=20]
    N9->N11 [label="x∈[ε3,ε4]" fontsize=20]
    N9->N12 [label="x∈[ε5,ε6]" fontsize=20]
    N9->N13 [label="x∈[ε7,ε9]" fontsize=20]
  }
}

graph {
  scale=0.7
  label = "Random Forest"
  labelloc = "t"
  graph {
  graph {
    label = "T1"
    N11 [label="x"]
    N12 [label="y" shape=circle]
    N13 [label="y" shape=circle]
    N11->N12 [label="x<ε"]
    N11->N13 [label="x≥ε"]
  }
  graph {
    label = "T2"
    N21 [label="x"]
    N22 [label="y" shape=circle]
    N23 [label="y" shape=circle]
    N21->N22 [label="x<ε"]
    N21->N23 [label="x≥ε"]
  }
  graph {
    label = "T3"
    N31 [label="x"]
    N32 [label="y" shape=circle]
    N33 [label="y" shape=circle]
    N31->N32 [label="x<ε"]
    N31->N33 [label="x≥ε"]
  }
  }
}

C5.0 Verfahren

Erhältlich in R https://cran.r-project.org/web/packages/C50/vignettes/C5.0.html

Einzelheiten: https://www.geeksforgeeks.org/c5-0-algorithm-of-decision-tree/

Schlüsselkonzepte des C5.0-Algorithmus

Das MDL-Konzept (Minimum Description Length) legt nahe, dass Modelle mit der kleinsten Kodierungslänge die Daten mit größerer Wahrscheinlichkeit effektiv erfassen.

Konfidenzgrenzen: Um eine Überanpassung (Overfitting) zu vermeiden, werden Konfidenzgrenzen verwendet, um zu beurteilen, ob eine Knotenaufteilung statistisch signifikant ist.

Beim Winnowing Verfahren werden weniger wichtige Regeln aus einem Entscheidungsbaum entfernt, um die Gesamtzahl der Regeln zu reduzieren.

Baumteilung wieder mit Entropie und Informationsgewinn

Pruning

Beim Beschneiden werden überflüssige oder redundante Zweige aus dem Entscheidungsbaum entfernt, um seine Genauigkeit und Generalisierungsfähigkeit zu erhöhen. Wenn ein Entscheidungsbaum genau mit den Trainingsdaten übereinstimmt, aber Schwierigkeiten hat, auf neue Fälle zu verallgemeinern, spricht man von Überanpassung. Durch das Beschneiden werden überflüssige Äste eliminiert, die weniger für die allgemeine Verallgemeinerung als vielmehr für die Anpassung des Trainingssatzes wichtig sind.

Winnowing

Eine Methode namens Winnowing wird verwendet, um verrauschte oder unnötige Merkmale zu finden und zu eliminieren, die die Leistung eines Entscheidungsbaums verschlechtern könnten. Dies beinhaltet die Bewertung des Informationsgewinns jedes Attributs und die Eliminierung derjenigen, die wenig zur gesamten Entropiereduktion beitragen. Um festzustellen, ob der Informationsgewinn eines Attributs statistisch signifikant ist, verwendet der C5-Algorithmus einen Signifikanztest. Der Entscheidungsbaum verliert Attribute, die dieses Kriterium nicht erfüllen.

Zusammenfassung

Entscheidungsbäume sind für primär die Klassifikation von kategorischen und sekundär für numerische Zielvariablen geeignet

Mit Ausnahme von CART liefern EB nur Werte der Zielvariablen die im Training enthalten waren

Numerische Zielvariablen müssen intervallkodiert werden (mit Ausnahme von CART).

ID3/C4.5 Lerner können numerische und kategorische Eingabevariablen (Attribute) verwenden

Eine Attributvariable ist ein Teilungspunkt

C5.0 ist die Quintessenz

Rauschen auf Sensordaten muss durch "Unsicherheitsintervall" und Intervallarithmetik behandelt werden (und bei CART durch Standardabweichung)

Vergleich mit anderen Lernverfahren zeigt gute Ergebnisse (je nach Problem)

Regressionsverfahren, SVM und KNN

Bisher wurden vor allem kategorische Zielvariablen betrachtet. Nun soll ein Schwerpunkt auf numerischen Variablen liegen.

Regressionsverfahren passen eine parametrisierte mathematische Funktion an Messdaten an.

Neben den "klassischen" Regressionsverfahren wie Least Square Fit gehören grundsätzlich auch Support Vector Machines (SVM) und Künstliche Neuronale Netzwerke dazu!

SVM gehören zu den Regressionsverfahren

SVM nutzen aber bei der Parameteranpassung (Training) eine andere Fehlerfunktion (Loss) als bei anderen gängigen Regressionsverfahren (z.B. Least-Square Minimierung)

SVM können primär kategorische und weniger numerische Zielvariablen abbilden

SVM sind aber (zunächst) lineare Klassifikatoren!

Regressionsverfahren

Klassifikationsprobleme sind durch Booleschen Ausgabevariablen gekennzeichnet (Klasse ci={true,false})

Bei Regressionproblemen findet hingegen eine Ausgabe mit kontinuierlichen Variablen statt, idealerweise y ∈ [0,1]

D\.h. es gibt Trainingsdaten mit:

image-placeholder
(7-1)

wobei r ∈ ℝ. Wenn Rauschen vernachlässigt wird handelt es sich um ein reines Interpolationsproblem.

Das Ziel ist es nun, eine Funktion f( x→ ) zu finden, die die Trainingsdaten optimal repräsentiert (also die beste Hypothese g von f finden)

Beispiel

[19]

Abbildung 7-1. Lineare Gerade, Polynome zweiter Ordnung und sechster Ordnung werden an denselben Satz von Punkten angepasst. Die höchste Ordnung ergibt eine perfekte Passform, aber angesichts dieser vielen Daten ist es sehr unwahrscheinlich, dass die reale Kurve so geformt ist. Die zweite Ordnung scheint besser zu sein als die lineare Anpassung bei der Erfassung des Trends in den Trainingsdaten (Extrapolation).

Es wird immer einen Fehler ε geben (Rauschen in den "Trainingsdaten" r):

image-placeholder
(7-2)

Ziel der Regression ist es diesen Fehler über eine Verlustfunktion zu minimieren in dem Parameter Θ*→ der Funktion *f angepasst werden:

image-placeholder
(7-3)

Lineare Multivariate Regression

Es wird angenommen dass die Funktion f( x→ ) durch eine lineare Funktion über x→ abgebildet werden kann.

Dann gilt:

image-placeholder
(7-4)

Schon dieses Problem kann unterbestimmt sein, d.h., es kann unendlich viele Hypothesen g von der unbekannten Funktion f geben!

Bei nichtlinearen Zusammenhängen wird die Regressionsfunktion noch komplexer!

Nichtlineare Univariate Regression

Es gibt nur eine Eingabevariable und die Hypothesenfunktion wird durch ein Polynom k-ter Ordnung approximiert:

image-placeholder
(7-5)

Wird von einem Polynom ersten Grades ausgegangen (Gerade) dann gilt es folgende Gleichung zu bestimmen und das Minimierungsproblem zu lösen:

image-placeholder
(7-6)

Den Minimumspunkt dieser Fehlergleichung findet man durch Gradientenbildung der Parameter, das bedeutet dann:

image-placeholder
(7-7)

Nichtlineare Multivariate Regression

Sehr hochdimensionales Problem! Und i.A. völlig unterbestimmt (d.h. kein eindeutigen Zusammenhänge zwischen x→ und y)

image-placeholder
(7-8)

Es können auch exponentielle, logarithmische, und sinusoidale Terme hinzukommen!

Ein numerisches Lösen ist meist nicht mehr möglich; daher Verwendung nichtlinearer Randbedingungslöser sowie statistische Verfahren wie randomiserte Monte Carlo Simulation und Simmuliertes Abkühlen (Evolutionäre Algorithmen?)

Warum können hochdimensionale Polynome nicht mehr mit gradientenbasierten Verfahren numerisch auf einem Computer (gut oder überhaupt) lösbar sein? Hinweis: Wie entwickeln sich Gradienten bei Polynomen sehr hoher Ordnung oder gar Exponentialterme wie bn?

???

Direkte Lösungsverfahren

Single Value Decomposition (SVD)

[4]

Erweiterung der Eigenwertanalyse und verwendet Matrixalgebra und Inversionsmethoden

Ansatz: Dekomposition einer (nichtlinearen) Funktion f( x→ , Θ*→ ) mit *b Basisfunktionen ϕ, z.B. sin oder ähnlich, mit Parametersatz Θ:

image-placeholder
(7-9)

Z\.B. ϕ*→ (x) = (1,x,*x²,..,xb-1)T, oder ϕ*→ (x) = (1,sin(x),cos(x),sin(2x*),...)T

Die gesamte Trainingstabelle wird in Matrixform repräsentiert, und somit erhält man eine Parametermatrix Φ*^ mit den Basisfunktionstermen für die anzupassenden Funktion f( *x→ )Θ (Design Matrix):

image-placeholder
(7-10)

Die Größe der Design Matrix als Ausgangspunkt für SVD/LS Verfahren wächst quadratisch mit der Anzahl der Trainingsdateninstanzen!

Die Lösung (der Funktionsparameter Θ) geschieht dann doch Matrixinversion der Designmatrix Φ:

image-placeholder
(7-11)

mit ΦG als generalisierte Inverse der Matrix Φ

Die generalisierte Inverse wird dann mit dem SVD Verfahren mit sogenannten links- und rechtssingulären Vektoren bestimmt.

Vertiefung: M. Sugiyama, Introduction to Statistical Machine Learning. 2016, Kapitel 22.2

Support Vector Machines (SVM)

Obwohl die SVM zu den linearen (oder nichtlinearen) Regressionsverfahren gehören, wird die SVM primär für die binäre Klassifikation eingesetzt!

SVM Verfahren gehören zu den "Maximum Margin" Methoden

Binärer Klassifikator

Ein binärer Klassifikator soll durch eine lineare Funktion repräsentiert werden (y={-1,+1}, linearer Kernel):

image-placeholder
(7-12)

Dabei sind w und γ die Parameter des Modells die durch das Training an das Problem angepasst werden müssen.

w ist ein Normalenvektor der bei einem binären Klassifikationsproblem die beiden Instanzklassen trennt

y kann tatsächlich auch außerhalb der Grenzen [-1,1] liegen (klar: Polynome haben keine Grenzen)!

Abbildung 7-2. (Oben) ***w*** ist der Normalenvektor und γ die Verschiebung der Trennungsgrenze für zwei Klasseninstanzen (Unten) Verschiedene ***w***/γ Varianten der Trennungsgrenze mit unterschiedlichen Rändern (Sicherheitsbereichen) [4]

Training

Das Lernen von w und γ erfordert die Berechnung des Abstandes von allen Dateninstanzen (x,y)i von der Trenngrenze. Die Abstände müssen positiv sein:

image-placeholder
(7-13)

für alle Dateninstanzen D={(xi,yi)}n.

Da w und γ beliebig gewählt werden können, kann die Randbedingung auch mit (..)yi ≥ 1 gewählt werden.

Weiterhin kann es sinnvoll sein alle Dateninstanzen um den Ursprung des Koordinatensystems zu zentrieren

Wichtig: Die Werte für y liegen im Intervall [-1,1]!

Alle Probleme die (..)yi ≥ 1 erfüllen mit einem (w,γ) sind linear separierbar.

Es gibt unendlich viele Lösungen (also Entscheidungsgrenzen)

Man wählt das (w,γ) aus bei der alle Dateninstanzen die größte Trennung besitzen (breitester Trennbereich, siehe Abb.)

Der Abstand der Dateninstanzen D ist definiert als das Minimum des normalisierten Abstandes:

image-placeholder
(7-14)

D\.h. SVM zu trainieren ist das Minimierungsproblem zu lösen:

image-placeholder
(7-15)

Vertiefung: M. Sugiyama, Introduction to Statistical Machine Learning. 2016., Kapitel 27

Jede Dateninstanz die nicht in den Trennbereich "eindringt" ist ein Supportvektor!

Harter Trennungsbereich (Hard SVM)

Bei einer "harten" Trennung einer SVM gilt dann:

image-placeholder
(7-16)

Hier wird aber keine Lösung für w und γ gefunden wenn das Problem nicht strikt linear separierbar ist (also keine einzige Gerade die Klassen trennen kann)

Weicher Trennungsbereich (Soft SVM)

Die SVM mit harten Trennungsbereich erfordert lineare Separierbarkeit der Dateninstanzen

Ist in der Realität aber nicht immer oder eher selten gegeben

Die weiche Trennung durch eine SVM führt einen Fehlerparametervektor ξ={ξi}n für die Bestimmung des Trennbereichs ein:

image-placeholder
(7-17)

Sie lässt einzelne nicht (linear) separierbare Datenpunkte zu (zur Erinnerung: i ist der i-te Datenpunktm, die i-te Dateninstanz).

Abbildung 7-3. Weicher Trennbereich einer SVM (Soft margin SVM). Durch ξ werden kleine Klassifikationsfehlerbereiche erlaubt. [4]

Die Ausreißer können durch Rauschen und Messunsicherheit (random. und systematischer Fehler) aber auch aufgrund eines nichtlinear separierbaren Problems entstehen!

Dabei ist C ein einstellbarer Parameter der den Fehler steuert und für den gilt:

image-placeholder
(7-18)

Größere C Werte machen den Abstandsfehler kleiner und für große C geht die weiche in eine harte SVM über

αi = 0 impliziert mi ≥ 1: die i-te Trainingsinstanz xi ist auf der Margengrenze oder innerhalb der Marge und ist korrekt klassifiziert.

αi = C impliziert mi ≤ 1: xi ist auf der Margengrenze oder außerhalb der Marge. Wenn ξi > 1, mi < 0 dann ist xi falsch klassifiziert.

0 < αi < C impliziert mi = 1: xi ist auf der Margengrenze und ist korrekt klassifiziert.

mi > 1 impliziert αi = 0: wenn xi innerhalb der Marge ist, i = 0.

mi < 1 impliziert αi = C: wenn xi außerhalb der Marge ist, αi = C.

Multiklassen SVM

Jedes Multiklassenproblem mit m verschiedenen (diskreten) Klassenwerten kann auf m binäre Klassifikationsprobleme transformiert werden

Anders als bei ANN ist bei SVMs aber nur eine One-hot Kodierung möglich (ggfs. mit Softmaxfunktion).

R SVM (custom)

model <- svm(
    x = data.frame,
    y? = vector, # scaled to [-1,1]?
    formula? = y ~ x,
    # threshold function on output? highest value of multi-svms is winner
    threshold = boolean,
    # default : 1.0. C in SVM.
    C = number,
    # default : 1e-4. Higher tolerance --> Higher precision
    tol = number,
    # default : 20. Higher max_passes --> Higher precision
    max_passes = number,
    # default : 1e-5. Higher alpha_tolerance --> Higher precision
    alpha_tol = number,
    kernel = string|list, # linear, rbf, .. list(type= 'rbf', sigma= 0.5) ..
    # list( type = "polynomial", c =  1, d = 5=
)

Beispiel

/webwork

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

data

data = as.data.frame({
  {
    length=5.1,
    width=3.5,
    petal_length=1.4,
    petal_width=0.2,
    species="setosa"
  },
  {
    length=4.7,
    width=3.2,
    petal_length=1.3,
    petal_width=0.2,
    species="setosa"
  },
  {
    length=4.6,
    width=3.1,
    petal_length=1.5,
    petal_width=0.2,
    species="setosa"
  },
  {
    length=5,
    width=3.6,
    petal_length=1.4,
    petal_width=0.2,
    species="setosa"
  },
  {
...

prepro

data.yn = as.data.frame(lapply(data$species,function (cls) {
  switch(cls,versicolor = [1,-1,-1],
             setosa     = [-1,1,-1],
             virginica  = [-1,-1,1])
}))
print(data.yn)

train

use svm
target = 1 # 1,2,3
models[[target]]=svm(
  x=data[,1:4],
  y=data.yn[,target],
  C=15,
  tol = 0.00001,
  max.iterations = 200,
  alpha.tol = 0.00001,
  kernel =  { type = 'rbf', sigma = 0.5 }
)
print(summary(models[[target]]))

test

target = 1 # 1,2,3
results[[target]]=
  cbind(y=predict(models[[target]],data[,1:4]),
        y0=data.yn[,target])
print(results[[target]])

Künstliche Neuronale Netze

Ein Künstliches Neuronales Netz (KNN) ist ein gerichteter Graph bestehend aus einer Menge von Knoten N und Kanten E die die Knoten verbinden

Knoten: Neuron oder Perzeptron mit einem oder mehreren Eingängen I und einem Ausgang o; Berechnungsfunktion g(I): I → o

Kanten: Gewichteter Datenfluss vom Ausgang eines Neurons zum Eingang eines anderen (oder des selben) Neurons

Ein KNN ist eine Komposition aus einer Vielzahl von Abbildungsfunktionen G=(g₁,g₂,..,gm). Es gibt Parallelen zu Regressionsverfahren mit Funktionen.

Zusammengefasst ausgedrückt:

image-placeholder
(7-19)

f ist eine Transferfunktion die die akkumulierten Eingangswerte auf den Ausgangswert o abbildet, und g ist dann die gewichtete und akkumulative Transferfunktion

Unterschied (künstliches) Neuron und Perzeptron:

Ein Neuron ist immer eine Elementarzelle

Ein Perzeptron kann ein einzelnes Neuron oder ein Netzwerk aus Neuronen beschreiben

Daher gibt es:

Single Layer Perceptron (SLP) → Nur Eingangs- Nx und Ausgangsneuronen Ny

Multi Layer Perceptron (MLP) → + Innere Neuronen Nd

Das Neuron

Abbildung 7-4. Ein einzelnes Neuron mit einem einzelnen Eingang *p* und einem Ausgang *o*. *w* ist ein Gewichtungsfaktor (ein Gewicht für eingehendes *p*) und *b* ist ein Bias (Offset) [15]

Das Mehreingangsneuron

Abbildung 7-5. Ein einzelnes Neuron mit einem Eingangsvektor ***p*** und einem skalaren Ausgang *o*. ***w*** ist ein Gewichtungsfaktorvektor (ein Gewicht für eingehendes *p*) und *b* ist ein Bias (Offset) [15]

Neuronale Netze und Matrizen

Neuronale Netze werden durch eine Graphenstruktur (statische Parameter) und mathematisch durch Matrizen (dynamische Parameter) beschrieben:

Abbildung 7-6. Ein einzelnes Neuron mit einem Eingangsvektor ***p*** und einem skalaren Ausgang *o*. ***w*** ist ein Gewichtungsfaktorvektor (ein Gewicht für eingehendes *p*) und *b* ist ein Bias (Offset); jetzt in Matrizenform (Annotation) [15]

Schichten von Neuronalen Netzen

I\.A. werden Neuronen von neuronalen Netzen in Schichten (Layer) angeordnet und gruppiert

Günstig für Matrixalgebra

Aber nicht notwendig!

[15]

Abbildung 7-7. Neuronales Netzwerk mit Neuronen in einer Schicht angeordnet

Struktur eines KNN

Abbildung 7-8. Grundlegende Struktur eines KNN mit Matrizen (blaue Ellipse=1 Neuron) [15]

Vereinfachte Form eines KNN

Abbildung 7-9. Vereinfachte Struktur eines KNN mit Matrizen [15]

Klassen von KNN

Vorwärtsgekoppelte Netzwerke

Azyklischer gerichteter Graph, d.h. es gibt nur eine Vorwärtspropagation von einer Schicht zur nächsten (keine Rückkopplung).

Diese Netzwerke können rein funktional beschrieben und berechnet werden.

Es gibt keinen Zustand!

D\.h. die aktuellen Ausgangswerte hängen nur von den aktuellen Eingangswerten ab!

Rückgekoppelte Netzwerke

Zyklischer gerichteter Graph, d.h. es gibt Rückkopplungen (Ausgang eines Neurons geht in Eingänge der aktuellen oder vorherigen Schichten).

Diese Netzwerke können nicht rein funktional beschrieben und berechnet werden!

Sie besitzen einen Zustand, d.h. der Ausgangswert hängt von der Historie vergangener Eingabewerte und Berechnungen ab!

Rückgekoppelte Netzwerke

Geeignet für Prädiktion auf zeit- und Datenserien D(t)=d₀,d₁,...,dt

Abbildung 7-10. Rückgekoppeltes und zustandsbehaftetes KNN mit einer Verzögerungsfunktion (Speicher) [15]

Transferfunktion

Auch Aktivierungsfunktion genannt (in Anlehnung an biologische Vorbild mit stark nichtlinearer Übertragungskennline)

Biologisch: Häufig eine Schwellwertfunktion

Künstlich / ML: Auch lineare Übertragunsfunktionen!

Es gibt eine Vielzahl verschiedener Funktionen

Die einfachste wäre (wenn auch wenig in Gebrauch): f(a)=a

Warum ist eine solche Übertragungsfunktion ungeeignet bzw. problematisch?

Welche mathematischen Eigenschaften (Übertragungskurve) sollte wohl eine Transferfunktion besitzen?

Zur Erinnerung: Wir nehmen an dass der Wertebereich von einem x ≈ [-1,1] ist. Ebenso für ein y ≈ [-1,1].

Transferfunktionen besitzen häufig begrenzende Eigenschaften (Sättigungsverhalten), und nicht lineares Übertragungsverhalten

Abbildung 7-11. Verschiedene gebräuchliche Transferfunktionen *f*(*a*) [15]

Ein einfaches Neuron - Funktional

image-placeholder
(7-20)

/webwork

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

Neuron

use math
function sigmoid(x) {
  1/(1+exp(-x))
}
logg(sigmoid(0))
data = as.data.frame(list(
  {x1=1,  x2=2,  y=1.0},
  {x1=-1, x2=2,  y=0.0},
  {x1=0,  x2=-1, y=0.0}
))
w = [1.0,1.0] b=0
function neuron(x1,x2,w,b) {
  accu = x1*w[1]+x2*w[2]
  sigmoid(accu+b)
}
logg(map(data,function (row) {
  {y=neuron(row$x1,row$x2,w,b),y0=row$y}
}))

Parametersatz des KNN

Statische Parameter

Anzahl der Eingangsneuronen (verbunden mit x), abhängig von der Anzahl der Eingabevariablen |x| und der Kodierung (numerisch vs. kategorisch)

Anzahl der Ausgangsneuronen (abhängig von der Kodierung). Bei numerischen Zielvariablen y gilt also: |Ny|=|y|

Anzahl der inneren verdeckten Neuronen |Nd| und deren Anordnung in Schichten

D\.h. die Konfiguration des Netwerks ist [c₁,c₂,..,cm] bei m Schichten und ci Neuronen pro Schicht

Bei vollständig verbundenen Schichten ist keine Angabe der Vernetzung notwendig

Dynamische Parameter

Im wesentlichen die Gewichtungsmatrix Wi (Schicht i):

image-placeholder
(7-21)

Mit S: Anzahl der Neuronen in der Schicht, R: Anzahl der Eingangsvariablen (oder Neuronen der vorherigen Schicht)

Der Ausgangswert eines Neurons nj ist dann gegeben durch einen Wert aus B und die j-te Zeile von W:

image-placeholder
(7-22)

Bei mehrschichtigen Netzwerken hat man eine Menge von Gewichtematrizen, die zu einem Tensor zusammengefasst werden können.

Training von KNN

Wie bei allen überwachten Lernproblemen gilt es eine Fehlerfunktion zu minimieren:

image-placeholder
(7-23)

Ziel ist die Minimierung des Fehlers unserer Modellhypothese M(x) durch Anpassung der Gewichtematrix W und evtl. (wenn vorhanden) des Offsetvektors B

Fehler

LS1

image-placeholder
(7-24)

LS2

image-placeholder
(7-25)

Es ist leicht zu erkennen dass das Training einen hochdimensionalen Parametersatz anpassen muss. Es ist nicht unmittelbar klar wie ein optimales W abgeleitet werden kann!

Erklärbarkeit

Der Zusammenhang von y und x (x → y) ist schon bei einem einschichtigen Netzwerk nur noch schwer nachvollziehbar!

Eine Invertierung (inverses Problem y → x) ist ebenso nur schwer möglich

Eigentlich ist nur ein einzelnes Neuron erklärbar und verständlich

Dort ist die Anpassung (des Gewichtungsvektors w) noch durch multivariate Regression möglich

Beispiel

Trainingsverfahren: Einfache Fehlerückpropagation

Problem: x=(a,b), y

Netzwerk: Ein Neuron, Sigmoid Transferfunktion

/webwork

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

Neuron

use math
function sigmoid(x) {
  1/(1+exp(-x))
}
logg(sigmoid(0))
data = as.data.frame(list(
  {x1=1,  x2=2,  y=1.0},
  {x1=-1, x2=2,  y=0.0},
  {x1=0,  x2=-1, y=0.0}
))
function neuron(x1,x2,w,b) {
  accu = x1*w[1]+x2*w[2]
  sigmoid(accu+b)
}
w = [1.0,1.0] b=0  rate=0.1 errors=c()
for(run in 1:10000) {
  row=sample(data,1)
  y=neuron(row$x1,row$x2,w,b) err=y-row$y
  if ((run %% 100)==0) { push(errors,abs(err)) print(abs(err)) }
  w[1]=w[1]-rate*err*row$x1
  w[2]=w[2]-rate*err*row$x2
}
logg(w)
logg(map(data,function (row) {
  {y=neuron(row$x1,row$x2,w,b),y0=row$y}
}))

Nichtlineare Probleme

SLP können nur lineare Probleme separieren.

Abbildung 7-12. Nichtlinear separierbare Probleme - nur mit MLP klassifizierbar [15]

/webwork

R

load('R.plugin')
var context = {}
setTimeout(function () {
	R.init({
		print		:	printAnswer,
		columns	:	80
	})
	evalUser = function (text) {
		var result = R.run(text,context)
		if (result) printError(result);
	}
	print("R loaded. "+R.version);
	R.run('library("math")\nlibrary("json")\nlibrary("plot")',context);
},500);

Neuron

use math
function sigmoid(x) {
  1/(1+exp(-x))
}
logg(sigmoid(0))
data = as.data.frame(list(
  {x1=0,  x2=0,  y=0.0},
  {x1=1,  x2=0,  y=1.0},
  {x1=0,  x2=1,  y=1.0},
  {x1=1,  x2=1,  y=0.0}
))
function neuron(x1,x2,w,b) {
  accu = x1*w[1]+x2*w[2]
  sigmoid(accu+b)
}
w = [1.0,1.0] b=0  rate=0.1 errors=c()
for(run in 1:10000) {
  row=sample(data,1)
  y=neuron(row$x1,row$x2,w,b) err=y-row$y
  if ((run %% 100)==0) { push(errors,abs(err)) print(abs(err)) }
  w[1]=w[1]-rate*err*row$x1
  w[2]=w[2]-rate*err*row$x2
}
logg(w)
logg(map(data,function (row) {
  {y=neuron(row$x1,row$x2,w,b),y0=row$y}
}))

Error Backpropagation Verfahren

Bekanntes und gängiges Verfahren

https://hmkcode.com/ai/backpropagation-step-by-step

Gradientenverfahren

Baut auf dem Minimierungsansatz "Gradient Descent" (GD) auf (Absteigender Gradient)

Beim GD Verfahren wird eine Funktion, z.B. f(x,w): x → y derart über den Parameter w angepasst so dass der Fehler err=|y-y₀| minimal wird

Es wird nun die Änderung des Fehlers beobachtet Δerr und der (oder später die) Parameter w mit der Ableitung des Fehlerwerts ∂err/∂w zu der Änderung des Parameters korrigiert:

image-placeholder
(7-26)

Zur Berechnung des Fehlergradientens wird die Ableitung der Transferfunktion benötigt.

Vereinfacht gilt aber (grobe Näherung):

image-placeholder
(7-27)

Jetzt wird ein neuronales Netzwerk betrachtet, wo die Neuronen ebenfalls Funktionen mit Eingangsvariablen und Ausgangsvariablen sind

Bei zusammengesetzten Funktionen (z.B. auch Neuronen in inneren Schichten) müssen die Gewichte schrittweise von hinten nach vorne angepasst werden

Abbildung 7-13. Beispiel eines ANN mit Kantengewichten und dem Ansatz der Backpropagation [hmkcode.com/ai/backpropagation-step-by-step]

Die Gewichte werden nun Schicht für Schicht unter Einbeziehung der gewichteten Fehlerpropagation gleichermaßen angepasst

Abbildung 7-14. Backpropagation des Fehlers zu den Eingängen des Beispielnetzwerkes [hmkcode.com/ai/backpropagation-step-by-step]

Der Einfluss des Ausgabefehlers bei der Rüchpropagation nimmt von Schicht zu Schicht ab. Daher sind mehrschichtige Netzwerke zunächst schwer/langsam (bis gar nicht) trainierbar.

Bei Transferfunktionen mit Sättigung (Clipping) kann es zu "toten" Netzwerknoten kommen,

d\.h. weder eine kleine Änderung am Eingang eines Neurons noch eine kleine Korrektur der Gewichte/des Bias führen zu einer Änderung des Ausgangswertes kommen (gesättigte Netzwerkknoten)

Eine weitere Fehlerpropagation wird dadurch verhindert

Ausweg: Randomisiertes Drop-out (Abschalten von Neuronen) und Suche nach gesättigten Neuronen mit anschließender Parameterkorrektur so dass der Ausgang der Transferfunktion in den Arbeitsbereich verlegt wird!

Kategorische Multiklassen Probleme

Wenn die Ergbnisvariable vom kategorischen Typ ist dann gibt es zwei Möglichkeiten:

One-Hot Kodierung

Jedes Klassensymbol (also ein diskreter Wert vi der Zielvariable y) wird durch ein Ausgangsneuron repräsentiert

Multi-level Kodierung

Jedes Klassensymbol wird durch einen Wert aus dem Wertebereich eines Ausgangsneurons repräsentiert

Problem: Nicht lineare Transferfunktion und Sättigungsverhalten

Die gleichen Verfahren sind auch auf kategorische Eingabevariablen anwendbar

Numerische Prädiktorfunktionen

Neben der Klassifikation lassen sich mit ANN auch numerische (kontinuierliche) Funktionen lernen

Damit wird Funktionsapproximation wie bei den Regressionsverfahren möglich

Unterschied: Bei der Regression ist die funktionale Struktur von f(x): x → y bereits fest und muss vorgegeben sein

Die Verwendung eines ANN bietet da auch noch indirekt das Lernen der funktionalen Strukturen neben der Anpassung der Parameter

Es können auch mehrdimensionalen Vektorfunktionen (also mit mehreren Ausgabevariablen) approximiert werden durch:

Mehrere Ausgangsneuronen (gekoppeltes Netzwerk)

Mehrere Netzwerke mit jeweils einem Ausgangsneuron (entkoppelte Netzwerke)

Die Wahl der Transferfunktion muss sorgfältig geschehen. Nichtlinearitäten der Transferfunktionen in den Randbereichen des Übertragungsbereichs muss berücksichtigt oder genutzt werden.

Die Sigmoid (Log Rregression) Funktion ist abschnittsweise linear - ähnlich einem elektronischen Operationsverstärker ⇒ Analoge Rechner!!

Begrenzung/Sättigung schränkt den Lösungsraum ein (gewollt!)

Literatur zur Vertiefung

[1] M. T. Hagan, howard B. Demuth, M. H. Beale, and O. D. Jesus, Neural Network Design. https://hagan.okstate.edu/nnd.html

[Sugiyama, ItSML, pp 303]

Zusammenfassung

Regressionsverfahren werden auf kontinuierliche Zielvariablen angewendet (der Hypothesenraum kann bei nichtlinearen Problemen sehr groß werden)

Eine SVM wird als binärer Klassifikator verwendet und wird i.A. durch eine lineare Funktion (Kernel) repräsentiert

Das Problem sollte dann linear separierbar sein!

Multiklassenprobleme werden auf Multi-SVMs zurückgeführt

Verwendung einer Softmax Funktion für eindeutige Klassentrennung

Das Training einer SVM ist ein Minimierungsproblem dass den Trennbereich maximiert und den Fehler minimiert

Neuronale Netze bestehen aus Neuronen

Neuronen sind zusammengesetzte Funktionen: Produktsummation und Transferfunktion

Die Kanten verbinden Ausgänge von Neuronen mit den Eingängen nachfolgender Neuronen mit einer Multiplikation eines Gewichtfaktors

Alle Eingänge eines Neurons werden summiert, das Ergebnis einer Transfer/Aktivierungsfunktion übergeben (reduktion eines Vektors auf Skalar)

Training ist ein Minimierungsproblem und bedeutet Anpassung der Gewichte um den Ausgangsfehler zu minimieren

Gängiges Verfahren: Fehlerrückpropagation und Fehlergradient

Abbildung 7-15. Zusammenstellung von sechs unterschiedlichen Netzwerkarchitekturen. Der Name der Architektur steht über der Grafik, darunter folgt der hauptsächliche Anwendungsbereich. [20]

Zustandsbasierte Netze

Bisher wurden nur "vorwärtsgerichtete" ANN betrachtet (Feed forward/ FF-ANN)

Die Ausgänge von FF-ANN hängen nur von aktuellen Eingängen ab!

Rückgekoppelte ANN (Recurrent / RNN) besitzen Zustand und Gedächtnis!

Eignung für Daten- und Zeitserienprädiktion!

Wiederholung: FF-ANN

Ein vorwärtsgekoppeltes ANN (Feed forward) besteht aus Neuronen die jeweils durch Funktionen f(i):i → o repräsentiert werden können.

Die Funktionen f werden als azyklischer gerichteter Graph dargestellt (also das NN), d.h., kein Neuron hat ein Eingangssignal von nachfolgenden Neuronen (die das Ausgangssignal dieses Neurons enthalten)

D.h: Das aktuelle Ausgangssignal y eine FF-ANN hängt nur von den aktuellen Eingangssignalen x ab!

Recurrent ANN: Die Rückkopplung

Ausgänge von Ausgangs- oder inneren Neuron werden auf Eingänge von vorherigen Neuronen gekoppelt

Dadurch werden die Netzwerke zustandsbasiert, d.h., die aktuellen Ausgänge hängen neben den aktuellen Werten der Eingänge von der Historie der Werte von Ein- und Ausgängen ab!

Recurrent ANN (RNN) sind durch hohe "Instabilität" schwierig mit gradientenbasierten Verfahren zu trainieren!

Daher im Laufe der Zeit verbesserte Architekturen wie LSTM oder GRU Netzwerke

LSTM Netzwerke

Long-short-term Memory (LSTM) Netzwerke bilden eine bekannte Architektur die:

Für die Daten- und Zeitserienprädiktion verwendbar sind

Mit gradientenbasierten Trainingsverfahren einigermaßen stabil (konvergent) trainiert werden können

Daten- und Zeitserien

Es sei {xn}t eine Serie von Eingabedaten (z.B. zeitaufgelöstes Sensorsignal einer Ultraschallmessung), d.h. {xn}={x₁,x₂,..,xt}

Die einzelnen Werte (skalar oder vektoriell) sind aufeinander folgend → Ordnungsrelation

image-placeholder
(8-1)

Abbildung 8-1. Datenserie und Prädiktion *s*(*n*+δ)

Neben der Prädiktion von "zukünftigen" Entwicklungen einer Variable xi kann auch eine zukünftige Prognostik einer anderen Zielvariable yi erfolgen:

image-placeholder
(8-2)

Etwaige Zielvariablen könnten aus dem Signal abgeleitete Eigenschaften (Merkmale) sein:

Schadensinformation

Änderung einer zweiten Sensorvariable

Zustandsvariable

Veränderung von Betriebsbedingungen

Prozessparameter

Netzwerkarchitekturen

Abbildung 8-2. (Oben) Die Datenserie kann sequentiell (in ein RNN/LSTM) oder auch (Unten) parallel in ein FNN eingegeben werden

LSTM Zelle

Eine LST Zelle besteht aus:

Einer "Speicherzelle"

Mehreren Gattern die aktiv Verbindungen (Kanten) zwischen Neuronen steuern, d.h., effektiv das Kantengewicht in Abhängigkeit von Ausgangswerten von Neuronen verändern /Ventile/

Ein wichtige Rolle bei der Speicherung vergangener Daten (Gedächtnis) ist das Vergessen gesteuert durch das "Forget Gate"

Beispiel für eine "gedämpfte" Gedächtnisfunktion: Ein Tiefpassfilter 1. Ordnung

image-placeholder
(8-3)

Der Parameter β=(0,1) bestimmt den Einfluss neuer Werte x und der Parameter α=(0,1) bestimmt den Einfluss alter Werte (Vergessen); i.A. α=1-β

Abbildung 8-3. Aufbau einer LSTM Zelle mit zentraler Speicherzelle (Neuron) und den Gattern

LSTM Demo

Lernen einer Prädiktorfunktion für Datenserien nach der Sinusfunktion mit LSTM Netzwerk:

image-placeholder
(8-4)

Für jedes δ={1,2,..,m} muss eine eigene Prädiktorfunktion fδ erzeugt und trainiert werden

Konfiguration des Netzwerks: [1,l,1], wobei l={1,2,..} die Anzahl der LSTM Zellen in der inneren Schicht ist.

/webwork

data

delta=5;
dataI=Array.sequence(0,99);
dataX=Math.Matrix(100,2).map(function (v,i,j) {
  if (j==0) v=1+Math.sin((i)/5);
  else      v=1+Math.sin((i+delta)/5);
  return v/2;
});
dataN=ML.preprocess(dataX.data,'io',{ features:[0], target:[1] })
Plot({x:dataI,y1:dataX.pluck(0),y2:dataX.pluck(1)},{type:'line'})

model

model = ML.learner({
 algorithm : ML.ML.ANN,
 architect : 'LSTM',
 layers    : [1,1,1],
    // outputToMemory:true,
    //memoryToMemory:true,
    // outputToGates:true,
    // inputToOutput:false,
    // inputToDeep:false,
})

train

ML.train(model,
  dataN,
  {
      error    : 0.00001,
      rate     : 0.1,
      // ratePolicy:ML.ANN.methods.rate.STEP(0.9,100),
      momentum     : 0, // 0.5,
      iterations   : 10000,
      dropout      : 0,
      // shuffle:true,
      // batchSize : 20,
      clear:true,
      verbose: true,
      // crossValidate : { testSize: 0.2, testError: 0.0002 },
  });
print('Done. ('+model.time+' ms)')

test

var results = ML.predict(model,
                 dataX.pluck(0).wrap())
Plot({x:dataI,
      y1:results.unwrap(),
      y2:dataX.pluck(1)},{type:'line'})

Zusammenfassung

Diskrete Daten- und Zeitserien x(i) kommen in der Mess- und Prüftechnik als Sensorsignal häufig vor, aber auch bei

Wirtschaftsdaten (Aktienkurse), Wetterdaten, Klimadaten, usw.

Die Vorhersage von unbekannten zukünftigen Datenwerten aus historischen bekannten Datenwerten erfordert zustandsbasierte Prädiktorfunktionen sofern es

keinen ausgewiesenen Start- und Endpunkt gibt (also sequentielle Aktivierung von M).

Gibt es ausgewiesene Start- und Endpunkte der Serie kann auch eine zustandslose Prädiktorfunktion verwendet werden (parallele Aktivierung einer Auswahl von Datenpunkten)

Die Long Short Term Memory Zelle ist eine bekannte Architektur für eine RNN PF mit Zustand (Speicher)

Problem beim Trainieren von RNN ist Instabilität und der Zustandsspeicher (wirkt sich auf Fehlerberechnung ungünstig aus)

Faltungsnetzwerke (CNN)

Faltungsnetzwerke vereinigen KNN mit mathematischen Faltungsoperationen die typischerweise auf Bilddaten angewendet werden

Bisher waren die Eingangsvariablen von Prädiktornmodellen unmittelbar mit Merkmalen verknüpft (Ausnahme: Datenserien!)

Bei der Bilderkennung möchte man häufig Objekte (also geometrische Strukturen) in Bildern finden. Diese können aber an beliebigen Stellen im Bild vorhanden sein

Die Merkmale sind nicht mehr einzelnen Variablen zuzuordnen.

Daher werden kleine Faltungsoperationen auf das gesamte Bild angewendet, die erst die Merkmale extrahieren.

Beispiele

Handschriftenerkennung

Schadensdiagnostik (Bildaufnahmen, Röntgentomographie, usw.)

Zeitaufgelöste Frequenzspektren (Datenexpansion von Zeitsignalen!)

Bestimmung von Region of Interest Bereichen

Abbildung 9-1. Beispiel aus dem MNIST Datensatz von handgeschriebene Ziffern und Buchstaben. Beispiele bei denen die Ziffernbilder nur schwer zu klassifizieren sind. [20]

Daten

Man unterscheidet:

Vektoren (1D)

Matrizen (2D)

Tensoren (3d), wobei Tensoren mathematisch mehr sind als Vektoren von Matrizen!

Abbildung 9-2. Vektor, Matrix und Tensor mit beliebigen reellen Zahlen. Die Eingaben für tiefe neuronale Netze werden meist in dieser Form kodiert. Man kann auch die Dimension zu der Bezeichnung hinzufügen. Im Bild haben wir einen 5-Vektor, eine 3 × 5-Matrix und einen 3 × 3 × 5-Tensor. [20]

Klassifikationsproblem

Auch bei der Objekterkennung in Bildern handelt es scih häufig um diskrete Klassifikationsprobleme.

Sinnvoll ist aber neben eine binären Ausgabe (Klasse ja/nein) die Ausgabe eine kontinuierlichen Wertes im Bereich [0,1], als eine Art Bewertungsskala (Wahrscheinlichkeitsmaß)

Abbildung 9-3. Die Prognose berechnet mit dem Modelloperator für ein Trainingsbeispiel (x,y)(i) aus der Eingabe x einen Wahrscheinlichkeitsvektor p mit den Wahrscheinlichkeiten der verschiedenen Klassen (Ziffern). Ziel ist es, für die beobachtete Klasse y (z.B. „zwei“) eine möglichst hohe Wahrscheinlichkeit zur prognostizieren. Die Prognose des Modells hängt von einem Parametervektor w ab. [20]

Faltungsoperation

Abbildung 9-4. Erster Berechnungsschritt (links) und zweiter Berechnungsschritt (rechts) in der Faltungsschicht für jeweils einen verschobenen kleinen Bereich der Eingabematrix. Dabei wird der Kernel sukzessive über die gesamte Eingabematrix „geschoben“ und die Ergebnismatrix gefüllt [20]

Convolutional Neural Networks (CNN)

Ein CNN ist aus verschiedenen Schichten (Ebenen) zusammengesetzt:

Faltungsebenen

Zusammeführungs (pooling) Ebenen

Ausgabe durch Klassifikationsebenen (softmax)

Abbildung 9-5. Eine Faltungsschicht enthält k Kernel und k Ergebnismatrizen, welche jeweils zu Tensoren zusammengefasst werden [20]

Abbildung 9-6. Allgemeiner Aufbau eines CNN mit wechselnden Schichten aus Faltungen, Zusammenführung, und schließlich binärer Klassifikation [https://towardsdatascience.com]

Abbildung 9-7. Je nach Anzahl der Strukturmerkmale kann es eine große Anzahl folgender Faltungs- und Zusammenführungsschichten geben [https://towardsdatascience.com]

Zusammenfassung

CNN sind geeignet um ortsunabhängig verschiedene Strukturmerkmale in den Daten zu klassifizieren

Ein CNN beruht auf Matrixalgebra mit Faltungsoperationen

Zum Nachlesen: https://towardsdatascience.com/covolutional-neural-network-cb0883dd6529?gi=521747216671; G. Paaß, Künstliche Intelligenz, Was steckt hinter der Technologie der Zukunft?, Springer

Bekanntes Softwareframework für den Browser: convnet.js https://cs.stanford.edu/people/karpathy/convnetjs

Inverse Modellierung

Meistens kann ein Modell M(X):X → Y empirisch bestimmt werden

Häufig ist das inverse Modell von Bedeutung: M⁻¹Y: Y → X!

ML bietet Möglichkeit "Prädiktives Modellieren"

Aber wie kann man M⁻¹ aus M ableiten?

Inverse Funktionen: Analytische und numerische Ableitung

Gegeben sei eine Funktion f(x): ℝ → ℝ: x → y, z.B.

f(x)₁: y = x+a

f(x)₂: y = x²+a

f(x)₃: y = sin(x)

Die Bestimmung der inversen Funktion kann häutig durch einfache algebraische Umformung generell und exakt berechnet werden:

f⁻¹(y)₁: x = y-a

f⁻¹(y)₂: x = { √(y-a),-√(y-a) }

f⁻¹(y)₃: x = arcsin(y)

Schon bei der zweiten Funktion gibt es mehr als eine Lösung, und die inverse Sinusfunktion kann nicht exakt analytisch berechnet werden sondern benötigt eine Approximation durch eine geometrische Reihe:

image-placeholder
(10-1)

Inverse Probleme sind nicht trivial (zu lösen)!

Wie sieht es bei multivariaten Funktionen aus?

Multivariate Funktionen

Eine Funktion f: ℝn → ℝ stellte ein Informationskompression dar;

Aber i.A. als irreversible Reduktion (Informationsverlust)!

Die Inversion einer Funktion f: ℝn → ℝ ergibt eine große Menge an Lösungen da:

f⁻¹(y) : ℝ → ℝn (Informationsexpansion bzw. Dekompression)

Die Lösungsmenge kann unendlich groß sein!

Beispiel: f(x₁,x₂): y=x₁+x₂

(Unendlich viele) Lösungen für y=0: x={ (0,0),(-1,1),(-2,2),(-3,3),... }

Einschränkung des Eingabe- und Lösungsraums

Intervallarithmetik → D.h. eine Variable x wird nur in einem Intervall [a,b] betrachtet (und f)

Diskretisierung des Intervalls; [a,b] → { a, a+δ , a+2δ ,.., b}

Randbedingungslösen

Wenn für alle Eingabevariablen und ebenso für die Zielvariable diskrete Werte in einem endlichen Bereich liegen könnten man das Inversionsproblem durch einen Randbedingungslöser (Constraint Solving Problem) lösen

Aber auch dieser Ansatz liefert entweder viele oder nur eine Auswahl an Lösungen

Beispiel eines Erfüllbarkeitsproblems über relationale Ausdrücke:

 1: Problem
 2: f(x₁,x₂) = y = x₁+x₂
 3: x₁ = { 1,2,3 }
 4: x₂ = { 1,2,3 }
 5: y  = { 2,3,..,6 }
 6: Randbedingungen
 7:   x₁ ≥ 1 ∧ x₁ ≤ 3
 8:   x₂ ≥ 1 ∧ x₂ ≤ 3
 9:   x₁ = 1 ∨ x₁ = 2 ∨ x₁ = 3
10:   x₂ = 1 ∨ x₂ = 2 ∨ x₂ = 3
11:   y = x₁+x₂

/webwork

csp

var m = CSP.solver({algorithm:CSP.CSP.SIMPLE})
var y = 5
// y=x1+x2 => y^-1
CSP.V(m,'x1',CSP.range(1,3))
CSP.V(m,'x2',CSP.range(1,3))
CSP.C(m,'x1','x2',function (x1,x2) { return (x1+x2)==y })
CSP.C(m,'x1',null,function (x1)    { return x1 > 0 && x1 < 4 })
CSP.C(m,'x2',null,function (x2)    { return x2 > 0 && x2 < 4 })
print(CSP.solve(m))

Das Single Layer Perceptron

Abbildung 10-1. Ein SLP (künstliches Neuron) besteht aus zwei verbundenen Funktionsblöcken (Summierer und Aktiverungsfunktion)

Inverses Problem ML: Naiver Lösungsansatz

Datentabelle

Problem: Die Inversion der Datentabelle liefert einzelne Dateninstanzen

Ziel: Das Modell M soll repräsentativ und generalisierbar sein

Daher: Auch M⁻¹ sollte möglich nur repräsentative Eingabevektoren liefern

Mittelwertbildung der Dateninstanzen und deren Variablen wenig hilfreich!

Zwei Instanzen: x=Sonnig, x=Regen ⇒ x=(Sonnig+Regen)/2=wolkig???

Majoritäten könnten repräsentative Variablenwerte ergeben!?

Inverses Problem ML: Entscheidungsbaum

Ein empirisch gelernter Entscheidungsbaum kann ein generalisiertes Modell sein M(x): x → y

Die Invertierung geschieht durch Rückwärtsiteration startend bei allen Endknoten (Blättern) mit yi=y

Es wird i.A. mehr als eine Lösung geben (Repräsentanz?)

Die Frage ist die Ableitung des resultierenden Variable x aus den Knoten

Bei kategorischen Variablen triviales und eindeutiges Problem

Bei numerischen Variablen und einem relationen Baum mit N(x)={ x < ε, x ≥ ε } ist gerade der Teilungswert ε nicht repräsentativ (Rand!!)

Abbildung 10-2. Invertierung eines relationalen und annotierten Entscheidungbaumes (s: Mittelwert der Partition der Variable)

Invertierbare ANN

https://hci.iwr.uni-heidelberg.de/vislearn/inverse-problems-invertible-neural-networks/

Ausgangspunkt: Ein- und Ausgabedaten besitzen die gleiche Dimension!

Invertierbare Netzwerkstruktur

Es wird ein übergeordnetes reversibles Berechnungsnetzwerk eingeführt (Affine Kopplungsschicht)

Abbildung 10-3. Die Eingabedaten werden augespalten und durch die gelernten Funktionen *s*~i~ und *t*~i~ transformiert und in Wechselanordnung gekoppelt. Die Ausgabe ist die Verkettung der resultierenden Teile [v1,v2]. ⊙ - Elementweise Multiplikation

Invertierung

Abbildung 10-4. Invertierung des Netzwerks. Mit einer Umschaltung kö aus [v1,v2] wiederhergestellt werden, um die Umkehrung der gesamten affinen Kopplungsschicht zu berechnen. ∅ - Elementweise Division

Entscheidend ist, dass die Transformationen si und ti selbst nicht invertierbar sein müssen und durch beliebige neuronale Netze dargestellt werden können, die durch standardmäßige Backpropagation entlang des Berechnungsgraphen trainiert werden.

Mehrdeutige Abbildungen

D.h. die Eingabedimension ist wie üblich viel größer als die Ausgabedimension!

Die Inversion erzeugt Mehrdeutigkeit bei der Abbildung y → x.

Dimensionsreduzierende Abbildung x → y

Mehrdeutigkeit zwischen y und x

Transformation in Bijektive Abbildungen

Eine zusätzliche latente Variable z wird eingeführt, die die Information erfasst, die sonst im Forward-Prozess verloren gehen würde. Folglich, x ↔ [y,z] wird eine bijektive Zuordnung.

Abbildung 10-5. Durch zusätzliche latente Variable *z* wird die inverse Abbildung "vervollständigt"

Abbildung 10-6. *z* muss unabhängig von *y* sein und muss einer einfachen Stichprobenverteilung *N*(0,1) folgen.

Beide Bedingungen können mit einem maximalen mittleren Diskrepanzverlust (MMD) erreicht werden, die mit zwei Verteilungen übereinstimmt durch Vergleich von Stichproben.

Die Verteilung p(x|y) kann angenähert werden, indem einfach wiederholt z abgetastet wird und die rückgerichtete Berechnung des Netzwerks durchgeführt wird, d.h. [y,z] → x.

Aus p(x|y) wird in eine deterministische Funktion x=f(y,z) mit der "verrauschten" Variable z.

Zusammenfassung

Das Training von Vorwärtsmodellen ist ein Standardverfahren

Häufig - gerade auch in den Materialwissenschaften - ist man an Rückwärtsmodellen interessiert, d.h. die Invertierung der aus empirischen Daten algorithmisch gelernten Modelle

Die Inversion ist schwierig durch Mehrdeutigkeit der Abbildung

Variablenintervalle und Wertdiskretisierung können das Inversionsproblem auf Randbedingsungslösen reduzieren und lösbar machen

Inversion von ANN benötigt eine übergeordnete bidirektionale und umschaltbare Netzwerkstruktur