**기댓값 최대화 알고리즘**은 관측되지 않는 잠재변수에 의존하는 확률 모델에서 최대가능도나 최대사후확률을 갖는 모수의 추정값을 찾는 반복적인 알고리즘이다.
EM 알고리즘은 모수에 관한 추정값으로 로그가능도의 기댓값을 계산하는 기댓값 (E) 단계와 이 기댓값을 최대화하는 모수 추정값들을 구하는 최대화 (M) 단계를 번갈아가면서 적용한다.
최대화 단계에서 계산한 변수값은 다음 기댓값 단계의 추정값으로 쓰인다.

## 역사
기댓값 최대화 알고리즘은 1977년 아서 뎀스터, 낸 라드와 도널드 루빈에 의해 제시되었다. 하지만 특수한 경우에서의 기댓값 최대화 알고리즘은 이미 몇몇 저자들에 의해 연구되고 있었고, 특히 롤프 선드버그는 페르 마틴-뢰프, 앤더스 마틴-뢰트와 함께 지수족에 한정된 기댓값 최대화 알고리즘에 관한 연구를 한 바 있다. 1977년 뎀스터-라드-루빈 논문은 이 방법을 일반화하여 지수족뿐만 아니라 다양한 확률분포에 한해서도 알고리즘이 수렴함을 밝혔다. 왕립통계협회저널에 게재된 이 논문은 그 혁신성으로 인해 롤프 선드버그를 비롯한 여럿에게 극찬을 받았으며, 기댓값 최대화 알고리즘을 통계분석의 중요한 도구로 자리매김하게 하였다.

이후 뎀스터-라드-루빈 논문의 알고리즘 수렴성 분석에 오류가 발견되었고, 1983년 C.F. 제프 우에 의해 옳은 증명이 제시되었다. 제프 우의 증명은 기댓값 최대화 알고리즘이 지수족뿐만 아니라 다른 확률분포에도 성립함을 보였다.

## 서론
기댓값 최대화 알고리즘은 통계 모델의 수식을 정확히 풀 수 없을 때 최대가능도를 구하는 데 사용된다. 이런 통계 모델은 대개 잠재변수와 관측할 수 없는 모수, 관측된 데이터로 구성되어 있고, 몇몇 관측값들이 누락되어 있거나 관측되지 않은 데이터가 존재한다고 가정할 수도 있다. 예를 들면, 혼합 모델에서 매 관측값이 그에 상응하는 잠재변수 혹은 관측되지 않은 값을 가지고 있다고 가정할 수 있다.

최대가능도는 관측되지 않은 모든 변수 각각에 대하여 로그가능도를 미분한 식을 풀어서 구할 수 있다. 하지만 잠재변수를 포함하는 통계 모델의 수식들은 매우 복잡하여 이와 같은 방법으로는 풀 수 없다. 각각의 변수에 관해 미분한 식은 서로 얽혀있어 한 수식의 해를 구하기 위해서는 다른 식의 해를 구해야 하는데, 이 수식의 해 또한 이전 식의 변수를 포함하기 때문이다. 따라서 이 경우 정확한 해를 계산하는 것은 불가능하다.

하지만 기댓값 최대화 알고리즘을 이용하면 이 문제의 해를 수치적으로 계산할 수 있다. 우선 서로 얽혀있는 두 식과 각각의 변수들을 가정해보자. 두 식은 얽혀있기 때문에 한 식의 변수는 다른 식의 변수일 수 있다. 첫번째 식의 변수값을 임의로 잡은 후 이 변수값으로 두번째 식의 변수값을 추정한다. 그렇게 구한 변수값으로 다시 첫번째 식의 변수값을 추정하고 이를 반복한다. 특정한 상황에서 충분히 많은 반복을 거치면 각각의 변수들이 일정한 값으로 수렴한다는 것을 보일 수 있다. 또한, 이 값에서 로그가능도의 미분은 0이 됨을 보일 수 있고, 이는 이 값이 극점이거나 안장점임을 의미한다. 일반적으로 로그가능도는 여러 개의 극점을 가질 수 있으므로 기댓값 최대화 알고리즘이 반드시 최댓값을 구할 수는 없다. 어떤 가능도는 특이점, 즉 무의미한 극점을 갖기도 한다. 예를 들어, 혼합 모델에서 한 성분의 평균 매개변수를 관측된 하나의 데이터로 놓고 분산 변수를 0으로 설정할 때 발생하는 특이점이 기댓값 최대화 알고리즘으로 구해지는 해가 될 수 있다.

