i

Übungen - Lernende Neuronen

Aufgabe 1: Ein weiterer Lernschritt im Beispiel

Bei dem Beispiel aus dem Abschnitt ist ein weiterer Datensatz hinzugekommen.

  1. Wende die Allgemeine Lernregel für eine Lernrate von 0.1 für die dritte Zeile an.
    (Du kannst die dritte Zeile anklicken, dann werden die Daten in das Neuron „geladen“.)
    w1 =
    w2 =
    s =

    Ändere das Neuron oben entsprechend.
  2. Nun stimmt die erste Zeile nicht mehr. Wende die Allgemeine Lernregel für eine Lernrate von 0.1 für die erste Zeile an.
    w1 =
    w2 =
    s =

    Ändere das Neuron oben entsprechend.
  3. Die erste Zeile stimmt jetzt immer noch nicht. Trotzdem können wir „stumpf“ die Allgemeine Lernregel zunächst für die zweite und dann für die dritte Zeile anwenden, ohne dass sich etwas ändert. Begründe, warum das so ist.
  4. Wende erneut die Allgemeine Lernregel für eine Lernrate von 0.1 für die erste Zeile an.
    w1 =
    w2 =
    s =

    Ändere das Neuron oben entsprechend und stelle fest, dass alle Bedingungen erfüllt sind.

Aufgabe 2: Automatisierte Berechnung

Du hast festgestellt, dass du immer wieder das Gleiche machen musst und man sich dabei auch noch problemlos verrechnen kann? Dann „schreit“ das geradezu nach einer automatisierten Berechnung...

  1. Erstelle mit Hilfe einer Tabellenkalkulation ein Tabellenblatt, das aufgrund der Werte aus den Trainingsdaten und einer frei wählbaren Lernrate die entsprechenden Daten bestimmt.
    Hier ein mögliche Vorlage simulationPerzeptronVorlage.ods (LibreOffice)
  2. Erstelle ein Programm in einer Programmiersprache deiner Wahl (z.B. in Python objektorientiert), das zu vorgegebenen Trainingsdaten und einer Lernrate als Konstante ein entsprechendes Perzeptron lernen lässt und die gelernten Gewichte und den Schwellenwert ausgibt.
    Beachte, dass sich nicht alle Datensätze linear trennen lassen.
    (Durch matplotlib aus dem Paket pyplot könntest du dir anschließend auch die Datenpunkte und deine Trennlinie relativ einfach darstellen lassen...)
    Hier ein mögliches Programmgerüst
    ### Simulation eines einfachen Perzeptrons (lernendes künstliches Neuron) ####
    
    ######### Initialisierung ###########
    # Liste der Trainings-Datensätze in der Form (x1,x2,y)
    daten=[(3,2,0),
           (6,4,0),
           (5,3,1),
           (8,5,1)
           ]
    # Lernrate / Dämpfung / Moderation (alpha, eta)
    ALPHA = 0.1
    
    ######### Klassenbeschreibung ##################
    
    class Perzeptron():
        def __init__(self,w1,w2,s):
            self.w1 = w1
            self.w2 = w2
            self.s = s
            
        def getWerte(self):
            return (self.w1, self.w2, self.s)
    
        def lernschritt(self,datensatz):
            # Auslesen der einzelnen Daten
            ...
            # Bestimmung der tatsächlichen aktuellen Ausgabe
            ...
            # Berechnung der neuen Gewichte und des neuen Schwellenwertes
            ...
            # Rückgabe, ob die aktuelle Ausgabe mit dem Label übereingestimmt hatte
            return ...
    
    
    ## Hauptprogramm
    # Initialisierung unseres Perzeptrons mit Startwerten für
    # die beiden Gewichte und den Schwellenwert
    n = Perzeptron(0.5,-0.5,2.1)
    
    ...
    
    while ...: 
        ...
        for datensatz in daten:
            ...
        
    ...
    
    
    			

Aufgabe 3: Daten separieren

Hier siehst du in den verschiedenen Bildern Darstellungen gelabelter Daten. Untersuche, welche dieser Daten sich mit Hilfe eines einzelnen Neurons – zumindest näherungsweise separieren lassen.

Datenpunkte[1]

Quellen

Suche

v
5.1.2.3.1.8 Übungen - Lernende Neuronen
Kopieren durch Anklicken

Rückmeldung geben