Praktische Anwendungsbeispiele - Know Your Data & TensorFlow Playground
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 79 | |
Autor | 0009-0004-1811-9699 (ORCID) | |
Lizenz | CC-Namensnennung 4.0 International: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/65499 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache | ||
Produktionsjahr | 2023 | |
Produktionsort | Heinrich-Heine-Universität Düsseldorf |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
| |
Schlagwörter |
12
17
18
34
36
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
56
58
59
61
63
66
67
68
69
71
74
75
78
79
00:00
DatensatzZifferKlasse <Mathematik>Web-SeiteNetzwerk <Graphentheorie>JSONXMLComputeranimation
00:41
DatensatzWeb-SeiteComputeranimation
00:53
HANS <Datenbanksystem>SchnittmengeWeb SiteComputeranimation
01:25
BenutzerführungZählenQuellcodeDatensatzZifferKlasse <Mathematik>Web-SeiteNullQuellcodeComputeranimation
03:39
FontMetadatenPNGComputeranimation
04:04
OptimierungLinieRegularisierungGewicht <Mathematik>KoordinatenLineare RegressionMomentenproblemSinusfunktionVisualisierungPunktKlasse <Mathematik>Ein-AusgabeWeb-SeiteTestdatenSichtbarkeitsverfahrenNetzwerk <Graphentheorie>SIZComputeranimation
11:38
ComputeranimationXML
Transkript: Deutsch(automatisch erzeugt)
00:06
Diese Woche soll es in den Videos zu praktischen Anwendungsbeispielen für euch auch ganz praktisch werden. Auf der einen Seite möchten wir euch gerne eine Webseite vorstellen, mit Hilfe derer ihr euch Datensätze genauer angucken könnt und auf der anderen Seite sollt ihr euch ganz praktisch mit neuronalen Netzwerken beschäftigen und damit herumspielen
00:24
können. Es geht bei der Webseite heute exemplarisch um den MNIST-Datensatz, den ihr ja schon mittlerweile kennt. Der besteht ja aus Bildern von handgeschriebenen Ziffern und wird normalerweise zur Klassifikation benutzt. Es gibt also zehn Klassen für die zehn verschiedenen Ziffern.
00:42
Schauen wir uns doch mal die Webseite an. Die heißt nämlich Know Your Data. Hier sehen wir schon auf einen Blick verschiedene Datensätze. Wir sehen, wenn wir weiter runter scrollen, auch schon MNIST-ähnliche Datensätze. Irgendwo hier sehen wir dann tatsächlich den MNIST-Datensatz.
01:01
Wir sehen schon direkt auf den ersten Blick, dass der aus 70.000 verschiedenen Bildern in dem Fall besteht. Eine kleine Vorschau davon, wie diese Bilder aussehen. Wenn wir jetzt hier auf See Data Set klicken würden, dann würden wir weiter geleitet werden zur entsprechenden TensorFlow-Website. Das machen wir jetzt nicht. Wir möchten gerne uns das hier näher anschauen auf dieser Website und deswegen
01:23
klicken wir auf Explore in Know Your Data. Was wir dann sehen, ist diese Webseite hier. Also rechts sehen wir schon eine Vorschau von Bildern von handgeschriebenen Ziffern, die in dem Datensatz enthalten sind, in dem Fall für das Label Null. Also wir sehen verschiedene handgeschriebene Nullen und wir sehen, dass wir jetzt hier
01:42
gerade bei diesem Reiter Starts sind. Also was wir uns hier anschauen können, ist zum Beispiel das Source Features. Wenn wir das öffnen, sehen wir, dass wir auf der einen Seite hier links auf den ersten Blick die verschiedenen Labels sehen können, also die Aufteilungen. Wir sehen von den 70.000 Bildern, die in dem Datensatz enthalten sind, sind immer
02:05
circa 7.000 Bilder pro Ziffer enthalten. Das heißt, das ist ein sehr ausgewogener Datensatz und so soll es ja eigentlich auch sein. Das heißt, jede Klasse beinhaltet ungefähr die gleiche Anzahl an Bildern und dann auf der rechten Seite können wir uns zum Beispiel den Split anschauen.
02:21
Also der Datensatz ist ja schon vor aufgeteilt in Test- und Trainingsdaten. Wir sehen, dass es 10.000 Testbilder gibt und 60.000 Trainingsbilder. Was wir uns zum Beispiel auch anschauen können, ist hier die Image Quality, die Bildqualität. Da kann man auch auf einen Blick sehen, wie denn da diese Bilder bewertet sind
02:41
in verschiedenen Scores, zum Beispiel Exposure Quality oder der Sharpness Score. Dann gibt es noch andere verschiedene Möglichkeiten. Wir wollen uns aber jetzt ein bisschen auf die rechte Seite hier noch konzentrieren. Was wir nämlich beispielsweise machen können, ist das nicht nach Label auszuwählen, sondern zum Beispiel nach Split und dann könnten wir uns nur Trainings oder nur Testbilder anzeigen lassen.
03:00
Was vielleicht interessanter ist, ist die Bilder zu gruppieren, wie hier zum Beispiel eben wieder nach einem von den zehn verschiedenen Labels. Also wenn ich jetzt sage, ich möchte zum Beispiel sehen, wie die Bilder von dann kann ich hier auf dieses Bild klicken und bekomme eben eine Übersicht über verschiedene Bilder, die in dem Datensatz enthalten sind, die Ziffer 5 zeigen.
03:23
Und auch da kann ich das dann nochmal in Trainings und Testbilder splitten und sagen, ich möchte mir jetzt aber gerne zum Beispiel die Testbilder anschauen. Dann klicke ich darauf. Was vielleicht auch noch interessant ist, ist hier oben dieses Tab Item.
03:41
Wenn ich jetzt auf ein Bild drauf klicke, dann sehe ich hier links eben ein paar Metadaten über das Bild. Also zum Beispiel, dass es im PNG Format abgespeichert ist oder was wir mittlerweile auch schon wissen, dass die Höhenbreite jeweils 28 Pixel überträgt.
04:01
Die zweite Website, die wir euch heute vorstellen möchten, ist der TensorFlow Playground und da ist der Name auch schon quasi Programm. Das ist nämlich tatsächlich eine Art Spielwiese, die ihr verwenden könnt, um mit neuronalen Netzwerken herumzuspielen und das mal auszuprobieren in der Praxis. Also wie ist die Seite aufgebaut?
04:21
Wir sehen vielleicht schon auf den ersten Blick, dass das hier in der Mitte ein bisschen aussieht wie ein neuronales Netzwerk. Also wir sehen in dem Fall jetzt keine runden, aber quadratischen Neuronen, die verbunden sind. Auf der rechten Seite sehen wir höchstwahrscheinlich Datenpunkte. Also wir sehen Koordinatensysteme, in denen Punkte aufgezeichnet sind und hier auf der linken Seite und hier oben können wir ein paar Parameter
04:42
verstellen. Fangen wir vielleicht einfach mal direkt hier oben links an. Das spezifiziert das Datensend, mit dem wir uns beschäftigen. Also wir haben jetzt hier einmal dieses und haben eigentlich vier verschiedene zur Auswahl. Ich klicke jetzt nochmal auf die anderen. Wir sehen, dass sich das dann hier rechts verändert. Also es gibt diese Punktwolke, dann gibt es noch das Datensend mit zwei Klassen und außerdem dieses.
05:01
Ich habe jetzt schon das Wort Klassen benutzt. Wenn wir jetzt hier einmal nach oben rechts wechseln, können wir nämlich auch den Problemtyp auswählen. Also ich habe jetzt hier ein Klassifikationsproblem ausgewählt. Wir können aber auch zum Beispiel eine Regression auswählen. Dann gibt es allerdings nur ein Datensend, das zur Verfügung steht. Ich möchte mir aber jetzt gerne hier mit euch ein
05:20
Klassifikationsproblem anschauen und zwar bleibe ich mal direkt bei diesem Problem hier oben links bei dem ersten Beispiel. Hier drunter sehen wir auch ein paar Sachen, die wir verstellen können. Das erste müsste euch bekannt vorkommen. Das ist nämlich wieder das Verhältnis zwischen Trainings und Testdaten. Das ist momentan auf 50 Prozent gesetzt. Das kann ich auch niedriger oder höher stellen.
05:41
Dann gibt es hier noch Neues oder Rauschen. Also hier rechts sehe ich zum Beispiel, wenn ich das höher stelle, dann sieht man, dass sich die Punkte der Klassen doch irgendwie ziemlich miteinander mischen. Da stelle ich jetzt wieder auf Null und dann so ein paar Begriffe wie zum Beispiel Batch Size Epoch Learning Rate werdet ihr nächste Woche kennenlernen.
06:01
Und dann könnt ihr vielleicht nochmal zurück zu der Webseite gehen und euch das näher anschauen. Was wir schon kennen, ist hier die Aktivierungsfunktion. Da wählen wir jetzt die aus, die wir kennen, nämlich die Relu, die Rectified Linear Unit. Die Regularisierung oder Regularization ignorieren wir jetzt im Moment auch noch. Das ist jetzt gerade nicht so wichtig für uns.
06:21
Das lassen wir noch ausgestellt. Dann können wir uns jetzt mal mit dem neuronalen Netzwerk an sich beschäftigen. Hier auf der linken Seite sehen wir die verschiedenen Features, die man als Input für das Netzwerk auswählen kann. Also zum Beispiel X1 und X2. Und wir sehen ja hier, dass das auf der rechten Seite ein Koordinatensystem ist. Das heißt, das entspricht X1 und das entspricht X2.
06:42
Und wir sehen hier in der Legende auch, dass die Farben negativen und positiven Werten entsprechen. Also in dem Falle steht orange für minus eins und blau für plus eins. Wenn ich jetzt hier über dieses Feature X1 fahre, dann sehen wir, dass logischerweise die ganze linke Seite negativ
07:01
ist, also minus eins, und die ganze rechte Seite positiv ist, also eins. Das heißt, X1 ist eben links negativ und rechts positiv. Genauso können wir es natürlich auch für X2 machen. Dann ist das Ganze horizontal aufgeteilt. Wir sehen, in der Mitte ist es weiß, weil da der Wert nun ist, aber oberhalb haben wir ein positives X2. Also es ist blau gefärbt und unterhalb ein negatives X2.
07:23
Also ist der Hintergrund orange gefärbt. Dann können wir das Ganze noch machen mit X1² als Input. Dann ergibt sich natürlich nur eine positive Zahl, also plus eins, genauso für X2². Dann kann man auch noch X1 mal X2 als Feature auswählen oder Sinus von X1 oder Sinus von X2.
07:44
In der Mitte sehen wir die Hinlayers. Im Moment sind das zwei Schichten. Wir können die Anzahl aber auch verringern oder beliebig erhöhen. Ich stelle das jetzt mal wieder auf zwei Hinlayers. Und dann können wir jeweils in jedem Hinlayer auch die Anzahl der Neuronen entweder erhöhen oder verringern.
08:00
Ich wähle jetzt mal für die erste Schicht fünf Neuronen aus und für die zweite Schicht wähle ich mal drei Neuronen aus. Wir sehen hier auch diese Verbindungslinien zwischen den Neuronen. Das ist genauso, wie wir das kennengelernt haben, eine Visualisierung für die Gewichte oder Weights zwischen den Neuronen. Auch hier entsprechen die Farben wieder negativen beziehungsweise positiven Werten. Orange ist alles, was negativ ist und blau sind positive
08:24
Gewichte und auch die Stärke dieser gestrichelten Linie entspricht der Größe des Gewichts. Also zum Beispiel hier sehen wir eine relativ dick gezeichnete Linie. Da ist das Gewicht 0,43 und diese dünnere Linie hier hat nur ein Gewicht von 0,13.
08:41
Hier zwischen den Hinlayers sehen wir auch schon, also das erscheint immer jeweils hier rechts, das jeweilige Output aus diesem einen Neuronen. Hier wird es ja verbunden bis zum letzten Hidden Layer und dann führen nochmal Verbindungen, die uns dann den Output geben. Und der ist jetzt hier rechts immer im Hintergrund
09:01
gekennzeichnet. Also ich kann das jetzt auch einfach mal starten, das Netzwerk. Das kann ich nämlich machen, indem ich hier oben links auf den Play- oder Run-Button klicke. Das mache ich jetzt einfach mal. Wir sehen dann hier schon, dass diese Loss Funktion, diese Verlustfunktion, die hier visualisiert ist, sehr rapide sinkt, also dass der Wert sinkt und dass die sich sehr nah dem Wert 0 annähert und dass
09:23
diese Klassifikation hier rechts eigentlich schon nahezu perfekt ist. Also wir sehen, dass alles, was an Punkten hier als blau gelabelt ist, auch im Hintergrund, also als Vorhersage, als Prediction blau ist und alles, was orange ist, wird auch im Hintergrund als orange angezeigt. Ich kann jetzt nochmal die Testdaten mir dazu
09:42
anzeigen lassen, weil wir sehen, dass die sich ungefähr auch dort befinden, wo die Trainingsdaten auch schon sind. Also hier ist auch alles korrekt klassifiziert. Was ich auch machen kann, ist, ich kann diesen Output, wir sehen ja, dass es hier auch so weiße Werte gibt, da ist sich dann das Modell unsicher, ob es jetzt positiv oder negativ ist.
10:01
Diesen Output kann ich einmal diskritisieren, indem ich hier unten drauf klicke und dann bekomme ich eben ein entweder oder minus 1 oder 1 als Klassifikation. Das war jetzt natürlich sehr leicht, weil ich hier ein sehr mächtiges Modell ausgewählt habe mit vielen Neuronen. Ich kann das jetzt auch mal ein bisschen schwieriger machen und ein paar weniger
10:21
Neuronen wählen für die hinten Layers und kann zum Beispiel mal das Verhältnis von Trainings- und Testdaten ein bisschen reduzieren, dann sollte eigentlich unser Modell nicht ganz so gut sein. Ich drücke jetzt nochmal auf Run. Wir sehen das auch hier, die Lost Function sinkt, vielleicht nicht mehr ganz so schnell wie vorhin, aber eigentlich ist das Ergebnis
10:42
auch wieder sehr, sehr gut. Das heißt, was können wir noch machen, um es schlechter zu machen? Ich nehme nochmal ein paar Neuronen weg, nehme nochmal ein paar von den Trainingsdaten weg und klicke nochmal auf Run. Und dann sehen wir jetzt hier schon, okay, es sinkt nicht mehr ganz so stark
11:00
und hier sehen wir jetzt tatsächlich eine Vorhersage, die nicht ganz so gut ist. Also wir sehen, dass auch orange Punkte irgendwie blau klassifiziert werden und umgekehrt und wenn ich jetzt die Neuronen klicke, wird es vielleicht nochmal ein bisschen sichtbarer. Jetzt könnt ihr natürlich gerne selber mal ausprobieren, wie ihr in euren Netzwerk trainieren würdet und könnt
11:21
mit den Parametern herumspielen. Und wie gesagt, insbesondere nächste Woche, wenn es um die Optimierung geht, könnt ihr euch danach auch nochmal gerne diese Seite anschauen und versteht dann auch ein bisschen besser, was die Learning Rate, die Epochs und auch die Batch Size bedeuten und könnt damit auch rumspielen. Also viel Spaß damit.