В принципі, і ЕМ, і стандартний підхід до оптимізації можуть працювати для підгонки сумішей. Як і ЕМ, розпуклі оптимізатори вирішаться до локального оптимуму. Але існують різноманітні алгоритми оптимізації для пошуку кращих рішень за наявності декількох локальних оптимів. Наскільки мені відомо, алгоритм з найкращою швидкістю конвергенції буде залежати від проблеми.
Одна перевага ЕМ полягає в тому, що він, природно, виробляє дійсні параметри розподілу суміші на кожній ітерації. На противагу цьому, стандартні алгоритми оптимізації потребують обмеження. Наприклад, скажіть, що ви підходите до моделі суміші Гаусса. Стандартний нелінійний підхід до програмування вимагає, щоб обмежуючі матриці коваріації були позитивними напівдефінітами, а обмежувальні ваги компонентів суміші були неотрицательними і дорівнювали одиниці.
Щоб досягти хорошої продуктивності при вирішенні завдань з високими розмірами, нелінійний програміст розв'язувача зазвичай повинен використовувати градієнт. Отже, вам доведеться або отримати градієнт, або обчислити його з автоматичною диференціацією. Градієнти також потрібні для функцій обмеження, якщо вони не мають стандартної форми. Метод Ньютона та пов'язані з ним підходи (наприклад, методи регіону довіри) потребують і гессіанців. Методи кінцевого розмежування або похідні можуть бути використані, якщо градієнт недоступний, але продуктивність має тенденцію до масштабного масштабу в міру збільшення кількості параметрів. Навпаки, ЕМ не вимагає градієнта.
ЕМ концептуально інтуїтивно зрозуміла, що є чудовою чеснотою. Це часто стосується і стандартних підходів до оптимізації. Існує багато деталей реалізації, але загальна концепція проста. Часто вдається використовувати стандартні рішення для оптимізації, які абстрагують ці деталі далеко під капотом. У цих випадках користувач повинен просто поставити цільову функцію, обмеження та градієнти, і мати достатньо робочих знань, щоб вибрати вирішувач, який добре підходить для проблеми. Але спеціалізовані знання, безумовно, потрібні, якщо вони доходять до того, коли користувачеві доводиться думати або впроваджувати деталі низького рівня алгоритму оптимізації.
Ще одна перевага алгоритму ЕМ полягає в тому, що його можна використовувати в тих випадках, коли деякі значення даних відсутні.
Також цікаво (включаючи коментарі):