Linköpings universitet Artificiell intelligens II HT 2011 Case-based resoning och dess användning inom sjukvården
Sammanfattning Det här arbetet handlar om vad case-based resoning är, hur den funkar, vilka algoritmer den använder sig av och i vilken sammanhang man använder sig av den. Jag tar även upp lite om vad jag tror om dens framtid inom sjukvården. Den här arbete är som en inlämningsuppgift till kursen AI2 på Linköpings universitet. sida 1
Innehåll Sammanfattning... 1 1 Inledning... 3 1.1 Syfte... 3 2 Case-based resoning (CBR)... 4 2.2 Hur funkar case-based resoning... 4 2.3 Sökträd... 5 3 Nearest-neighbour retrival eller inductive retrival... 6 3.1 Fördelar och nackdelar att använda Case-based resoning... 7 4 Användningsområden... 7 4.1 Sjukvård... 7 4.2 för- och nackdelar med att använda ett sådant program inom sjukvård... 8 5.1 Vad jag har lärt mig och mina tankar kring case-based resoning... 9 Elektroniska källor... 10 sida 2
1 Inledning Nuförtiden blir vår värld allt mer och mer datoriserad man kan nästan inte gå en dag utan att använda någon typ av maskin eller program. Dem har blivit våra bästa hjälpmedel i vardagen. De har öppnat alla möjliga dörrar för oss människor. En av dessa hjälpmedel som är under utveckling just nu är ett dataprogram som är byggd för att hjälpa läkare att ställa diagnos på patienter. Det intressanta med dataprogrammet är att den inte bara löser fall utan den även lär sig med tiden och det gör den genom härma människans problemlösningsförmåga det vill säga att den använda sig av sina tidigare kunskaper och erfarenheter för att kunna lösa ett problem. 1.1 Syfte Syftet med det här arbetet är att kunna ge en djupare förståelse för hur case-based resoning fungerar och hur man kan använda den. sida 3
2 Case-based resoning (CBR) 2.1 Vad är case-based resoning Case-based resoning är en artificiell metod som gå ut på att lösa nya fall genom att använda sig av liknande tidigare lösta fall som redan finns lagrade i programmets databas. Databasen är ett stort bibliotek där alla fall finns lagrade. I varje fall finns det ett problem, en lösning och feedback på hur resultatet blev. Det är från det här biblioteket som CBR använder sig av för att hitta liknelser med det nya problemet som man har matat in. Varje fall kan innehålla olika värden till exempel ålder, centimeter, milliliter, datum med mera. Alla värden som finns i fallet blir representerade som variabler i programmet. Variablerna i sin tur blir till vektorer. Variablerna beskriver en vektor i ett N- dimensionellt rymd. Varje vektor det vill säga fall lägger till en ny N i dimensionen där alla fall finns lagrade. För att hitta den bästa lösningen till fallet använder programmet sig av sökträd. Det finns olika program och system som använder sig av CBR så som Diagnostiksystem vilket är den som jag kommer att inrikta mig på men det finns även klassificeringssystem, lärningssystem och planeringssystem. 2.2 Hur funkar case-based resoning Case-based resoning går ut på att söka, match och lösa. Den använder sig av fyra steg. (figur1) Dessa steg är följande. 1. Hämta (Retrive) När man har matat in ett fall kommer CBR först att kolla vad det finns för variabler i fallet och göra om de till en vektor som innehåller alla dessa variabler. Den kommer sen att jämföra med andra vektorer det vill säga fall som den har lagrad i biblioteket och se vilken som passar bäst in i det nya fallen. Detta gör den med hjälp av ett sökträd. 2. Återanvända (Reuse) När den har hittat ett fall som passar in i det nya fallet kommer den att föreslå att prova det tidigare fallens lösning på det nya fallen. 3. Revidera (Revise) Därefter gör den ett till sökträd som har gått igenom den föreslagna lösningen och resultatet kommer vara att den antingen har hittat lösningen till problemet eller så kommer den att söka igen igenom efter en annan passande lösning då resultatet inte blev bra. Den kommer gå igenom steg 1 och steg 2 igen. 4. Spara (Retain) Om resultatet av lösningen på problemet blev bra kommer den att spara det nya fallet i fallbiblioteket. Men bara om fallet har något nytt att tillföra i biblioteket. Om den liknar för mycket det tidigare fallet kommer lösningen inte att sparas. sida 4
2.3 Sökträd Figur 1. Visar hur dessa fyra steg sammarbetar för att komma till en lösning. 1 CBR använder sig av sökträd för att hitta den bästa passande lösningen. Det kallas för sökträd då det kan beskrivas som ett träd. Ett sökträd består av en rot, noder och lövnoder. Roten är på toppen och noderna kan man säga är dess grenar varje gren är ett alternativ till lösningen och lövnoderna kan man tänka sig är löv på grenarna. Eftersom det inte finns något mer som följer efter löv på träd kommer löven vara svar på lösningen. Sökträd kan vara binärt (figur 2) 2 eller ickebinärt (figur 3) 3. När det är ett binärt sökträd kommer noden alltid att ha högst två grenar. När den är ickebinärt kommer sökträdet att ha flera än två grenar som den har att välja från. Ett sökträd funkar på så sätt att den börjar från roten där alla information finns och kollar upp likheter som det nya fallet har med de gamla. Den bygger upp grenar med noder där varje nod är ett alternativ till lösningen. Den fortsätter förgrena sig till den hittar lövnoden vilket är det slutgiltiga svaret på problemet på den nya fallet som man skrev in. Om det är en stor databas som man jobbar med kommer sökträdet att växa väldig mycket vilket kan vara svårt att tyda. För att undvika det här problemet kan man begränsa antalet steg som sökträdet ska bestå av eller så kan man också begränsa antalet löv. 1 Figur tagen från Markus Nilsson, A cased-based approach for classification of physiological Time-Series, Mälaredalen University Licentiate Thesis. No.28 2 Bild tagen från Wikipedia 3 Bild tagen från Wikipedia sida 5
Figur 2. Visar ett exempel på hur ett binärt sökträd växer. Figur 3. Visar ett exempel på hur ett ickebinärt träd växer. 3 Nearest-neighbour retrival eller inductive retrival Eftersom vektorerna jämför med varandra kan programmet använda sig av Nearest- Neighbour retrival algoritmen (k-nn). K-NN går ut på att jämföra liknelsen mellan de sparade falletoch den nya inmatade falletsom ska lösas. I den här N-dimensionellt rymd kan man tänka sig att alla fall ligger lite här och där i rymden och den som ligger närmast den nya falletär den som liknar den mest och blir den nya fallens granne. Grannen är den som har lösningen till den nya fallen. Ifall grannen inte kan lösa problemet kollar man igen vilka andra som ligger nära den nya falletoch så fortsätter man tills man har hittat lösningen. Det kan hända ibland att det kan vara en blandning av två eller flera fall som kan bli lösningen till den nya fallen. Dock används det bara i program som har fall som är väl definerade och lösningen inte är lika enkel. Den kan även använda sig av inductive retrival algoritmen som går ut på att bestämma vilka värden som är viktiga i falletoch med hjälp av de gör ett sökträd som hittar fall i biblioteket som liknar den nya fallen. sida 6
Figur 4. Visar hur Nearest-neighbour retrival funkar. Den gröna pricken är den nya fallet och figurerna kring den är andra tidigare löst fall. De närsmast är den är grannarna. Det som skiljer K-NN och inductive retrival åt är att k-nn är väldig enkelt att använda men blir allt långsammare ju större biblioteket blir och det kan bli ett problem med tiden. Inducive retrival är snabbt men det blir svårare att hitta lösningen om ett av falletsaknas någon värde och den är beroende av att man har kategoriserad i förhand och att kategorisera kräver mycket jobb. Även om det är nya fall som man matar in hela tiden i programmet kommer den inte att spara alla lösningar då det kan vara att många fall kan upprepas. Det som bestämer vilka fall som ska sparas är hur olika de är från de falletsom finns redan. Fall som är för lika brukar inte sparas men fall som inför något nytt till programmets bibliotek brukar sparas. Case-based resoning kräver underhåll ibland då databasen kan komma att växa väldig stort med tiden. Det man gör då är att kolla upp alla fall som finns i biblioeteket och kategoriserar de i olika fack beroende på vad de har för liknelser med varandra. 3.1 Fördelar och nackdelar att använda Case-based resoning Fördelarna med att använda sig av case-based resoning för att lösa problem är att den kan spara lösningar till olika fall som kan återanvändas till liknande fall men nackdelen är att man måste kategorisera alla fall och ju större biblioteket blir ju mer tid kräver programmet för att hitta en lämplig lösning till problemet. Underhållningen måste göras regelbundet och det kräver mycket tid och jobb för att hålla programmets alla fall kategoriserad. Något som i längden kanske inte håller. 4 Användningsområden 4.1 Sjukvård Ett användningsområde där case-based resoning tillämpas är inom sjukvården. Tyvärr har jag inte kunnat hitta om det finns något sjukhus som använder sig av ett sådant program. Då det fortfarande är ett färskt ämne och programmet är inte syftat till kommersiellt bruk. Det som jag hittade däremot var andra liknande program men som istället för att vara allmänna fallbaserad är byggda för att vara specialister inom vissa områden. Till exempel, The Auguste projekt som ska användas som ett stöd till beslutsfattande i planering för vårdnad av sida 7
patienter med Alzheimers. Den ska utifrån beteendet som patienten visar kunna välja vilka mediciner är lämpligast att ge. Markus Nilsson (2004) 4 gjorde sin avhandling där han skriver om case-based resoning och hur man kan använda den inom sjukvården. Hans ide är att med hjälp av programmet kunna diagnostisera patienter. Programmet ska i början ha samma kunskap som en nyutexaminerad läkare och med tiden lär sig nytt kunskap (lösningar). Eftersom det uppstår för många problem med att skapa allmänna fallbaserad är det bättre att göra program som inriktar sig inom något ämne istället. Markus Nilsson valde stressrelaterade sjukdomar som till exempel utbrändhet. Det brukar vara något som är svårt att ställa diagnos på och med hjälp av det här programmet hoppas han kunna underlätta för läkaren diagnostiseringen på patienter. 4.2 för- och nackdelar med att använda ett sådant program inom sjukvård Varje program blir individuellt eftersom den lär sig hela tiden nya saker och fallet är inte detsamma i varje sjukhus det finns kan förekomma många liknade fall men man kommer se skillnad mellan olika sjukhus. Vilket kan göra att sjukhusavdelningarna kommer att bli bättre på vad de är specialiserad på. Genom att kunna se patientens medicinska historia och genom att skriva in symptomen som patienten har blir det lättare att se till att man inte missa något då all information är samlad på ett ställe. Med hjälp av det här ska läkare kunna diagnostisera rätt och kunna se vilka alternativ som finns om behandlingen inte skulle fungera. Det är tänkt att det ska vara ett hjälpmedel för läkaren och inte en ersättning av läkaren. Man kan se det som en möjlighet till att kunna göra jobbet lättare för läkare och sjukhus personal som kan då lägger ner mer tid på patienten samt att arbetsmiljön kan blir mindre stressamt. Det kan hjälpa till att upptäcka sjukdomar som man inte alls har tänkt på. Man kanske missar ställa en fråga men med hjälp av programmet kan man se vilka frågor som man bör ställa vilket leder till att det blir svårare att missa något med det här programmet. Man kanske skulle kunna göra en liknande program som människor kan använda sig av i sitt eget hem och på så sätt slipper åka in till sjukhuset eller vårdcentralen i onödan. Som i sin ur kan ge tid till att läkarna kan koncentrera sig på fall som verkligen är allvarliga och behöver lösas. Nackdelen kan vara att läkarna tillförlitar sig för mycket på programmet och att programmet blir långsammare ju mer den växer vilket kan leda till att det blir svårare att hitta en lösning till ett problem utan man kommer då kanske få ett flertal lösningar och resultatet är inte pålitligt då. Det kan göra att folk blir skeptiska till programmet och mister tillit på sjukvården. 4 http://www.forskning.se/pressmeddelanden/pressmeddelandenarkiv2005/smartdatasystemhja lperlakareattstalladiagnos.5.6aedd9c411589ea69ed80005456.html sida 8
5 Diskussion 5.1 Vad jag har lärt mig och mina tankar kring case-based resoning Så här mot slutet av arbete kan jag säga att jag har lärt mig mycket om case-based resoning det är intressant hur den härmar människans problemlösningsförmåga inte fullt ut kanske men rätt nära är den. I början var jag skeptisk mot det och det var därför jag blev nyfiken på ämnet för jag ville se om det verkligen skulle funka i verkliga livet. Som det ser ut nu så är den inte riktig redo än men det kommer nog inte dröja mycket förrän man kan använda den inte till vardagen precis men till fall som är kluriga än andra. Och vem vet kanske i framtiden kommer man att få se robotar samarbeta med läkare på sjukhuset. Istället för att prata med läkaren kommer det att vara en robot man får prata med. Ja det här är bara spekulationer men det skulle vara riktig spännande och vara med och se det hända. Det finns mycket om case-based resoning som jag skulle vilja ta upp men tyvärr har jag inte nog med tid för det men det har varit kul att läsa om det CBR. sida 9
Referenser Elektroniska källor http://www.forskning.se/pressmeddelanden/pressmeddelandenarkiv2005/smartdatasystemhjal perlakareattstalladiagnos.5.6aedd9c411589ea69ed80005456.html Markus Nilsson, A cased-based approach for classification of physiological Time-Series, Mälaredalen University Licentiate Thesis. No.28 http://www.mrtc.mdh.se/index.php?choice=publications&id=0718 http://sverigesradio.se/sida/artikel.aspx?programid=112&artikel=674639 http://en.wikipedia.org/wiki/case-based_reasoning http://docs.google.com/viewer?a=v&q=cache:nx60ovorsksj:www.karlbranting.net/papers/x ijun.wang/chapt2.doc+induktive+retrival&hl=sv&gl=se&pid=bl&srcid=adgeesiry4w51rt nbwhxjc8wqfmvjn4hlxakbquv9pauztwfnh2ufow6- bfym_taxrxoviqrrnhoc2hdmcoazl8ergbtuie2295mekejutt0beffbfjrgm6afszejl4aq_3_ltgv1tj&sig=ahietbsuxvkm6d5n0dipinkkadtxd03maq http://commons.wikimedia.org/wiki/file:ins%c3%a4ttning_av_m%c3%a5_till_s%c3%b6 _i_bin%c3%a4rt_s%c3%b6ktr%c3%a4d.png?uselang=sv http://www.google.se/imgres?q=icke+bin%c3%a4rt+s%c3%b6ktr%c3%a4d&um=1&hl=s v&client=firefox-a&hs=l7z&sa=n&rls=org.mozilla:sv- SE:official&biw=1280&bih=681&tbm=isch&tbnid=p- OdkYC3ug4ByM:&imgrefurl=http://databasteknik.se/webbkursen/lagring/index.html&docid =3rsrnH03KiCjMM&w=752&h=162&ei=CEx3ToyHBc7LtAb1t7isCw&zoom=1 sida 10