Algorithme de maximisation des attentes | Explication de l'algorithme EM

Contenu

Cet article a été publié dans le cadre du Blogathon sur la science des données

introduction

sont observables. Puisque nous n'avons pas les valeurs pour les variables non observées (latent), la Attente-Maximisation El algoritmo intenta utilizar los datos existentes para determinar los valores óptimos para estas variables y luego encuentra los paramètres del modelo.

Table des matières

  • ?? Quel est l'algorithme de maximisation des attentes (DANS)?
  • ?? Explication détaillée de l'algorithme EM
  • ?? Diagramme de flux
  • Avantages et inconvénients
  • Applications de l'algorithme EM
  • 👉 Cas d'utilisation de l'algorithme EM
    • Introduction aux distributions gaussiennes
    • Modèles de mélange gaussien (GMM)
  • Implémentation de modèles de mélanges gaussiens en Python

Quel est l'algorithme de maximisation des attentes (DANS)?

👉 Es un modelo de variable latente.

Premier, Comprenons ce que l'on entend par modèle à variable latente.

Un modèle à variables latentes consiste en observable variables avec inobservable variables. Les variables observées sont les variables de l'ensemble de données qui peuvent être mesurées, tandis que les variables non observées (latent / caché) sont déduits des variables observées.

  • 👉 Peut être utilisé pour trouver maximum de vraisemblance local (MLE) paramètres ou maximum a posteriori (CARTE) paramètres pour les variables latentes
    dans un modèle statistique ou mathématique.
  • 👉 Utilisé pour prédire ces valeurs manquantes dans l'ensemble de données, à condition de connaître la forme générale de la distribution de probabilité associée à ces variables latentes.
  • En termes simples, l'idée de base derrière cet algorithme est d'utiliser les échantillons observables de variables latentes pour prédire les valeurs d'échantillons qui ne sont pas observables pour l'apprentissage. Ce processus est répété jusqu'à ce que la convergence des valeurs se produise.

Explication détaillée de l'algorithme EM

?? Voici l'algorithme que vous devez suivre:

  • Étant donné un ensemble de données incomplet, commencer avec un ensemble de paramètres initialisés.
  • Étape d'attente (étape E): Dans cette étape d'attente, en utilisant les données observées disponibles à partir de l'ensemble de données, nous pouvons essayer d'estimer ou de deviner les valeurs de données manquantes. Finalement, après cette étape, nous obtenons des données complètes sans valeurs manquantes.
  • Étape de maximisation (étape M): À présent, nous devons utiliser toutes les données, qui se préparent dans l'étape d'attente, et mettre à jour les paramètres.
  • Répéter l'étape 2 et le pas 3 jusqu'à ce que nous convergeons vers notre solution.

em11-3003210

Source de l'image: Relier

??

Objectif de l'algorithme de maximisation des attentes

L'algorithme de maximisation des attentes vise à utiliser les données observées disponibles à partir de l'ensemble de données pour estimer les données manquantes pour les variables latentes, puis à utiliser ces données pour mettre à jour les valeurs des paramètres dans l'étape de maximisation..

Comprenons l'algorithme EM en détail:

  • jeÉtape d'initialisation: Dans cette étape, on initialise les valeurs des paramètres avec un ensemble de valeurs initiales, puis nous livrons l'ensemble de données observé incomplet au système en supposant que les données observées proviennent d'un modèle spécifique. c'est-à-dire, distribution de probabilité.
  • Étape d'attente: Dans cette étape, utiliser les données observées pour estimer ou deviner les valeurs de données manquantes ou incomplètes. Utilisé pour mettre à jour les variables.
  • Étape de maximisation: Dans cette étape, nous utilisons les données complètes générées dans le “Attente” étape pour mettre à jour les valeurs des paramètres, c'est-à-dire, mettre à jour l'hypothèse.
  • Vérification de la convergence Étape: À présent, dans cette étape, on vérifie si les valeurs convergent ou non, si c'est ainsi, Arrêter, sinon répétez ces deux étapes, c'est-à-dire, les “Attente” étape et “Maximisation” étape jusqu'à ce que la convergence se produise.

