이전 포스팅에서는 EM 알고리즘에 대하여 간략한 예제를 통하여 알아보았다. 이번 포스팅에서는 EM 알고리즘이 작동하는 원리에 대하여 살짝 이해해보는 시간을 갖도록 하자. 전 포스팅에서 알아보았듯, 결국 EM 알고리즘은 E step과 M step을 반복 함으로써 우도 함수를 최대화시키는 방법이다. 자연스럽게 떠오르는 질문은 ‘항상 이러한 방법을 사용하면 우도 함수를 최대로 만드는 모수를 찾을 수 있을까?’ 일 것이다. 이러한 질문의 완벽한 대답은 되지 않지만, EM 알고리즘의 Path는 이번 포스팅에서 다룰 아주 좋은 성질을 가지고 있다. Ascent property of EM algorithm EM 알고리즘을 사용해서 우리는 모수의 값을 계속 업데이트 해 나아간다. 이렇게 업데이트된 모수는 우리가 최대화..
EM 알고리즘에 대하여(1) - Optimization with R 이번 포스팅에서는 머신러닝(machine learning) 분야에서 많이 등장하는 EM 알고리즘(Expectation–Maximization algorithm)에 대하여 알아보도록 하겠다. 요즘 머신러닝이 유행하면서 EM 알고리즘이 뭔가 새롭게 등장한 것 같지만, EM 알고리즘은 어찌보면 전통 통계기법이라 할 만큼 그 역사가 길다. Arthur P. Dempster (from Wiki) EM 알고리즘의 이름이 처음 등장한 것은 1977년 Arthur Dempster, Nan Laird, and Donald Rubin이 쓴 논문에 처음 등장하지만, 이 논문의 요지는 ’이제까지 특정 분야들에서 여러 사람들에 의하여 제안되었던 방법들이 하나의..
Optimization with R - 5. 뉴턴 방법을 사용한 로지스틱 회귀분석 모수 추정하기 Multivariate Newton’s method with R 지난 포스팅에서 우리는 입력변수가 2개 이상인 함수에 대하여 뉴턴법을 적용하여 보았다. 오늘은 이에 관한 실제 R코드를 짜고 이를 가상의 데이터를 만들어 적용하여 보도록 하자. 좀 더 쉬운 코드를 위하여 우리가 사용하는 최적화 방법은 제약조건이 없는(unconstrained) 상황의 최적화를 가정한다. 우리가 정의할 함수의 이름은 newton_opt이라고 하고, 입력값으로는 grad, Hessian, x_now, 그리고 나머지 루프를 빠져나오기 위한 값들인 stop_criteria, max_iter, 마지막으로 stepsize를 설멍하였다. ne..
Optimization with R - 3. 2차 근사로서의 뉴턴 방법에 대하여 1차 근사를 이용한 뉴턴 방법의 해찾기 지난 포스팅에서 우리는 newton method를 이용한 최소값을 만드는 \(x\)값을 찾는 방법에 대하여 알아보았다. 이 방법의 핵심은 해를 찾는 방법이었던 뉴턴 방법을 최소값을 찾고 싶은 함수의 1차 도함수에 적용하는 것이라고 할 수 있다. 필자가 첫번째 포스팅에서 링크했던 아래의 그림은 해를 찾는 방법에 있어서 Newton’s method가 어떻게 동작하는지를 잘 보여준다. 위의 그림에서 기울기를 나타내는 선인 빨간색 선을 주목해 보자. 뉴턴 방법은 현재 위치(\(x_n\))에서 해를 찾고자하는 함수를 1차 근사(빨간색 직선)를 시킨다. 즉, 빨간색 선과 비슷하다고 생각하는 것이다..
Optimization with R - 2. Newton’s method를 통한 최대값 찾기 \(f(x)\)의 최대값를 찾아라. 오랜만에 다시 opimization 연재를 시작한다. 지난 포스팅에서 우리는 newton method를 이용한 해을 찾는 방법(root finding)에 대하여 알아보았다. 어쩌면 독자 중에는 이전 포스팅의 제목인 ’Optimization with R - 1. Newton’s method를 통한 해찾기’를 읽으면서 고개를 갸웃거린 독자가 있을 것이라 생각한다. 왜냐하면 옵티마이제이션이라 함은 어떤 함수의 최대값이나 최소값을 찾는 방법에 대한 내용이지 어떤 방정식의 해를 찾는 내용은 아니기 때문이다. 하지만 optimization 시리즈의 첫번째를 Newton’s method를 ..
Optimization with R - 1. Newton’s method를 통한 해찾기 \(f(x) = 0\)의 해를 찾아라. 오늘 우리가 공부할 내용은 수치해석학의 가장 유명한(?) 방법인 Newton's method에 대해서 알아보도록 하겠다. Newton's method 방법은 어떤 주어진 함수 \(f(x)\)를 0으로 만드는 입력값(즉, \(f(x)=0\)의 해)을 반복적인 수치계산을 통하여 찾는 방법이다. 이 방법을 적용하기 위해서는 함수 \(f\)가 특정 조건들을 만족해야 하는데, 기본적으로 다음의 두 가지는 꼭 만족해야만 한다. 함수 \(f(x)\)를 0으로 만든다는 것에서, 함수는 결과값이 한 개인 real-value function이어야 한다는 것을 알 수 있다. 우리가 사용하는 함수가 ..