- en flervärdeslogik för framtiden? Karl Bruno Linköpings universitet 2006-10-15
Sammanfattning Oskarp logik är en utvidgning av den klassiska logiken. Den baseras på oskarpa mängder, mängder till vilka tillhörighet inte är absolut. Detta är i sin tur är en reflektion av hur mänskligt kategoriserande i många fall fungerar. Dessa mängder kan sedan användas i oskarpa regler för villkorshandlingar, vilket ger en ökad flexibilitet som i sin tur har visat sig öka systemprestanda på många områden. Rapporten utgör en enkel introduktion till teorin bakom oskarp logik och presenterar även en översikt över vad den oskarpa logiken kan användas till, bl.a. kontrollsystem för större system, expertsystem eller språkigenkänningsteknik.
Innehållsförteckning 1 Inledning...1 2 Introduktion till oskarp logik...1 2.1 Vad menas med fuzzy?...1 2.2 Historisk bakgrund...2 3 Oskarp logik - teoretiska aspekter...3 3.1 Oskarp mängdlära...3 3.2 Operationer på oskarpa mängder...4 3.3 Lingvistiska variabler...5 3.4 Hedges...5 3.5 Oskarpa regler för villkorshandlingar...6 4 Oskarp logik - användningsområden...8 4.1 Var används den oskarpa logiken?...8 4.2 Oskarp kontroll...8 4.3 Kommersiella applikationer av oskarp kontroll...8 4.4 Oskarpa expertsystem...9 4.5 Neuro-fuzzy systems...10 5 Diskussion...11 Referenser...13 Figurförteckning Figur 1 - värmeexemplet med klassisk mängdlära...3 Figur 2 - värmeexemplet med oskarpa mängder...3 Figur 3 - Exempel på medlemskapsfunktioner...4 Figur 4 - Exempel på hedges...5 Figur 5 - Modus ponens...6
1 Inledning Denna rapport är en redovisning av en litteraturstudie som genomförs som en del av kursen i artificiell intelligens på det kognitionsvetenskapliga programmet. Mitt syfte med studien har varit att fördjupa mig i ämnet oskarp logik genom en studie av tillgänglig litteratur. Jag har arbetat utifrån frågeställningen: Vad innebär oskarp logik och vilka praktiska tillämpningar har den? Rapporten är en redogörelse av teorin runt, och praktiska tillämpningar av, oskarp logik. Den inleds med en introduktion och en historisk bakgrund. Därefter tas de teoretiska grunderna för oskarp logik upp i större detalj, med fokus på fuzzy set theory - den oskarpa mängdlära som utgör grunden i oskarp logik - samt på lingvistiska variabler och oskarpa regler för villkorshandlingar. Sedan redogörs för vilka praktiska användningsområden som finns för oskarp logik och vilken roll den oskarpa logiken spelar inom AI. Rapporten avslutas med en diskussion och mina egna reflektioner runt ämnet. De källor jag har använt bedömer jag vara av hög kvalitet, med reservation för att Joakim Nembacks Fuzziness är en studentuppsats. Den har dock inte använts i någon större utsträckning. Koskos och Isakas text är hämtad från en sida vars adress kan tyckas suspekt; Bart Kosko är dock ett känt namn inom oskarp logik och sannolikhetslära och texten håller hög klass. Övriga referenser borde vara okontroversiella. Här är det också på sin plats med ett terminologiskt klargörande. I rapporten används genomgående termen oskarp logik för det som på engelska kallas fuzzy logic. Oskarp logik är det som rekommenderas av Terminologicentrum; andra svenska termer som förekommer är suddig eller diffus logik. I allmänhet förefaller dock den engelska termen fuzzy logic dominera även i svenska texter. Fuzzy logic har ingen allmänt accepterad definition i den engelskspråkiga litteraturen. I sin bredaste tillämpning refererar begreppet till alla former av teoribildningar och teknologier baserade på konceptet fuzzy sets, oskarpa mängder. Detta är också hur begreppet ska förstås i föreliggande text. 2 Introduktion till oskarp logik 2.1 Vad menas med fuzzy? Traditionell sats- och predikatlogik tillåter enbart sanningsvärdena 1 eller 0 för ett påstående. Ett påstående är med andra ord antingen sant eller falskt och inget däremellan. Ingen gradvis övergång från falskt till sant eller vice versa är möjlig eftersom 1 och 0 är de enda tillåtna värdena. Det samma gäller för klassisk mängdlära - antingen ingår ett element i en mängd eller så gör det inte det. Detta reflekterar den antika synen på hur människor delar upp världen i kategorier. Då ansåg man att kategorier i princip saknade interna strukturer och att allt som kunde placeras in i en kategori är likvärdigt. Så fungerar emellertid inte den mänskliga kognitionen i praktiken. Våra koncept och kategorier är allts om oftast vagt avgränsade. 1 Denna diskrepans mellan kognition och logik är vad den oskarpa logiken försöker hantera. 1 Howard Gardner, The Mind s New Science (New York 1985), s 341-342. 1
Inom oskarp logik använder man, istället för vanliga mängder, s.k. fuzzy sets, mängder med oskarpa gränser. De oskarpa gränserna innebär att man istället får beskriva i vilken grad något är en del av en mängd, eller i vilken grad ett påstående är sant, s.k. degree of truth. Detta ska inte förväxlas med sannolikhetslära, i vilken man talar om degree of belief, i vilken grad ett påstående förväntas vara sant. Det faktiska sanningsvärdet för ett påstående inom sannolikhetsläran är fortfarande endast 1 eller 0. 2 Det man försöker fånga med fuzzy sets är alltså vaga kategorier och gradvis förändring. Om en person utsätts för en temperaturökning från 0 till 30 grader kommer personen att uppleva att temperaturen går från kallt till ljummet till varmt. Inom klassisk mängdlära skulle man kunna definiera olika temperaturintervall som motsvarar den upplevelsen - man kan t.ex. välja indelningen kallt från 0-14, ljummet 14-22 och varmt från 22 och uppåt. En människa upplever dock istället en förändring där upplevelsen långsamt går från kallt till ljummet när temperaturen börjar närma sig 14 grader. Denna gradvisa förändringsupplevelse går inte att fånga med hjälp av klassiska mängder eller traditionell logik, men den utgör däremot själva essensen av begreppet fuzzy. 2.2 Historisk bakgrund Konceptet med fuzzy sets lanserades 1965 i en artikel av Lofti A. Zadeh vid University of California. Det blev mycket kontroversiellt och bemöttes med skarp kritik, inte minst för att det genom sitt fokus på vaghet ansågs bryta med den etablerade vetenskapliga strävan efter precision. 3 Trots kritiken mot Zadehs artikel fick ändå fuzzy set-teorin anhängare, och den teoretiska utvecklingen gick framåt. 1973 provade man för första gången att använda oskarp logik för att styra en maskin. Det fungerade över förväntan och 1976 skapades den första industriella tillämpningen av oskarp logik - ett kontrollsystem för en cementugn. Dock var det först på åttiotalet som utvecklingen verkligen kom att ta fart, framförallt i Japan. Den japanska regeringen bistod med generösa forskningsbidrag och i början av nittiotalet slog den oskarpa tekniken verkligen igenom i produkter riktade till hemkonsumenter. Japanska företag lanserade bland annat mycket framgångsrika tvättmaskiner, riskokare, dammsugare och kylskåp baserade på oskarp logik. Detta uppsving kom att sprida sig till västvärlden och gjorde att den oskarpa logiken blev mer och mer rumsren. Idag utvecklas avancerad oskarp teknik på många storföretag och den oskarpa logiken har också blivit mer och mer accepterad på universitetens institutioner. Dagens forskning handlar framförallt om hur man kan maximera fördelarna och minimera nackdelarna med den oskarpa tekniken. Man jobbar mycket med att kombinera oskarp logik med andra okonventionella modeller som exempelvis neurala nät och genetiska algoritmer - en verksamhet som ibland går under namnet soft computing. Trots det inledande motståndet har utvecklingen alltså gått framåt och oskarp logik är idag etablerad, inte minst tack vare dess många lyckosamma tillämpningar. Det är framförallt två saker som har motiverat denna utveckling. Dels ville man förenkla lösningen av problem som var svåra att hantera med traditionella metoder, och dels ville man simulera den mänskliga kognitiva 2 Stuart Russell & Peter Norvig, Artificial Intelligence: A Modern Approach (Upper Saddle River 2003), s. 464. 3 John Yen & Reza Langari, Fuzzy Logic: Intelligence, Control and Information (Upper Saddle River 1999), s. 5. 2
egenskapen att använda sig av vagt avgränsade koncept och kategorier. 4 Båda delarna är intressanta inte minst inom området artificiell intelligens. 3 Oskarp logik - teoretiska aspekter 3.1 Oskarp mängdlära Inom den traditionella mängdläran definieras en mängd som en samling unika saker, s.k. element, som hör ihop. Tillhörighet till en mängd är absolut, d.v.s. ett element är antingen en del av en mängd eller inte. En oskarp mängd är å andra sidan en mängd för vilken tillhörigheten är flytande. Låt oss återgå till det tidigare exemplet med temperaturer. Vi har alltså tre mängder, en för kall temperatur, en för ljummen och en för varm temperatur. Tillhörigheten av temperaturer till mängderna kan representeras med logiska satser som i fig. 1. Sats Kallt(5 grader) Kallt(13,9 grader) Kallt(14 grader) Ljummet(21,9 grader) Varmt(22 grader) Sanningsvärde Sant Sant Falskt Sant Sant Figur 1 - värmeexemplet med klassisk mängdlära Denna indelning är som synes tämligen rigid. Trots att det bara skiljer en tiondels grad - en temperaturförändring som en människa knappast förmår uppfatta - mellan 13,9 och 14 grader betraktas det ena som kallt och det andra inte som kallt. Med oskarpa mängder skulle det istället kunna se ut som i fig. 2. Sats Sanningsvärde Kallt(5 grader) 0,7 Kallt(13,9 grader) 0,25 Kallt(14 grader) 0,24 Ljummet(21,9 grader) 0,25 Varmt(22 grader) 0,26 Figur 2 - värmeexemplet med oskarpa mängder När fler sanningsvärden än endast 0 och 1 tillåts blir bilden som synes mer nyanserad. Sanningsvärdet här representerar graden av medlemskap i en mängd (i princip kan en mängd vara oändlig, med ett sanningsvärde som för extrema element går mot 0 respektive 1, men det är ofta smidigare att sätta gränser efter vilka sanningsvärdet blir 0 och 1 5 ), vilket brukar beskrivas som värdet av mängdens medlemskapsfunktion. 4 Vilket har visats av Eleanor Rosch, se t.ex. Gardner, The Mind s New Science, s 347. 5 Joakim Nemback, Fuzziness (Linköping 2004), s. 8. 3
Medlemskapsfunktionen är en matematisk definition av mängden och betecknas med bokstaven μ. 6 Det värde medlemskapsfunktionen antar för ett visst element är graden av medlemskap för elementet i mängden - den beskriver alltså vad som ingår i mängden och till vilken grad det ingår. Hur en medlemskapsfunktion ser ut beror på vad den ska användas till; ett vanligt sätt att designa en är att helt enkelt fråga en expert på det område där den ska användas hur kurvan bör se ut. Hur sådana funktioner definieras matematiskt tas inte upp här; figur 3 visar grafiskt några standardfunktioner. Figur 3 - Exempel på medlemskapsfunktioner (Hämtad från http://www4.eas.asu.edu/powerzone/loadforecast/web/images/membership-functions.png) Ett annat sätt att definiera en mängd är uttrycket: A = μ A (χ i )/χ i Vilket är definitionen av den ändliga oskarpa mängden A. μ A (χ i )/χ i är här en oskarp mängd med ett enda element, χ, vars grad av medlemskap (vilket också kan uttryckas som sanningsvärdet för satsen A(χ)) i A är μ A (χ i ). A är således summan av samtliga delmängder i mängden. 7 3.2 Operationer på oskarpa mängder De tre grundläggande operationerna inom klassisk mängdlära är union, snitt och komplement. Unionen av mängderna A och B är en mängd med alla element som ingår i antingen A eller B, snittet av A och B är en mängd med alla element som ingår i både A och B, och komplementet av A är alla element som inte ingår i A. Samma operationer kan i princip användas på oskarpa mängder. Unionen av två oskarpa mängder representerar i vilken grad ett element är en medlem i någon av mängderna, snittet i vilken grad ett element är medlem i båda (d.v.s. hur mängderna överlappar varandra), och 6 Yen & Langari, Fuzzy Logic, s. 60. 7 ibid., s. 61. 4
komplementet till en mängd representerar i vilken grad något inte är medlem i mängden. En oskarp mängd och dess komplement måste alltid summeras till 1. 8 Komplementet till mängden A är alltså 1 - μ A (χ) - detta kan man tänka sig som graden av falskhet istället för graden av sanning. 9 3.3 Lingvistiska variabler Ett viktigt koncept för användningen av oskarpa mängder är s.k. lingvistiska variabler. En lingvistisk variabel har fördelen att den tillåter det värde den representerar att beskrivas både kvalitativt och kvantitativt. Som exempel kan vi utgå från påståendet att det är kallt. Detta kan med naturligt språk beskrivas med meningen Det är kallt. Satslogiken låter oss formalisera påståendet till Temperatur(Kallt). Den lingvistiska variabeln kallt, som alltså är namnet på en oskarp mängd, är i sig själv en kvalitativ beskrivning av temperaturen (mer stringent kan man väl säga att kallt är en symbol för konceptet kallt). Samtidigt är mängdens medlemskapsfunktion en kvantitativ beskrivning. 10 Lingvistiska variabler utgör alltså en syntes mellan numeriska och symboliska variabler, vilket är det främsta skälet till att oskarp logik har haft så stor framgång inom i synnerhet kontrollproblem. De lingvistiska variablerna har också fördelen att man inte explicit behöver deklarera samtliga tänkbara variabler (i ett stort system kan man lätt föreställa sig att det finns väldigt många tänkbara beskrivningar av systemets status). Istället kan man, med utgångspunkt i en grunduppsättning termer, generera det man behöver med hjälp av s.k. hedges 11. 3.4 Hedges Hedges fungerar som modifierare till oskarpa mängder. De består av termer på naturligt språk och en associerad matematisk definition som modifierar mängdens medlemskapsfunktion. Två vanliga hedges är very och more or less. De fungerar på samma sätt som i naturligt språk; very minskar förstås ner mängden (väldigt kallt är en delmängd av kallt) och more or less utvidgar den. De matematiska definitionerna visas i figur 3 nedan. 12 Hedge Mat. definition Very (μ A (χ)) 2 More or less (μ A (χ)) Figur 4 - Exempel på hedges För att undvika missförstånd kan det kan vara värt att notera att de matematiska definitionerna inte motsvarar något faktiskt förhållande i naturen. De är valda intuitivt för att motsvara ordets semantiska betydelse och för att fungera bra i praktiken. 8 Bart Kosko & Satoru Isaka, Fuzzy Logic. 9 Erik Palmgren, Suddig logik och gitter (Uppsala 2000), s. 2. 10 Yen & Langari., s. 30-31. 11 Jag har inte hittat någon vedertagen svensk term; förmodligen används det engelska uttrycket även i svenska texter. Det kommer att gälla även i föreliggande rapport. 12 ibid, s. 68. 5
3.5 Oskarpa regler för villkorshandlingar Regler för villkorshandlingar (på engelska condition-action rules eller IF-THEN rules) används för att styra handlingar hos ett system efter principen att om ett eller flera specificerade villkor är uppfyllda så ska en bestämd handling utföras. Man skriva kan sådana regler med syntaxen IF (villkor) THEN (handling). Detta är baserat på den logiska regeln modus ponens, som med logisk notation skrivs: A -> B A --- B Figur 5 - Modus ponens Pilen står för implikation; om vi vet att A implicerar B (eller som det vanligtvis uttrycks, om A så B), och vi vet att A är sant, då kan vi sluta oss till att B är sant. Problemet med modus ponens, och i förlängningen med skarpa IF-THEN-regler, är att gränsen mellan uppfyllt och icke-uppfyllt villkor är skarp, precis som i exemplet med temperaturerna ovan. Detta är förstås ibland inget problem överhuvudtaget, men vill man representera hur människor använder kategorier, eller helt enkelt oprecis kunskap, så blir det problem. Om standardgränsen mellan kallt och ljummet går vid 14 grader skulle få människor spontant uppleva 13,9 grader som kallt, eftersom övergången från ljummet till kallt upplevs gradvist. Oskarpa regler för villkorshandlingar fungerar däremot mer som människor. Ur AI-synvinkel är de intressanta som ett sätt att försöka representera oprecis kunskap. De utgör också den överlägset mest använda tillämpningen av Zadehs oskarpa mängdlära; oskarpa IF-THEN-regler utgör kärnan i de flesta tillämpningarna av oskarp logik. 13 De skrivs som vanliga villkorshandlingsregler, med villkoret/n uttryckta med hjälp av lingvistiska variabler (som refererar till oskarpa mängder), och med handlingen beskriven antingen som ett skarpt eller ett oskarpt värde. Den mest betydande implikationen av det är att man får ökad flexibilitet på villkorssidan, d.v.s. systemet kan ta hänsyn till i vilken grad ett villkor är uppfyllt. Detta kontrasterar mot skarpa IF-THEN-regler som alltså bara tar sanningsvärdena 1 och 0 för ett visst villkor. Följande är ett exempel på skillnaden: OM temperaturen ÄR > 22 SÅ är det varmt OM temperaturen ÄR varm SÅ är det varmt (skarp regel) (oskarp regel) Varm i den oskarpa regeln är en lingvistisk variabel motsvarande den oskarpa mängden varm som i lägre eller högre grad kan vara uppfylld. Detta för oss in på hur oskarpa regler för villkorshandlingar faktiskt fungerar. När graden av medlemskap blir 1 eller 0 fungerar det förstås som en vanlig, skarp regel, d.v.s. om μ varm (T) = 1 för temperaturen T, så dras utan vidare slutsatsen att det är varmt, och om μ varm (T) = 0 så är det inte varmt. Men vad händer om villkoret är gradvist uppfyllt? Så kommer i princip alltid att vara fallet eftersom man i allmänhet har fler än 13 Yen & Langari, Fuzzy Logic, s. 109. 6
en regel samtidigt som de oskarpa mängderna tenderar att överlappa varandra; även om ett villkor är har sanningsvärdet 1 så kommer ett näraliggande villkor bara vara gradvist uppfyllt. Denna parallellkörning är kärnan i alla praktiska tillämpningar av oskarpa regler för villkorshandlingar - man interpolerar mellan delvis uppfyllda villkor för att bestämma vilken handling som är den rätta. 14 Det första steget är naturligtvis att avgöra i vilken grad villkoret är uppfyllt, en process som kallas fuzzy matching, och som består av en jämförelse mellan indatan och villkoret. Eftersom villkoret är en oskarp mängd följer att graden av uppfyllelse är identisk med värdet av mängdens medlemskapsfunktion för den givna indatan. Nästa steg är att dra en slutsats utifrån graden av villkorsuppfyllnad. Om THEN-delen av satsen i sig är oskarp dras slutsatsen genom att inskränka dess medlemskapsfunktion i en grad som motsvarar hur mycket villkoret är uppfyllt. Är THEN-delen ett skarpt värde måste det konverteras till en oskarp mängd som sedan också kan inskränkas i lämplig grad (Hur dessa två operationer utförs i praktiken tas inte upp här; intresserade läsare kan med fördel använda sig av referenslistan för att fördjupa sig). Slutsatsen får alltså formen av en oskarp mängd vars medlemskapsfunktion är anpassad efter i vilken grad villkoret är uppfyllt. Eller med andra ord; slutsatsen blir en oskarp mängd vars sanningsvärde beror på sanningsvärdet för villkoret. Eftersom näraliggande oskarpa mängder överlappar varandra kan flera villkor vara uppfyllda i olika grad. Därför måste systemet kombinera samtliga slutsatser till en enda medlemskapsfunktion - detta görs med en union av alla mängder. Denna totala slutmängd konverteras sedan till ett skarpt värde, en s.k. defuzzification, vilket oftast görs genom att ta det centrala värdet från arean under medlemskapsfunktionens graf. 15 Detta blir sedan utdatan (såvida inte utdata i oskarp form accepteras, i vilket fall defuzzification-steget uteblir). För att förtydliga ovanstående väldigt abstrakta beskrivning tänker jag använda mig av ett exempel med ett system som kontrollerar luftkonditioneringen i ett rum. Man kan tänka sig att en simpel luftkonditionering delvis styrs av satserna: IF temp IS very hot THEN fan speed IS very fast IF temp IS hot THEN fan speed IS fast Kort sagt, är det för varmt ska kyleffekten ökas i lämplig grad. Detta system tar temperaturen som indata och ska bestämma fläkthastigheten. Hot och fast är lingvistiska variabler; very är en hedge som modifierar dessa. Vi säger att temperaturen är 27 grader och ger de godtyckliga sanningsvärdena 0,8 samt 0,6 för very hot respektive hot (Detta avgörs förstås egentligen av medlemskapsfunktionerna, men för det här exemplet besparar jag mig besväret att definiera sådana). Dessa värden överförs till mängderna very fast och fast, som får 0,8 och 0,6 som sina värden - medlemskapsfunktionerna inskränks. Eftersom två villkor är uppfyllda i olika grad slås mängderna ihop till en mängd. Slutligen defuzzifieras mängden och det man får ut - ett genomsnittligt sanningsvärde för unionen av very fast och fast - motsvarar en fläkthastighet, som då ställs in. Sedan läses en ny temperatur in och processen börjar om från början. 14 Didier Dubois & Henri Prade, The Place of Fuzzy Logic in AI, i Anca L. Ralescu & James G. Shanahan (red.), Fuzzy Logic in Artificial Intelligence (Heidelberg 1999), s. 10. 15 Bart Kosko & Satoru Isaka, Fuzzy Logic. 7
4 Oskarp logik - användningsområden 4.1 Var används den oskarpa logiken? Termen oskarp logik refererar i litteraturen till flera olika saker som har det gemensamt att de är baserade på Zadehs koncept med oskarpa mängder. De största praktiska framgångarna har nåtts inom utvecklingen av olika typer av kontrollsystem. Dubois & Prade menar att dessa system har slagit igenom på flera områden samtidigt som forskningen och utvecklingen på området har avlägsnat sig mer och mer från AI:n. 16 Samtidigt har dock den oskarpa logiken stor betydelse på andra områden som är direkt relaterade till artificiell intelligens - expertsystem är förmodligen det största. Ett annat intressant användningsområde är s.k. neuro-fuzzy systems som är en syntes av oskarp logik och neurala nätverk. Här kommer jag först ta upp oskarpa kontrollsystem och var de används för att sedan gå över till expertsystem och neuro-fuzzy systems. 4.2 Oskarp kontroll Den engelska termen control engineering syftar på en vetenskap vars arbetsområde är kontroll av fysiska system, i princip olika former av maskiner. Termen controller syftar på det som kontrollerar systemet. I allmänhet är controllern ett digitalt system; ibland används termen direkt om den styrande algoritmen. 17 I denna rapport används, möjligen något missvisande men i brist på bättre term, det svenska ordet kontrollsystem. Oskarp logik kom att slå igenom inom designen av kontrollsystem eftersom det förenklade ett svårlöst problem; att beskriva de informella aspekterna av sådan design. Det som kan fångas med formell designmetodik räcker ofta inte till för att kunna styra ett stort system på ett effektivt sätt. Kontrollsystem baserade på oskarp logik löser ofta detta problem på ett bra sätt med hjälp av en regel- och lingvistikbaserad kontrollstrategi. 18 (Min personliga uppfattning är att ett sådant kontrollsystem nog kan ses som ett slags expertsystem, där reglerna för hur maskinen ska styras motsvarar expertkunskap på området. Kontrollsystemen brukar dock placeras i en egen kategori, kanske för att de hör mer till ingenjörskonst än till datavetenskap?) Den grundläggande formen av oskarp kontroll är den s.k. Mamdani-arkitekturen, som utformades redan 1974 av E. H. Mamdani. Den är tämligen simpel; i princip består ett system baserat på Mamdani-arkitekturen av en kontrollalgoritm, en databas med oskarpa IF-THENregler samt input och output. Denna typ av system demonstrerades ovan i exemplet med luftkonditioneringen. 4.3 Kommersiella applikationer av oskarp kontroll Som redan har nämnts är oskarp kontroll det fält där oskarp logik har haft störst framgångar ur rent praktisk-kommersiell synvinkel, både inom industriella applikationer och i produkter riktade direkt till slutanvändaren. Av de senare är förmodligen oskarpa tvättmaskiner de mest kända. Dessa tvättmaskiner styrs av oskarpa regler som styr tvättstrategin. De enklaste tvättmaskinerna använder sig helt enkelt av en optisk sensor som kontrollerar hur rent tvättvattnet är. Genom det 16 Dubois & Prade, The Place of Fuzzy Logic in AI, s. 9. 17 Yen & Langari, Fuzzy Logic, s. 184. 18 ibid., s. 193-195. 8
kan kontrollsystemet räkna ut hur lång tid det tar innan tvätten blir ren, och utifrån det styra tvättstrategin. Andra, mer komplexa system tar även hänsyn till mängden tvätt genom en viktsensor. 19 Dessa typer av tvättmaskiner kan styras av så få som tio regler, vilket tydligt visar hur effektivt oskarp logik kan fungera i vissa typer av system. Andra exempel på oskarpa produkter är automatkameror som ställer in kameralinsen med hjälp av oskarpa regler, eller dammsugare som justerar sin sugeffekt beroende på hur rent golvet är och hur mycket damm som momentant sugs upp. Oskarp kontroll används även mycket inom bilindustrin för sådana saker som ABS-bromsar och farthållare. Gemensamt för samtliga dessa applikationer är att de sparar energi genom att de mer effektivt än konventionella system kan beräkna vilket effektuttag (eller motsvarande) som krävs. Det finns exempel på oskarpa dammsugare som använder upp till 40 procent mindre energi än sina konventionella motsvarigheter. 20 4.4 Oskarpa expertsystem Ett expertsystem är ett datasystem som innehåller ämnesspecifik kunskap om ett ämne, på en nivå motsvarande mänskliga experter. Principen bakom dessa system utvecklades under sextiotalet, det första mer betydelsefulla systemet, DENDRAL, utvecklades 1969. DENDRAL kunde, med kunskap om en molekyls ingående atomer och med indata från en masspektrometer, avgöra molekylens struktur. Ett annat tidigt expertsystem var MYCIN, ett program som ställde medicinska diagnoser och ofta lyckades väldigt bra med det. 21 Principen bakom ett expertsystem är enkel. I grunden består ett sådant system av en kunskapsbas som innehåller expertkunskapen, ofta representerad som IF-THEN-regler, och algoritmer som kan dra slutsatser utifrån reglerna. Man har också ofta med en funktion som kan förklara varför systemet har dragit en viss slutsats. Expertsystem måste, precis som mänskliga experter, kunna använda sig av ofullständig eller osäker information. Det är här oskarp logik kommer in i bilden. Den oskarpa logiken passar bäst i heuristikbaserade system, som använder sig av heuristiker hämtade från mänskliga experter för att klassificera sina indata. Typiska exempel på sådana system är just medicinska expertsystem. Det finns flera olika typer av osäkerheter ett system kan utsättas för. Oskarp logik är väl lämpat för de tillfällen när kunskapen som används inte är skarpt avgränsad. Yen & Langari exemplifierar det med blodtryck. Om ett symptom på en sjukdom är att blodtrycket är högt så måste ett diagnostiserande system baserat på traditionell tvåvärdeslogik sätta en skarp gräns, fastän själva begreppet högt blodtryck inte nödvändigtvis har en sådan (den övre gränsen för normalt systoliskt blodtryck hos vuxna brukar sättas till 135; ska då en patient med ett blodtryck på 136 utan tvekan klassificeras med symptomet högt blodtryck?). 22 Ett exempel på ett oskarpt expertsystem på sjukvårdsområdet är OMRON, som används av ett stort företag för att följa upp hälsostatusen hos de anställda. OMRON är baserat på 500 oskarpa regler som representerar expertkunskap inom både friskvård och sjukvård. OMRON visar på flera av fördelarna med att använda oskarp logik. Till att börja med underlättas den praktiska användningen av att reglerna är baserade på lingvistiska variabler. Patienternas ofta 19 Bart Kosko & Satoru Isaka, Fuzzy Logic. 20 ibid. 21 Russell & Norvig, Artificial Intelligence, s. 22-23. 22 Yen & Langari, Fuzzy Logic, s. 282. 9
vaga symptombeskrivning passar så att säga in i systemet lättare än om läkaren först hade varit tvungen att konvertera det till exempelvis numeriska värden. Dessutom är systemet mindre minneskrävande än ett konventionellt expertsystem eftersom oskarpa mängder innebär en slags abstraktion av numerisk data. 23 4.5 Neuro-fuzzy systems Ett neuralt nätverk är en ihopkopplad grupp av enkla element, kallade noder, som är designade efter funktionen hos biologiska neuroner. Varje nod genomför en enkel operation på sina indata för att beräkna vilket värde den ska skicka vidare. Hela systemet består av en stor mängd sådana noder, organiserade i lager, som arbetar parallellt för att komma fram till ett slutvärde. Konceptet är inspirerat av biologiska nervsystem. En stor fördel med neurala nätverk är att de, genom att kalibrera om sig själva, har förmågan att träna upp sin kapacitet att lösa en viss uppgift. Detta kan göras på lite olika sätt; någon vidare fördjupning av exakt hur det fungerar tänker jag inte ägna mig åt här. Ett neuro-fuzzy system (jag förmodar att jag i konsekvensen namn får använda den något klumpiga benämningen neuro-oskarpt system i fortsättningen) är, precis som namnet antyder, en syntes av neurala nätverk och oskarp logik. Närmare bestämt är det en uppsättning oskarpa regler som optimeras för sin uppgift genom inlärningsförmågan hos ett neuralt nätverk. 24 Mer generellt kan man kalla det för ett konnektionistiskt system för att dra slutsatser utifrån oskarpa IF- THEN-regler. Det neurala nätverkets förmåga till inlärning innebär att systemet självt kan förbättra sig, och man slipper ifrån en del av det ofta väldigt tidskrävande arbetet med att justera de oskarpa reglerna så att de fungerar optimalt. 25 Den kanske främsta skillnaden mot ett vanligt neuralt nätverk är att noderna i ett neuro-oskarpt system direkt är kopplade till en specifik funktion. I ett vanligt neuralt nätverk är det svårt att tolka exakt vad varje nod och koppling representerar vilket inte är fallet här. Dessutom är inte noderna i ett neuro-oskarpt system ihopkopplade i lika stor utsträckning som i ett reguljärt neuralt nätverk. Kopplingarna reflekterar istället regelstrukturen i systemet. Varje lager av noder i ett neuro-oskarpt system motsvarar ett steg i den metod för att dra slutsatser från oskarpa IF-THEN-regler som beskrevs ovan. En standardmodell kallad ANFIPS använder fem lager, där det första lagret genomför fuzzy matching för enskilda variabler, det andra lagret genomför fuzzy matching för en eventuell konjunktion av variabler, det tredje lagret räknar ut en normaliserad medlemskapsgrad för en sådan konjunktion, det fjärde drar slutsatser från de enskilda reglerna och det sista tittar på samtliga regler för att välja systemets slutliga output. Ett alternativt och intressant exempel på en kombination av neurala nät och oskarp logik är det språkigenkänningsystem som presenteras av Nikola Kasabov. 26 Detta system består en del som är baserad på neurala nätverk och en del som är baserat på oskarpa regler för villkorshandlingar. Det är med andra ord inte frågan om en direkt syntes, utan snarare om att de två modellerna används tillsammans för att lösa olika deluppgifter på det större området språkigenkänning. 23 ibid., s. 284. 24 Yen & Langari, Fuzzy Logic, s. 444. 25 Emdad Khan och Fatih Unal, Recurrent Fuzzy Logic Using Neural Network, i Takeshi Furuhashi (red.), Advances in Fuzzy Logic, Neural Networks and Genetic Algorithms (Heidelberg 1995), s. 48. 26 Nikola K Kasabov, Hybrid Connectionist Fuzzy System for Speech Recognition and The Use of Connectionist Production Systems, i Furuhasi (red.)., Advances in Fuzzy Logic, s. 19. 10
Själva identifieringen av fonem sköts av det neurala nätverket, som producerar indata till de oskarpa reglerna, som dels beslutar om vilket fonem det troligen rör sig om, och som på ytterligare en högre nivå har lingvistisk kunskap inkodad. Ett exempel på regel kan vara: IF /n/ (t-1) IS Large AND /n/ (t) IS Large THEN the likelihood for phoneme /n/ IS Large /n/ är fonemet i fråga och t och t-1 är tidsindikatorer. Om det neurala nätet bedömer att det troligen (d.v.s. Large i satsen) rör sig som fonemet /n/ vid två på varandra följande tidpunkter så kommer den oskarpa regeln hålla för troligt att det faktiskt rör sig om just /n/. Dessa regler kan sedan kombineras med andra högnivåregler som t.ex. tar hänsyn till om de senaste fonemen utgör en meningsfull fonemsekvens på det aktuella språket. 27 Detta system är förstås inget som ännu har realiserats och jag kan tänka mig att det finns många nackdelar med det, inte minst att man nog behöver väldigt många regler för att det ska fungera ens i liten utsträckning. Icke desto mindre är det intressant inte bara som ett neuro-oskarpt system utan även som exempel på ett område som nog lämpar sig väl för oskarp logik. Naturligt språk utmärks i väldigt hög grad av tvetydighet och det kan säkert underlätta med oskarp logik och lingvistiska variabler för att representera detta. 5 Diskussion Redan Aristoteles definierade lagen om det uteslutna tredje, enligt vilken en sats antingen är sann eller falsk, inget annat. P eller inte P gäller, inget annat. Oskarp logik kontrasterar mot denna mångtusenåriga logiska tradition genom att tillåta fler sanningsvärden än 1 och 0; genom att tillåta medlemskap i fler än en mängd samtidigt. Här kan både P och inte P vara delvis sanna samtidigt. Man kan lätt se oskarp logik som en utvidgning av den klassiska logiken. När fler sanningsvärden tillåts blir bilden mer nyanserad. Detta ökar utan tvekan precisionen vid representation av saker som har en viss grad av vaghet inbyggda i sig, bl.a. många mänskliga koncept. Och den oskarpa logiken har ju vid det här laget visat att den inte bara är teoretiskt intressant utan även har praktiskt värde på många områden. Trots detta överdrev jag möjligen när jag skrev att oskarp logik i dag är etablerad. Det är den förvisso till viss del, men samtidigt kan man notera att den i Russell & Norvig avhandlas på några få stycken text. Och detta är en bok på över tusen sidor, som är den dominerande textboken för grundutbildning inom artificiell intelligens, och som innehåller flera kapitel om sannolikhetslära. I och för sig kan det helt enkelt bero på en viss konservatism - artificiell intelligens är ju byggt runt klassisk tvåvärdeslogik och det tar självklart tid för nya idéer att slå igenom. En annan möjlighet är att man anser att sannolikhetsläran är tillräcklig för all hantering av osäker kunskap. Jag kan tänka mig att detta är en ganska vanlig åsikt, men den beror i så fall på ett missförstånd om vad oskarp logik handlar om. Oskarp logik och sannolikheter handlar om två skilda saker och någon verklig konkurrens mellan de två finns knappast, även om båda handlar om att representera osäker kunskap. Det kan också ha att göra med kvarlevor från den första kritiken mot Zadehs oskarpa mängder - att det anses bryta mot en strävan efter precision, vilket i så fall också är ett missförstånd. 27 ibid., s. 23-24. 11
Personligen anser jag, efter att ha studerat ämnet, att oskarp logik har en naturlig plats inom AI:n. Den har fördelarna att den i många fall motsvarar mänsklig koncepthantering bättre än tvåvärdeslogik, och användningen av lingvistiska variabler gör den lättare att förstå. Vilken dess plats är kan jag däremot inte ge något definitivt svar på. Vill man simulera hur människor delar upp världen i koncept och kategorier ligger det förstås nära till hands att använda oskarp logik - men den är knappast alltid den bästa metoden för kunskapsrepresentation. Det handlar väl, som alltid, om att välja den metod som passar bäst för den uppgift som ska lösas. Mänskligt tänkande är självklart inte alltid det optimala. Men jag tror ändå att oskarp logik har framtiden för sig. Dess praktiska fördelar har bevisats i så pass hög grad att den med tiden nog kommer bli en allt större del av AI:n. Den kommer knappast slå ut tvåvärdeslogik och sannolikhetslära - men förhoppningsvis kommer den att i allt större utsträckning komplettera dem. 12
Referenser Tryckta källor Furuhashi, Takeshi (red.), Advances in Fuzzy Logic, Neural Networks and Genetic Algorithms (Heidelberg 1995) Gardner, Howard, The Mind s New Science (New York 1985) Ralescu, Anca L. & Shanahan, James G. (red.), Fuzzy Logic in Artificial Intelligence (Heidelberg 1999) Russell, Stuart & Norvig, Peter, Artificial Intelligence: A Modern Approach (Upper Saddle River 2003) Yen, John & Langari, Reza, Fuzzy Logic: Intelligence, Control and Information (Upper Saddle River 1999) Otryckta källor Kosko, Bart & Isaka, Satoru, Fuzzy Logic http://www.fortunecity.com/emachines/e11/86/fuzzylog.html, 13/10-06, 21:31 Nemback, Joakim, Fuzziness (Linköping 2004) http://www.ida.liu.se/~hkgbb0/studentpapper-04/joane302.pdf, 2/10-06, 20:41 Palmgren, Erik, Suddig logik och gitter (Uppsala 2000) http://www.math.uu.se/~palmgren/algebra/fuzzy.pdf, 15/10-06, 21:47 13