Organigramme de l'algorithme EM

em21-1546340

Source de l'image: Relier

Avantages et inconvénients de l'algorithme EM

?? avantage

  • Les deux étapes de base de l'algorithme EM, c'est-à-dire, E-étape et M-étape, sont généralement assez faciles pour de nombreux problèmes d'apprentissage automatique en termes de mise en œuvre.
  • La solution aux étapes M existe souvent sous forme fermée.
  • La valeur de probabilité est toujours garantie d'augmenter après chaque itération.

?? Désavantages

  • Possède convergence lente.
  • Converger vers le optimum local seulement.
  • Il prend en compte à la fois les probabilités avant et arrière. Ceci contraste avec l'optimisation numérique qui ne considère que chances d'avance.

Applications de l'algorithme EM

Le modèle de variable latente a plusieurs applications réelles dans l'apprentissage automatique:

  • Utilisé pour calculer le Densité gaussienne d'une fonction.
  • Utile pour compléter le données perdues lors d'un spectacle.
  • Trouve beaucoup d'utilisation dans différents domaines comme Traitement du langage naturel (PNL), Vision par ordinateur, etc.
  • Utilisé dans la reconstruction d'images dans le domaine de Médecine et génie des structures.
  • Il est utilisé pour estimer les paramètres du Modèle de Markov caché (HMM) et aussi pour certains autres modèles mixtes comme mélange gaussien Des modèlesetc.
  • Il est utilisé pour trouver les valeurs des variables latentes.

Cas d'utilisation de l'algorithme EM

Notions de base sur la distribution gaussienne

Je suis sûr que vous connaissez les distributions gaussiennes (ou la distribution normale), car cette distribution est beaucoup utilisée dans le domaine de l'apprentissage automatique et des statistiques. A une courbe en forme de cloche, avec les observations distribuées symétriquement autour de la valeur moyenne (moyenne).

L'image donnée a des distributions gaussiennes avec différentes valeurs de la moyenne (??) et l'écart (??2). Rappelez-vous que plus la valeur de est grande (écart-type), plus l'extension le long de l'axe est grande.

gaussiennes-4499815

Source de l'image: Relier

Dans l'espace 1D, les fonction de densité de probabilité d'une distribution gaussienne est donnée par:

pdf_var-1-300x81-2941573

Figure. Fonction de densité de probabilité (PDF)

où représente la moyenne et σ2 représente l'écart.

Mais cela ne serait vrai que pour une variable en 1-D uniquement. Dans le cas de deux variables, nous aurons une courbe en cloche 3D au lieu d'une courbe en forme de cloche 2D comme indiqué ci-dessous:

gaussiens-3d-300x224-8017062

La fonction de densité de probabilité serait donnée par:

pdf_var-2-300x52-1077705

où x est le vecteur d'entrée, μ est le vecteur moyen 2-D et Σ est la matrice de covariance 2 × 2. Podemos generalizar lo mismo para la dimension ré.

Donc, pour le modèle gaussien multivarié, on a x et comme vecteurs de longueur d, et serait un dxd Matrice de covariance.

Donc, pour un ensemble de données qui a fonctionnalités, nous aurions un mélange de k Distributions gaussiennes (où k représente le nombre de clusters), chacun avec un vecteur moyen et une matrice de variance déterminés.

Mais notre question est: “Comment pouvons-nous trouver la moyenne et la variance de chaque gaussienne?”

Pour trouver ces valeurs, nous utilisons une technique appelée Espérance-Maximisation (DANS).

Modèles de mélange gaussien

L'hypothèse principale de ces modèles de mélange est qu'il existe un certain nombre de distributions gaussiennes, et chacune de ces distributions représente un groupe. Donc, un modèle de mélange gaussien tente de regrouper les observations qui appartiennent à une seule distribution.

Los modelos de mezcla gaussianos son modelos probabilísticos que utilizan el enfoque de regroupement suave para distribuir las observaciones en diferentes grupos, c'est-à-dire, différentes distributions gaussiennes.

