2019년 12월 8일 일요일

Artificial Intelligence - The Maximum Entropy Method

만약 어떤 사건의 확률을 구해야한다면 베이즈 정리를 통해 어려운 확률도 쉽게 구할 수 있었다. 하지만 이는 주어진 지식이 충분할 때의 이야기이다.

만약 주어진 지식이 충분하지 않다면 베이즈 정리를 통한 접근이 어렵다.

이럴 땐 The Maximum Entropy Method을 통해 해결하는 방법이 있다.

The Maximum Entropy Method는 현재 주어진 정보를 갖고 가장 최선의 해를 찾는 최적화 방법 중의 하나로 Entropy는 정보가 전혀 없는 상태가 가장 높아 최대화가 된다. 즉 어떤 사건이 일어날 확률이 다른 사건들이 일어날 확률과 똑같다는 가정하에 확률을 구하는 방법이다.




α와β가 구해졌을 때 P(B)를 구해보자.


P(A,B) = (P(A,B), P(A,┐B), P(┐A,B), P(┐A,┐B)) 이다.
이를 아래처럼 치환하도록 하자
p1 = P(A,B)
p2 = P(A,┐B)
p3 = P(┐A,B)
p4 = P(┐A,┐B)

즉 p1+p2+p3+p4 = 1이다.

P(A,B) = P(B|A)P(A) = αβ (Chain rule에 의해)
P(A) = P(A,B) + P(A,┐B)) (Marginalization에 의해)

Chain rule과 Marginalization은 아래 포스팅을 참고한다.
https://parksuseong.blogspot.com/2019/12/artificial-intelligence-chain.html

더 나아가보자.
p1 = αβ
p1+p2 = α
p1+p2+p3+p4 = 1

p2 = α - αβ = α(1-β)
p3+p4 = 1-α

현재 주어진 지식으로는 여기까지 구하는 것이 최선이다.

Entropy를 적용해보는데 Entropy는 최대화하는 것이 목표이다.

P = (p3,p4)일 때 H(p)는 아래와 같다.
(H(P)는 로그값이 확률 값이므로 음수가 나오기 때문에 -를 해주는 것이다.)


이는 p3 + p4 = 1 - α 이고 p3 + p4 - 1 + α = 0이 된다.

Largange function L을 이용해서 아래처럼 정의하고 L을 maximize하자. (지식이 적으니까)


이를 통해 구하기 어려웠던 P(B)를 구할 수 있다.

P(B) = P(A,B) + P(┐A,B)
= p1 + p3
= αβ + (1-α/2)

정리를 하면 미지수가 4개인데 식이 3개이므로 방정식을 풀 수가 없었다.
하지만 최종적으로 p3 + p4 = 1 - α에서 두 개의 확률 변수 p3, p4로 하는 Joint 확률 분포 P(p3,p4)에서 entropy가 최대가 된다. 2개의 확률 변수 Entropy 함수는 H(P)로 주어진 식을 최대로 하는 값을 찾기 위해서 Largange function L을 편미분한 값이 0, 즉 최대임을 이용하면 식이 2개가 추가되므로(p3와 p4에 대한 식) 원래의 방정식을 풀 수 있다.

또한 H(P)는 로그값이 확률 값이므로 음수가 나오기 때문에 -(마이너스)를 해주는 것이다.

정보가 적을 때 Entropy가 최대가 된다. (이때 decision tree에서는 엔트로피의 차를 통해 Information gain을 구해서 decision 하게 된다.)

하지만 위의 문제를 maximum entropy를 적용하지 않고 사실 두 확률 변수의 확률을 1/2로 가정해서 풀어도 상관 없다. n개일때는 1/n으로 가정한다.

-
아주대 김민구교수님 강의를 바탕으로 작성합니다.

댓글 없음:

댓글 쓰기

2022년 회고

 올해는 블로그 포스팅을 열심히 못했다. 개인적으로 지금까지 경험했던 내용들을 리마인드하자는 마인드로 한해를 보낸 것 같다.  대부분의 시간을 MLOps pipeline 구축하고 대부분을 최적화 하는데 시간을 많이 할애했다. 결국에는 MLops도 데이...