주 메뉴 열기

바뀜

 
== 추론 방법 ==
효율적인 추론은 조건부 무작위장의 훈련 시 혹은 새로운 입력에 대한 레이블을 예측할때 매우 중요하다. 추론에 있어 크게 2가지 문제를 생각할 수 있다. 첫 번째로, 모델을 훈련한 후, 새로운 입력 <math>x</math>에 대한 레이블 <math>y</math>를 예측하려 할 때, 가장 가능도(liklihoodlikelihood)를 크게 하는 <math>y</math>를 선택하는 것이다. 즉 다음과 같이 나타낼 수 있다: <math>\hat{y} = \operatorname{argmax_y}\ p(y|x)</math>. 두 번째로, 파라미터를 추정할 때 각각의 간선 <math>p(y_t, y_{t-1}|x)</math>와 정규화 함수 <math>Z(x)</math>에 대한 주변분포(marginal distribution)을 계산하는 것이다. 이 두 추론 문제는 근본적으로 같다고 볼 수 있다.
 
불행히도 두 추론 문제는 일반 그래프에 대해서는 다루기 힘든(intractable) 문제이다. 추론을 정확하고 빠르게 할 수 있는 경우는 다음과 같은 경우만 가능하다:
이런 이유 때문에, 효율적 추론을 위해 일반적 그래프에서는 정확한 추론 알고리즘 보다는 근사적 추론 알고리즘이 필요하다. 주로 다음과 같이 두 종류의 근사 추론 알고리즘이 사용된다:
 
* [[몬테 카를로 알고리즘|몬테 카를로 방법]](Monte Carlo algorithm): 확률적 알고리즘으로, 관심이 있는 분포의 샘플을 근사적으로 생성해낸다. 대표적인 예로는 [[기브스 표집]] 알고리즘(Gibbs sampling algorithm)이 있다.
* 변분 알고리즘(variational algorithm): 다루기 힘든 분포와 가장 근사하며 간단한 분포를 찾아내어 푸는 방법으로, 추론 문제를 최적화 문제로 바꾸어 푼다. 대표적인 예로는 [[신뢰전파]] 알고리즘이 있다.
몬테 카를로 방법은 치우침이 없는(unbiased) 대신 계산 시간이 언제 끝날지 알 수 없다는 단점이 있다. 변분 방법은 이에 비해 상당히 빠르지만 치우침이 있어(biased) 에러를 포함하며, 계산 시간을 늘리더라도 에러가 줄지 않는 단점이 있다. 파라미터 추정 과정에서 추론이 많은 회수 반복되기 때문에, 조건부 무작위장의 효율적인 학습을 위해서는 변분 방법이 더욱 선호된다.

편집

40