Par exemple, le modèle de mélange gaussien de 2 Distributions gaussiennes

On a deux distributions gaussiennes: N (??1, ??12) et n(??2, ??22)

Ici, nous devons estimer un total de 5 paramètres:

= (p, ??1, ??12,??2, ??22)

où p est la probabilité que les données proviennent de la première distribution gaussienne et 1-p qu'elles proviennent de la deuxième distribution gaussienne.

Ensuite, la fonction de densité de probabilité (PDF) du modèle de mélange est donnée par:

g (X |??) = p1(X | ??1, ??12) + (1-p) g2(X | ??2, ??22 )

Cibler: Pour mieux ajuster une densité de probabilité donnée en trouvant = (p, ??1, ??12, ??2, ??22) via des itérations EM.

Implémentation GMM en Python

Il est temps de plonger dans le code! Ici pour la mise en œuvre, nous utilisons le Bibliothèque Sklearn de Python.

De sklearn, nous utilisons la classe GaussianMixture qui implémente l'algorithme EM pour ajuster un mélange de modèles gaussiens. Après la création de l'objet, en utilisant le Mélange gaussien.fit método podemos aprender un modelo de mezcla gaussiana a partir de los datos de entraînement.

Paso 1: Importez les packages nécessaires

importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
de sklearn.mixture importer GaussianMixture

Paso 2: créer un objet de la classe Mélange gaussien

gmm = mélange gaussien(n_composants = 2, péage=0.000001)

Paso 3: adapte l'objet créé à un ensemble de données donné

gmm.fit(np.expand_dims(Les données, 1))

Paso 4: Paramètres d'impression de 2 gaussiennes entrantes

Gaussienne_nr = 1
imprimer('Entrée Normal_distb {:}: = {:.2}, = {:.2}'.format("1", Moyenne1, Standard_dev1))
imprimer('Entrée Normal_distb {:}: = {:.2}, = {:.2}'.format("2", Moyenne2, Standard_dev2))
Sortir:

Entrée Normal_distb 1: = 2.0, = 4.0

Entrée Normal_distb 2: = 9.0, = 2.0

Paso 5: Paramètres d'impression après mélange 2 gaussianos

pour mu, Dakota du Sud, p en zip(gmm.means_.flatten(), np.sqrt(gmm.covariances_.flatten()), gmm.poids_):
    imprimer('Normal_distb {:}: = {:.2}, = {:.2}, poids = {:.2}'.format(Gaussienne_nr, mu, Dakota du Sud, p))
    g_s = stats.norm(mu, Dakota du Sud).pdf(X) * p
    plt.plot(X, g_s, étiquette="sklearn gaussien");
    Gaussienne_nr += 1

Production:

Normal_distb 1: = 1,7, = 3,8, poids = 0,61

Normal_distb 2: = 8.8, = 2.2, poids = 0.39

Paso 6: Tracer les parcelles de distribution

sns.distplot(Les données, bacs=20, kde = Faux, norm_hist=Vrai)
gmm_sum = np.exp([gmm.score_samples(e.remodeler(-1, 1)) pour e dans x]) 
plt.plot(X, gmm_sum, étiquette="mélange gaussien");
plt.légende();

Production:

17891__résultats___19_1-9512627

Ceci termine notre implémentation GMM !!

Remarques finales

Merci pour la lecture!

Si vous avez aimé cela et que vous voulez en savoir plus, visitez mes autres articles sur la science des données et l'apprentissage automatique en cliquant sur le Relier

N'hésitez pas à me contacter au Linkedin, Courrier électronique.

Tout ce qui n'est pas mentionné ou voulez-vous partager vos pensées? N'hésitez pas à commenter ci-dessous et je vous répondrai.

A propos de l'auteur

Chirag Goyal

Actuellement, Je poursuis mon Bachelor of Technology (B.Tech) en informatique et ingénierie de Institut indien de technologie Jodhpur (IITJ). Je suis très enthousiasmé par l'apprentissage automatique, les l'apprentissage en profondeur y la inteligencia artificial.

Les médias présentés dans cet article sur Algorithme de maximisation des attentes ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.