Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PNN (Probabilistic Neural Networks)

Geschrieben

Probabilistic Neural Networks(PNN) und Euclidean Metric

 

Ich weiss wie man es benutzt aber ich verstehe einfach nicht wie es wirklich arbeitet.

 

Hat jemand damit Erfahrung und kann es Erklären?

Featured Replies

Geschrieben
Probabilistic Neural Networks(PNN) und Euclidean Metric

 

Ich weiss wie man es benutzt aber ich verstehe einfach nicht wie es wirklich arbeitet.

 

Hat jemand damit Erfahrung und kann es Erklären?

 

Sind das nicht die Dinger, die eine Liste von Trainingsbeispielen speichert und dann für jedes neue Exemplar die nächsten Nachbarn aus der Trainingsmenge berechnet und dementsprechend den Output liefert? (Nicht das ich anfang was "erklären" was nichts mit der Sache zu tun hat.

 

btw.: ich hab noch nie verstanden wieso die Dinger Probabilistic heißen... weil mit Wahrscheinlichkeitstheorie haben die ja wenig zu tun oder?

Geschrieben
Sind das nicht die Dinger, die eine Liste von Trainingsbeispielen speichert und dann für jedes neue Exemplar die nächsten Nachbarn aus der Trainingsmenge berechnet und dementsprechend den Output liefert? (Nicht das ich anfang was "erklären" was nichts mit der Sache zu tun hat.

Ja, die sind das. Die ähnlich funktionieren wie k-Means-Clustering.

 

PNN or "Probabilistic Neural Network" is Donald Specht's term for kernel discriminant analysis. (Kernels are also called "Parzen windows".) You can think of it as a normalized RBF network in which there is a hidden unit centered at every training case. These RBF units are called "kernels" and are usually probability :top: density functions such as the Gaussian. The hidden-to-output weights are usually 1 or 0; for each hidden unit, a weight of 1 is used for the connection going to the output that the case belongs to, while all other connections are given weights of 0. Alternatively, you can adjust these weights for the prior probabilities of each class.

 

So the only weights that need to be learned are the widths of the RBF units. These widths (often a single width is used) are called "smoothing parameters" or "bandwidths" and are usually chosen by cross-validation or by more esoteric methods that are not well-known in the neural net literature; gradient descent is not used. Specht's claim that a PNN trains 100,000 times faster than backprop is at best misleading. While they are not iterative in the same sense as backprop, kernel methods require that you estimate the kernel bandwidth, and this requires accessing the data many times.

 

Furthermore, computing a single output value with kernel methods requires either accessing the entire training data or clever programming, and either way is much slower than computing an output with a feedforward net. And there are a variety of methods for training feedforward nets that are much faster than standard backprop. So depending on what you are doing and how you do it, PNN may be either faster or slower than a feedforward net.

 

PNN is a universal approximator for smooth class-conditional densities, so it should be able to solve any smooth classification problem given enough data. The main drawback of PNN is that, like kernel methods in general, it suffers badly from the curse of dimensionality. PNN cannot ignore irrelevant inputs without major modifications to the basic algorithm.

 

So PNN is not likely to be the top choice if you have more than 5 or 6 nonredundant inputs. For modified algorithms that deal with irrelevant inputs, see Masters (1995) and Lowe (1995). But if all your inputs are relevant, PNN has the very useful ability to tell you whether a test case is similar (i.e. has a high density) to any of the training data; if not, you are extrapolating and should view the output classification with skepticism. This ability is of limited use when you have irrelevant inputs, since the similarity is measured with respect to all of the inputs, not just the relevant ones.

Quelle: http://campar.in.tum.de/twiki/pub/Far/Mach...lNetworkFAQ.pdf

 

Ich kenn' neuronale Netze auch nur ganz allgemein, damit gearbeitet hab ich noch nie. Ich kenn nur ein paar Leute, die das schon gemacht haben. Erklären könnte ich PNN schon, wenn ich mir die Literatur bisschen durchlese. Es gibt ja reichlich im Web.

 

Bsp:

http://voyagememoirs.com/pharmine/2008/06/...al-network-pnn/

http://www.dtreg.com/pnn.htm

 

Kann nur bisschen dauern, weil ich momentan nicht soviel Zeit habe. Also, wenn Mythos das schon mal für ne Klausur gelernt hat, sollten wir besser diese Quelle anzapfen. :top:

Geschrieben
Also, wenn Mythos das schon mal für ne Klausur gelernt hat, sollten wir besser diese Quelle anzapfen. :top:

 

Also gelernt hab ich von den Dingern noch gar nix, aber ich kann ja mal versuchen das wiederzugeben was ich darüber "weiß" (gelesen + zusammengereimt habe):

 

Allgemein befinden wir uns im n-dimensionalen Raum, aber zum einfacheren Verständniss schreib ich mal alles mit n = 3 ;)

 

Gegeben sei also eine Liste von Punkten im 3-dimensionalen Raum (unsere Trainingsliste). Zusätzlich eine Menge von m Kategorien (der Einfachheithalber numeriert 1 bis m) und für jeden Punkt aus der Trainingsmenge gibt es eine fix vorgegebene Kategorie. (Also zb Punkt 1 ist aus Kategorie 2, Punkt 2 aus Kategorie 5 etc...)

 

Kommt jetzt ein neuer Punkt daher, versuchen wir für diesen eine "passende" Kategorie zu finden.

Dafür gibts dann mehrere Varianten:

Variante1: Man sucht den Punkt aus der Trainingsmengen mit minimalem Abstand zu dem neuen Punkt und gibt einfach dessen Kategorie aus.

Variante2: Man sucht die k nähesten Nachbarn und gibt den Mittelwert dieser k Kategorien aus oder die Kategorie die bei den k Nachbarn am häufigsten auftritt.

Variante3: Im Trainingsschritt interpretiert man die Trainingspunkte als Realisierungen von Zufallsvariablen, schätzt aus diesen Daten die Parameter der verschiedenen Verteilungen und berechnet dann für jede Kategorie (=Verteilung) die Wahrscheinlichkeit mit der dieser Testpunkt von dieser Verteilung erzeugt werden würde. Die Kategorie mit der höchsten Wahrscheinlichkeit wird dann ausgegeben (bzw. die gewichtete Summe (also Summe von Wahrscheinlichkeit*Kategorie))

 

Verwendet man als Ausgabe Mittelwerte von Kategorien, so muss eine gewisse Interpretation der Kategorien vorhanden sein, die das rechtfertigt. zB "Stärke vom Trend" (um beim trading zu bleiben): Dann macht es Sinn einem Punkt der gleich nah zu einem Punkt mit Kategorie 1 und einem mit Kategorie 5 liegt, die Kategorie 3 zu geben.

 

Zu Variante3: Hier wird meist mit Normalverteilungen gerechnet, da diese über Erwartungswert und Varianz eindeutig bestimmt sind und hierfür leicht zu berechenbare Schätzer existieren.

 

Verwendet man Variante 1 oder 2 kann muss man dauerhaft die gesamte Liste an Trainingsdaten speichern und jeden neuen Punkt mit allen Trainingsdaten vergleichen. Dafür muss man hier "keinerlei" Annahmen (ala Normalverteilung etc.) treffen und definiert "Zusammengehörigkeit" einfach als "geringe Distanz im Parameteraum".

 

Variante 1 ist sehr empfindlich für Ausreißer in der Trainingsmenge.

 

Weil im Titel auch Euclidean Metric vorkommt: die Abstände im Raum werden meist als euklidsche Abstände über die euklidsche Metrik berechnet. (ist nichts anderes als der natürliche Abstandsbegriff)

 

Soweit was ich über PNNs "weiß". Alles ohne Anspruch auf Korrektheit oder Vollständigkeit, aber vielleicht hilft es jemandem beim Verständniss.

Geschrieben
  • Autor

Aus den englischen Quellen werde ich nicht schlau bei diesem Thema.

 

Das was ihr geschrieben habt bringt für mich schon mehr Licht ins Dunkle.

 

Danke euch. :top:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.