Algoritmo di massimizzazione delle aspettative | Spiegazione dell'algoritmo EM

Contenuti

Questo articolo è stato pubblicato nell'ambito del Blogathon sulla scienza dei dati

introduzione

sono osservabili. Poiché non abbiamo i valori per le variabili non osservate (latente), il Aspettativa-Massimizzazione L'algoritmo tenta di utilizzare i dati esistenti per determinare i valori ottimali per queste variabili e quindi trova il parametri del modello.

Sommario

  • ? Qual è l'algoritmo di massimizzazione delle aspettative? (IN)?
  • ? Spiegazione dettagliata dell'algoritmo EM
  • ? Diagramma di flusso
  • 👉 Vantaggi e svantaggi
  • 👉 Applicazioni dell'algoritmo EM
  • Caso d'uso dell'algoritmo EM
    • Introduzione alle distribuzioni gaussiane
    • Modelli di miscela gaussiana (GMM)
  • 👉 Implementazione di modelli misti gaussiani in Python

Qual è l'algoritmo di massimizzazione delle aspettative? (IN)?

👉 È un modello di variabile latente.

Primo, Capiamo cosa si intende per modello a variabile latente.

Un modello a variabile latente è costituito da osservabile variabili insieme a inosservabile variabili. Le variabili osservate sono quelle variabili nel set di dati che possono essere misurate, mentre le variabili non osservate (latente / nascosto) sono dedotte dalle variabili osservate.

  • 👉 Può essere usato per trovare massima verosimiglianza locale (MLE) parametri o massimo a posteriori (CARTA GEOGRAFICA) parametri per variabili latenti
    in un modello statistico o matematico.
  • 👉 Utilizzato per prevedere questi valori mancanti nel set di dati, purché si conosca la forma generale della distribuzione di probabilità associata a queste variabili latenti.
  • 👉 In parole semplici, l'idea alla base di questo algoritmo è quella di utilizzare i campioni osservabili delle variabili latenti per prevedere i valori dei campioni che non sono osservabili per l'apprendimento. Questo processo viene ripetuto fino a quando non si verifica la convergenza dei valori.

Spiegazione dettagliata dell'algoritmo EM

? Ecco l'algoritmo che devi seguire:

  • Dato un set di dati incompleto, iniziare con una serie di parametri inizializzati.
  • Aspettativa passo (passo E): In questo passo di attesa, utilizzando i dati osservati disponibili dal set di dati, possiamo provare a stimare o indovinare i valori dei dati mancanti. Finalmente, dopo questo passaggio, otteniamo dati completi senza valori mancanti.
  • Fase di massimizzazione (passo M): Ora, dobbiamo usare i dati completi, che si preparano nel passo dell'aspettativa, e aggiorna i parametri.
  • Ripetere il passaggio 2 e il passo 3 finché non convergiamo alla nostra soluzione.

em11-3003210

Fonte immagine: Collegamento

?

Obiettivo dell'algoritmo di massimizzazione delle aspettative

L'algoritmo di massimizzazione delle aspettative mira a utilizzare i dati osservati disponibili dal set di dati per stimare i dati mancanti per le variabili latenti e quindi utilizzare tali dati per aggiornare i valori dei parametri nella fase di massimizzazione..

Comprendiamo l'algoritmo EM in dettaglio:

  • ioFase di inizializzazione: In questo passaggio, inizializziamo i valori dei parametri con un insieme di valori iniziali, quindi consegniamo al sistema il set di dati osservati incompleto con l'assunzione che i dati osservati provengano da un modello specifico. vale a dire, distribuzione di probabilità.
  • Aspettativa passo: In questo passaggio, utilizzare i dati osservati per stimare o indovinare valori di dati mancanti o incompleti. Usato per aggiornare le variabili.
  • Fase di massimizzazione: In questo passaggio, usiamo i dati completi generati nel “aspettativa” passaggio per aggiornare i valori dei parametri, vale a dire, aggiornare ipotesi.
  • Verifica della convergenza Passaggio: Ora, in questo passaggio, controlliamo se i valori stanno convergendo o no, se è così, Fermare, altrimenti ripeti questi due passaggi, vale a dire, il “aspettativa” passo e “Massimizzazione” passo fino a quando non si verifica la convergenza.

