Uncertainty
AI in Modern Approach : Stuart Russell Peter Norvig, Prentice Hall, 2003, Page 462~488
결정이론적 에이전트 (decision-theoretic agent) 를 위한 설계
Part Ⅲ 과 Ⅳ 에 서술된 논리적 에이전트는 명제가 참인지, 거짓인지, 모르는 것인지 (unknown) 에 대한 인식론적 공헌을 한다. 에이전트가 그 환경에 대해 많은 사실들을 알고 있을 때, 논리적 접근방식은 에이전트가 작업하기에 보장된 계획을 할 수 있게 한다. 이것은 좋은 일이다. 불행히도, 에이전트는 그들의 환경에 대한 전체의 진실에 거의 접근할 수가 없다. 따라서 에이전트는 불확실성하에서 작업해야 한다. 예를들면 Chapter 7 의 wumpus 세계 의 에이전트는 위치정보 만을 알려주는 센서가 있다 ; 그 세계는 즉시 관찰할 수가 없게 되어있다. wumpus 에이전트는 두 개의 광장중의 하나에 발견할 수 없는 함정을 가지고 있다는 것을 알게될 것이다. 이러한 광장이 금을 찾아가는 도중에 있다면, 그 에이전트는 위험을 무릎쓰고 두 개의 광장중 하나로 들어간다.
실제 세계는 wumpus 세계보다 훨씬 더 복잡하다.
논리적 에이전트가 어떻게 행동할 것인지를 완전하고 정확히 묘사하는 것은 불가능할
것이다. 예를들면 에이전트가 한 사람을 비행기를 타러 공항으로 모셔주고자 하는 하나의
계획을,
이라고 가정하고, 그것은 비행기가 출발하기 90 분 전에 집을
떠나서 적당한 속도로 운전을 한다는 것을 의미한다. 비록 공항이 15 마일 떨어진 거리에 있지만,
그 에이전트는 "
계획이 제 시간내에 공항에 도착하게
해줄 것이다" 라고 확실한 (certainty) 결론을 내릴 수는 없다. 대신에 "내 차가
고장나지 않고 가스가 떨어지지 않고, 사고도 나지 않고, 다리위에 어떤 교통사고도
없고, 비행기가 일찍 출발하지만 않으면 ....
계획은 시간내에
우리를 공항으로 안내할 것이다" 라는 약한 (weaker) 결론을 내린다. 이러한 조건들중
어떤 것도 추론될 수 (deduced) 없는 것이고, 따라서 그 계획의 성공여부는 추측할
수 없다. 이것은 Chapter 10 에서 언급되는 qualification problem 의 한 예이다.
만일 논리적 에이전트가 어떤 특별한 행동을 통해
목적을 달성하지 못한다고 결론이 난다면, 행동을 할 수 없을 것이다. 조건부 계획
(conditional planning) 은 어느정도 불확실성을 극복할 수 있지만, 그것도 에이전트의
감각행동이 필요한 정보를 얻을 수 있거나 우연한 결과 (contingency) 가 그렇게
많지 않을 경우에 국한된다. 또다른 가능한 해법은 에이전트에게 세계에 대한 단순하지만
부정확한 이론 (incorrect theory) 을 부여해서 계획을
유도할 수 있게 하는 것이다 ; 아마도, 그러한 계획은
대부분의 시간동안은 작동하겠지만, 사건이 에이전트의
이론과 모순될 때는 문제가 발생한다. 더구나 에이전트 이론의 정확성 (accuracy)
과 유용성 (usefulness) 사이의 흥정을 다루는 것은 그 자체가 불확실성에 대한
추론을 필요로 하는 것으로 보인다. 결론적으로 어떠한 순수하게 논리적인 에이전트도
계획
이 옳은 일을 한다고 결론내릴 수 없을 것이다.
그럼에도
이 실제로 옳은 일을 한다고 가정해보자. 그것이 무엇을 의미하는가? Chapter
2 에서 논의한 대로, 환경에 대한 정보만 주어져 있다면, 실행될 수 있는 모든 계획중에서
는 에이전트의 성능척도를 최대로 하는 것으로 기대하는 것이다. 성능척도는
비행을 위해 제 시간내에 공항에 도착하고, 공항에서의 길고 비생산적인 대기시간을
피하고, 도로에서 속도위반 티켓을 피하는 것을 포함한다. 그 에이전트는
의 이러한 결과의 어떤 것도 보증할 수 없지만, 그것들이 성취될 것이라는
어느정도의 믿음은 제공할 수 있다.
(120 분전에 출발) 같은 다른 계획들은 제시간에 공항에 도착할 것이라는 에이전트의
믿음을 증가시킬 것이지만, 오랫동안 기다리게 될 개연성 (likelihood) 은 증가한다.
그러므로 올바른 일을 한다는 것 - 합리적인 결정 (rational decision)
- 은 여러 가지 목표의 상대적인 중요성과 어느정도는 성취될 것이라는 개연성에
달려있다. 이 섹션에서는 이러한 개념을 숙달시키고
계속되는 Chapter 에서 나오는 불확실성 추론과 합리적 결정에 대한 일반 이론의
발전을 다룰 것이다.
이 섹션에서는 불확실한 지식의 성격을 자세히 살표본다. 포함되어있는 개념을 보여주기 위해 간단한 진단 예를 사용한다. 진단 - 의학, 자동차수리 등등 무엇이든 간에 - 은 거의 항상 불확실성을 포함하는 작업이다. 일차논리 (First-order Logic) 을 사용해서 치과진단을 위한 규칙을 만들어 사용해보자, 그럼으로써 논리적 접근방식이 어떻게 실패하는지를 볼 수 있다. 다음 규칙을 보자 : (Symptom : 증상, Disease : 질병, Toothache : 치통, Cavity : 충치, Gum : 잇몸, Abscess : 농양 ......)
∀p Symptom (p, Toothache) ⇒ Disease (p, Cavity)
문제는 이 규칙이 잘못되었다는 것이다. 치통을 가진 모든 환자들이 충치를 가진 것은 아니다 ; 그들중의 몇몇은 잇몸 질병 를 가질 수도 있고, 아니면 다른 문제일 수도 있다 :
∀p Symptom (p, Toothache) ⇒ Disease (p, Cavity) ∨ Disease (p, GumDisease) ∨ Disease (p, Abscess)...
불행히도 이 규칙이 참이 되기 위해서는 거의 무제한 갯수의 가능한 원인을 추가해야 한다. 이 규칙을 인과규칙 (causal rule) 로 바꿀 수 있다 ;
∀p Disease (p, Cavity) ⇒ Symptom (p, Toothache)
그러나 이 규칙도 또한 옳은 것은 아니다 ; 모든 충치가 통증을 느끼는 것은 아니다. 그 규칙을 정확하게 하는 유일한 방법은 논리적으로 모두검사하는 (exhaustive) 것 뿐이다 : 즉 충치가 치통의 원인이 된다고 하는 모든 질적인 문제 (qualification) 를 조건부 (left-hand side) 에 보강하는 것이다. 그때 조차도 진단 목적을 위해서는, 환자가 서로 관련되지 않는 toothache 와 cavity 를 가지고 있을 가능성을 고려해야만 한다.
따라서 의료진단과 같은 영역을 처리하기 위해 first-order logic 을 사용하는 것은 3 가지 주요한 이유 때문에 실패한다.
치통과 충치 사이의 연관은 각 방향으로 논리적 순서가 있는 것은 아니다. 이것은 대부분의 판단을 요하는 (judgemental) 영역, 즉 법률, 비즈니스, 디자인, 자동차수리, 원예, 날씨 등등 뿐 아니라 의료 영역에서 전형적이다. 에이전트의 지식은 기껏해야 적절한 문장에서 신뢰도 (degree of belief) 를 제공할 뿐이다. 신뢰도를 다루는 주요한 툴은 확률이론 (probability theory) 이다. 그것은 각 문장에 0 과 1 사이의 신뢰도를 부여하는 것이다. (몇몇 불확실성 추론을 다루는 변형된 방법들은 섹션 14.7 에서 다루어진다.)
확률은 나태와 무지에서 오는 불확실성을 요약 (summarizing) 하는 방법을 제공한다. 어떤 환자가 아픈 것을 확실히 알 수는 없지만, 만일 치통이 있다면 충치를 가졌을 80 % 의 가능성 - 즉 0.8 의 확률이 있다고 믿는다. 즉 에이전트의 지식이 미치는 범위에서 최근의 상황에서 구분할 수 없는 모든 상황으로부터, 치통을 가진 환자의 80 % 가 충치가 있을것으로 기대한다. 이러한 믿음은 통계적 데이터 - 치통 환자의 80 % 가 충치를 가진다는 - 또는 일반적인 규칙, 또는 증거가 되는 소스의 결합으로부터 유도될 수 있다. 그 80 % 는 치통의 원인이 되는 충치이기 위한 모든 요소가 현존하는 경우들과, 환자가 치통과 충치를 가졌지만 서로 연관된 것은 아닌 경우들로 요약된다. 나머지 20 % 는 너무 나태하거나 무지해서 확신하거나 부정할 수 없는 다른 모든 가능한 치통의 원인을 요약한다.
주어진 문장이 확률 0 이라는 것은 그 문장이 거짓이라는 명확한 믿음과 같고, 확률 1 이라는 것은 참이라는 명확한 믿음과 같다. 0 과 1 사이의 확률은 문장의 진리여부에 대해 중간 정도의 믿음과 같다. 그 문장 자체는 실제로 참일 수도 거짓일 수도 있다. 믿음의 정도 (degree of belief) 와 진리의 정도 (degree of truth) 는 다르다는 것을 아는 것이 중요하다. 0.8 의 확률이라는 것은 "80 % 참" 을 의미하는 것이 아니라 80 % 믿음의 정도 - 즉 아주 강한 기대 - 를 의미한다. 그래서 확률이론은 논리학과 같은 존재론적 공헌 (ontological commitment) - 주로 사실이 (facts) 세상에 존재하는지 (hold) 않는지 - 을 한다. 믿음의 정도와 반대되는 진리의 정도는 fuzzy logic 의 주제이며, 섹션 14.7 에서 다루어진다.
논리학에서는 "그 환자는 충치가 있다" 같은 문장은 해석과 세상 (world) 에 따라 참또는 거짓이 된다 ; 즉 언급하는 사실이 그 경우 (case) 일 때만 참이다. 확률이론에서는, "그 환자가 충치를 가질 확률이 0.8 이다" 같은 문장은 직접적으로 세상에 대한 것이 아니라 그 에이전트의 믿음에 대한 것이다. 이러한 믿음은 그 에이전트가 지금까지 지각된 것 (percepts) 에 의존한다. 이러한 지각된 것들은 확률 주장의 기초가 되는 증거 (evidence) 를 구성한다. 예를들면 에이전트가 섞어놓은 카드에서 한 장을 뺀다고 가정해보자. 그 카드를 보기전에, 에이전트는 ace of spades 일 확률을 1/52 로 볼 것이다. 그 카드를 본 후에는 같은 명제에 대한 적절한 확률은 0 또는 1 일 것이다. 그래서, 하나의 명제에 대한 확률의 부여는, 그것이 참인지 거짓인지 하는 것보다는, 지식베이스가 포함하고 있는 주어진 논리적 문장 (또는 그것의 부정) 이 있는지에 대해 말하는 것과 유사하다. 더 많은 문장들이 지식베이스에 추가될 때 의미상태 (entailment status) 가 변화할 수 있는 것처럼, 더 많은 증거가 얻어질 때 확률은 변화할 수 있다.
그러므로 모든 확률 문장은 확률이 어떠한 증거에 의해 평가되는 지에 대하여 적시해야 한다. 에이전트가 새로이 지각된 것을 받음에 따라 그 확률평가는 새로운 증거를 반영하기 위해 업데이트 된다. 증거가 얻어지기 전에는 사전 또는 무조건 (prior or unconditional) 확률에 관해 말한다 ; 증거가 얻어진 다음에는 사후 또는 조건 (posterior or conditional) 확률에 관해 말한다. 대부분의 경우에, 에이전트는 지각된 것으로부터 몇 개의 증거를 가질 것이고 관심있는 결과에 대한 사후확률을 계산하는데에 흥미가 있을 것이다.
불확실성의 존재는 에이전트가 의사결정 하는 방법을
철저히 변화시킨다. 논리적 에이전트는 전형적으로 하나의 목표를 가지고 있고 그것의
성취가 보장된 어떤 계획을 수행한다. 그 목표를 성취할 수 있는지 여부에 기초해서,
다른 행동이 성취할 수 있는 것과는 무관하게, 하나의 행동이 선택되기도 하고
거절되기도 한다. 불확실성이 개입하게 되면 완전히 다른 case 가 되는 것이다. 다시한번
공항으로 가려고 하는
계획을 고려해 보자. 그것이 95 % 의 성공 기회를 가진다고 가정하자. 그것이
합리적인 선택을 의미하는가? 반드시 그런 것은 아니다 : 다른 계획, 예를들면
같은 것이 더 높은 성공확률을 가질 수 있다. 비행기를 절대로 놓치지 않는 것이
중요하다면, 공항에서 더 오래 기다리는 위험을 감수할만 하다. 미리 24 시간 전에
집에서 출발하는 계획인
는 어떤가? 대부분의 경우에 그것은 좋은 선택은 아니다. 왜냐하면 비록 제시간에
도착한다는 것을 거의 보장하지만, 그것은 참을 수 없는 대기시간을 포함하기 때문이다.
그런 선택을 하려면, 에이전트는 먼저 여러 가지 계획의 다른 가능한 결과물들 사이의 우선순위 (또는 선호, preferences) 를 가져야 한다. 하나의 특별한 결과물 (outcome) 은 에이전트가 제 시간에 도착할 것인지, 공항에서 기다리는 시간의 길이는 어떤지와 같은 factor 를 포함하는 완전히 특별한 상태이다. 우리는 우선순위를 가지고 표현하고 추론하는 효용이론 (Utility Theory) 을 사용할 것이다. (utility 라는 용어는 여기서는 전기회사 또는 water works 같은 의미가 아니라 "유용한 질 (the quality of being useful)" 의 의미로 사용된다. 효용이론은 모든 상태는 에이전트에게 유용성 또는 효용성의 정도 (a degree of usefulness or utility) 를 가지고 있으며, 그 에이전트는 더 높은 효용성을 가진 상태를 선호할 것이라는 이론이다.
하나의 상태의 효용성은 효용함수 (utility function) 으로 우선순위를 표현하는 에이전트에게는 상대적이다. 예를들면 Chapter 6 에서 게임을 위한 수익함수 (payoff function) 은 utility function 이다. White 가 체스에서 이겼을 때의 상태의 효용성은 White 를 가진 에이전트에게는 분명히 높지만 Black 을 가진 에이전트에게는 낮다. 다시 보자면, 어떤 게임 플레이어는 (저자를 포함해서) 세계챔피언과 싸워 무승부를 하면 행복하겠지만, 다른 플레이어들은 (전 세계챔피언들 포함해서) 그렇지 않을 것이다. 기호 (taste) 나 선호 (preferences) 를 설명할 수는 없다 : 즉 어떤 에이전트가 jalapeno bubble-gum ice cream to chocolate chip 을 좋아한다면 이상하거나 뭔가 잘못되었다고 생각하겠지만, 그렇다고 그 에이전트가 비합리적이라고 말할 수는 없다. 단순하게 에이전트 자신의 효용성에 도움이 되는 요소들 중의 하나로서 다른 사람의 행복을 포함함으로써, 효용함수는 이타적인 행동조차도 설명할 수 있다.
효용성으로 표현되는 선호 (preference) 는 결정이론 (Decision Theory) 라고 불리는 합리적인 의사결정의 일반이론에서 확률과 결합된다 :
Decision theory = probability theory + utility theory
결정이론의 기본적인 개념은 행동의 모든 가능한 결과에 대해 평균해서, 만일 가장 높은 기대 효용 (expected utility) 을 낳는 행동을 선택한다면 그럴 때에만 그 에이전트는 합리적이다 라는 것이다. 이것은 기대효용 최대화 (Maximum Expected Utility, MEU) 의 원리 라고 부른다. 행동에서의 이 원리에 대해서는 backgammon 게임에서의 적절한 의사결정에 대해 간략히 다루는 Chapter 6 에서 보았다.
그림 13.1 은 행동을 선택하기 위해 결정이론을 사용하는 에이전트의 구조를 보여준다. 추상적인 수준에서는, 그 에이전트는 Chapter 7 에서 묘사된 논리적 에이전트와 똑같다. 주요한 차이점은 현재의 상태에 대한 결정이론적 에이전트의 지식은 불확실하다는 것이다 ; 그 에이전트의 믿음상태 (belief state) 는 세상에 대한 모든 가능한 실제적인 상태들의 확률의 표현이다. 시간이 지나감에 따라, 그 에이전트는 더 많은 증거를 축적하고 그 믿음상태는 변한다. 믿음상태가 주어진다면, 그 에이전트는 행동결과의 확률적 예측을 할 수 있고, 그럼으로써 가장 높은 기대효용을 가지는 행동을 선택한다. 이 Chapter 와 다음에서는 일반적으로 확률적 정보를 가지고 표현하고 계산하는 작업에 초점을 맞춘다. Chapter 15 는 믿음상태를 표현하고 업데이트하며 환경을 예측하는 특별한 작업을 위한 방법을 다룬다. Chapter 16 은 효용이론을 더 깊이있게 다루고, Chapter 17 은 복잡한 의사결정을 하기위한 알고리즘을 개발한다.
|
function DT-Agent (percept) returns an action static : belief_state, 세계의 현재상태에 대한 확률적 믿음 action, 에이전트의 행동 action 과 percept 에 기초해서 belief-state 를 업데이트 행동을 위한 결과 확률을 계산한다. 행동묘사와 최근의 belief_state 가 주어진다. 가장 높은 기대효용을 가지는 action 을 선택한다. 출력의 확률과 효용정보가 주어진다. return action |
|
그림 13.1 합리적 행동을 선택하는 결정이론적 에이전트. 그 단계들은 다음 5 개의 Chapter 에서 충실하게 될것이다. |
합리적 에이전트를 위한 일반적인 틀을 만들려면 불확실한 지식을 표현하고 추론하는 형식언어 (formal language) 를 필요로 할 것이다. 믿음의 정도를 묘사하기 위한 표기법은 두가지 주요한 이슈를 처리할 수 있어야 한다 : 믿음의 정도 (degree of belief) 가 부여되는 문장의 성격과, 에이전트의 경험에 대한 믿음의 정도의 의존도 가 그것이다. 우리가 표시하는 확률이론의 버전은 그 문장에 대한 명제논리를 확장한 것이다. 경험에 대한 의존은 사전확률 문장 (어떤 증거도 없을 때의 응용하는 것) 과 조건부확률 (명시적으로 증거를 포함하고 있는 것) 간의 문법적 차이에 반영된다.
믿음의 정도는 항상 명제 - 이러이러한 것이 그 케이스이라는 주장 - 에 응용된다. 명제를 표현하는데에는 두가지 형식언어 - 명제논리와 일차논리 (first order logic) - 가 있어왔다. 확률이론은 명제논리보다는 다소 더 표현이 풍부한 언어를 보통 사용한다. 이 섹션에서는 그 언어를 묘사한다. (섹션 14.6 은 믿음의 정도가 일차논리에서의 주장에 속한다고 하는 방법을 논한다.)
그 언어의 기본적인 요소는 확률변수 (random variable) 로서, 그것은 처음에는 "상태 (status)" 를 모르는 세계에 대한 "부분 (part)" 을 언급하는 것으로 생각될 수 있다. 예를들면 Cavity 는 하악좌측 사랑니에 충치가 있는지를 언급할 것이다. 확률변수는 제약조건 만족 문제 (Constraint Satisfaction Problem) 에서의 CSP 변수, 또는 명제논리 (Propositional Logic) 에서의 명제기호 (propositon symbols) 와 같은 역할을 한다. 여기서 확률변수의 이름은 항상 대문자로 시작한다. (그러나 미지의 확률변수를 표현하기 위해서 소문자, 하나의 문자를 여전히 사용한다, 예를들면 : P(a) = 1 - P (¬a).)
각 확률변수는 취할 수 있는 값의 정의역 (domain) 을 가진다. 예를들면 Cavity 의 정의역은 <true, false> 일 것이다. (여기서는 값은 소문자를 사용한다) 가장 간단한 종류의 명제는 확률변수가 그 정의역에서 유도한 특별한 값을 가진다는 것이다. 예를들면 Cavity = true 는 내가 실제로 하악좌측 사랑니에 충치가 있다는 명제를 나타낼 것이다.
CSP 변수처럼, 확률변수는 그 정의역의 유형에 따라 3 종류로 보통 구분된다.
몇 개의 예외가 있지만 여기서는 이산 (discrete) 케이스에 집중할 것이다.
Cavity = true 와 Toothache = false 같은 기본적인 명제들은 모든 표준적인 논리적 연결사 (connectives) 를 사용해서 복잡한 명제를 형성하기 위해 결합될 수 있다. 예를들면, Cavity = true ∧ Toothache = false 은 믿음과 불신의 정도에 속하는 하나의 명제인 것이다. 이전 절에서 설명한 대로 이 명제는 또한 cavity ∧ ¬toothache 와 같이 쓰일 수 있다.
원자사건의 표기는 확률이론의 기초를 이해하는데 유용하다. 원자사건은 에이전트에게는 불확실한 세상의 상태의 완전한 특화 (complete specification) 이다. 그것은 세상을 구성하는 모든 변수에 특별한 값을 부여하는 것으로 생각될 수 있다. 예를들면, 만일 세상이 단지 부울변수 Cavity 와 Toothache 로서만 구성된다면, 단지 4 개의 명확한 원자사건들이 있다 : 명제 Cavity = true ∧ Toothache = true 는 그런 사건중 하나이다.
원자사건은 몇 개의 중요한 성질을 가진다 :
연습문제 13.4 는 이러한 성질중 몇 개를 증명하는 것이다.
명제 a 와 관련된 무조건 (unconditional) 또는 사전확률은 어떤 다른 정보도 없는 가운데서 믿음의 정도이다 ; P(a) 로 표기한다. 예를들면, 충치가 있을 사전확률이 0.1 이면, 그것은 다음과 같이 표기한다.
P(Cavity = true) = 0.1 또는 P(cavity) = 0.1
P(a) 는 다른 정보가 없을 때만 사용될 수 있다는 것을 기억하는 것이 중요하다. 어떤 새로운 정보가 알려지자마자, 주어진 새로운 정보 a 의 조건부확률로서 추론해야 한다. 조건부확률은 다음 섹션에서 다루어 진다.
때때로, 우리는 어떤 확률변수의 모든 가능한 값의 확률에 대해 얘기하기를 원할 것이다. 그런 경우에 P(Weather) 같은 표현을 사용할 것이다. 그것은 날씨의 각각의 상태의 확률을 위한 값들의 vector 를 의미한다. 그래서 4 개의 방정식을 쓰는 것 대신에
P(Weather = sunny) = 0.7 P(Weather = rain) = 0.2
P(Weather = cloudy) = 0.08 P(Weather = snow) = 0.02
간단하게 다음과 같이 쓸 수 있다.
P(Weather) = <0.7, 0.2, 0.08, 0.02>
이 문장은 확률변수 Weather 를 위한 사전확률분포 (prior probability distribution) 라고 정의한다.
또한 P(Weather, Cavity) 같은 표현을 사용해서 하나의 확률변수 집합의 값들의 모든 조합의 확률을 표기할 것이다. 그 경우에 P(Weather, Cavity) 는 확률의 4 × 2 표로써 표현될 수 있다. 이것은 Weather 와 Cavity 의 결합확률분포 (joint probability distribution) 이라고 부른다.
때때로 세상을 묘사하기 위해 사용되는 확률변수의 완전집합에 대해 생각하는 것이 유용할 것이다. 이러한 완전집합 (complete set) 을 다루는 결합확률분포는 완전결합확률분포 (full joint probability distribution) 라고 부른다. 예를들면, 만일 세상이 단지 변수 Cavity, Toothache, Weather 로만 구성되어 있다면, 완전결합확률분포는 다음과 같이 주어진다.
P(Cavity, Toothache, Weather).
이 결합분포는 16 개의 입력을 가지는 2 × 2 × 4 로 표현될 수 있다. 완전결합분포는 모든 원자사건의 확률을 보여주고 (specifies) 그럼으로써 질문이 되는 세상의 불확실성을 완전히 보여준다. 어떤 확률적인 질의도 완전결합분포 로서 대답되어 질 수 있다는 것을 섹션 13.4 에서 보일 것이다.
연속변수 (continuous variable) 의 경우에, 전체 분포를 하나의 표로서 표기하는 것은 불가능하다, 왜냐하면 무한히 많은 값이 존재하기 때문이다. 대신에, 하나의 확률변수가 어떤 값 x 를 가지는 확률을 x 의 인수함수 (parameterized function) 로서 정의한다. 예를들면 확률변수 X 가 버클리에서의 내일의 최대 온도를 의미한다. 그때 그 문장
P(X = x) = U[18, 26] (x)
은 X 가 섭씨18 에서 26 도 사이에 일정하게 (uniformly) 분포한다는 믿음을 표현한다. (몇개의 유용한 연속분포들이 Appendix A 에 정의되어 있다.) 연속변수를 위한 확률분포는 확률밀도함수 (probability density function) 이라 부른다. 밀도함수는 이산분포에서의 의미와는 다르다. 예를들면 앞에서 주어진 온도분포의 경우에, P(X = 20.5) = U[18, 26] (20.5) = 0.125 / C 라는 것을 발견한다. 이것은 최대온도가 내일 정확하게 20.5 도 일 것이라는 것이 12.5 % 가능하다는 것을 의미하지 않는다 ; 이것이 발생할 확률은 물론 0 이다. 그 기술적 의미는 그 온도가 20.5 도 주변의 좁은 영역에 있을 확률은, limit 하여, 섭씨 온도로 그 영역의 폭으로 나누어진 0.125 와 같다는 것을 의미한다.

어떤 저자들은 이산분포와 밀도함수를 표기하는 다른 기호를 사용한다 ; 여기서는 두 경우 모두 P 를 사용한다, 왜냐하면 혼란은 좀처럼 발생하지 않으며 방정식들은 보통 같기 때문이다. 확률들은 단위가 없는 (unitless) 숫자인 반면에, 밀도함수는 하나의 단위, 이 경우에는 역의 온도 (reciprocal degrees), 로서 측정된다 는 것을 주목하자.
만일 정의역을 구성하는 것이 이전에는 알려지지 않은 확률변수와 관련된 몇개의 증거를 얻게되면, 사전확률은 더 이상 응용될 수 없다. 대신에 조건부 또는 사후 (conditional or posterior) 확률을 사용한다. 사용되는 표기법은 P(a|b) 이며 여기서 a 와 b 는 어떤 명제이다. 이것은 "모든 것을 잘 알고 있는 b 라는 조건이 주어졌을 때 a 의 확률" 의 의미이다. 예를들면 다음 문장은, 만일 환자가 치통이 있고 다른 정보가 아직 없다면 환자가 충치일 확률은 0.8 이다, 라는 의미이다.
P(cavity|toothache) = 0.8
P(cavity) 과 같은 사전확률은 조건부확률 P(cavity| ) 의 특별한 경우, 즉 어떤 증거에 의해서도 조건화 되지 않은 확률, 로 생각될 수 있다.
조건부 확률은 무조건 (unconditional) 확률에 의해 정의될 수 있다. 그것을 정의하는 방정식은 다음과 같으며 항상 P(b) > 0 이다.
(13.1)
위의 방정식은 다음과 같이 쓸 수도 있으며, 이것을 곱셈규칙 (product rule) 이라 한다.
P(a ∧ b) = P(a|b) P(b)
곱셈규칙은 아마 기억하기가 더 쉬울 것이다 : a and b 가 참이 되기 위해, 우리는 참인 b 를 필요로 하고, b 가 주어졌을 때 참인 a 를 또한 필요로 한다는 사실로부터 생성된다. 또한 그것을 다른 방법으로 다음과 같이 쓸 수 있다.
P(a ∧ b) = P(b|a) P(a)
어떤 경우에는 연언명제 (conjunctions) 의 사전확률에 의해 추론하기가 더 쉽지만, 대부분의 경우에는, 확률추론을 위한 수단으로서 조건부확률을 사용한다.
또한 조건부확률을 위한 P
표기법을 사용할 수 있다. P(X|Y) 는 가능한
에 대해
의 값을 부여한다. 이것이 어떻게 표기를 더 간략하게 하는지에 대한 예로서,
명제 a 와 b 가 각각 특별한 값 X 와 Y 를 가지는 경우에 곱셈규칙을
적용하는 것을 고려해보자. 다음과 같은 방정식을 얻게된다 :

이것을 모두 단 하나의 방정식으로 결합할 수 있다.
P(X, Y) = P(X|Y)P(Y)
이것은 표의 행렬곱셈이 아니라, 표에서 동등한 각각의 입력과 관련된 방정식의 집합을 나타낸다는 것을 기억하라. 조건부확률을 마치 불확실성이 첨가된 논리적 조건명제 (Implication) 로 보는 것은 매력적이긴 하지만 틀린 것이다. 예를들면 문장 P(a|b) = 0.8 은 "b 라는 조건에서는 언제나 P(a) 는 0.8 이라는 결론" 을 의미하는 것으로 해석될 수 없다. 그러한 해석은 두가지 면에서 틀릴 것이다 : 첫째로 P(a) 는 항상 어떤 증거가 주어진 사후확률이 아니라 사전확률 a 를 표시한다. 둘째로 문장 P(a|b) = 0.8 는 b 가 유일하게 이용할 수 있는 증거일 때만 아주 적절한 것이다. 부가적인 정보 c 가 이용될 때, a 에서 믿음의 정도는 P(a|b ∧ c) 이며, 그것은 P(a|b) 와는 거의 아무런 관계도 없을 수 있다. 예를들면 a 가 참인지 거짓인지를 직접적으로 c 가 좌우할 수 있다. 만일 치통을 호소하는 환자를 검사하여 충치를 발견한다, 그러면 추가적인 증거 충치 (cavity) 를 가지고, P(cavity|toothache ∧ cavity) = 1.0 라는 (명백한) 결론을 내린다.
지금까지는 명제와 그 명제를 위한 사전확률과 조건부확률을 위한 문법 (syntax) 을 정의했다. 지금부터는 확률문장을 위한 일종의 의미론 (semantics) 를 살펴보아야 한다. 확률크기와 그 결과를 정의하기 위한 기본적인 공리로 시작해보자.
1. 모든 확률은 0 과 1 사이에 있다. 어떤 명제 a 에 대해서도 다음과 같다.
0 ≤ P(a) ≤ 1
2. 필연적으로 참인 (즉 유효한) 명제는 확률 1 이다. 반면에 필연적으로 거짓인 (즉 만족할 수 없는) 명제는 확률 0 이다.
P(true) = 1 P(false) = 0
다음으로 논리적으로 관련된 명제의 확률을 연결하는 공리가 필요하다. 이를 위한 가장 간단한 방법은 다음과 같은 선언 (disjunction) 확률을 정의하는 것이다.
3. 하나의 선언의 확률은 다음과 같이 주어진다.
P(a ∨ b) = P(a) + P(b) - P(a ∧ b)
이 규칙은 a 를 가지는 경우와 b 를 가지는 경우, 확실하게 a ∨ b 가 모든 경우를 포함한다 ; 그러나 두 경우의 집합을 합하면 겹치는 부분을 두 번 계산하게 되고, 따라서 P(a ∨ b) 를 빼줄 필요가 있다는 것을 생각해보면 쉽게 기억된다.
위의 3 개의 공리를 러시아 수학자 Andrei Kolmogorov 의 이름에서 'Kolmogorov 의 공리' 라고 부른다. 그는 이러한 간단한 기초로부터 확률이론의 나머지 부분을 구축하는 방법을 보여주었다. 이러한 공리가 조건부확률보다는 사전확률만을 다룬다는 것을 주목하자 :
p473
P(a ∨ ¬a) = P(a) + P(¬a) - P(a ∧ ¬a) ( b = ¬a)
P(true) = P(a) + P(¬a) - P(false)
1 = P(a) + P(¬a)
P(¬a) = 1 - P(a)
D 

a e(a)
(13.2)
A, B, ¬(A ∧ B)
P(a) = 0.4 P(a ∧ b) = 0.0
P(b) = 0.3 P(a ∨ b) = 0.8 (13.3)
p474
a a a a a $4 $6 $6 $4
$4 a, $3 b, $2 ¬(a ∨ b) a b
|
Agent 1 |
Agent 2 |
Outcome for Agent |
|||||
|
Proposition |
Belief |
Bet |
Stakes |
a ∧ b |
a ∧ ¬b |
¬a ∧ b |
¬a ∧ ¬b |
|
a b a ∨ b |
0.4 0.3 0.8 |
a b ¬(a ∨ b) |
4 to 6 3 to 7 2 to 8 |
-6 -7 2 |
-6 3 2 |
4 -7 2 |
4 3 -8 |
|
|
|
-11 |
-1 |
-1 |
-1 |
||
그림 13.2
p475
Toothache, Cavity, Catch 2 × 2 × 2
|
|
toothache |
¬toothache |
||
|
|
catch |
¬catch |
catch |
¬catch |
|
cavity |
0.108 |
0.012 |
0.072 |
0.008 |
|
¬cavity |
0.016 |
0.064 |
0.144 |
0.576 |
그림 13.3
cavity ∨ toothache
P(cavity ∨ toothache) = 0.108 + 0.012 + 0.072 + 0.008 + 0.016 + 0.064 = 0.28
cavity
P(cavity) = 0.108 + 0.012 + 0.072 + 0.008 = 0.2
Cavity Y Z
(13.4)
Y Y
(13.5)


1/P(toothache) Cavity P(Cavity|toothache) α
P(Cavity|toothache) = αP(Cavity|toothache)
= α[P(Cavity, toothache, catch) + P(Cavity, toothache, ¬catch)]
= α[<0.108, 0.016> + <0.012, 0.064>] = α<0.12, 0.08> = <0.6, 0.4>
X Cavity E Toothache e Y Catch P(X|e)
(13.6)
ys Y X, E, Y P(X, e, y)
p477
(X, e, P) X
X,
e, E
P, {X} ∪ E ∪ Y /*Y = hidden variables * /
Q(X) ← X
X
← ENUMERATE-JOINT(
, e, Y, [], P)
(Q(X))
(x, e, vars, values, P)
(vars) P(x, e, values)
Y ← FIRST (vars)
ENUMERATE-JOINT (x,
e, REST (vars), [y|values], P)
X Y e
ENUMERATE-JOINT-ASK n

P(Toothache, Catch, Cavity, Weather) P(toothache, eatch, cavity, Weaterh = cloudy) P(toothache, catch, cavity)
P(toothache, catch, cavity, Weather = cloudy)
= P(Weather = cloudy | Toothache, catch, cavity)P(Toothache, catch, cavity)
P(Weather = cloudy | toothache, catch, cavity) = P(Weather = cloudy) (13.7)
P(toothache, catch, cavity, Weather = cloudy)
= P(Weather = cloudy) P(toothache, catch, cavity)
P(Toothache, Catch, Cavity, Weather)
P(Toothache, Catch, Cavity, Weather) = P(Toothache, Catch, Cavity) P(Weather)
a b
P(a|b) = P(a) or P(b|a) = P(b) or P(a ∧ b) = P(a) P(b) (13.8)
P(X|Y) = P(X) or P(Y|X) = P(Y) or P(X, Y) = P(X) P(Y)

그림 5
p479
n
n
P(a ∧ b) = P(a|b) P(b)
P(a ∧ b) = P(b|a) P(a)
P(a)
(13.9)
P
(13.9)
(13.10)
p480
P(s|m) = 0.5
P(m) = 1/50000
P(s) = 1/20

P(s) m ¬m
P(M|s) = α<P(s|m) P(m), P(s|¬m) P(¬m)>
P(s|¬m) P(s)
P(Y|X) = αP(X|Y) P(Y) (13.11)
α P(Y|X) P(m) P(m|s) P(m|s) P(m|s) P(m) P(m|s)
P(effect|cause)
P(Cavity|toothache ∧ catch) = α<0.108,
0.016>
<0.871, 0.129>
P(Cavity|toothache ∧ catch) = αP(toothache ∧ catch|Cavity) P(Cavity) (13.2)
toothache ∧ catch Cavity
X
Toothache Catch
P(toothache ∧ catch|Cavity) = P(toothache|Cavity) P(catch|Cavity) (13.13)
toothache catch Cavity
P(Cavity|toothache ∧ catch) = αP(toothache|Cavity) P(catch|Cavity) P(Cavity)
P(Cavity)
p482
X Y Z
P(X, Y|Z) = P(X|Z) P(Y|Z)
Toothache Catch Cavity
P(Toothache, Catch|Cavity) = P(Toothache|Cavity) P(Catch|Cavity) (13.14)
Toothache Catch
P(X|Y, Z) = P(X|Z) and P(Y|X, Z) = P(Y|Z)
P(Toothache, Catch, Cavity)
= P(Toothache, Catch|Cavity) P(Cavity) (product rule)
= P(Toothache|Cavity) P(Catch|Cavity) P(Cavity) [using (13.14)].
Cavity n Cavity
O(n)
Cavity Toothache Catch

p483
[1, 3], [2, 2] [3, 1]
[1, 1]

[1, 1], [1, 2] [2, 1]



그림 6
P484
(13.15)
n 
[1, 3]
ENUMERATE-JOINT-ASK
[1, 3]


[4, 4] [1, 3] [2, 2] [3, 1]

(by the product rule)


p485


P(known) 
P(fringe)

[1, 3] [3, 1] [2, 2] [2, 2]

그림 7
P(fringe
