Ich habe in letzter Zeit die Theorie hinter ANNs studiert und wollte die "Magie" hinter ihrer Fähigkeit zur nichtlinearen Klassifizierung mehrerer Klassen verstehen. Dies führte mich zu dieser Website, auf der geometrisch gut erklärt wird, wie diese Annäherung erreicht wird.
So habe ich es verstanden (in 3D): Die verborgenen Ebenen können als Ausgabe von 3D-Schrittfunktionen (oder Turmfunktionen) betrachtet werden, die so aussehen:
Der Autor erklärt, dass mehrere solcher Türme verwendet werden können, um beliebige Funktionen zu approximieren, zum Beispiel:
Dies scheint sinnvoll zu sein, jedoch ist die Konstruktion des Autors eher so konstruiert, dass sie eine gewisse Intuition hinter dem Konzept vermittelt.
Wie genau kann dies jedoch bei einer beliebigen ANN validiert werden? Folgendes möchte ich wissen / verstehen:
- AFAIK die Annäherung ist eine glatte Annäherung, aber diese 'Intuition' scheint eine diskrete Annäherung zu liefern, ist das richtig?
- Die Anzahl der Türme scheint auf der Anzahl der verborgenen Schichten zu basieren - die obigen Türme werden als Ergebnis von zwei verborgenen Schichten erstellt. Wie kann ich dies (mit einem Beispiel in 3D) mit nur einer einzigen ausgeblendeten Ebene überprüfen?
- Die Türme werden mit einigen Gewichten erstellt, die auf Null gesetzt sind, aber ich habe nicht gesehen, dass dies bei einigen ANNs der Fall ist, mit denen ich herumgespielt habe. Wird es wirklich eine Turmfunktion sein? Kann es etwas mit 4 bis Seiten sein und sich fast einem Kreis annähern? (Der Autor sagt, dass dies der Fall ist, lässt dies jedoch als Selbststudium).
Ich möchte diese Approximationsfähigkeit in 3D wirklich für jede beliebige 3D-Funktion verstehen, bei der ein ANN mit einer einzelnen verborgenen Ebene approximiert werden kann. Ich möchte sehen, wie diese Approximation aussieht, um eine Intuition für mehrere Dimensionen zu formulieren.
Folgendes denke ich, was meiner Meinung nach helfen könnte:
- Nehmen Sie eine beliebige 3D-Funktion wie .
- Generieren Sie einen Trainingssatz von mit beispielsweise 1000 Datenpunkten, wobei sich viele Punkte auf der Kurve befinden, einige darüber und einige darunter. Diejenigen auf der Kurve sind als "positive Klasse" (1) und diejenigen nicht als "negative Klasse" (0) markiert.
- Füttere diese Daten einem ANN und visualisiere die Annäherung mit einer verborgenen Schicht (mit ungefähr 2-6 Neuronen).
Ist diese Konstruktion korrekt? Würde das funktionieren? Wie mache ich das? Ich bin noch nicht in der Lage, dies selbst umzusetzen, und suche diesbezüglich mehr Klarheit und Richtung - bestehende Beispiele, die dies zeigen, wären ideal.