evaluate_class_gmm — Berechnen der Bewertung eines Merkmalsvektors durch ein Gaussian
Mixture Model.
evaluate_class_gmm( : : GMMHandle, Features : ClassProb, Density, KSigmaProb)
evaluate_class_gmm berechnet drei verschiedenen
Wahrscheinlichkeitwerten für einen Merkmalsvektor Features
durch das Gaussian Mixture Model (GMM) GMMHandle.
Die a-posteriori-Wahrscheinlichkeit einer Klasse i für ein
Merkmal Features(x) wird über
berechnet und in ClassProb pro Klasse zurückgegeben. Die
Berechnungsformeln für die Aktivitäten/Zentren-Dichtefunction p(x|j)
sind bei create_class_gmm angegeben.
Die Dichtefunktion von einem Features Vektor wird als
Summe der Klassenwahrscheinlichkeiten berechnet
und in Density zurückgegeben. Hierbei sind
Pr(i) die a-priori-Wahrscheinlichkeiten der Klassen, so
wie sie von train_class_gmm berechnet werden.
Density kann zur sog. Novelty-Detection verwendet werden,
d.h. zur Rückweisung von Merkmalsvektoren, die keiner der
trainierten Klassen entsprechen. Da Density jedoch von der
Skalierung der Merkmalswerte abhängt und als Dichtewert auch nicht
zwischen 0 und 1 liegen muss, kann die Novelty-Detection im Normalfall
über KSigmaProb (s.u.) einfacher durchgeführt werden.
Ein k-Sigma-Fehler-Ellipsoid ist der geometrische Ort von
Punkten x, für die
gilt. Im eindimensionallen Fall ist er das Intervall . Für beliebige
1D-Normalverteilungen gilt, dass für k=1 ca. 65% der
Werte der Zufallsvariablen innerhalb dieses Intervalls auftreten, für
k=2 ca. 95%, für k=3 ca. 99% usw. Diese
Wahrscheinlichkeit wird k-Sigma-Wahrscheinlichkeit genannt. Sie
wird mit P[k] bezeichnet. P[k] kann numerisch berechnet werden,
wobei zu beachten ist, dass für gleiche Werte von k, (hier sind N und (N+1) die
Dimensionen des Merkmalsvektors). Für die GMM wird die
k-Sigma-Wahrscheinlichkeit wie folgt berechnet:
wird schließlich noch mit den
a-priori-Wahrscheinlichkeiten gewichtet und dann normalisiert. Der
größte Wert aller Klassen wird in KSigmaProb
zurückgegeben:
KSigmaProb kann zur Novelty-Detection verwendet werden.
Normalerweise werden Merkmale, die einen KSigmaProb-Wert
kleiner als 0.0001 haben, zurückgewiesen. Der Schwellwert, der in
classify_image_class_gmm über den Parameter
RejectionThreshold definiert wird, bezieht sich auf die
entsprechenden KSigmaProb-Werte.
Das GMM muss vor der Verwendung von evaluate_class_gmm mit
train_class_gmm trainiert werden.
Die Position des Maximums von ClassProb wird typischerweise
als die Klasse des Merkmalsvektors interpretiert und der zugehörige
Wert als die Wahrscheinlichkeit der Klasse. In diesem Fall sollte
statt evaluate_class_gmm classify_class_gmm
verwendet werden, da classify_class_gmm direkt die Klasse
und Wahrscheinlichkeit zurückliefert.
GMMHandle (input_control) class_gmm → (handle)
Handle des GMM.
Features (input_control) real-array → (real)
Merkmalsvektor.
ClassProb (output_control) real-array → (real)
Die a-posteriori-Klassenwahrscheinlichkeit.
Density (output_control) real → (real)
Wahrscheinlichkeitsdichte des Merkmalsvektors.
KSigmaProb (output_control) real → (real)
Normalisierte k-Sigma-Wahrscheinlichkeit für den Merkmalsvektor.
Sind die Parameterwerte korrekt, dann liefert
evaluate_class_gmm den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine
Fehlerbehandlung durchgeführt.
train_class_gmm,
read_class_gmm
Christopher M. Bishop: „Neural Networks for Pattern Recognition“;
Oxford University Press, Oxford; 1995.
Mario A.T. Figueiredo: „Unsupervised Learning of Finite Mixture
Models“; IEEE Transactions on Pattern Analysis and Machine
Intelligence, Vol. 24, No. 3; March 2002.
Foundation