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