Künstliche Neuronale Netze und Deep Learning

Werbung
Künstliche Neuronale Netze und Deep Learning
Christian Borgelt
Sommer 2017
ab 2017.07.11
6. Übungsblatt
Aufgabe 35
Hopfield-Netze: Lösen von Optimierungsproblemen
Gegeben sei eine Folge F = (a1 , a2 , . . . , an ) ganzer Zahlen. Wir nehmen vereinfachend
an, daß mindestens eine dieser Zahlen nicht negativ ist. Gesucht ist die maximale
Teilsumme dieser Folge, d.h. das Maximum der Summen von Teilfolgen der Folge F ,
wobei wir unter einer Teilfolge der Folge F eine Folge Fij = (ai , ai+1 , . . . , aj ) mit
1 ≤ i ≤ j ≤ n verstehen. Wir suchen also
mts(F ) = max
1≤i≤j≤n
j
X
ak .
k=i
Konstruieren Sie ein Hopfield-Netz zur Lösung dieses Optimierungsproblems!
(Hinweis: Sie müssen eine geeignete Energiefunktion finden.)
Aufgabe 36
Schwellenwertelemente: Darstellung Boolescher Funktionen
In der Vorlesung wurde ein Algorithmus besprochen, mit dem man zu einer beliebigen Booleschen Funktion y = f (x1 , . . . , xn ) ein Netz aus Schwellenwertelementen
konstruieren kann, das diese Funktion berechnet. Dieser Algorithmus basierte auf der
Darstellung der Booleschen Funktion in disjunktiver Normalform. Geben Sie einen dualen Algorithmus an, der auf der Darstellung der Booleschen Funktion in konjunktiver
Normalform beruht!
Aufgabe 37
Deep Learning: n-Bit Parität
In der Vorlesung wurde gezeigt, wie die n-Bit Parität durch eine Kette aus Teilnetzen
berechnet werden kann, dessen erstes die Biimplikation und deren restliche n − 2 das
Exklusive Oder berechnen. Zeigen Sie, wie die n-Bit Parität auch durch einen binären
Baum von Teilnetzen berechnet werden kann, die jeweils die Biimplikation berechnen!
Wie viele Schichten hat das sich ergebende Netzwerk (als Funktion von n)? Wie viele
Neuronen hat es insgesamt (als Funktion von n)?
Aufgabe 38
Deep Learning: Autoencoder
Ein Autoencoder ist, wie in der Vorlesung besprochen, ein dreischichtiges Perzeptron
mit so vielen Ausgabe- wie Eingabeneuronen, das seine Eingaben auf (eine Rekonstruktion) diese(r) Eingaben abbilden soll. Wir nehmen an, daß sowohl in der versteckten
Schicht als auch in der Ausgabeschicht die Aktivierungsfunktion ein gleichgerichtetes
Maximum (rectified maximum) bzw. eine Rampenfunktion ist und daß weder DropoutTraining noch eine Begrenzung der Zahl der aktiven Neuronen verwendet wird. Warum
ist es in diesem Fall unangebracht, in der versteckten Schicht genausoviele Neuronen
zu verwenden wie in der Eingabe- bzw. Ausgabeschicht?
(Hinweis: Überlegen Sie, mit welchen (sehr einfachen) Parametern so ein Netz die Eingaben unverändert auf die Ausgaben abbilden kann.)
Aufgabe 39
Convolutional Neural Networks
In der Bildverarbeitung werden Graustufenbilder oft als zweiparametrige Funktion
f (x, y) dargestellt (x und y: Koordinaten eines Bildpunktes, Funktionswert: Graustufe
des Bildpunktes) und als Matrix beschrieben. Es sei das folgende Bild A gegeben:

A=









0
0
0
0
0
0
0
10
10
10
10
0

0 0 0 0
10 10 10 0 


10 10 10 0 

10 0 0 0 


10 0 0 0 
0 0 0 0
Convolutional Neural Networks sind in der Lage, Bilddaten effizient und unabhängig
von Position und Rotation in den Bildern sichtbarer Objekte zu verarbeiten. Hierfür
werden sogenannte Kernfunktionen (kernel functions) verwendet, welche mit Ausschnitten der Bildmatrix verrechnet (mit dem Bild gefaltet) werden. Die berechneten
Faltungsmerkmale (convolved features) dienen dann zur Erkennung von Objekten.
Ein mögliches Faltungsmerkmal ist das Vorliegen einer Kante. Nimmt man an, daß
an einer Kante die Helligkeit stark wechselt, so kann man Kanten an den Extremwerten
der ersten Ableitung der Bildfunktion f erkennen. Auf dieser Idee beruht der sogenannte Sobel-Operator, der aus zwei Teiloperatoren/Kernfunktionen besteht, nämlich

Sx = 

1
2
1

0 −1
0 −2 

0 −1

und

1
2
1

0
0 
Sy =  0
.
−1 −2 −1
a) Berechnen Sie die Faltungsmerkmale Gx und Gy durch ausschnittweise Multiplikation (Faltung) der Operatoren Sx und Sy mit der Matrix A, d.h. Gx = Sx ∗ A
und Gy = Sy ∗ A!
b) Aus den erhaltenen richtungsabhängigen Matrizen Gx und Gy soll eine richtungsunabhängige Matrix G erstellt werden. Dazu werden die Einträge von Gx und Gy
jeweils quadriert,
dann aufsummiert und aus dem Ergebnis die Wurzel gezogen,
q
d.h. G = G2x + G2y . Berechnen sie die Matrix G mit Hilfe der Teilergebnisse
aus Aufgabenteil a) und beschreiben sie das Endergebnis!
Aufgabe 40
Rekurrente Neuronale Netze: Lissajous-Kurven
Als Lissajous- oder Bowditch-Kurve bezeichnet man den Graphen eines Systems aus
zwei parameterischen Gleichungen
x = a sin(ω1 t + δ)
und
y = b sin(ω2 t).
Bestimmen Sie ein rekurrentes neuronales Netz, das Lissajous-Kurven (näherungsweise)
berechnet! Wie gelangen die Amplituden a und b und die Phaseverschiebung δ in das
System? (Hinweis: Erinnern Sie sich an das in der Vorlesung behandelte rekurrente
Netz zur Berechnung der Bewegung einer Masse an einer Feder.)
Herunterladen