Warum ist dieses Wissen wichtig? Neuronale Netze werden in Algorithmen der Bioinformatik eingesetzt, wenn ein Muster aus Trainingsdaten erlernt werden soll. Neuere Ansätze, die auf tiefem Lernen beruhen, habe in letzter Zeit enorme Bedeutung z. B. bei der Strukturvorhersage erlangt. Für den Einstieg ist es zunächst wichtig, verstanden zu haben, wie Neuronen das Ausgangssignal bilden und wie sie verschaltet werden. Ist die Architektur festgelegt, müssen die Gewichte in der Trainingsphase "erlernt" werden.

Ein alternatives Konzept zum Entwickeln von Klassifikatoren sind Support-Vektor-Maschinen. Zentrales Element ist die Kernelfunktion, mit der Eingabedaten in einen meist hochdimensionalen Raum transformiert. Hierbei ist das Ziel, die lineare Separabilität der Eingabedaten zu erreichen.
Bezug Diese Übungen ergänzen das Kapitel 7 "Neuronale Netze" und 17 "Support-Vektor-Maschinen".

Lernziel

Nach dem Bearbeiten der Übung sollten Sie
  • den Einfluss der Gewichte auf das Verhalten von Perzeptrons,
  • Voraussetzungen für die Lösbarkeit von Problemen
angeben können.
   
Übung NN_1, NOR-Funktion
   
  Häufig wird vor dem Trainieren die Anzahl der Eingänge und die Architektur der Schichten vorgegeben.
Das Implementieren von Boolschen Funktionen ist aufgrund der Einfachheit der Problemstellung ein gut geeignetes Beispiel, um den Umgang mit neuronalen Netzen zu üben. Einfaches Nachdenken genügt, um zunächst die Architektur und dann die Gewichte festzulegen.
Eine relativ einfache Boolsche Funktion ist die NOR-Funktion, deren Wahrheitstabelle hier folgt:
   
x1 x2 y
0 0 1
0 1 0
1 0 0
1 1 0
NOR
  Wahrheitstabelle für die
NOR-Funktion.
   
 
Spezifizieren Sie ein Perzeptron zur Berechnung der NOR-Funktion.
   
Hinweise Überlegen Sie sich zunächst, wie viele Eingänge benötigt werden. Achten Sie insbesondere auf die "1", die ausgegeben werden muss, wenn an beiden Eingängen eine "0" anliegt.

Wenn Sie die Architektur festgelegt haben, sollte es relativ einfach sein, passende Gewichte festzulegen.
   
Übung NN_2, XOR-Funktion mithilfe eines NNs realisieren
   
  Ein interessanter und sehr lehrreicher Fall ist die Implementierung der XOR-Funktion.
 
 
x1 x2 y
0 0 1
0 1 0
1 0 0
1 1 0
XOR
  Wahrheitstabelle für die
XOR-Funktion.
 
  Begründen Sie, warum die XOR-Funktion mit einem einzelnen Perzeptron nicht realisiert werden kann.
   
Hinweis Skizzieren Sie die Lage der vier möglichen Ausgangszustände im Lösungsraum und versuchen Sie eine lineare Separation.

Mit welchem Lösungsansatz kann dennoch ein NN für das XOR-Problem geschaffen werden?

   
  Hier finden Sie Lösungen zu obigen Aufgaben.
   
Anwendungen Bei realen Anwendungen ist der Entwurf der Architektur der erste Schritt beim Erstellen eines NN. Anschließend werden die Gewichte bei fixierter Architektur z. B. mit Hilfe des  Backpropagation-Verfahren eingestellt. Es ist leicht einzusehen, dass die Zusammenstellung der Trainingsdaten eine entscheidende Rolle für die spätere Klassifikationsleistung spielt.
   
Übung SVM_1, Polynimialkernel
   
In den folgenden zwei "Trocken"-Übungen wollen wir uns mit dem zentralen Konzept von Support-Vektor-Maschinen (SVMs) beschäftigen. Dies sieht vor, eine Kernelfunktion zu benutzen, um Eingabedaten paarweise in einen (meist) hochdimensionalen Raum zu transformieren. Die Kernelfunktion muss dafür sorgen, dass die transformierten Eingabedaten linear separabel sind.

Der Polynomialkernel kernel ist eine häufig verwendete Kernel-Funktion.

Zeigen Sie für kernel und zweidimensionale Vektoren, dass gilt: invers
   
Hier finden Sie eine Lösung zu diesem Problem.
   
Übung SVM_2, NOR mithilfe einer SVM realisieren
 
 
Zeigen Sie, dass mit dem Polynomialkernel kernel das XOR-Problem linear separierbar wird.
Benutzen Sie die folgende Zuordnung der Eingabe zu den Klassen +1 und -1.
 
x1 x2 y
-1 -1 -1
-1 +1 +1
+1 -1 +1
+1 +1 -1
XOR
  Zuordnung zu den Klassen +1 und -1.
   
   
  Berechnen Sie die Werte für alle sechs Dimensionen und überprüfen Sie die Wertepaare jeweils zweier Dimensionen im Hinblick auf Separierbarkeit.
   
Hier finden Sie eine Lösung zu diesem Problem.
   

Was Sie jetzt verstanden haben sollten

Für einfache Boolsche Funktionen kann durch Überlegen die Architektur und ein Satz von Gewichten für ein Perzeptron bestimmt werden. In realen Anwendungen werden die Gewichte mithilfe eines Algorithmus und anhand von Trainingsdaten abgeleitet.
Das zentrale Konzept von SVMs sind Kernelfunktionen, die anwendungsspezifisch gewählt werden. Sie dienen dazu, die Eingabedaten in einen hochdimensionalen Raum zu transformieren, in dem sie linear separabel sind.