Föreläsning 15 Logik med tillämpningar 00-05-22
Innehåll Exempel på expertsystem Eliza Min forskning Vad är ett beslutsstöd? Exempel på byggda beslutsstöd The production line för beslutsstöd. Extraktionsfasen Analysfasen Neurala nätverk, Fuzzylogik Syntesfasen Fuzzylogik
Expertsystem Ska härma en mänsklig expert och fatta de beslut hon skulle ha gjort. Kan likna ett expertsystem med en svart låda. Vi skickar in ett antal input och vill få ett (el. flera) svar. Hur fyller man lådan på bästa sätt? Logiska regelbaser, fuzzy logik, artificiella neurala nätverk, statistiska formler m.m. En tillämpning inom AI - Artificiell Intelligens och eller KI - Komputationell intelligens.
Några andra tillämpningar inom AI Behandling av naturligt språk Teorembevisning Robotar Automatisk programmering Kombinatoriska och schemaläggningsproblem Perception - syn, hörsel etc
Turingtestet En utmaning: Kan man programmera en dator så att den beter sig som en människa? eller Kan manseskillnadpåendatorskonversationoch en människas? Alan Turing, 1950. (Innan begreppet AI fanns!) En fråga får två svar via terminal ett av dator och ett av människa. Vilket är vilket? Brister med testet...
Eliza Joseph Weizenbaum skrev ett program som skulle härma en psykoterapeuts sätt att närma sig en patient. (Och lura Turingtestet!) Referens: Weizenbaum: Eliza - A computer program for the study of natural langauage communication between man and machine. Communications of the ACM, Volym 9, Nummer 1, Januari 1966. Finns implementerad i Emacs som kommandot doctor Lyckades för bra! Weizenbaum lämnade forskningen inom AI! What I had not realized is that extremely short exposures to a relatively simple computer program could induce powerful delusional thinking in quite normal people.
Exempel på dialog: Iamunhappy. How long have you been unhappy? Six months. Can you help me? What makes you think I can help you? You remind me of my father and brother. Please tell me more about father
Hur fungerar Eliza? Matcha det som ges som input mot ett mönster som bildar ett standardsvar. Ex. I am (*). How long have you been (*)? I like (*). Does anyone else in your family like (*)? (*) you (**) me. What makes you think I (**) you?
1989: MNL 1991: Började som amanuens 1994: Filosofie magister 1995: Forskarutbildningen Min bakgrund 1998: Filosofie licentiat 2001? Doktorsexamen
160 poäng Forskarutbildning: 80p teori och 80p avhandling Licentiatexamen: 40p teori och 40p avhandling Doktorandtjänst bra finansiering 80% forskning + 20% undervisning (> 33% ) Vad gör man? Läser in nytt material/hålla sig uppdaterad med fronten Utför experiment/skapar program/testkörningar Skriver artiklar/rapporter/papers/konferensbidrag Informerar om sin forskning (tredje uppgiften) MÅLET: Ta fram ny och god kunskap
Mitt forskningsområde Medicinsk informatik: Användandet av information och IT (informationsteknologi) inom hälso- och sjukvården i praktik, undervisning och forskning. Beslutsstöd för diagnos av sjukdomar Utveckla analysmetoder Neurala nätverk Fuzzylogik Hybrider
Vad är ett beslutsstöd? Datorbaserat system som tar fram fakta och information. Ska hjälpa och stötta vid beslutsfattande. Systemet bör kunna beskriva hur det resonerar. Kan basera sig på Läkarens kunskaper i form av regler Befintliga datamassor (journaler).
Läkarens kunskaper i form av regler Svårt formulera regler, ofta sitter kunskapen i ryggmärgen. Regler kan vara motsägande. Svårt dra gränser. Regler föråldras. Internationella guidelines finns. Fuzzylogik gör beslutsstöden bättre?
Skärmdump 1 och 2
Hur används befintliga fakta? Relevanta fakta om en sjukdom från många journaler tillsammans med diagnosen (facit). Samlaenmängdmeddatafrånfriskaochsjuka patienter. Använd olika matematiska metoder för att få systemet att lära sig ställa rätt diagnos.
Ett exempel på ett beslutsstöd dg Decision Maker Läkaren front-end Ett system somfor sköter navigering navigation mot en diagnos. towards diagnosis I C D dg dg... dg
Skärmdumpar
Domain expert... Support Systems Synthesis Analysis Extraction Data... Information Bank Automatiserad produktion av beslutsstöd. Ska kunna användas av domänexperten (läkaren) utan inblandning av datavetare. Ett enda programsystem istället för flera.
Den svarta lådan y f(x 1,x 2,...,x n )... x 1 x 2 x 3 x 4 x n
Den svarta lådan Om feber < 37.5 och sänkan < 5 så... Om feber > 39 och sänkan > 15 så... Logisk modell 0.999373 + e 16.2395 + (0.286 * (AGE 0.5)) 1: LR * (0.000627 + e 16.2395 + (0.286 * (AGE 0.5)) ) y Statistisk modell y f(x 1,x 2,...,x N )... x 1 x 2 x 3 x 4 x N Neural modell y Hybridmodell x 1 x 2 x 3 x 1 x 2 x 3
Statistiska metoder y 0.999373 + e 16.2395 + (0.286 * (AGE 0.5)) 1: LR * (0.000627 + e 16.2395 + (0.286 * (AGE 0.5)) )... x 1 x 2 x 3 x 4 x n
Logiska metoder y Om feber < 37.5 och sänkan < 5 så... Om feber > 39 och sänkan > 15 så...... x 1 x 2 x 3 x 4 x n
Perceptronen y w 1 w 2 w 3 w 4... w n... x 1 x 2 x 3 x 4 x n
Multi-layer perceptroner (MLP) y......... x 1 x 2 x 3 x 4 x n
Träning av neurala nätverk Backpropagationalgoritmen populär Bygger på gradient-descent algoritmen. Kan fastna i lokala minima Algoritmen: ❶Upprepa ett lämpligt antal gånger: ❶Kör en omgång data genom nätet. ❷Jämför nätets svar med facit ❸Räkna ut felen, skicka dem bakåt i nätet och uppdatera vikterna. Samma idé vid träning av hybridnätverk
Preprocessande perceptronen y......... x 1 x 2 x 3 x 4 x n
Sigmoiden g(x) Olika analysmetoder 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 The s igm oid Slope at inflexion point beta/4 = 2.5 In fle x io n p o in t alpha = 0.5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x g [ α, β]( x) = β( x α) 1+ e 1
Ett (fuzzy)logiskt synsätt... Hur kommer läkaren fram till sin diagnos? Kombinera fakta med befintliga kunskaper och sedan härleda en lösning. Varje symptom bidrar till diagnosen med en viss grad av osäkerhet. x w i i o Alla dessa implikationer vägs samman på något sätt för att nå en slutsats. Använd fuzzylogiska konnektiv för att hantera detta.
Den generaliserade preprocessande perceptronen o N = i = [ υ ] ( ϕ [ ψ ]( w, g [ ω ]( x ))) Φ 1 i i i i i i
Den svarta lådan Om feber < 37.5 och sänkan < 5 så... Om feber > 39 och sänkan > 15 så... Logisk modell 0.999373 + e 16.2395 + (0.286 * (AGE 0.5)) 1: LR * (0.000627 + e 16.2395 + (0.286 * (AGE 0.5)) ) y Statistisk modell y f(x 1,x 2,...,x N )... x 1 x 2 x 3 x 4 x N Neural modell y Hybridmodell x 1 x 2 x 3 x 1 x 2 x 3
Infoga det nya systemet När analysfasen är klar har man stommen till ett färdigt beslutstödssystem klart. Denna stomme ska automatiskt infogas i det gamla systemet. Viktigt att information finns: Vem har byggt systemet? Vilka data ligger till grund för det? När är det byggt? Hur använder man det och tolkar resultaten? Hur säkert är systemet?
µ A ( x) Fuzzy logik I klassisk logik är saker antingen sanna (1) eller falska (0). Fuzzy logik generalisering av klassisk logik där sanningsvärdet ligger i intervallet [0, 1]. Tillhörigheten av x i en mängd A definieras i klassisk mängdlära av: = 1, 0, x x A A
Fuzzymängder Sanningsvärdet för påståendet x finns i A bestäms av (x, µ A (x)). Zadeh, 1965: En fuzzymängd A definieras på ett liknande sätt. Andra komponentens värden kan tas från hela intervallet I = [0, 1]. µ A (x) : X I Sanningsvärdena representerar då en grad av tillhörighet. 0 - icke-tillhörighet ( helt falskt ) 1 - fullständig tillhörighet ( helt sant )
Fuzzymängd A ( nära 4 ) A = {(1, 0.0), (2, 0.2), (3, 0.6), (4, 1.0), (5, 0.6), (6, 0.2), (7, 0.0)}
Oftast beskrivs µ A som en funktion Lättare att utföra matematiska beräkningar på en funktion. Exempel: Normal rumstemperatur: µ A ( x) = 0, ( x 16)/ 2, 1, ( 24 x)/ 2, 0, x < 16 16 x 18 18 < x 22 22 < x 24 x > 24 15 0 16 0 17 0.5 18 1 119 1 20 1 21 1 22 1 23 0.5 24 0 25 0 0 15 17 19 21 23 25
Vanliga tillhörighetsfunktioner: 1 1 α β α γ β 1 1 α β α β γ δ
En mängd av tillhörighetsfunktioner bildar en fuzzyfamilj. Fuzzylogiska mängdoperationer och konnektiv uttrycks som funktioner som arbetar på [0,1]- intervallet. µ µ µ A B = max{ A, B}
Sanningstabeller? Fungerar inte eftersom vi har ett kontinuerligt intervall [0, 1]. Vi får se varje operation som en funktion från [0,1] 2 =[0,1] (eller [0,1] =[0,1] för negation). Funktionerna kan variera (måste dock följa vissa regler ) Om φ är en sats och [[φ]] dess sanningsvärde så brukar negationen oftast definieras som [[φ]]===1= =[[φ]]
Olika sätt att definiera disjunktion (eller) Unionen mellan två fuzzymängder max(a, b) a+b-a*b min{a+b,1} min{[a p +b p ] 1/p, 1}, p>0 Zadeh Produktkonnektiv Lukasiewicz Yager
Olika sätt att definiera konjunktion (och) Snittet mellan två fuzzymängder min(a, b) Zadeh 1965 a*b Produktkonnektiv max{0, a+b-1} Lukasiewicz 1-min{[(1-a) p +(1-b) p ] 1/p,1}, Yager p>0
Fuzzymängd a och b
a =b
a =b
De Morgans lagar gäller fortfarande Tack vare villkoren som ställs på funktionstyperna [[φ]] =[[φ]] = [[φ]] och [[φ]] =[[φ]] = [[φ]] endast om min används för och max för. Implikationen kan också uttryckas med olika typer av funktioner. Uttryck som är ekvivalent i klassisk logik behöver inte vara det i fuzzy logik eftersom uttrycken sträcker över hela intervallet.
Sammanfattning Beslutsstöd inom hälso- och sjukvården kan skapas på flera sätt: System som bygger på regler (Blodtryck) System som bygger på befintliga fakta (Polycystic ovary syndrome) Viktigt att ett beslutstöd kan beskriva hur resultatet kommit fram. Fortfarande läkaren som tar det avgörande beslutet!
En fuzzy controller knowledge base fuzzification interface fuzzy decision logic fuzzy defuzzification interface not fuzzy measured values controlled system controller output not fuzzy
Inverterade pendeln Problem: Balansera en påle på en vagn som kan röra sig i två riktningar. Indata: Hastigheten på vagnen Vinkeln mellan pålen och vagnen Vinkelhastigheten Utdata: Ändring av vagnhastigheten
Tillhörighetsfunktioner
Regler If angle is zero and angular velocity is zero then speed shall be zero. If angle is zero and angular velocity is pos. low then speed shall be pos. low. Angle Angular velocity Speed NH NL Z PL PH NH NH NL NL Z Z NH NL Z PL PH PL Z PL PH PH
Hur får man ett output utifrån givna input? Titta på varje regel för sig och beräkna till vilken grad man kan tillämpa den. De värden man får fram används sedan för att skära topparna av resultatgrafen. Resultatgrafen måste sedan omvandlas till ett värde som inte är fuzzifierat. Vanligaste sättet är att välja ett av de värden som ger ett maximalt värde i grafen.
If angle is zero and angular velocity is zero then speed shall be zero.
Bara tre regler till ger ett resultat: If angle is zero and angular velocity is neg. low then speed is neg. low. If angle is pos. low and angular velocity is zero then speed is pos. low. If angle is pos. low and angular velocity is neg. low then speed is zero.
Sammanfattning av alla regler: