evaluate_class_gmmT_evaluate_class_gmmEvaluateClassGmmEvaluateClassGmm (Operator)

Name

evaluate_class_gmmT_evaluate_class_gmmEvaluateClassGmmEvaluateClassGmm — Berechnen der Bewertung eines Merkmalsvektors durch ein Gaussian Mixture Model.

Signatur

evaluate_class_gmm( : : GMMHandle, Features : ClassProb, Density, KSigmaProb)

Herror T_evaluate_class_gmm(const Htuple GMMHandle, const Htuple Features, Htuple* ClassProb, Htuple* Density, Htuple* KSigmaProb)

void EvaluateClassGmm(const HTuple& GMMHandle, const HTuple& Features, HTuple* ClassProb, HTuple* Density, HTuple* KSigmaProb)

HTuple HClassGmm::EvaluateClassGmm(const HTuple& Features, double* Density, double* KSigmaProb) const

static void HOperatorSet.EvaluateClassGmm(HTuple GMMHandle, HTuple features, out HTuple classProb, out HTuple density, out HTuple KSigmaProb)

HTuple HClassGmm.EvaluateClassGmm(HTuple features, out double density, out double KSigmaProb)

Beschreibung

evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmm berechnet drei verschiedenen Wahrscheinlichkeitwerten für einen Merkmalsvektor FeaturesFeaturesFeaturesFeaturesfeatures durch das Gaussian Mixture Model (GMM) GMMHandleGMMHandleGMMHandleGMMHandleGMMHandle.

Die a-posteriori-Wahrscheinlichkeit einer Klasse i für ein Merkmal FeaturesFeaturesFeaturesFeaturesfeatures(x) wird über berechnet und in ClassProbClassProbClassProbClassProbclassProb pro Klasse zurückgegeben. Die Berechnungsformeln für die Aktivitäten/Zentren-Dichtefunction p(x|j) sind bei create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmm angegeben.

Die Dichtefunktion von einem FeaturesFeaturesFeaturesFeaturesfeatures Vektor wird als Summe der Klassenwahrscheinlichkeiten berechnet und in DensityDensityDensityDensitydensity zurückgegeben. Hierbei sind Pr(i) die a-priori-Wahrscheinlichkeiten der Klassen, so wie sie von train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmm berechnet werden. DensityDensityDensityDensitydensity kann zur sog. Novelty-Detection verwendet werden, d.h. zur Rückweisung von Merkmalsvektoren, die keiner der trainierten Klassen entsprechen. Da DensityDensityDensityDensitydensity 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 KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProb (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 KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProb zurückgegeben:

KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProb kann zur Novelty-Detection verwendet werden. Normalerweise werden Merkmale, die einen KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProb-Wert kleiner als 0.0001 haben, zurückgewiesen. Der Schwellwert, der in classify_image_class_gmmclassify_image_class_gmmClassifyImageClassGmmClassifyImageClassGmmClassifyImageClassGmm über den Parameter RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThreshold definiert wird, bezieht sich auf die entsprechenden KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProb-Werte.

Das GMM muss vor der Verwendung von evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmm mit train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmm trainiert werden.

Die Position des Maximums von ClassProbClassProbClassProbClassProbclassProb 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_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmm classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmm verwendet werden, da classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmm direkt die Klasse und Wahrscheinlichkeit zurückliefert.

Ausführungsinformationen

Parameter

GMMHandleGMMHandleGMMHandleGMMHandleGMMHandle (input_control)  class_gmm HClassGmm, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des GMM.

FeaturesFeaturesFeaturesFeaturesfeatures (input_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Merkmalsvektor.

ClassProbClassProbClassProbClassProbclassProb (output_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Die a-posteriori-Klassenwahrscheinlichkeit.

DensityDensityDensityDensitydensity (output_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Wahrscheinlichkeitsdichte des Merkmalsvektors.

KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProb (output_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Normalisierte k-Sigma-Wahrscheinlichkeit für den Merkmalsvektor.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmm den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmm, read_class_gmmread_class_gmmReadClassGmmReadClassGmmReadClassGmm

Alternativen

classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmm

Siehe auch

create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmm

Literatur

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.

Modul

Foundation