Was wir vor der Pause gesehen haben, war ein kompletter Durchgang für ein Projekt.
Ein Projekt im Zusammenhang mit Nonlinear Recreation.
Jetzt wollen wir uns überlegen, wiefern Klassifikationsprojekte ähnlich oder eben unterschiedlich sind.
Und man kann von beiden Seiten etwas dazu sagen.
So, also was bedeutet es grundsätzlich, mal Klassifikation zu rechnen, wenn ich einen
Neurokontext argumentieren will?
Ja gut, ich habe N Klassen.
Ich rede jetzt von hier oben.
Also ich habe N Klassen und Klassifikation bedeutet, eine von den Klassen ist in einem
Trainingsbeispiel eins und die anderen neun sind halt null.
Das müsste nicht so sein, aber machen wir das mal als Grundaufgabe.
Ich habe also eine eins und neun, also N minus eins neun, will sagen, damit die Klassifikation
researchhaut Tschenkos격 ist seems
Das ist die Wahrscheinlichkeit, dass die Wahrscheinlichkeit sich auf verschiedene Output-Klassen verteilt.
Aber mehr als eins geht halt nicht. Dann muss also die Summe aller Outputs gleich eins sein hier.
Also der Übergang von wie die Target-Beschreibung aussieht, wie die Output-Beschreibung aussieht, ist halt hier.
Und dann haben wir, ja wie kriege ich das hin? Wie kriege ich das hin, dass alle Nebenbedingungen, die hier oben beschrieben sind,
automatisch erfüllt sind, ohne dass ich die lernen muss. Ich könnte ja immer hingehen und sagen, ja dann lernst du halt diese Eigenschaft.
Aber ich würde die lieber von vornherein so strukturell vorgeben, dass ich die nicht auch noch lernen muss, weil ich weiß ja, dass ich das haben will.
Und die Antwort darauf ist, ich nehme irgendwas, was das neuronale Netz ausgerechnet hat, wie immer das unten im Detail aussehen mag.
Ich nehme das her und mache in meinem Output-Cluster jetzt nicht einfach nur Output-Neuronen rein, sondern mache da auch zwei nicht-linäre Operationen rein.
Die erste nicht-linäre Operation ist, dass ich jeden Output, der hier unten erstmal reinkommt,
oder sagen wir so jeden Netto-Input, der hier unten erstmal reinkommt, den werde ich mit E hoch weiterverarbeiten.
Ich will sagen, ich habe als Nicht-Linerität diesmal nur die E-Funktion alleine drin, keine lange Zahl.
Dann habe ich schon mal garantiert, dass ich nur positive Outputs erzeugen kann, weil E hoch irgendwas ist nun mal eben nur positiv.
Die zweite Eigenschaft, die ich haben könnte, haben will, ist eben, dass die Summe aller Outputs gleich eins ist.
Dafür mache ich einen Mechanismus, der heißt Softmax oder Normieren mit der Eins-Norm.
Das heißt, ich gehe hin und nehme die ganzen Outputs E hoch, Netto-Input, nehme die her und teile die durch die Summe von dem kompletten Cluster her.
Dann ist natürlich klar, dass ich nicht nur positive Zahlen hier stehen habe, sondern dass ich lauter positive Zahlen hier stehen habe, durch zusammen zu eins ergänzen.
Weil die Normierung ist ja von vornherein so gemacht, dass es hinhaut.
Das ist eine Angelegenheit, die ist sehr schön, den Output so zu strukturieren, weil wir kriegen dann sozusagen die Vorgaben, die wir hier gefordert haben, gleich geschenkt.
Man könnte sich jetzt andere Ideen machen, um das hinzukriegen. Man könnte zum Beispiel sagen, ich will hier Zahlen zwischen 0 und 1 haben,
dann mache ich doch als Nicht-Linimität hier die logistische Funktion auf der Output-Seite. Dann habe ich auch nur 0 und 1.
Aber wenn ich dann haben will, dass die Summe der Outputs gleich eins ist, dann muss ich halt doch so eine Normierung machen, wie sie hier auch steht.
Die logistische Funktion ist ein ganzes Stück komplizierter, wie eine einzelne E-Funktion. Und wenn wir einfach bleiben wollen, ist das hier sozusagen das eleganteste, was man machen kann,
um alle Anforderungen von hier, hier unten auszudrücken.
So, jetzt kriegen wir also hier, wenn wir n Klassen haben, kriegen wir n Kommazahlen zwischen 0 und 1, die zusammen zu eins ergänzen, die wir als Wahrscheinlichkeit lesen können.
Jetzt ist eben die Frage, wenn ich diese komplizierte Output-Struktur hier habe, was ist eine gute Zielfunktion, um das zu optimieren?
Und da kommt eben nicht quadratische Abweichungen, das könnte man auch machen. Ich könnte hier auch Output-Target rechnen, wie eben die ganze Zeit auch mit LN-Kursen SH oder mit Quadrat.
Aber es ist schöner, wenn man diese Output-Funktion nimmt, die hier steht. Was ist das?
Das ist, das nennt man Entropie, das ist der Mittelwert über alle Datenpunkte.
Und das ist hier die Summe über alle Outputs, also K läuft von 1 bis N, das ist die Zahl der Klassen, die ich habe in meinem Klassifikationsproblem.
Und dann habe ich hier als Output-Funktion, habe ich target mal LN-Output stehen.
Das ist meine Zielfunktion. Dieses Ding hier wurde natürlicherweise optimiert, also wurde maximiert.
Da aber alle neue Algorithmen so geschrieben sind, dass sie immer eine Minimierung durchführen wollen, machen wir halt hier ein Minus davor, dann dürfen wir wieder unsere normale Minimierung rechnen.
Und die Frage, die ich jetzt beantworten will, ist, warum harmoniert diese Art von Target-Funktion so schön mit dieser komplizierten Output-Beschreibung hier?
Naja, wenn wir also die Reward-Funktion hier, die Error-Funktion, wenn man so will, wenn wir die minimieren wollen,
dann müssen wir jetzt erstmal die erste Ableitung von dieser Funktion hier nach dem Netto-Input ausrechnen. Das machen wir mal schrittweise.
Was ist die Berechnung von Delta-Output nach Delta-Netto-Input hier?
Das können Sie selber mit Bleistift und Papier nachrechnen. Ich zeige Ihnen nur, was dabei rauskommt.
Presenters
Zugänglich über
Offener Zugang
Dauer
01:03:06 Min
Aufnahmedatum
2020-10-28
Hochgeladen am
2020-10-28 18:47:17
Sprache
de-DE