## 방식
관측할 수 있는 확률변수 로 정의할 수 있다.

이 수식의 계산비용은 잠재변수 의 차원이 증가할수록 취할 수 있는 값의 수는 지수적으로 증가하기 때문에 이 수식을 계산하기는 매우 어렵다.

기댓값 최대화 알고리즘은 다음 두 단계를 반복하여 가능도 함수 의 최대가능도를 구한다.

**기댓값 (E) 단계**에서는 의 조건부 분포이다.

**최대화 (M) 단계**에서는 를 계산한다.

기댓값 최대화 알고리즘은 다양한 모델에 적용 가능하지만, 적용되는 모델은 일반적으로 다음 성질을 만족한다.

모수 의 값을 추정할 수 있다. 모수와 잠재변수 중 하나의 값을 알면 다른 값도 쉽게 알 수 있다는 것이 기댓값 최대화 알고리즘의 핵심이다. 다음은 기댓값 최대화 알고리즘을 간략히 요약한 것이다.

이 알고리즘은 비용함수의 극대점으로 단조 수렴한다.

기댓값 최대화 알고리즘은 극대점을 찾기 때문에, 구한 값이 실제 최대점은 아닐 수 있다. 이를 피하기 위해 여러 개의 임의 초기값에 대해 계산하는 기법이나 담금질 기법 등이 같이 사용될 수 있다.

## 성질
비록 EM을 반복하는 것이 관측된 데이터(한계) 기능도 함수를 증가시키지만 그 순열이 최대가능도로 수렴한다는 증거는 없다. 다항 분포에서는, EM 알고리즘이 초기값에 따라 관측된 데이터 가능도 함수의 극대값으로 수렴할 수도 있다. 경사 하강법(서로 다른 초기 추정량 에서 시작하는 방법)이나 담금질 기법 등 수 많은 체험적이거나 메타 발견적 학습 방법이 있다.

EM은 가능도가 지수족일 때 특히 유용하다: E 단계는 충분 통계량의 기대값들의 합이 되며, M 단계는 선형 함수를 최대화하는 것을 포함한다. 이런 경우에는, 각각의 단계에서 선드버그 공식을 이용하여 닫힌 해를 도출하는 것이 가능하다.{{저널 인용
Per Martin-Löf. 1966. ''Statistics from the point of view of statistical mechanics''. Lecture notes, Mathematical Institute, Aarhus University. ("Sundberg formula" credited to Anders Martin-Löf).
Martin-Löf, Per The notion of redundancy and its use as a quantitative measure of the discrepancy between a statistical hypothesis and a set of observational data. ''Scand. J. Statist.'' 1 (1974), no. 1, 3–18.

EM 방법은 뎀스터-라드-루빈 논문에서 베이즈 추론에서 최대 사후 확률을 계산하기 위해 변형되었다.

경사 하강법, 켤레기울기법, 또는 가우스-뉴턴 방법의 변형 등과 같은 최대가능도를 찾는 여러 방법들이 존재한다. EM과 달리, 이러한 방법들은 일반적으로 가능도 함수의 첫 번째와 두 번째 미분의 계산을 필요로 한다.

## 올바름 증명
기댓값 최대화 알고리즘은 를 향상시키는 일이다.
여기에서 증명하는 것은 

확률이 0이 아닌 

여기에서, 는 음수의 합(negated sum)으로 정의된다.
마지막 식은 
이전의 식으로부터 이 마지막 식을 빼면,
\log p(\mathbf{X}|\boldsymbol\theta) - \log p(\mathbf{X}|\boldsymbol\theta^{(t)})