Uebung 03 Perceptron Training INPUTINPUT b OUTPUTOUTPUT w1w1 w2w2
SS 2011H. Werner : DatenalyseÜbung 1 : 2 Einfaches Perceptron Wir erzeugen zunächst mal ein einfaches Perceptron mit zwei Input-Neuronen: net = newp([0 1; 0 1],1)
SS 2011H. Werner : DatenalyseÜbung 1 : 3 Ziel: das logische OR Wir wollen das Netzwerk nun so verändern, daß es das logische OR (mit der Wertetabelle: OR ) darstellt. Mit der Visualisierung aus Uebung 01 soll dargestellt werden, wie sich das Netzwerk nach jedem Trainingsschrittauf den Zwischenpunkten des Intervalls [0,1]x[0,1] verhält
SS 2011H. Werner : DatenalyseÜbung 1 : 4 Start: Initialisierung Wir starten mit einer zufälligen Initialisierung: net.IW{1} = rand(1,2) net.b{1} = rand Mit tab = [ ; ] können wir jeweils die Übereinstimmung der Netzausgabe net(tab) mit der OR-Wertetabelle or = [ ] überprüfen
SS 2011H. Werner : DatenalyseÜbung 1 : 5 Training Wir werden hier jeweils die ganze Trainingsdatei pro Trainingsschritt durchgehen (offline Training) Berechnung des Fehlers output_soll – output_ist error = or – net(tab)
SS 2011H. Werner : DatenalyseÜbung 1 : 6 Gewichtsanpassung Wir müssen jede tab-Spalte mit dem Fehler der entsprechenden Eingabe multiplizieren und diese Werte aufaddieren delta_w = tab*error' Anpassung des Schwellwerts delta_e = [ ]*error' das ist dasselbe wie delta_e = sum(error)
SS 2011H. Werner : DatenalyseÜbung 1 : 7 Visualisierung Wir wollen das Verhalten des Netzes nach jedem Anpassungsschritt visualisieren (wie in Übung 0) Vorbereitung: [R,S]=meshgrid(0:0.05:1,0:0.05:1) Der Trainingsprozess läuft in einer Schleife for j=1:no_schritte ab, wobei in jedem Lernschritt die Visualisierung angestoßen wird T=R; for i=1:size(R,1) T(i,:)=net([R(i,:);S(i,:)]); end; mesh(R,S,T); Film(j)=getframe; % erzeugt ein Bild in einem Film Der Film mit diesen Visualisierungen kann dann mit dem Befehl movie(Film); abgespielt werden.
SS 2011H. Werner : DatenalyseÜbung 1 : 8 Aufgabe Programmiere diesen Lernprozess aus für die folgenden logischen Operationen mit tab = [ ; ] or = [ ] nand = [ ] nor = [ ] xor = [ ]