Fuzzy Logic, 2016-01-09
Innehållsförteckning Introduktion... 3 Vad är Fuzzy Logic?... 3 Fuzzy eller crisp?... 4 Fuzzy set... 5 Medlemskapsfunktioner... 6 Operationer... 8 Fuzzy expert systems och Fuzzy controller... 9 Diskussion... 11 Referenser... 13
Introduktion I den klassiska logiken, som exempelvis predikatlogiken som representerar fakta om världen med hjälp av predikan, så kan fakta vara antingen sann eller falsk. Just att denna typ av logik, som även kallad tvåvärdeslogik enbart kan få ett av dessa två utfall kallas för bivalent logik. Det finns alltså ingenting mellan sant eller falskt. Då den klassiska logiken även har en nära relation med klassiska set-teorin (classical sets theory) innebär det att varje predikat är kopplat till olika set. Dessa set fungerar på så vis som en förlängning av predikatet. Om och endast om ett objekt är medlem i ett specifikt set så kan ett påstående givet av ett predikat vara sant för just det objektet. Det var denna relation mellan predikat och set som försvann när flervärd logiken började växa fram, vilket skapade problem för flervärd logiken. Flervärd logik är en logik som inte är bivalent och kan på så vis ta fler värden än sant och falskt vilket inte den klassiska logiken kan, som nämnts innan. Ett exempel på en flervärd logik är fuzzy logic (Belohlavek & Klir, 2011). Vad är Fuzzy Logic? Fuzzy logic växte fram via en man vid namn Lofti A. Zadeh då han, år 1965, hade tagit fram något han kallade för fuzzy set teorin som skulle lösa problemet med flervärd logiken. Fuzzy logic är en metod för att beskriva medlemskapet i fuzzy sets genom att resonera via logiska begrepp. Det upptäcktes att vi människor oftare förmedlar information om världen med påståenden som inte är bivalenta och att vi oftast utför fysiska och mentala uppgifter utan några som helst uträkningar eller mätningar. Det handlar om hur vi uppfattar vår omgivning och hur den faktiska världen ser ut. Allt är inte svart och vitt, det finns även gråskalor så som exempel mellan lång och kort, tidigt och sent. Vart går gränsen mellan dessa ord? Det finns alltså ett stort behov av att kunna hantera dessa då de påståenden vi gör oftast har en grad av sanning och sällan är strikt sanna eller falska. På så vis är en ontologi som tillåter vaghet något som forskare inom fuzzy logic föreslagit. Som exempelvis meningen Göteborg är en stor stad som möjligtvis enbart stämmer till graden 0,4 i fuzzy logic men är helt sann i vår värld. Fakta i fuzzy logic kan alltså ha en grad av sanning som är mellan 0 och 1, där 0 är falskt och 1 är sant (Belohlavek & Klir, 2011) (Zadeh L. A., 2001) (Russell & Norvig, 2010). Fuzzy logic var ett sätt att kunna beräkna hur vi människor resonerar för att sedan kunna applicera detta i olika datorsystem. Med fuzzy logic kan dessa system agera och resonera likt en människa. Från och med 1965 då Zadeh introducerade begreppet fuzzy set växte fuzzy tekniken mer och mer inom laboratorier. Inte förrän efter 1991 började denna typ av teknik
användas som ett industriellt verktyg. Mer om fuzzy logic teknik kommer att diskuteras senare i detta arbete (Reznik, 1997). Fuzzy eller crisp? Zadeh menar på att det vi uppfattar, alltså det perceptuella, är fuzzy medan så som exempelvis mätningar är crisp(det finns en tydlig gräns mellan sant och falskt). Figuren nedan visar den tydliga skillnaden mellan crisp(den blå linjen) och fuzzy(den orangea linjen). Som nämnts tidigare kan vi utföra många uppgifter utan mätningar eller uträkningar, vilket är något som verkat fascinera Zadeh väldigt mycket. Exempel på sådana uppgifter är bland annat att parkera en bil, spela golf eller någon annan bollsport, och så vidare. Vi använder enbart vår perception för att veta vad vi ska göra och agerar utefter det. Vid golf behöver spelaren exempelvis uppskatta avståndet till hålet, försöka rikta klubban åt rätt håll och även slå på bollen med en viss kraft för att få den ner i hålet. Detta görs alltså utan att personen ifråga vet några exakta mått. I figuren nedan visas det alltså vad skillnaden är mellan vad vi eventuellt uppfattar och vad vi vet när vi får de exakta måtten. Vi kan alltså utifrån vad vi uppfattar av exempelvis Dana se att hon är ung utan att veta hennes exakta ålder. Detta är tillskillnad från när det är mätningsbaserat då vi får reda på hennes exakta ålder och då kan uttala oss om att hon har en viss ålder, i detta fall 25. Vad som menas med lingvistik(linguistic) är att det är själva orden som blir uppskattade, vilket används inom fuzzy logic (Zadeh L. A., 2001) (Belohlavek & Klir, 2011).
Figuren ovan är tagen från Zadehs artikel A New Direction in AI (2001). Ett annat exempel som kan ges på skillnaden mellan crisp och fuzzy är att i fuzzy sets är hur dessa två teorierna ser på ordet lång. Ett fuzzy set ser på personer som att de kan vara en viss grad lång som exempelvis om personen är 185 cm betyder det eventuellt att den är lång med graden 0,6 i en fuzzy värld. I ett crispy set kanske gränsen för att en person ska vara lång är 185cm vilket betyder att det skulle vara sant att personen i föregående exempel skulle vara lång. Dock alla personer som är kortare än detta skulle inte anses vara långa, alltså falskt. Fuzzy set I Zadehs grundartikel om fuzzy sets liknar han det vid klasser som objekt kan tillhöra i olika grader. Klasser av objekt kan antingen ha tydliga kriterier för medlemskap eller inte. I den verkliga världen är det oftare det senast nämnda då de otydliga klasserna är en så stor del av det mänskliga tänkandet. Att vi väldigt lätt kan nämna objekt i klassen med djur är för att vi har en tydlig gräns mellan vad som är djur och inte. Dock om vi har en klass med vackra människor blir bedömningen inte lika lätt då det helt beror på från person till person, samt även kultur till kultur och så vidare, vad som uppfattas som vackert (Zadeh L. A., 1965). Människor har även en tendens att klumpa ihop objekt, även kallat att skapa en granul av objekt. Detta görs genom att vi sätter ihop objekt som är liknande varandra via exempelvis utseende, funktion och närhet. På så vis är vår perception f-granular som är en förkortning av fuzzy och granular. Det finns även något som kallas för c-granular, alltså crisp granular, men detta fungerar sällan för människan då vi som sagt för mestadels har en perception som är fuzzy. Dock har fortfarande c-granular en viktig roll inom andra olika tillvägagångsätt, metoder och tekniker (Zadeh L. A., 2001).
Medlemskapsfunktioner 1 För att kunna räkna ut medlemskapet för ett objekt i ett visst set med hjälp av fuzzy sets finns det en hel del funktioner varav vissa som jag tänker redogöra här nedan. Först och främst behövs en rymd med objekt som vi kallar för X där ett generellt objekt i X kan betecknas x, vilket då ger: X = {x}. Medlemskapsfunktionen kommer i detta arbete skrivas ut på detta sätt: fa(x), men kan ofta även benämnas med μ istället för f, där A är ett fuzzy set 2 som finns i rymden X och är på så vis en delmängd av X. Det värdet som då medlemskapsfunktionen får vid objektet x representerar dess grad av medlemskap i setet A. Detta värde som medlemsfunktionen får är ett reellt tal mellan 0 och 1, vilket innebär att ju närmare 0 detta tal är desto mindre grad tillhör x A och tvärtom om talet är närmare 1. Ett exempel på detta skulle kunna vara att undersöka till vilken grad x är lång där A då är ett fuzzy set med längder/tal som är större än 175. På så vis måste rymden X vara en numerisk linje med olika längder som vi kan kalla för L. Sedan måste även fa(x) göras om som en funktion av L för att kunna karaktärisera A, alltså specifika längder som gäller för A som i detta fall står för ordet lång. Värden för denna funktion skulle då kunna vara: fa(165) = 0, fa(176) = 0,2, fa(179) = 0,5, fa(185) = 0,7, fa(190) = 1 Funktionen för medlemskap för ett fuzzy set ser i sin tur ut på detta sätt: fa: X [0, 1], X skrivs även ofta som U som då det står för universum, där denna funktion innebär att varje x i X blir tilldelat ett värde mellan 0 och 1. Hade medlemskapsfunktionen varit för ett crisp set hade funktionen sett ut på detta sätt: fa: X {0, 1} då medlemskapsfunktionen enbart kan få ett värde på 0 om objektet x inte är medlem i A, eller ett värde på 1 om objektet x är medlem i A. Det finns många olika typer medlemskapsfunktioner, bland annat triangel- och trapetsmedlemskapsfunktionerna som är väldigt vanliga. Triangelmedlemskapsfunktion är en 1 OM inget annat nämns så är allt text under denna rubrik refererat till Lofti A. Zadehs artikel Fuzzy Sets. 2 Om inget annat nämns kommer jag att enbart prata om fuzzy sets.
funktion där man antar att punkten b, av a, b och c, är centrerad och är placerad i mitten av denna grupp. Dock behöver diagrammet inte alls vara symmetrisk som figuren nedan visar. Funktionerna som visas nedan presenterar hur detta diagram skapas 3. Det funktionerna då visar är vad för värde medlemskapsfunktionen får beroende på vad x är. Som exempelvis om x är större än eller lika med c, eller mindre än eller lika med a, så får den värdet noll vilket innebär att x inte är medlem i setet.(typ 1996) Funktionen kan även minskas ner till detta: Tillskillnad från en triangelmedlemskapsfunktion har en trapetsmedlemskapsfunktion fyra punkter istället för tre som visas i figuren nedan. Funktionerna, som också kan utforskas nedan 4, har ett väldigt liknande utseende som triangelmedlemsfunktionen förutom att denna har ett större intervall där värdet på graden av medlemskapen för x är 1. Istället för att a och c är de yttre punkterna för ett fuzzy set, som i föregående funktioner, är det i detta fall a och d som är de yttre punkterna (1996). 3 Funktionerna är hämtade från http://se.mathworks.com/help/fuzzy/trimf.html?s_tid=gn_loc_drop. 4 Funktionerna är hämtade från http://se.mathworks.com/help/fuzzy/trapmf.html.
Likt triangelmedlemsfunktionen kan även denna funktion minskas ner till: Operationer 5 Operationer som sedan kan göras med medlemskapsfunktionerna är bland annat union, snitt och även komplement. Först och främst kan vi nämna komplement vars operation ser ut på detta sätt: fa = 1 fa, men kan även ibland skrivas: T( A) = 1 T(A) (T står för truth value, eller sanningsvärde), där denna funktion innebär att du får ut det värdet som är kvar för att medlemskapsvärdet för fa ska uppnå enhetlighet, alltså siffran 1. Exempelvis om medlemskapsvärdet skulle vara 0,6 blir komplementet 0,4. Därefter har vi operationen union som tar två sets som tillsammans är ett tredje set som skulle kunna skrivas C = A U B. A respektive B har medlemskapsfunktionerna fa(x) respektive fb(x) och C får medlemskapsfunktionen fc(x). Denna operation skrivs sedan ut såhär: f C (x) = Max[f A (x), f B (x)] där x X vilket innebär att medlemskapsfunktionen fc(x), alltså A union/tillsammans med B, är det maximala värdet för fa(x) och fb(x). Denna operation kan även förkortas ner till fc = fa fb som på så vis kan visa att operationen även ibland kan se ut såhär: T(A B) = Max(T(A), T(B)). Sista operationen som ska nämnas är då snittet som betecknas med som likt union skapar ett tredje set utifrån två set. I detta fall kommer samma bokstäver och medlemskapsfunktioner att användas men operationerna kommer att se annorlunda ut, bland annat C = A B men även: f C (x) = Min[f A (x), f B (x)] där x X 5 Om inget annat nämns är all text under denna rubrik refererat till Lofti A. Zadehs artikel Fuzzy Sets samt Stuart Russells och Peter Norvigs bok Artificiell Intelligence.
som innebär att medlemsfunktionen fc(x), alltså snittet mellan A och B, är det minsta värdet för fa(x) och fb(x). Även denna operation kan förkortas, fc = fa fb, och dessa kan även ibland se ut såhär: T(A B) = Min(T(A), T(B)). Både operationen union och snitt visas i figuren nedan, där 1 och 2 är union och 3 och 4 är snittet. Fuzzy expert systems och Fuzzy controller Fuzzy logic används på så vis för att kunna resonera kring objekts medlemskap i fuzzy sets. Det är en teknik som, används allt mer i dagens samhälle då denna teknik kan sättas in i olika beslutsfattande system som behöver kunna hantera osäkerheter och vagheter likt oss människor. Tidigare har även andra metoder funnits så som exempelvis probabilistisk logik och så vidare, men dessa har inte varit lika enkla och tillräckligt lika människans sätt att resonera som fuzzy logic varit och är. Några exempel på områden som använder sig av fuzzy logic är bland annat inom diagnostisering (så som väder), ekonomi, tillverkning och så vidare. Dessa system som använder sig av detta kallas fuzzy expert system och fuzzy kontroller(controllers). Fuzzy expert system kan i de flesta fall ses som ett regelbaserat system där de fuzzy reglerna infinner sig i kunskapsbasen och kan utifrån användarens indata och fuzzy-resonemangprocessen härleda fram en slutsats (Hong & Lee, 1996).
I figuren ovan, som är avbildad från en bild i Tzung-Pei Hong och Chai-Ying Lees artikel (1996), så ser vi hur ett fuzzy expert systems arkitektur ser ut. Till att börja med så hämtar kunskaps-hämntings-anläggningen sin kunskap via experter eller med hjälp av maskininlärning. Med det menas alltså att systemet antingen får all information från en expert som får förmedla all den kunskap som personer i fråga innehar om dess expertområde till systemet. Eller så använder sig systemet av en typ av maskininlärning där den med hjälp av träningsdata kan skapa regler och medlemskapsfunktioner. Medlemskapsfunktionsbasen och fuzzy regel basen är då kunskapsbaser som då skapas utav kunskaps-hämtnings-anläggningen som då består av medlemsfunktioner för olika lingvistiska termer och fuzzy regler. Dessa använder sig i sin tur Fuzzy interferens motorn av för att kunna resonera fram en slutsats utifrån användarens indata som användaren skickar in via användargränssnittet. Det resultat som fuzzy interferens motorn i slutändan kommer fram till, som antingen är crisp eller fuzzy, skickas genom användargränssnittet till användaren. Slutligen har vi de sista delarna i systemet som är arbetsminnet och förklaringsmekanismen. Förklaringsmekanismen används för att förklara processen hur systemet kom fram till slutresultatet för användaren. Arbetsminnet används för att spara användarens indata och systemets tillfälliga resultat (Hong & Lee, 1996). Fuzzy kontroller(controllers) kan likt fuzzy expert system i de flesta fall ses som ett regelbaserat system men där en fuzzy controller är ett kunskapsbaserat kontrollschema. För att kunna hantera kontrollmiljön eller osäkerheter i processens dynamik så använder fuzzy kontroller skalningsfunktioner av fysiska variabler. Likt fuzzy expert systems behöver medlemskapsfunktioner och fuzzy regler definieras innan systemet kan fungera (Hong & Lee,
1996). Exempel på Fuzzy kontroll-applikationer är bland annat riskokare, TV-apparater, hissar, tåg, medicinsk diagnostisering och så vidare. Denna typ av kontrollsystem används även i autonoma bilar eller bilar med automatväxel. I bilar som har automatväxel så används ibland fuzzy logic för att den elektroniska kontrollenheten för växeln ska kunna räkna ut när det ska växlas upp eller ner. För att bilen ska växla vid rätt tillfällen så måste det tas hänsyn till vissa faktorer så som exempelvis bilens hastighet, bromsning, om bilen kör i en upp- eller nerförsbacke och så vidare (Reznik, 1997). Ett exempel på en automatisk bil nämns i artikeln Using Fuzzy Logic in Automated Vehicle Control (2007). De valde att använda fuzzy logic för att det bland annat är ett sätt att få systemet att agera så likt en människa som möjligt. Dessutom har denna metod i många tidigare testet visat på goda resultat i liknande system. För att skapa denna automatiserade bil har de delat upp kontrollsystemet i bilen på två, ett för styrning och ett för hastighet. För att kontrollera hur bilen styrs har de använt olika funktioner, eller regler som de även kan kallas, som ska göra att styrningen efterliknar det människliga beteendet och resonerandet. Dessa funktioner måste då hålla koll på bland annat bilens position och hur vägen ser ut för att kunna anpassa styrningen och undvika olyckor. På samma sätt har hastighetskontroller ett antal funktioner som även de har efterliknats det mänskliga beteendet och resonerandet. Ett exempel som de tog upp gällande mänskligt resonerande är hur vi håller högre hastigheter när vägen är rak eller om vägen enbart har mjuka kurvor. Dock om vi stöter på kurvor som är skarpare har vi en tendens att sakta ner på grund av olycksrisken som uppstår om vi kör för fort i en kurva som är skarp. De lyckades till och med få bilarna, då de gjorde två stycken, att kunna köra om varandra om hastigheter inte hölls, eller sakta ner ifall en omkörning inte var möjlig (Naranjo, González, García, de Pedro, & Sotelo, 2007). Diskussion Fuzzy logic är alltså ett sätt att kunna beräkna hur vi människor resonerar och fattar beslut. Av det jag fått läsa mig till och förstått av fuzzy logic är det en väldigt välbehövlig teori och metod som hjälper oss att utveckla vår teknik och våra system på ett sätt vi kanske inte riktigt kunde innan. Det har nog även fått oss att få en större inblick på hur människan fungerar och vad vi gör för att utföra olika typer av uppgifter eller mentala beräkningar. För oss är dessa typer av uppgifter en så stor del av vår vardag att vi inte, eller i alla fall inte jag, tänkt på att reflektera över vad som påverkar våra handlingar och hur vi tänker. Vart går gränsen för att en
person är lång? Hur vet jag hur hårt och i vilken riktning jag ska sparka på bollen så att den hamnar i mål? Det är alltså detta som fuzzy logic har försökt att efterlikna. Fuzzy logic används för att kunna representera objekts gard av medlemskap till en klass, eller ett fuzzy set. Metoden kan göra bedömningar utan att de enbart är sanna eller falska. Detta bidrar till att ord som ganska, väldigt och så vidare får en större betydelse och vara med i beräkningarna vilket jag anser är nödvändigt då det är en så stor del av hur vi människor bedömer saker och ting. Även fast vi ibland inte behöver göra andra bedömningar som är annat än sanna eller falska så är det ofta vi gör bedömningar utifrån grader av medlemskap som nämnts tidigare. Med tanke på hur mycket denna metod har växt med tiden och att det finns inom så många områden av dagens teknik ser jag inte hur intressent kring det skulle minska. Användningsområdet är så pass stort och eftersom just människa-maskin interaktionen finns på så många håll i vår vardag så bör intresset för detta enbart öka. Speciellt då det verkar finnas en stor användbarhet för fuzzy logic inom exempelvis autonoma farkoster, bland annat bilar, som är något som diskuterats rätt mycket de senaste åren. Dock om detta är den bästa metoden vet jag inte, men enligt artikeln om de automatiska bilarna så fungerade det väldigt bra och har tydligen gjort det i tidigare liknande system också.
Referenser Belohlavek, R., & Klir, G. J. (2011). Concepts and Fuzzy Logic. Massachusetts: MIT Press. Hong, T.-P., & Lee, C.-Y. (1996). Induction of Fuzzy Rules and Membership Functions. Fuzzy Sets and Systems, 33-47. Naranjo, J. E., González, C., García, R., de Pedro, T., & Sotelo, M. A. (2007). Using Fuzzy Logic in Automated Vehicle Control. IEEE Computer Society, 36-45. Reznik, L. (1997). Fuzzy Controllers Handbook. Oxford: Newnes. Russell, S., & Norvig, P. (2010). Artificial Intelligence: A Modern Approach. New Jersey: Pearson. Zadeh, L. A. (1965). Fuzzy sets. Information and control, 338-353. Zadeh, L. A. (2001). A New Direction In AI: Toward a Computational Theory of Perceptions. AI Magazine, 73-81.