gusucode.com > 用粒子滤波算法进行跟踪的matlab代码 > gmm_utilities/Notes.txt
GMM Utilities ------------- For GMMs and Gaussian kernels, we want the following operations: 1. Evaluate at a point. 2. Draw samples from. 3. Linear Transform. 4. Multiply. 5. Divide. 6. Kalman update (projective multiply). 7. Convolve. Reduction: 1. Truncate. 2. Join. 3. Cluster. Distance measures: 1. Mahalanobis. 2. Bhattacharyya. 3. Kullback-Leibler divergence (relative entropy). 4. Renyi divergence. Improvements ------------ - Remove loops - implement as log-likelihoods where possible to increase numerical stability. For example, gmm_evaluate could take log-weights, normalise them so their mean is 0, convert to normal weights, add them, convert to log-weights and subtract normaliser. - perhaps make logflag an optional member of each GMM - incorporate checking for numerical errors - check everything works for 1-D single Gaussians, N-D single Gaussians and 1-D N Gaussians Alternatives ------------ Kernel join-merge: 1 - Keep original kernel. 2 - Adjust kernel at end: P = P + P1 - P2; where P1 and P2 are the original and final ensemble variances, respectively. 3 - Adjust kernel at each iteration (Matt Ridley): P = P + ...? - + P_k+1 - P_k; where these are the ensemble variances between iterations - + w.*xerr*xerr'; where xerr is as per gmm_to_gaussian() for the two merged points Questions --------- - Can we do non-linear transform of PDF if transform is approximated by, say, a GMM? Demos ----- - Approximate Bracewell's functions with gmms and test the convolution routines give the anticipated shapes.