Diagramma di flusso per l'algoritmo EM

em21-1546340

Fonte immagine: Collegamento

Vantaggi e svantaggi dell'algoritmo EM

? Vantaggio

  • I due passaggi fondamentali dell'algoritmo EM, vale a dire, E-step y M-step, di solito sono abbastanza facili per molti problemi di apprendimento automatico in termini di implementazione.
  • La soluzione ai passaggi M spesso esiste in forma chiusa.
  • Il valore di probabilità è sempre garantito per aumentare dopo ogni iterazione.

? Svantaggi

  • Ho convergenza lenta.
  • Convergenza al ottimo locale soltanto.
  • Tiene conto sia delle probabilità in avanti che all'indietro. Questo è in contrasto con l'ottimizzazione numerica che considera solo probabilità di anticipo.

Applicazioni dell'algoritmo EM

Il modello a variabile latente ha diverse applicazioni nella vita reale nell'apprendimento automatico:

  • Utilizzato per calcolare il Densità gaussiana di una funzione.
  • 👉 Utile per completare il dati persi durante uno spettacolo.
  • 👉 Trova molto uso in diversi domini come Elaborazione del linguaggio naturale (PNL), Visione computerizzata, eccetera.
  • 👉 Utilizzato nella ricostruzione di immagini nel campo della Medicina e ingegneria strutturale.
  • 👉 Serve per stimare i parametri del Modello di Markov nascosto (HMM) e anche per altri modelli misti come Miscela gaussiana Modellieccetera.
  • 👉 Serve per trovare i valori delle variabili latenti.

Caso d'uso dell'algoritmo EM

Nozioni di base sulla distribuzione gaussiana

Sono sicuro che hai familiarità con le distribuzioni gaussiane (o la distribuzione normale), poiché questa distribuzione è molto utilizzata nel campo dell'apprendimento automatico e delle statistiche. Ha una curva a campana, con le osservazioni distribuite simmetricamente attorno al valore medio (media).

L'immagine mostrata mostra alcune distribuzioni gaussiane con diversi valori della media (μ) e la varianza (?2). Ricorda che maggiore è il valore di (deviazione standard), maggiore è l'estensione lungo l'asse.

gaussiani-4499815

Fonte immagine: Collegamento

Nello spazio 1-D, il densità di probabilità di una distribuzione gaussiana è data da:

pdf_var-1-300x81-2941573

Fig. Densità di probabilità (PDF)

dove μ rappresenta la media e2 rappresenta la varianza.

Ma questo sarebbe vero solo per una variabile solo in 1-D. Nel caso di due variabili, avremo una curva a campana 3D invece di una curva a campana 2D come mostrato di seguito:

gaussiane-3d-300x224-8017062

La funzione di densità di probabilità sarebbe data da:

pdf_var-2-300x52-1077705

dove x è il vettore di input, μ è il vettore medio 2-D e è la matrice di covarianza 2 × 2. Possiamo generalizzare la stessa cosa per il dimensione D.

Perciò, per il modello gaussiano multivariato, abbiamo x e μ come vettori di lunghezza d, e sarebbe un dxd Matrice di covarianza.

Perciò, per un set di dati che ha D caratteristiche, avremmo un mix di K distribuzioni gaussiane (dove K rappresenta il numero di cluster), ciascuno con un vettore medio e una matrice della varianza determinati.

Ma la nostra domanda è: “Come possiamo trovare la media e la varianza di ogni gaussiana??”

Per trovare questi valori, usiamo una tecnica chiamata Expectation-Maximization (IN).

Modelli di miscela gaussiana

L'assunto principale di questi modelli di mistura è che ci sia un certo numero di distribuzioni gaussiane, e ciascuna di queste distribuzioni rappresenta un gruppo. Perciò, un modello di miscela gaussiana tenta di raggruppare osservazioni che appartengono a una singola distribuzione.

I modelli di miscelazione gaussiana sono modelli probabilistici che utilizzano il raggruppamento Distribuzione fluida delle osservazioni in diversi gruppi, vale a dire, diverse distribuzioni gaussiane.

