Deep Learning: Feedforward-Netz mit mehreren Schichten profkipp https://www.youtube.com/watch?v=kTzArrzcuCg Transkript (automatisch erstellt) 0:00 in diesem Video gehen wir von einem einfachen perzeptron zu einem neuronalen Netzwerk über das mehrere Schichten hat man nennt diese Art von Netzen auch Feed 0:10 forward Netz oder fnn wir sehen jetzt hier ein einfaches perzeptron mit drei eingabeneuronen und einem ausgabeneuron als erstes überlegen wir uns was denn 0:23 passiert wenn wir ein weiteres Neuron hier haben dann hab wir auch weitere Verbindungen hier so jetzt haben wir hier sechs 0:34 Verbindungen und wir haben drei eingangsneuronen und zwei ausgangsneuronen wie können wir jetzt das mathematisch einigermaßen elegant 0:43 formulieren wir nennen mal die ausgabeneuronen Z1 und Z2 jetzt zeige ich ih ein System wie man die 0:53 Gewichte beschreibt mit dem kleinen Buchstaben W wie wir es kennen und jetzt mit zwei Indizes und zwar 1 1 die eine Zahl bedeutet das 1:04 zielneuron und die zweite Zahl bedeutet das quellneuron bei diesem Gewicht ist es egal weil das quellneuron hat den Index 1 und das zielneuron hat den Index 1:16 1 bei diesem Gewicht wird's interessanter da haben wir W2 weil wir auf Z2 zeigen komm 1 weil wir von X1 kommen entsprechend haben wir 1:28 hier W Ziel 1 Quelle 2 W Ziel 2 Quelle 2 W Ziel 1 Quelle 3 und hier W Ziel 2 1:47 Quelle 3 so jetzt haben wir hier also tatsächlich eine Matrix und wenn wir die Einträge dieser Matrix jetzt hier aufschreiben dann sieht das so aus 2:00 der erste Index ist die Zeile und jetzt schauen wir mal wir haben hier W1 das heißt Ziel ist Neuron 1 und wir haben Gewichte von quellneuron 1 W11 2:15 quellneuron 2 W12 und quellneuron 3 W13 und jetzt haben wir eine zweite Zeile für zielneuron 2 und da kommen wir auch von allen drei quellneuronen das 2:32 heißt die Anzahl der Zeilen in dieser Matrix entspricht der Anzahl der zielneuronen wohingegen die Anzahl der Spalten der Anzahl der quellneuronen 2:46 entspricht so jetzt können wir z also die zielneuronen als Vektor auffassen und wir können natürlich x als Vektor auffassen wie können wir jetzt aus x und 2:57 W das Z berechnen das sieht so aus z= Matrix W multipliziert mit Vektor 3:09 x und wenn wir uns das anschauen dann sehen wir dass das korrekt ist wir rechnen Z 3:20 = W mal X ist gleich ist gleich diese Matrix mal X1 X2 X3 hier haben wir 3:33 eine 2 x 3 Matrix hier haben wir eine 3 x 1 Matrix sozusagen sodass offensichtlich eine 2 x 1 Matrix 3:46 rauskommen muss ja bzw ein Spaltenvektor wie sieht er aus erste Komponente ist 4:00 dieses hier ich multipliziere W11 mit X1 und adiere W12 mit 4:12 X2 W13 X3 und in der zweiten Zeile mache ich das mit diesen Werten 4:23 hier also w21 X1 + W 2 2 X2 + w23 X3 und wenn Sie das mal überprüfen 4:39 hier z.B das ist ja Z1 hier oben das hier ist Z2 dann können Sie schauen ob das korrekt ist ja sie möchten das hier mit dem 4:53 multiplizieren das hier mit dem und das hier mit dem ja und das spricht genau dem was hier steht und genauso können Sie das für Z2 5:09 kontrollieren da möchten Sie das hier mit dem multiplizieren das hier mit dem und das hier mit dem ja und das ist genau das 5:23 was hier steht so was fehlt jetzt noch es fehlt noch das bias Neuron im Gegensatz zu dem was wir beim perzeptron gemacht haben werden wir hier einen 5:33 neuen Vektor hinzuziehen dieser Vektor heißt B und enthält in diesem Fall zwei Komponenten s dass wir schreiben können z = W ja das ist unsere gewichtsmatrix W 5:49 mal X + B wenn wir jetzt hier in diesem Fall die Komponenten ausschreiben würden wäre das Z1 Z2 ist GLE mat x W die schreibe ich 6:00 jetzt nicht aus mal den Vektor x1 x2 X3 + dem Vektor B1 B2 ja sie erinnern sich das hier resultiert in einem 2 x 1 Spaltenvektor so dass das zusammenpasst 6:17 aber die maßgebliche Formulierung ist eben dieses hier und jetzt haben wir den R Input für diese Schicht hier jetzt wissen Sie ja beim perzeptor haben wir 6:30 noch eine Aktivierungsfunktion die haben wir auch hier und die wenden wir auf das Z an und diese Aktivierungsfunktion heißt 6:41 g und was bedeutet das wenn z in diesem Fall zwei Komponenten hat also was ist eine Anwendung der Funktion g auf so einen Vektor und das ist ganz 6:53 einfach die Anwendung der Funktion auf die einzelnen Komponenten und wie sieht g aus g ist die sogenannte logistische 7:02 Funktion g von Z = 1 ge dur 1 + E hoch- Z wenn das ein Koordinatensystem ist und das ist die 1 dann sieht die logistische Funktion so 7:18 aus die macht so einen sanften Übergang von 0 auf 1 und wir hatten ja gesagt das Ergebnis nennen wir a das heißt hier 7:33 haben wir dann A1 und A2 und das nennen wir auch die Aktivierung so jetzt hatte ich ihn ja 7:41 angekündigt dass es hier darum geht dass wir mehrere Schichten haben wir haben ja bislang nur eine Schicht wie können wir das ganze jetzt auf mehrere Schichten 7:51 anwenden ich habe das Netzwerk jetzt noch mal erweitert um eine weitere Schicht wir haben also eine eingabeschicht wir haben eine 8:00 ausgabeschicht und wir haben etwas was wir manchmal die versteckte Schicht nennen oder im englischen hinlayer so und was wir jetzt machen ist wir 8:08 nummerieren diese Schichten durch das hier ist die erste Schicht und die Schicht bezeichnen wir mit einem kleinen l das hier ist die 8:23 zweite Schicht und die Ausgabe ist in diesem Fall die dritte Schicht l = 3 und die Anzahl der Schichten bezeichnen wir auch mit einem großen 8:34 l groß L ist in diesem Fall 3 so jetzt können wir den R Input Z1 und Z2 definieren den müssen wir aber unterscheiden von diesem R Input Z1 und 8:50 Z2 und das machen wir indem wir hier ein hochgestellten Index in Klammern setzen Z1 und Z2 in der zweiten Schicht und Z1 und z 2 in der dritten Schicht und 9:02 genauso versehen wir hier diese gewichtsmatrix W mit einem Index und diese gewichtsmatrix W mit einem Index um zu zeigen zu welcher Schicht die 9:15 jeweils gehören jetzt haben wir hier an den Schichten noch die Aktivierung A1 in Schicht 2 und A2 in Schicht 2 und genauso haben wir 9:26 hier A1 in Schicht 3 und A2 in Schicht 3 das ist außerdem gleich 9:36 y 1 und Y 2 und den berechneten y Wert kennzeichnen wir auch hier mit einem kleinen Dach so und jetzt haben wir die komplette Nomenklatura und können jetzt 9:53 definieren die Berechnung des rinputs und zwar ganz allgemein ist das Z in Schicht L ist g W in Schicht l- 1 multipliziert mit a in Schicht 10:14 l-1+ der bei in Schicht L-1 genau den habe ich hier vergessen den füge ich aussweise mal unten an ich hoffe sie verzeihen mir das wir haben 10:25 hier zwei basneuronen und die haben natürlich auch Verbindungen hier und die bezeichnen wir auch 10:34 mit dem Index für die jeweilige Schicht so jetzt zurück zu unserem zu unserer Berechnung wir haben den roh Input Z und jetzt haben wir die Aktivierung in 10:47 Schicht L A von L ist ganz einfach die Anwendung der Aktivierungsfunktion g auf das Z von L und jetzt müssen wir noch definieren dass der Input also in der 10:59 ersten Schicht ist die Aktivierung von 1 entspricht dem Vektor x und wir müssen noch definieren der Output also y Dach entspricht der 11:14 Aktivierung der letzten Schicht also a von Groß l so damit haben wir es erstmal definiert wie ein Feed forward Netz mit beliebig vielen Schichten funktioniert 11:26 und wie die Berechnungen durchgeführt werden