{'fraction_non_alphanumeric': 0.021526418786692758, 'fraction_numerical': 0.003913894324853229, 'mean_word_length': 4.745318352059925, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
SSE Vectorization of the EM Algorithm for Mixture of Gaussians Density Estimation

The Expectation-Maximization (EM) algorithm is a popular tool for determining maximum likelihood estimates (MLE) when a closed form solution does not exist. It is often used for parametric density estimation, that is, to estimate the parameters of a density function when knowledge of the parameters is equivalent to knowledge of the density. The most famous case is the Gaussian distribution, which is fully specified by its mean and variance. The MLEs of the mean and variance of a single Gaussian are given by the sample mean and sample variance, no EM algorithm necessary. However, in real world applications, data is often generated from several unknown sources. In cases such as this, the data can be modeled as a mixture of several densities. The mixture of Gaussians (MoG) is a common model and has been used in image segmentation and saliency detection tasks for computer vision (1). To achieve real-time processing for computer vision the EM algorithm must be fast. The purpose of this paper is to demonstrate the speedup gained by a streaming SIMD extensions (SSE) formulation of the EM algorithm when compared to a straight forward implementation. The rest of the paper is organized as follows. Section 2 presents a brief overview of the EM MoG algorithm and its implementation. Section 3 discusses the SSE. Section 4 explains the SSE formulation of the EM MoG algorithm with results presented in Section 5. Section 6 concludes the paper.