Ho letto un paio di spiegazioni dell'algoritmo EM (ad es. Da Bishop's Pattern Recognition and Machine Learning e da Roger and Gerolami First Course on Machine Learning). La derivazione di EM è ok, lo capisco. Capisco anche perché l'algoritmo copre qualcosa: ad ogni passo miglioriamo il risultato e la probabilità è limitata da 1.0, quindi usando un fatto semplice (se una funzione aumenta e è limitata, allora converge) sappiamo che l'algoritmo converge in qualche soluzione.
Tuttavia, come facciamo a sapere che è un minimo locale? Ad ogni passo stiamo prendendo in considerazione solo una coordinata (variabile latente o parametri), quindi potremmo perdere qualcosa, come il minimo locale che richiede lo spostamento di entrambe le coordinate contemporaneamente.
Questo credo sia un problema simile a quello della classe generale di algoritmi di arrampicata in collina, di cui EM è un esempio. Quindi per un algoritmo generale di arrampicata su collina abbiamo questo problema per la funzione f (x, y) = x * y. Se partiamo dal punto (0, 0), solo considerando entrambe le direzioni contemporaneamente possiamo spostarci verso l'alto dal valore 0.