Maschinelles Lernen und Datenanalyse

In der Mess- und Prüftechnik

PD Stefan Bosse

Universität Bremen - FB Mathematik und Informatik

1 / 34

Klassifikation mit Künstlichen Neuronale Netze

Zielvariablen: Numerische Variablen

Eigenschaftsvariablen: Numerische Variablen

Modell: Gerichteter Graph (zyklisch oder azyklisch)

Training und Algorithmen: Backpropagation

Klasse: Überwachtes Lernen

2 / 34

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): Io
    • Kanten: Gewichteter Datenfluß vom Ausgang eines Neurons zum Eingang eines anderen (oder des selben) Neurons

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

3 / 34

  • Zusammengefasst ausgedrückt:

M(X):XY,X={xi},Y={yj}KNN=Nx,Nd,Ny,ENx={ni:ni{xj}},Nd={nd},Ny={nk:nkyk}n=g(p,w,b):po=f(iwipi+b)E={eij:ninjwij} 

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

  • 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
5 / 34

Das Neuron

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

6 / 34

Das Mehreingangsneuron

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

7 / 34

Neuronale Netze und Matrizen

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

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

8 / 34

Schichten von Neuronalen Netzen

  • I.A. werden Neuronen von neuronalen Netzen in Schichten (Layern) angeordnet und gruppiert
    • Günstig für Matrixalgebra
    • Aber nicht notwendig!

15

Neuronales Netzwerk mit Neuronen in einer Schicht angeordnet

9 / 34

Struktur eines KNN

15 label Grundlegende Struktur eines KNN mit Matrizen (blaue Ellipse=1 Neuron)

10 / 34

Vereinfachte Form eines KNN

15 label Vereinfachte Struktur eines KNN mit Matrizen

11 / 34

Klassen von KNN

Forwä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!
12 / 34

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 Netzwerk können nicht rein funktional beschrieben und berechntet werden!
  • Sie besitzen einen Zustand, d.h. der Ausgangswert hängt von der Historie vergangener Eingabewerte ab!
13 / 34

Rückgekoppelte Netzwerke

  • Geeignet für Prädiktion auf zeit- und Datenserien D(t)=d0,d1,...,dt

15 label Rückgekoppeltes und zustandsbehaftetes KNN mit einer Verzögerungsfunktion (Speicher)

14 / 34

Transferfunktion

  • Auch Aktivierungsfunktion genannt (in Anlehnung an biologische Vorbild)

    • 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?

15 / 34

  • 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].
16 / 34

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

15 label Verschiedene gebräuchliche Transferfunktionen f(a)

17 / 34

Ein einfaches Neuron - Funktional

fsigmoid(a)=11+eag(x1,x2,x3)=fsigmoid(b+wixi)

18 / 34

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 Netwerkes ist [c1,c2,..,cm] bei m Schichten und ci Neuronen pro Schicht

19 / 34

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

Dynamische Parameter

  • Im wesentlichen die Gewichtematrix Wi (Schicht i):

Wi=⎢ ⎢ ⎢ ⎢ ⎢w1,1w1,2w1,Rw2,1w2,2w2,RwS,1wS,2wS,R⎥ ⎥ ⎥ ⎥ ⎥,Bi=⎢ ⎢b1bS⎥ ⎥

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

20 / 34

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

o(p)=f(jWTp+bi)

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

Training von KNN

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

M(x):xyargminWerr(M)=|y(x)y0(x)|,(x,y0)D

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

22 / 34

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 (xy) ist schon bei einem einschichtigen Netzwerk nur noch schwer nachvollziehbar!
  • Eine Invertierung (inverses Problem yx) ist ebenso nur schwer möglich
  • Eigentlich ist nur ein einzelnes Neuron erklärbar und verständlich
    • Dort ist die Anpassung (des Gewichtevektors w) noch durch multivariate Regression möglich
23 / 34

Beispiel

  • "Gradient Descent" Verfahren
  • Problem: x=(a,b), y
  • Netzwerk: Ein Neuron, Sigmoid Transferfunktion
24 / 34

Nicht lineare Probleme

SLP können nur lineare Probleme separieren.

15 label Nicht linear separierbare Probleme - nur mit MLP klassifizierbar

25 / 34

26 / 34

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): xy derart über den Parameter w angepasst wird dass der Fehler err=|y-y0| minimal wird

27 / 34

  • 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:

w=wαerrw

  • Vereinfacht gilt:

errwx(yy0)

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

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

hmkcode.com/ai/backpropagation-step-by-step Beispiel eines ANN mit Kantengewichten und dem Ansatz der Backpropagation

29 / 34

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

hmkcode.com/ai/backpropagation-step-by-step Backpropagation des Fehlers zu den Eingängen des Beispielnetzwerkes

30 / 34

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
31 / 34

Numerische Prädiktorfunktionen

  • Neben der Klassfikation 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): xy 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
32 / 34

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

33 / 34

Zusammenfassung

  • Neuronale Netze bestehen aus Neuronen

  • Neuronen sind Funktionen

  • 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

  • Training bedeutet Anpassung der Gewichte um den Ausgangsfehler zu minimieren

    • Gängiges Verfahren: Fehlerrückpropagation
34 / 34