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