1 / 32

Изкуствен интелект Упражнение № 7

Изкуствен интелект Упражнение № 7. спец. Информатика, ФМИ 200 5 /200 6. Разсъждения при несигурни знания. Вероятностен подход Бейсови мрежи. P(e|H)P(H). P(A  B). P(H|e)=. P(A|B)=. P(e). P(B). Вероятности (основни формули). Условна вероятност: Формула на Бейс:

camdyn
Download Presentation

Изкуствен интелект Упражнение № 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Изкуствен интелектУпражнение № 7 спец. Информатика, ФМИ 2005/2006

  2. Разсъждения при несигурни знания • Вероятностен подход • Бейсови мрежи

  3. P(e|H)P(H) P(AB) P(H|e)= P(A|B)= P(e) P(B) Вероятности (основни формули) • Условна вероятност: • Формула на Бейс: • Ако събитията A и B са независими: P(AB)=P(A)P(B) • Ако събитията A и B са несъвместими: P(AB)=P(A)+P(B) P(AB)=0 и P(A|B)=0 и P(B|A)=0

  4. Вероятности (основни формули) • P(A)=1 - P(A) • P(AB)=P(A)P(B|A)= P(B)P(A|B) • P(AB)= P(A)+P(B) - P(A B) • P(A)=P(AB)+P(A B)=P(B)P(A|B)+P(B)P(A| B) • P(X1... Xn)=P(X1) P(X2 |X1) P(X3 |X1  X2)... P(Xn |X1 ... Xn-1) • Ако събитията X1... Xn са независими: P(X1... Xn)=P(X1) P(X2) P(X3)... P(Xn)

  5. P(ColdSneeze) 0.08 P(Cold|Sneeze)= = = 0.889 P(Sneeze) 0.08+0.01 Съвместно вероятностно разпределение • Множество от променливи X1,…,Xn • За всяка комбинация от стойности на променливите се пресмята P(X1,…,Xn)

  6. Вероятностни разсъждения • n възможни независими диагнози: d1,…,dn • e - множество от симптоми • Известни са p(di) P(e|di) I=1,...,n

  7. “Naïve” Bayes • Предположение за независимост на симптомите: е={е1,...,ек}

  8. Пример

  9. Пример • Симптоми: sneeze & cough & no fever • p(well | e)=(0.9)(0.1)(0.1)(0.99)/P(e)=0.0089/P(e) • p(cold | e)=(0.05)(0.9)(0.8)(0.3)/P(e)=0.01/P(e) • p(allergy | e)=(0.05)(0.9)(0.7)(0.6)/P(e)=0.019/P(e) • Диагноза: allergy • p(e)=0.0089+0.01+0.019=0.0379 • p(well | e)=0.23 • p(cold | e)=0.26 • p(allergy | e)=0.50

  10. Представяне на данните example(79,11,[age = 2,sex = 1,histolic_type = 2, degree_of_diffe = 1,bone = 2,bone_marrow = 2,lung = 2,pleura = 2,peritoneum = 1,liver = 1,brain = 2, shin = 2,neck = 2,supraclavicular = 2,axillar = 2, mediastinum = 2,abdominal = 2]). example(115,18,[age = 3,sex = 2,degree_of_diffe = 3, bone = 2,bone_marrow = 2,lung = 2,pleura = 2, peritoneum = 2,liver = 2,brain = 2,shin = 2,neck=2, supraclavicular = 2,axillar = 2,mediastinum = 2, abdominal = 1]). example(103,8,[age = 3,sex = 2,histolic_type = 2, degree_of_diffe = 1,bone = 2,bone_marrow = 2, lung = 1,pleura = 2,peritoneum = 2,liver = 2, brain = 2,shin = 2,neck = 2,supraclavicular= 2, axillar = 2,mediastinum = 2,abdominal = 2]).

  11. % data: example( Id, Class, [A1=V1,…,An=Vn]). & P(Class) prob(Class,PC) :- findall(Id,example(Id,_,_),All), length(All,N), findall(Id,example(Id,Class,_),All_Class), length(All_Class,M), PC is M/N.

  12. % data: example( Id, Class, [A1=V1,…,An=Vn]). % P( Symptoms | Class) cond_prob([],_,1). cond_prob([AV|Rest],Class,P) :- findall(I,example(I,Class,_),All), length(All,N), findall(Id, (example(Id,Class,AVL), member(AV,AVL)), Class_AV), length(Class_AV,M), cond_prob(Rest,Class,P1), P is P1*M/N.

  13. Генериране на всички решения • В основни линии setof(X, p(X), L) свързва L с множеството от всички екземпляри на X, за които в Пролог p(X) успява

  14. Предикатът setof/3 пропада, когато множеството, което се генерира е празно. Това негово свойство е съществено за неговото корекно поведение в сложни ситуации и е много полезно. Това означава че този предикат ще помогне да се решат едновременно и двата ни основни проблема

  15. Пример likes(bill, cider). likes(dick, beer). likes(harry, beer). likes(jan, cider). likes(tom, beer). likes(tom, cider). | ?- setof(X, likes(X,Y), S). S = [dick,harry,tom], Y = beer ? ; S = [bill,jan,tom], Y = cider ? | ?- setof((Y,S), setof(X, likes(X,Y), S), SS). SS = [(beer,[dick,harry,tom]), (cider,[bill,jan,tom])]

  16. Пример • Променливите в Goal могат да се считат за свободни, освен ако те изрично не са свързани с Goal посредством квантора за съществуване: Y^Q означава че “съществува Y такова че Q е true”, където Y е някаква променлива в Пролог. | ?- setof(X, Y^(likes(X,Y)), S). S = [bill,dick,harry,jan,tom]

  17. % data: example( Id, Class, [A1=V1,…,An=Vn]). % max P(Diag | Symptoms) bayes(Sympt,Diag,PD) :- setof(C,Id^AV^example(Id,C,AV),Class), findall(C/P,(member(C,Class), cond_prob(Sympt,C,PSC), prob(C,PC), P is PSC*PC),All), summa(All,PD2), % P(Sypmt) max(All,Diag/PD1), PD is PD1/PD2.

  18. % P(Symptoms) summa([],0). summa([_/P |Rest],PD):- summa(Rest,PRest), PD is P + PRest. max([X/M|T],Z/K) :- max(T,Z/K), K>M, !. max([X/M|_],X/M).

  19. | ?- bayes([histolic_type=1,bone=2, bone_marrow=2,lung=2], Class,P). P = 0.5435430611339668, Class = 2 ? yes | ?- bayes([histolic_type = 1 , bone = 2 , bone_marrow = 2 , lung = 2 , pleura = 1 , peritoneum = 2 , liver = 2 ], Class,P). P = 0.6492238977325229, Class = 1 ? yes

  20. Бейсови мрежи • Насочен ацикличен граф: • възлите са събития(променливи) • предшественици (родители) на един възел N са такива събития(променливи), от които N директно зависи • с възлите, които имат предшественици са асоциирани таблици с условни вероятности • с възлите, които нямат предшественици са асоциирани таблици с априорни вероятности

  21. Бейсови мрежи • За един и същи проблем могат да бъдат построени различни Бейсови мрежи, но някои от тях са по-добри за решаване на конкретния проблем от други. • Добрите Бейсови мрежи отчитат зависимостите между променливите

  22. a l f P(r) P(l) P(s) f t P(a) yes yes yes 0.88 0.75 0.9 yes yes 0.5 no no no 0.01 0.001 0.01 no no 0.0001 yes no 0.99 yes no 0.85 Бейсови мрежи P(f) P(t) fire tampering 0.01 0.02 smoke alarm leaving report

  23. Типове връзки • xyz: x и zса независими относно y • xy z илиx yz: x и zса независими относно y • x  y  z : x и zса независими относно yбез наличието на информация за стойността наy. При дадена стойност заyили негови наследници - те стават зависими. Например: fire  alarm tampering. Ако има аларма и пожар, вероятността за някаква друга намеса, която да е включила алармата е по-малка

  24. Видове извод • диагностика - от следствието към причината: p(fire|alarm) • предсказване - от причината към следствието: p(alarm|fire) • междупричинен извод -между причините на дадено следствие: p(tampering|fire) • смесен извод - комбинация от горните три: p(alarm|report  fire)

  25. Вероятности (формули) • P(X1  X2 |Cond)= P(X1 |Cond) P(X2 | X1  Cond) • P(X |Y1 ... X...)=1 • P(X |Y1 ... X...)=0 • P(X|Cond)= 1 - P(X|Cond) • Ако Cond0=YCond, където Y е наследник на X в Бейсовата мрежато P(X|Cond0)= P(X|Cond) P(Y| X Cond) / P(Y| Cond) • Ако Condне съдържа наследници на X • АкоX няма предшественици/родители, то P(X|Cond)= P(X) и P(X) е дадена априорна вероятност • АкоX има предшественици/родители Parents, то P(X|Cond)=Spossible_states(Parents) P(X|S) P(S|Cond)

  26. % Belief network ‘sensor’ % p(Node,Prob)- node without parent parent(fire,smoke). parent(fire,alarm). parent(tampering,alarm). parent(alarm,leaving). parent(leaving,report).

  27. % p(Node,PrentStates, Prob) % Prob = p(Node|ParentStates) p(fire,0.01). p(tampering,0.02). p(smoke,[fire],0.9). p(smoke,[not fire],0.01). p(alarm,[fire, tampering],0.5). p(alarm,[not fire,not tampering],0.0001). p(alarm,[fire, not tampering],0.99). p(alarm,[not fire, tampering],0.85). p(leaving,[alarm],0.88). p(leaving,[not alarm],0.001). p(report,[leaving],0.75). p(report,[not leaving],0.01).

  28. % prob(Event,Condition,P) ; P(X1  X2 |Cond)= P(X1 |Cond) P(X2 | X1  Cond) prob([X|Xs], Cond, P):-!, prob(X,Cond,Px), prob(Xs,[X|Cond],PRest), P is Px * PRest. prob([],_,1):-!. ; P(X |Y1 ... X...)=1 prob(X,Cond,1):- member(X,Cond),!. ; P(X |Y1 ... X...)=0 prob(X,Cond,0):- member(not X,Cond),!. ; P(X|Cond)= 1 - P(X|Cond) prob(not X,Cond,P):-!, prob(X,Cond,P0), P is 1-P0.

  29. ; Ако Cond0=YCond, където Y е наследник на X в Бейсовата ; мрежато P(X|Cond0)= P(X|Cond) P(Y| X Cond) / P(Y| Cond) prob(X, Cond0, P):- delete(Y,Cond0,Cond), predecessor(X,Y),!, prob(X,Cond,Px), prob(Y,[X|Cond],PyGivenX), prob(Y,Cond,Py), P is Px * PyGivenX / Py. ; Ако Condне съдържа наследници на X • АкоX няма предшественици/родители, то P(X|Cond)= P(X) и P(X) е дадена априорна вероятност • АкоX има предшественици/родители Parents, то P(X|Cond)=Spossible_states(Parents) P(X|S) P(S|Cond) prob(X,Cond,P):- p(X,P),!. prob(X,Cond,P):- findall(CONDi/Pi,p(X,CONDi,Pi),CPList), sum_probs(CPList,Cond,P).

  30. sum_probs([],_,0). sum_probs([COND1/P1|CondsProbs],COND,P):- prob(COND1,COND,PC1), sum_probs(CondsProbs,COND,PRest), P is P1 * PC1 + PRest. predecessor(X,not Y):-!, predecessor(X,Y). predecessor(X,Y):- parent(X,Y),!. predecessor(X,Z):- parent(X,Y), predecessor(Y,Z).

  31. | ?- prob(fire,[alarm],P). % диагностика P = 1.0e-002 ? yes | ?- prob(alarm,[fire],P). % предсказване P = 0.9802 ? yes | ?- prob(tampering,[fire],P). % междупричинен извод P = 2.0e-002 ? yes | ?- prob(alarm,[report, not fire],P). % смесен извод P = 1.7098000000000002e-002 ? yes

  32. Марковски вериги • Специален вид Бейсови мрежи S0 S1 S2 S3 S4 p(St+1| S0 S1...St )= p(St+1| St ) St е състоянието в момента t Интуитивно St съдържа цялата информация за историята (миналото), която може да влияе (има отношение) на бъдещето "Миналото е независимо от бъдещето"

More Related