Ad esempio, il modello di miscela gaussiana di 2 distribuzioni gaussiane

Abbiamo due distribuzioni gaussiane: n (?1, ?12) e n(?2, ?22)

Qui, dobbiamo stimare un totale di 5 parametri:

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

dove p è la probabilità che i dati provengano dalla prima distribuzione gaussiana e 1-p che provengano dalla seconda distribuzione gaussiana.

Quindi, la funzione di densità di probabilità (PDF) del modello di miscela è dato da:

G (X |?) = p1(X | ?1, ?12) + (1-P) G2(X | ?2, ?22 )

obbiettivo: Per adattare meglio una data densità di probabilità trovando = (P, ?1, ?12, ?2, ?22) attraverso iterazioni EM.

Implementazione di GMM in Python

È ora di immergersi nel codice! Qui per l'implementazione, noi usiamo il Libreria Sklearn di Python.

Da sklearn, usiamo la classe GaussianMixture che implementa l'algoritmo EM per adattare una combinazione di modelli gaussiani. Dopo la creazione dell'oggetto, usando il GaussianMixture.fit possiamo apprendere un modello di miscela gaussiana dai dati di addestramento.

passo 1: Importa i pacchetti necessari

importa numpy come np
importa matplotlib.pyplot come plt
da sklearn.mixture import GaussianMixture

passo 2: creare un oggetto della classe Gaussian Mixture

gmm = miscela gaussiana(n_componenti = 2, pedaggio=0.000001)

passo 3: adatta l'oggetto creato al set di dati dato

gmm.fit(np.expand_dims(dati, 1))

passo 4: Stampa i parametri di 2 gaussiani in arrivo

Nr_gaussiano = 1
Stampa('Input Normal_distb {:}: μ = {:.2}, = {:.2}'.formato("1", Media1, Standard_dev1))
Stampa('Input Normal_distb {:}: μ = {:.2}, = {:.2}'.formato("2", media2, Standard_dev2))
Produzione:

Input Normal_distb 1: μ = 2.0, = 4.0

Input Normal_distb 2: μ = 9.0, = 2.0

passo 5: Parametri di stampa dopo la miscelazione 2 gaussiano

per mu, sd, p in zip(gmm.means_.appiattire(), np.sqrt(gmm.covariances_.flatten()), gmm.pesi_):
    Stampa('Normal_distb {:}: μ = {:.2}, = {:.2}, peso = {:.2}'.formato(Gaussian_nr, mu, sd, P))
    g_s = stats.norm(mu, sd).PDF(X) * P
    plt.trama(X, g_s, etichetta="sclero gaussiano");
    Nr_gaussiano += 1

Produzione:

Normal_distb 1: μ = 1,7, = 3,8, peso = 0,61

Normal_distb 2: μ = 8.8, = 2.2, peso = 0.39

passo 6: Traccia i grafici di distribuzione

sns.distplot(dati, contenitori=20, kde = falso, norm_hist=Vero)
gmm_sum = np.exp([gmm.score_samples(e.reshape(-1, 1)) per e in x]) 
plt.trama(X, gmm_sum, etichetta="miscela gaussiana");
plt.legend();

Produzione:

17891__risultati___19_1-9512627

Questo completa la nostra implementazione GMM!!

Note finali

Grazie per aver letto!

Se ti è piaciuto e vuoi saperne di più, visita gli altri miei articoli sulla scienza dei dati e sull'apprendimento automatico facendo clic su Collegamento

Sentiti libero di contattarmi a Linkedin, E-mail.

Tutto ciò che non è stato menzionato o vuoi condividere i tuoi pensieri? Sentiti libero di commentare qui sotto e ti ricontatterò.

Circa l'autore

Chirag Goyal

Attualmente, Sto perseguendo il mio Bachelor of Technology (B.Tech) in informatica e ingegneria da Istituto indiano di tecnologia Jodhpur (IITJ). Sono molto entusiasta dell'apprendimento automatico, il apprendimento profondo e intelligenza artificiale.

I media mostrati in questo articolo su Algoritmo di massimizzazione delle aspettative non sono di proprietà di DataPeaker e sono utilizzati a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.