CS/인공지능

[인공지능] 베이즈 정리 ( Bayes' theorem )

IT록흐 2021. 11. 2. 00:19
반응형
 

[인공지능] 전문가시스템

지금껏 포스팅했던 '탐색'으로 구현한 인공지능은 절차적 코드를 사용한다. 그러나 지능은 '탐색'으로만 구현되지 않는다. 전문가 시스템은 코드가 아닌 규칙으로 표현된 지식을 이용하여 좀 더

lordofkangs.tistory.com

 
지난 포스팅에서 '전문가 시스템'을 다루어 보았다.
 
전문가 시스템은 전문가가 지식베이스에 전문지식을 넣으면 추론 엔진으로 사용자가 원하는 정보를 추론하는 시스템이다. 그러나 과연 전문가가 넣은 지식이 100% 정확한 정보일까? 현실세계의 대부분의 정보는 '불확실'하다. 그러므로  우리는 불확실한 정보를 가지고도 올바른 결정을 내릴 수 있어야 한다.
 
 

 

[인공지능] 조건부 확률

이번 포스팅에서는 '베이지 정리'를 이해하기 위한 기본적인 확률 개념을 다루어 볼 것이다. ( 베이지 정리는 다음 포스팅에서 다룰 것이다. ) 확률이론 ( probability theory ) 인공지능 시스템에서 

lordofkangs.tistory.com

( 베이즈 정리에 사용되는 조건부 확률 개념 정리 입니다. )

 

베이즈 정리

 
베이즈 정리 개념은 간단하다. 
 
어떤 사건 H가 발생할 확률이 p(H)이다. 
H와 관련된 E라는 새로운 불확실한 정보가 생성되었다면 H가 발생할 확률은 어떻게 바뀔까?
 
이는 조건부 확률과 개념이 같다. 
 

 

 
이를 변환하면 아래와 같다.
( 조건부 확률 포스팅 참고해주세요! )
 

 
 
여기서 p(H)를 사전확률이라 부른다. 그리고 E가 발생한 뒤 변화된 H 사건의 확률인 p(H|E)는 사후확률이라 부른다. 
 
보통 E를 증거, H를 가설이라 부른다. 
 
증거(사실)가 발생했을 때, 가설이 일어날 확률, 즉 가설을 얼마나 '신뢰'할 수 있는가를 다루는 개념이 바로 '베이즈 정리'이다. 전문가가 가설(지식)을 내놓았을 때, 이 가설(지식)을 얼마만큼 신뢰할 수 있는지를 파악하는 것이 베이즈 정리의 목적이다. 공식을 이해하려면 예시를 통해 이해하는 것이 빠르다. 
 
EX) 
 
전 세계 인구의 10%가 좀비 바이러스에 '감염'되었다. ( 좀비일 확률; p(H) = 0.1 ) 
 
UN은 어떤 사람이 좀비 바이러스에 감염되었는지 '검사'해야한다. ( 양성판정; 사건 E )
 
좀비 바이러스 감염자가 검사를 받으면 90% 확률로 양성판정을 내린다. ( p(E | H) = 0.9 )
감염되지 않은 일반인이 검사를 받으면 70% 확률로 음성판정을 내린다. ( p(ㄱE | ㄱH ) = 0.7 )
 
 
어떤 사람이 검사를 했을 때 양성판정(E)이 나왔다면 이 사람이 좀비(H)일 확률은 얼마일까? ( p(H|E) )
 
 
<풀이방법>

 
 
p(E)부터 구해보자. p(E)는 양성판정이 내려질 확률이다. 양성판정이 내려지는 경우는 두 가지가 있다. 
 

 
1) 좀비 바이러스에 감염된 사람이 양성판정을 받을 확률  
▷ p( E ∩ H ) = p( E | H ) x p(H) = 0.9 * 0.1 = 0.09
 
2) 좀비 바이러스에 감염되지 않은 사람이 양성판정을 받을 확률 :
▷ p( E ∩ ㄱH ) =  p( E | ㄱH ) x p(ㄱH ) = 0.3*0.9 = 0.27
* p(ㄱE | ㄱH ) = 0.7이니 상호배타적인 p( E | ㄱH )은 0.3이다. 
 
 
p(E) = 1) + 2) = 0.36
p( E | H ) x p(H) = 0.9 * 0.1 = 0.09
p( H | E ) = 0.09 / 0.36 = 1/4 = 0.25
 
 
고로 양성판정을 받은 사람 중에서 진짜 좀비일 확률은 25%이다. 
 
베이즈 정리로 정리하면, 양성판정을 받은 사람이 나타났다면 ( 증거 ) 이 사람을 좀비라고 판단한다는 가설을 신뢰할 수 있는 정도가 25% 밖에 안 된다는 이야기이다. 
 
가설의 신뢰도가 높으면 규칙이 된다. ( 규칙 : E → H ; 신뢰도 25% )
 
 

확신도

 
베이즈 추론은 사전확률을 기반으로 추론하는 방법이다. 그런데 정말 사전확률은 믿을만한 수치일까? 사전확률은 보통 전문가들이 정한다. 확신도란, 전문가들의 신뢰도를 나타내는 수치이다. 
 

cf[H,E] = MB(H,E) - MD(H,E)

 
 
cf[H,E] : 증거 E가 발생했을때 가설H가 참이라고 확신하는 정도 ( -1 ~ 1 )
MB(H,E) : E가 H를 지지하는 정도 ( 믿음의 척도 ) ( 0 ~ 1 )
MD(H,E) : E가 H를 부정하는 정도  ( 불신의 척도 ) ( 0 ~ 1 )
 
cf가 양수이면 증거가 가설을 지지한다는 의미이고 음수이면 부정한다는 의미이다. 
 
MYCIN 전문가시스템에서는 문턱값이 존재한다. 
문턱값이 0.25면 cf가 0.25를 넘어야 해당 규칙을 점화할 수 있다. 
 
그러나 MB가 높더라도 MD가 너무 낮으면 cf가 작게 나올 수 있다. 분명 지지하는 증거가 많으므로 규칙은 효용성이 있지만 문턱값을 맞추지 못해 버려질 수 있다. 그래서 MYCIN 개발팀은 확신도를 변경했다. 
 

cf[H,E] = ( MB - MD ) / ( 1 - min(MB,MD) )

 
 
 

불확실한 증거를 가졌을 때 확신도 

 
cf[H,E]는 확실한 증거 E가 H를 지지하느냐 안 하느냐를 다루는 확신도이다. 그렇다면 E가 아니라 불확실한 증거 e가 제시된다면 확신도는 어떻게 바뀔까?
 
E : 기상 예보에서 오늘 비가 온다고 말했다. 
H : 비가 온다. 
cf[H,E] = 0.8 
 
e : 하늘이 흐리다. 
H : 비가 온다. 
cf[H,e] = ?
 
e가 E에 비해 얼마만큼 확신도가 떨어지는지 나타내는 값이 cf[E,e]이다. 
cf[E,e] x cf[H,E] 를 계산하면 cf[H,e]가 나온다. 
 
cf[E,e] = 0.6
cf[E,e] x cf[H,E] = 0.6 x 0.8 = 0.48  
cf[H,e] = 0.48
 
 

반응형