Grundlagen neuronaler Netze, Neuronale Netze I, Machine Learning Tutorial #12 CodingWithMagga https://www.youtube.com/watch?v=EzwkFhEkGd8 Transkript (automatisch erstellt) 0:00 hallo zusammen in diesem Video gehe ich auf die Struktur von neuronalen Netzen sowie auf neuronenansicht ein zu dem zeige ich euch verschiedene Arten von 0:09 aktivierungsfunktionen die man in neuronalen Netzen verwenden kann zum Abschluss des Videos zeige ich euch ein kleines leicht nachvollziehbares 0:18 Beispiel ich bin sicher jeder von euch hat schon mal neuronales Netz gesehen welches so oder so ähnlich aussieht wie das hier 0:26 gezeigte jedes einzelne dieser farbigen Kreise steht für ein einzelnes Neuron und die weißen Linien für die Verbindung zwischen diesen Neuronen 0:35 ich hatte den grundlegenden Aufbau eines solchen Netzes bereits in meinem Superweiss learning Video beschrieben aber gehen wir es hier trotzdem noch 0:42 einmal kurz durch die Spalte an grünarten auf der linken Seite werden als input-layer bezeichnet wie der Name schon sogar wird sind diese Neuronen für 0:52 die Eingangswerte des neuronalen Netzes verantwortlich die nächsten beiden orangenspalten von Neuronen werden als hiddenlayer 1 und 2 bezeichnet hinten 1:02 kann mit versteckt oder verborgen übersetzt werden diese Neuronen oder anders gesagt die Werte dieser Neuronen in diesem Layern 1:10 sind in der Regel von außen nicht sichtbar und häufig nur schwer zu interpretieren am Ende des neuronalen Netzes finden 1:18 sich die Neuronen des output-layers welches für die Ausgabe des neuronalen Netzes zuständig sind betrachten wir solch eine neuronales Netz nun einmal 1:27 Stück für Stück und beginnen ganz links mit einem grünen Neuron aus dem inputer her in diesem Neuronen sind die Eingangswerte des neuronalen Netzes also 1:36 die einzelnen Features XI hinterlegt wie hier etwa das Feature X1 die Ausgabe dieses neurons hier dargestellt durch den feiner rechts ist 1:46 eben dieses Feature X1 und hat meistens nicht nur ein einzelnes sondern mehrere Features und entsprechend mehrere solcher Neuronen 1:55 diese sind über die weißen Linien mit anderen Neuronen verbunden wie hier mit einem orangener rund aus einem Händen leer und die Features dienen als 2:03 Eingangswerte für dieses Neuron die Features werden dabei zusätzlich mit Gewichten wie versehen ich komme später noch genauer auf diese Gewichte zu 2:12 sprechen an dieser Stelle will ich aber bereits sagen dass diese Gewichte die Parameter sind die später beim Training des neuronalen Netzes optimiert werden 2:21 nie zuvor gezeigten Modellen dieser Video Reihe habe ich für diese Parameter stieß das zettersymbol verwendet jedoch findet man in der Literatur zu 2:29 neuronalen Netzen häufig die Bezeichnung Gewichte bzw für AIDS mit dem Symbol W und da übernehme ich in diesem Video diese Notation auf das Training von 2:40 neuronalen Netzen gehe ich an einem späteren Video genauer ein kommen wir aber nun zurück zur Betrachtung der Neuronen in jedem Layer und Ausnahme des 2:48 Output layers finden sich ein zusätzliches Neuron des sogenannte bayerischen theoretisch kann man auch neuronale 2:56 Netze ohne BIOS Neuronen verwenden aber das ist eher unüblich das biosneuron ist ebenfalls mit jedem Neuronen im Folgenden Layer verbunden und da auch 3:06 mit dem hier wieder dargestellten orangenhorn weil auch hier der Wert x0 gewichtet wird der Wert x0 ist aber kein Feature im eigentlichen Sinne sondern 3:15 wirklich eins gesetzt so das effektiv nur das Gewicht w0 als zusätzliche Eingangswert fungiert das Orangen hätte jetzt nicht einfach 3:24 nur ein Wert das den eingangsseiten gebildet wird sondern ein Funktionswert die von Z wobei Z die Summe der Eingangswerte aus den anderen Neuronen 3:33 ist die Funktion g wird auch als Aktivierungsfunktion bezeichnet und die dann erster Linie dazu eine 3:40 Nichtlinearität in das Modell einfließen zu lassen auf die Bedeutung von aktivierungsfunktionen und auch das 3:47 biosneurons komme ich in einem späteren Video noch zu sprechen der Funktionswert g von Z ist gleichzeitig auch der Ausgangswert des Neurons und dient somit 3:57 als Eingangswert für weitere Neuronen die mit diesem Neuron verbunden sind er wird häufig auch als Aktivierung bzw im englischen activation bezeichnet schauen 4:08 wir uns im Folgenden einmal unterschiedliche aktivierungsfunktionen an dann wird auch die Verwendung des Begriffs Aktivierung in diesem 4:14 Zusammenhang deutlicher die einfachste Aktivierungsfunktion ist einfach eine lineare Funktion wie ich eben bereits sagte dient die Aktivierungsfunktion 4:22 dazu eine gewisse nicht Linearität in das Modell einfließen zu lassen daher wird die lineare Aktivierungsfunktion in der Regel nicht 4:31 verwendet betrachten wir nun einmal eine Runde mit einer linearen Aktivierungsfunktion so wird der Eingangswert Z genauso wieder 4:38 herausgegeben deutlich interessanter ist die nächste Aktivierungsfunktion bei einem Reset bei 4:47 dieser Funktion ergeben alle Eingangswerte kleiner gleich 0 ein Funktionswert von 0 und alle Werte darüber einen Funktionswert von 1 4:55 dies ist auch noch einmal rechts beispielhaft an zwei einer Runde dargestellt betrachten wir einmal das obere Neuron 5:01 so hat dieses bei einem Eingangswert von Set kleiner gleich 0 einen Ausgangswert von 0 das heißt dass eine Runde ist gewissermaßen deaktiviert denn es hat 5:10 keinerlei Einfluss auf die folgenden Neuronen das lediglich den wertvoll übergibt Andersheit ist sich beim unteren Nahrung 5:17 welches bei einem Eingangswert von Zelt größer als 0 steht es eine 1 an die folgenden übergibt diese 1 würde dann natürlich später noch mit einem Gewicht 5:26 wie multipliziert in diesem Sinne kann man das eine Runde als aktiviert betrachten dass die Berechnung der folgenden beeinflusst früher wurde meist 5:36 eine logistische Aktivierungsfunktion verwendet welche wir bereits aus der logistischen Regression kennen und die im Gegensatz zur binary step-funktion 5:44 entsteht gegenübergang zwischen dem Funktionswert 0 und 1 bildet man kann diese Funktion in die hier dargestellten drei Teile gliedern 5:53 im blauen Teil den ich etwa bei z-line als -5 Ansätze liegt der Funktionswert nahe bei Null man kann also im weiteren Sinne hier auch von einem deaktivierten 6:02 Neuron sprechen im grünen Bereich der logistischen Funktion der ab etwa Z größer 5 beginnt liegt der Funktionswert nahe bei 1 und 6:12 das neurones gewissermaßen aktiviert im orangenbereich zwischen diesen beiden Werten liegt der Funktionswert g von Z logischerweise im Bereich zwischen 0 und 6:21 1 wenn man im Terminus der Aktivierung von Neuron bleiben möchte könnte man hier sagen dass das ein Grund teilweise aktiviert ist 6:30 beachtet dass ich die Werte -5 bzw 5 hier etwas willkürlich gewählt haben dies sind keine festen Größen in der Literatur und dienen hier nur der 6:39 Veranschaulichung der logistischen Funktion eine Variante der logistischen Funktion ist die Funktion Tangens hyperbolikurs 6:46 welcher sich ebenfalls in drei Abschnitte gliedern ist der Verlauf der Funktion endet der logistischen Funktion jedoch liegt der Wertebereich der 6:55 Funktion Tangens hyperbolikus im Bereich -1 und 1 und nicht im Bereich 0 und 1 zudem steigt die Funktion etwas schneller an weshalb ich die Grenzen bei 7:05 zeitlich -3 bzw zeitgleich 3 lege auch hier sind dies von mir selbst gewählte Werte und keine feststehenden Größen 7:13 zudem kann man bei dieser Funktion nicht wirklich von einer Deaktivierung des Neurons sprechen da der Funktionswert in diesem Bereich -1 und eben nicht 0 7:21 beträgt am Schluss möchte ich euch nun die heutzutage am häufigsten verwendete Aktivierungsfunktion reu vorstellen was 7:30 abgekürzt für reaktive linear unit steht es hat sich herausgestellt dass diese Funktion deutlich bessere Konvergenz Eigenschaften beim Training eines 7:38 neuronalen Netzes vorweist als die eben gezeigt und zuvor häufig verwendete logistische Funktion auch bei dieser Funktion ergibt sich ein Funktionswert 7:48 von 0 für alle Eingangswerte Zeit kleiner gleich 0 für alle Eingangswerte Zelt größer als 0 handelt sie sich bei eher Elu um eine simple lineare Funktion 7:57 welche den Eingang wieder exakt so herausgibt springen wir jetzt einmal zurück zu den Neuronen und klickt noch einmal auf das 8:05 gesamte neuronale Netz das eben gezeigte Beispiel mit den Grünen Neuronen aus dem input-layer und dem orangenneuronen aus einem hidden leer entspricht 8:14 beispielhaft diesem Abschnitt aus dem neuronalen Netz beachtet das bei ist Neuronen bei der Darstellung eines neuronalen Netzes in dieser Form im 8:22 Allgemeinen nicht mit abgebildet werden gehen wir nun einen Lehrer weiter so ändert sich an der internen Berechnung der Neuronen im Grunde nicht die 8:31 Funktionswerte der Neuronen aus den Layer 1 dienen inklusive der entsprechenden Gewichtung als Eingangswert für die 8:37 Aktivierungsfunktion des Neurons in den leer 2 auch für den Output Layer ändert sich hier im Grunde nichts aber werfen wir 8:44 trotzdem noch einmal einen genaueren Blick darauf da es sich um die Ausgabe des neuronalen Netzes handelt die Summe der gewichteten Funktionswerte bzw der 8:52 aktivierungswerte den hohen inklusive des beißen holens werden aufaddiert und sind der Input septilde der Aktivierungsfunktion g 9:02 der Funktionswert g von zilde ist dann sowohl der Ausgabewert des nach hohens als auch die Ausgabe des neuronalen Netzes welche sich hier einmal mit Y1 9:12 Tilde bezeichnet geht man jetzt also das neuronale Netz so von hinten bis vorne durch gelangt man von den Eingaben bewährten also den 9:20 Features XI aus den Grünen Neuronen hin zu den blauen Neuronen welche die Ausgabe y itilde des neuronalen Netzes darstellen so lässt sich das gesamte 9:30 neuronale Netz auch als Funktion darstellen wie das aussieht zeige ich euch gleich bevor möchte ich aber noch ein paar Sätze über die Struktur eines 9:38 neuronalen Netzes verlieren generell können sich in einem Layer beliebig viele Neuronen befinden das gilt sowohl für den input-layer den hinten leeren 9:46 also für den outputer generell ist jedes Neuron mit jedem Neuronen davor und dahinterliegenden Layer verbunden wobei es aber auch Techniken gibt gewisse 9:56 Verbindungen oder Neuronen zu entfernen respektive zu ignorieren zudem ist bei klassischen neuronatnetzen wie es hier zu sehen ist eine hohen 10:04 immer nur mit dem davor und dahinter liegenden Layer verbunden eine direkte Verbindung zwischen etwa Input und hinten Layer 2 ist in diesem Fall nicht 10:12 möglich es gibt jedoch viele spezielle Arten von neuronalen Netzen bei denen das Überspringen von Lehrern oder auch Verbindungen in den gleichen Layern 10:20 möglich ist der Index wird über die einzelne runden durchnummeriert während das Hoch 1 für 11:08 den ersten hinten Layer steht auch diese neuroden werden in einem Vektor a hochklammer auf 1,2 zusammengefasst 11:17 betrachten wir jetzt einmal das erste Neuron genauer an dieser Stelle wiederhole ich mich irgendwie nicht aber die Gleichung sind 11:23 an dieser Stelle noch einmal wichtig um die gesamte Berechnung des neuronalen Netzes nachvollziehbar niederzuschreiben die Gewichte wehe dieses aroms erhalten 11:32 einen zusätzlichen Index und ebenfalls eine hochgestellte 1 der erste Index steht dabei für die Position des verbundenen eurons in der hinterlegenden 11:40 leer in diesem Beispiel ist das dass gerade betrachtete Neuron A1 hoch Klammer auf 1 Klammer zu der zweite Index steht für die Position 11:49 des nach uns unter vorliegenden layer in diesem Fall das neuronics 1 die hochgestellte Klammer auf 1 Klammer zu steht wiederum für den ersten 11:57 hiddenlayer zum Beispiel vorne A1 hoch 1 werden wie eben bereits gesehen die Gewichte mit den jeweiligen Features multipliziert und anschließend summiert 12:07 die Gewichte füge ich anschließend einer Matrix wie hoch 1 zu an dieser Stelle sollten wir auch nicht das beides in herum vergessen wissen die wichtig in 12:16 einen Vektor B hoch 1 hinzufügen in der Gleichung für das Neuron A1 hoch 1 fehlt dann nur noch die Anwendung der 12:26 Aktivierungsfunktion g wie ihr seht ist dies die gleiche Formel die ihr bereits zu Beginn des Videos gesehen habt lediglich die Notation des 12:35 Neurons A1 hoch 1 vor den zugefügt und es gibt ein paar mehr Indizes exakt die gleichen Schritte können wir nun für die beiden verbliebenen Runde 12:43 des ersten durchführen und die entsprechenden Gewichte in die Matrix wie und den Vektor B schreiben mittels dieser Notation ist jetzt 12:52 möglich die drei links dargestellten Funktionsgleichung in einer einzelnen Funktionsgleichung zusammenzufassen 12:59 hierbei ist die Aktivierungsfunktion g so definiert das bei einem vektoriellen Eingangswert die Funktion die auf jeden einzelnen Eintrag des Vektors angewendet 13:07 wird so lässt sich der erste Berechnungsschritt in diesem neuronalen Netz zu der kleinen Funktionsgleichung rechts unten zusammenfassen 13:16 die gleichen Schritte können wir für den folgenden Lehrer anwenden zunächst multiplizieren wie die gewichtsmatrix wie hoch 2 mit den Werten 13:26 aus dem ersten Layer a hoch 1 anschließend addieren wir auch hier die Gewichte aus den Verbindungen mit dem weißen herum das Ergebnis dieser 13:33 Berechnung ist wiederum der Eingangswert für die Aktivierungsfunktion g die Definition der Matrix wie hoch 2 und des Vektor 2 habe ich hier noch einmal 13:42 aufgeführt betrachten wir nun einmal die Ausgabe unseres neuronalen Netzes fassen die 13:49 Neuronen des Output leeres zum Vektor y tilte zusammen die Berechnung dieses Vektors erfolgt jetzt analog zu den beiden vorherigen 14:01 auch hier habe ich einmal die Definition für die Matrix wie hoch 3 und den Vektor B hoch 3 aufgeführt sind übrigens auch unterschiedliche aktivierungsfunktionen 14:09 g in den einzelnen Layern möglich von der Notation her müsste man daher jeder funktionieren je noch ein zusätzlichen indizil verpassen worauf ich aber an 14:18 dieser Stelle der Einfachheit halber verzichtet haben zudem ist es eher ungewöhnlich unterschiedliche aktivierungsfunktionen in einem 14:25 neuronalen Netz zu verwenden wir könnten diese Funktionsgleichung anschließend von oben nach unten ineinander einsetzen und erhalten diese längere 14:33 Funktionsgleichung für den Vektor Deutschland Hilde das mag jetzt gar nicht so spektakulär aussehen aber schließlich bedeutet das folgendes das 14:41 neuronale Netz auf der linken Seite lässt sich zu der einen geraden Funktionsgleichung auf der rechten Seite zusammenfassen das bedeutet wenn 14:49 neuronales Netz ist letztlich auch nichts anderes als eine Funktion mit einem Eingabewert x einem Ausgabewert y Tilde und einer großen Menge an 14:58 Parametern an dieser Stelle versteckt in den Matrizen und den Vektoren B jedoch können die funktionsvorschriften für neuronales Netz sehr umfangreich und 15:07 komplex werden setze das kleine neuronale netzlinks sie Funktionsgleichung rechts bereits recht lang und durch die ganzen 15:14 funktionsauswertungen der Aktivierungsfunktion g auch nicht wirklich leicht nachzuvollziehen angesichts dessen verwendet man gerne 15:22 die abstrakte Darstellung eines neuronalen Netzes wie auf der linken Seite und verzichtet auf die explizite Darstellung der Funktionsgleichung 15:30 allgemein kann die Funktionsgleichung für einen neuronales Netz wie folgt geschrieben werden wobei n für die Anzahl der steht 15:39 bleiben wir jetzt aber noch einmal kurz bei dem neuronalen netzlinks und zählen einmal die Parameter aus wie und P das gesamte befinden sich in diesem 15:46 neuronalen Netz bzw in der obigen Funktionsgleichung 29 Parameter in dem Netz von Anfang des Videos waren es sogar 103 Parameter gewesen in der 15:57 Regel verwendet man noch deutlich größeren Netze mit einer noch viel größeren Anzahl an Parametern zur Erinnerung diese Parameter werden 16:04 später durch das Training optimiert um die verwendeten Datenpunkte so exakt wie möglich abzubilden die Orange eingerahmte funktiongleichung 16:12 ist wenn wir einmal im Terminus der vorigen Videos bleiben nichts anderes als die Modellfunktion FX das links dargestellten neuronalen Netzes der 16:21 Vektor kleinen W als Index der Modellfunktion ist so definiert dass er alle Parameter des neuronalen Netzes beinhaltet in diesem Fall wären das als 16:30 ein Vektor mit 29 Einträgen genauso lässt sich eine kostenfunktioniert für das neuronale Netz definieren worauf ich an dieser 16:38 Stelle aber auch nicht genauer eingehen möchte deshalb schreibe ich an dieser Stelle nur eine allgemeingültige Funktionen der jetzt Input die 16:46 ausgewertete Modellfunktion am Datenpunkt XI sowie den y-Wert y i des datenpunktes übergeben wird durch die große Anzahl an Parametern tendieren 16:56 neuronale Netze schnell zum overfiting das gleiche Phänomen haben wir bereits im vorigen Videos beispielsweise bei der Polynom Regression beobachtet eine 17:05 Möglichkeit aber für ihn zu reduzieren habe ich in meinem letzten Video vorgestellt die Regularisierung bei Anwendung von euren Netzen ist es da 17:13 wichtig eine Form der regelalarisierung zu verwenden weshalb ich dies hier in der Kostenfunktion mittels der Funktion 17:21 mit den beiden hier dargestellten Funktionen ist es nun möglich neuronale Netze zu trainieren und damit die Parameter des Netzes so anzupassen dass 17:30 Unbekannte Datenpunkte möglichst exakt vorhergesagt werden können zum Abschluss des Videos stelle ich euch ein wirklich kleines minimales Beispiel für ein 17:38 neuronales Netz vor welches sich leicht nachvollziehen lässt ich habe dieses Beispiel aus der Maschine learning Kurs von Andrew mg übernommen 17:45 betrachten wir einmal dieses neuronale Netz mit zwei Input Neuronen in grün und einem zugehörigen lila es gibt keine hidden leer und der 17:54 input-layer ist direkt mit dem einzigen der Bundesrat verbunden die durch dieses neuronale Netz repräsentierte Funktionen hat also ein 18:02 zweidimensionalen Input und ein skalaren Output wir nehmen an dass das Netz bereits trainiert wurde und ich gebe dir Gewichte an den Verbindungen der 18:11 Neuronen an dann lässt sich der Output y- und Hilde das neuronalen Netzes durch die links oben gezeigte Gleichung bestimmen 18:19 als Aktivierungsfunktion verwenden wir eine logistische Funktion wir können jetzt eine solche Tabelle aufstellen um den Output des neuronalen 18:27 Netzes bei unterschiedlichen Input festzuhalten zusätzlich wird angenommen das x1 und x2 lediglich die Werte 0 oder 1 annehmen können 18:36 beginnen wir nun einmal unterschiedliche Werte einzusetzen und starten mit x1 und x2 = 0 damit ergibt sich für y0 Tilde der Funktionswert g von minus 30 welcher 18:46 wenn wir die untere Funktion betrachten in etwa gleich Null ist für X1 = 0 und x2 = 1 ergibt sich für Yildiz der Funktionswert g von -10 welcher 18:58 ebenfalls in etwa Null ist das gleiche Ergebnis erhalten wir für den umgekehrten Fall X1 = 1 und x2 = 0 interessanter wird es jetzt für x1 und 19:07 x2 = 1 dann ist y 00 welcher ungefähr 1 ist betrachtet man einmal die Werte für x1x2 und yultilde so fällt auf dass wir mit 19:20 diesem neuronalen Netz eine unverknüpfung modellieren niemand würde natürlich auf diese Weise eine unverknüpfung inventieren was 19:27 verdeutlicht einmal die Funktionsweise eines neuronalen Netzes und ist zudem leicht nachzuvollziehen was meistens nur bei kleinen neuronalen Netzen möglich 19:35 ist wir können uns die Funktion links oben auch einmal in einem 3dimensionalen Plot anschauen die rote Kugel in der linken unteren Ecke liegt bei x1 und x2 19:44 = 0 hier sehen wir auch noch einmal dass der Funktionswert fast gleich Null ist selbiges gilt für die beiden roten Kugeln für jeweils x1 und x2 = 1 der hat 19:55 die andere Variable weiterhin gleich Null ist in der rechten oberen Ecke findet sich dann der Funktionswert fix0 und X1 = 1 schieben wir einmal die 20:03 Z-Achse dort hinüber und drehen die Kamera ein wenig wird auch deutlich dass der Funktionswert hier werden hart zugleich eins liegt 20:10 aus dieser Position lässt sich auch leichter die typische Form der logistischen Funktion erkennen 20:17 in diesem Video habe ich euch die Grundlage von neuronalen Netzen erläutert vor allem in englischer Sprache gibt es auf Youtube noch viele 20:24 weitere ausgezeichnete Videos über neuronale Netze eine Auswahl von findet ihr in der Videobeschreibung in meinem nächsten Video zeige ich euch 20:31 umfangreichere Beispiele für neuronale Netze vielen Dank fürs zuschauen und bis zum nächsten Mal