Die Mathe-Redaktion - 16.07.2019 00:53 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktAnmeldung MPCT Sept.
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 142 Gäste und 10 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von matroid
Informatik » Algorithmen / Datenstrukturen » Backpropagation in Convolutional Neural Networks
Druckversion
Druckversion
Autor
Universität/Hochschule J Backpropagation in Convolutional Neural Networks
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 143
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2019-07-03 21:24


Hey,

ich habe ein paar Fragen zum Thema "Convolutional Neural Networks", in das ich mich gerade einarbeite.

Zunächst einmal möchte ich gerne "Backpropagation" verstehen.
Soweit ich weiß ist es das Ziel eines CNN eine Kostenfunktion (Loss Function) zu minimieren. Beispielsweise könnte die Aufgabe eines CNN sein, Bilder entweder als Hund oder als Katze zu klassifizieren. Und die Kostenfunktion, die minimiert werden soll, könnte bspw. das Quadrat aus der Differenz zwischen Vorhersage und tatsächlicher Klasse sein.

Wie aber minimiert das CNN die Kostenfunktion? Ich weiß, dass hierbei ein Algorithmus namens "Stochastic Gradient Descent" zum Einsatz kommt. Die Idee ist, dass die Gewichte, mit denen Eingänge eines Neurons multipliziert werden, so geupdated werden, dass sich die Kostenfunktion ihrem Minimum annähert:

\[w := w - \alpha * \frac{d L(w)}{dw}\]
Hierzu muss also die Ableitung der Kostenfunktion nach dem entsprechenden Gewicht gebildet werden. Und dies geschieht mithilfe eines Algorithmus namens "Backpropagation".
Hierzu habe ich folgende Skizze erstellt:



Wir betrachten hier ein Neuron, das zwei Eingänge \(x_1\) und \(x_2\) erhält. Das eingehende Signal bezeichnen wir als \(z\). Das Ausgehende Signal ist das Ergebnis der Aktivierungsfunktion (in diesem Beispiel eine sigmoid-function). Und die Kostenfunktion ist abhängig von dieser Aktivierung \(a\), sowie der tatsächlichen Größe \(y\).
Hierbei gilt:
\[\frac{dL}{dw} = \frac{dL}{dz} \cdot x = \frac{dL}{dz} \cdot\frac{dz}{dw} \\ \frac{dL}{dz} = \frac{dL}{da} \cdot \frac{da}{dz}\]
Soweit so gut. Ich denke, ich bin "Backpropagation" hiermit schon recht nahe gekommen. Allerdings haben wir in einem CNN natürlich mehrere Hidden Layers. In diesem Beispiel hatten wir lediglich ein einziges Neuron. Wenn wir statt dessen zwei Neuronen betrachten, ergibt sich bereits:



Nun gilt:
\[\frac{dL}{dz_2} = \frac{dL}{da_2} \cdot \frac{da_2}{dz_2}\]
Aber mir ist nicht klar, wie ich auf \(\frac{dL}{dw_1}\) und \(\frac{dL}{dw_2}\) komme. Und das sind doch die Parameter, die ich bestimmen möchte? Außerdem benötige ich natürlich noch die Gewichte \(w_3\) und \(w_4\).

Also, es wäre klasse, wenn mir hier jemand helfen könnte, diesen Algorithmus etwas besser zu durchschauen!

Vielleicht geht das hier jetzt etwas zu weit, aber:
Ich habe einen Artikel über Spatial Transformer Networks gelesen:
hier

Hierbei ist es so, dass das Output des Spatial Transformers, V, nach U ableitbar sein muss: \(\frac{dV}{dU}\). Und ich möchte wirklich gerne verstehen, warum das so wichtig ist. Ich weiß, dass Backpropagation hier der Schlüssel zu der Frage ist. Also, wenn hierzu noch jemand etwas sagen kann, wäre das auch klasse!



  Profil  Quote  Link auf diesen Beitrag Link
b_p
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.09.2012
Mitteilungen: 541
Aus: Köln
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2019-07-03 23:01


Es handelt sich lediglich um Anwendung der Kettenregel der Differentialrechnung.

In deinem Beispiel haben wir <math>L(a, y)</math>, <math>a = \sigma(z)</math> sowie <math>z = w_1 x_1 + w_2 x_2 + b</math>. Um nun <math>\frac{\partial L(a, y)}{\partial w_1}</math> zu berechnen, schauen wir uns an, von wo <math>w_1</math> in L einfließt. Das geschieht über <math>a</math> und da wiederum über <math>z</math>. Also leiten wir entsprechend ab, nämlich <math>\frac{\partial L(a, y)}{\partial w_1} = \frac{\partial L(a, y)}{\partial a} \cdot \frac{\partial a(z)}{\partial z} \cdot \frac{\partial z}{\partial w_1}</math>.

Bei deinem zweiten Beispiel geht das ganz genau so: <math>\frac{\partial L(a_2, y)}{\partial w_1} = \frac{\partial L(a_2, y)}{\partial a_2} \cdot \frac{\partial a_2(z_2)}{\partial z_2} \cdot \frac{\partial z_2}{\partial a_1} \cdot \frac{\partial a_1(z_1)}{\partial z_1} \cdot \frac{\partial z_1}{\partial w_1}</math>.



  Profil  Quote  Link auf diesen Beitrag Link
Nuramon
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 23.01.2008
Mitteilungen: 1513
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2019-07-04 10:41


Hallo,

eine meiner Meinung nach sehr schöne Erklärung, warum Backpropagation so nützlich ist, obwohl es einfach nur die Kettenregel ist, findet man hier.



  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 143
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2019-07-11 22:08


Hey,

danke euch beiden! Beide posts haben mir echt weitergeholfen!



  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7 hat die Antworten auf ihre/seine Frage gesehen.
Lucky_7 hat selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema]  Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]