언젠가 쓸 날이 올거라 믿으며 퍼옵니다.
출처 : http://blog.naver.com/enddl22/40050048148
베이지안 정리 - 이론
베이지안 필터란 무엇인가? 이를 이해하기 위해선 먼저 이의 기반이 되는 베이지안 정리에 대해 알아둘 필요가 있습니다. 간단하 게 얘기하면, 과거에 A라는 사건이 발생했을 때, B라는 class로 분류되었다면, 다음번에도 A가 발생했을 때 B가 될 가능성이 높다는 의미입니다. 하지만 이는 비 공학도를 위한 설명에 불과하고, 이것이 수학적으로 어떤 공식으로 유도되고 그 공식이 어떤 의미를 가지고 있는지 알아보는 것이 우리에게 더욱 도움이 될 것입니다.
증명을 위해 몇 가지 용어를 정의하고 시작하겠습니다.
A: 개체가 가질 수 있는 어떤 성질
P(A): 개체가 어떤 성질을 가질 확률 (예: 키가 170이상일 확률, 메일이 어떤 단어를 포함할 확률)
Wi: class. 전체 군을 몇 가지 성질에 따라 나눈 것입니다. (예: 남자=W1, 여자=W2. 또는 스팸메일=W1, 정상메일=W2)
P(Wi): 개체가 어떤 어떤 class에 속할 확률
간 단히 추론하고 넘어갈 것은 P(W1) + P(W2) + ... P(Wn) = 1 라는 것입니다. (남자와 여자를 합하면 전체 사람이죠)
P(Wi|A) = A라는 성질을 가졌을 때 Wi일 확률 (ex: 메일이 어떤 단어를 포함하고 있을 때 스팸일 확률)
P(A|Wi) = Wi class 안에서 A라는 성질을 가질 수 있는 확률(ex: 스팸일 때 어떤 단어를 포함하고 있을 확률)
P(A, B) = A, B가 동시에 일어날 확률
A, Wi(i는 임의의 정수)는 확률의 용어로 생각해 보면 어떤 사건이라고 할 수 있겠지만, 베이지안 정리의 개념을 잡기 위해선 성질, class로 나누어 생각하는 것이 좋습니다.
자, 중학교 때 배웠던 확률의 기억을 더듬어 보세요.. 이제 베이지안 정리로의 여행을 시작하겠습니다. 당분간, A, B는 '사건'이라 가정하고 서술하겠습니다.
1) P(A|B) = P(A,B)/P(B) (Conditional Probability)
아주 기본적인 정리입니다. 공리이기 때문에 증명되지 않습니다. 옛날에 배운 적이 있을 것입니다. ^^
자.. 위 식이 만족된다면 아래와 같은 식도 만족되겠지요.
2) P(B|A) = P(B,A)/P(A)
P(B,A) = P(A,B)이죠? 동시에 일어날 확률이기 때문에 순서는 중요하지 않습니다.
그렇다면 2) 식을 다음과 같이 정리해 봅시다.
3) P(A, B) = P(B|A) * P(A) (앞으로 *는 생략하겠습니다)
3)을 1)에 대입하면 다음과 같은 식을 얻을 수 있습니다.
4) P(A|B) = P(B|A)P(A)/P(B)
지금까진 A, B가 사건이었지만, 위에서 용어를 정의한 대로 A는 성질, Wi는 class로 놓고 다시 식을 풀어쓰겠습니다. (말씀 드렸듯, 본질적으로 차이는 없습니다. 그냥 말과 개념이 바뀌는 것이지요)
5) P(Wi|A) = P(A|Wi)P(Wi)/P(A) (posterior probability)
자 이 식의 우변은 여러개의 항이 섞여 있어 아직 무슨 말인지 감이 안잡히는군요. 왼쪽 항을 봅시다. P(Wi|A)는 위에도 설명 드렸듯이 개체가 어떤 성질 A를 가지고 있을 때 class Wi에 속할 확률입니다.
전체군을 W1과 W2의 두 개의 class로 나누었다고 가정합시다. 일단 P(W1|A) + P(W2|A) = 1 이 되겠지요? 어떤 개체는 W1이나 W2나 둘 중 하나의 군에는 반드시 속할 것이기 때문입니다. 그렇다면, 지금까지의 경험(과거의 데이터)를 기준으로 P(W1|A) = 0.8 이고, P(W2|A) = 0.2 이라고 합시다. 만일 미래에 A라는 성질을 가진 새로운 개체를 만난다면 우린 이 A를 W1에 분류할 수 있을까요? W2에 분류할 수 있을까요?
네, 맞습니다. 과거의 데이터를 기준으로 우리는 A를 W1이라 분류할 수 있을 것입니다.
따라서, 개체가 A라는 성질을 가졌을 때, P(Wi|A) 값이 가장 큰 Wi에 A가 속할 것이라고 예측합니다.
다시 식을 전개해 나가봅시다..
P(W1|A) < P(W2|A) 라고 하죠. 그럼 우린 방금 말 했듯이, 어떤 개체가 A라는 성질을 가지면
W2라는 class에 속한다고 예측할 수 있겠고요. 5) 식으로 좌변 우변을 모두 치환하겠습니다.
6) P(A|W1)P(W1)/P(A) < P(A|W2)P(W2)/P(A)
6)을 정리하면 아래와 같은 식이 나옵니다.
7) P(A|W1)/P(A|W2) < P(W2)/P(W1) (Bayes' decision rule)
자.. 이제 다 왔습니다. 소위 베이지안 정리라 부르는 것은 위의 식을 의미합니다. 우리가 어떤 개체가 A라는 성질 가지고 있다는 것을 알고 있을 때, 그 개체가 W1에 속할지 W2에 속할지 위의 식으로 알아낼 수 있습니다. 위의 식에서 왼쪽이 더 크다면 class W1에 속할 것이고요, 오른쪽이 더 크다면 class W2에 속하겠지요.
그리고 왼쪽 값, 오른 쪽 값 모두 '경험' 을 통해서 얻어낼 수 있는 값입니다. 전문적인 용어로, 왼쪽은 likelihood ratio, 오른쪽은 threshold라고 합니다.
' 즉, ratio가 임계값을 넘느냐, 안넘느냐에 따라 class가 결정됩니다.'
말로 풀어쓰니 훨씬 쉽지요? 간단히 예를 하나 들어보겠습니다.
베이지안 필터라 불리는 스팸 필터의 알고리즘을 생각해 봅시다. 우리가 받는 메일의 80%가 스팸 메일이라고 합시다. W2를 spam mail class, W1을 clean mail class라고 하면 오른쪽 threshold 값은 0.8/0.2 = 4 라고 할 수 있겠죠. 그럼 왼쪽 값이 4보다 작으면 spam mail, 4보다 크면 clean mail 이라고 규정할 수 있을 것입니다. 이제 ratio를 알아 냅시다.
VIAGRA라는 단어가 메일에 포함될 확률을 P(A)라고 하면, P(A|W1)은 clean mail에 VIAGRA가 포함된 확률, P(A|W2)는 spam mail에 VIAGRA가 포함된 확률입니다. 우리는 지금까지의 경험을 토대로, 이 확률을 알아낼 수 있습니다. 받은 메일들을 '스팸', '깨끗'으로 분리하면서 필터를 소위 '교육' 시키면, 그 '교육'된 자료를 바탕으로 확률 데이터를 가질 수 있게 되지요. 깨끗한 메일의 10%가 VIAGRA를 가지고 있었고, spam 메일의 60%가 VIAGRA를 가지고 있었다고 합시다. 그 경우 P(A|W1) = 0.1, P(A|W2) = 0.6. ratio는 1/6. 즉 4 보다 작습니다.
이제 부터 우리는 A의 성질을 가진 경우(VIAGRA라는 단어를 포함한 경우), class W2에 속한다고(spam)이라고 예측할 수 있을 것입니다. ratio와 threashold의 간극이 클 수록 예측이 맞을 확률이 크다고 볼 수 있습니다.
이 공식의 의미는 과거의 자료로 부터 미래를 예측할 수 있다는 데에 있습니다. 사건과 사건 사이의 어떤 연결 고리를 과거를 바탕으로 맺어주는 것이지요. 자료가 누적되면 누적될 수록 우리는
정확한 예측을 할 수 있게 됩니다. 이 공식은 패턴 인식, AI의 기본이 되는 공식이라 합니다.
단순한 공식에서 심오한 의미를 이끌어 낼 수 있다는 것이 ( 1)의 공식만으로 우리는 여기까지 왔습니다.) 수학이 가진 매력이오, 베이지안 룰의 아름다움이 아닐까요? (이하 생략)
No comments:
Post a Comment