Bygga intelligenta system med luddig logik - IDA.LiU.se

Bygga intelligenta system med luddig logik
Josefin Carlbring (josca824)
Linköpings universitet
729G43 – Artificiell Intelligens
2016-01-24
Sammanfattning
Denna rapport täcker in hur man bygger intelligenta system med hjälp av luddig logik (eng.
fuzzy logic) och varför det är bra. Det främsta syftet är att ge läsaren en fördjupad förståelse
för vad luddig logik innebär och hur man bygger intelligenta system med hjälp av logiken.
Som exempel tas det upp hur man använder luddig logik i artificiella intelligenssystem, i detta
fall trafikljus. Genom litteraturstudie fastställs en förklaring av detta från olika håll, men det
tillkommer ingenting nytt. Det som framgår i rapporten är att luddig logik är ett sanningsvärde
mellan 1 och 0, inte bara sant eller falskt. Till skillnad från sant eller falsk, finns det
kontinuerliga värden där emellan, som används till exempelvis när man talar om längd och
mängd.
Innehållsförteckning
1. Inledning ................................................................................................................................. 1
2. Grunderna i luddig logik ......................................................................................................... 2
2.1 Luddig uppsättning ........................................................................................................... 2
2.2 Vad är luddig logik? .......................................................................................................... 3
2.3 Varför luddig logik? ........................................................................................................... 4
2.4 Luddig kontroll .................................................................................................................. 4
2.5 Analytiska problem ........................................................................................................... 6
2.6 Luddig logik och artificiell intelligens................................................................................ 6
3. Luddig logik i trafikljussystem ................................................................................................ 7
4. Diskussion ............................................................................................................................. 12
Referenser ................................................................................................................................ 13
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
1. Inledning
Rapporten beskriver vad luddig logik (eng. fuzzy logic) innebär. Dessutom beskrivs det hur
man bygger intelligenta system med just en luddig logik, i detta fall intelligenta
trafikljussystem. Syftet är att ge en beskrivande text om luddig logik för att man som läsare
ska förstå vad det är. Med hjälp av böcker om luddig logik och en artikel om trafikljus har
denna förklarande text kommit till. Ingen undersökning, metod eller resultat finns därför inte
med. Det finns mycket att skriva om luddig logik, därför är arbetet avgränsat till det mest
väsentliga med en inblick i hur det fungerar i praktiken.
1
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
2. Grunderna i luddig logik
2.1 Luddig uppsättning
Russel och Norvig (2010, s.550) beskriver teorin ”luddig uppsättning” (”Fuzzy set”) som hur
väl ett objekt satisfieras av en vag, otydlig beskrivning. Det Russel och Norvig menar är att
om någon kallas för lång, var går gränsen för att vara lång då? 200 cm? 170 cm? De menar att
många tvekar i otydliga fall, och istället för att svara sant eller falskt, svarar de ”typ”, eller
”ungefär”. De noterar att det inte handlar om att vi människor är osäkra på den externa
världen, vi ser hur lång en människa är, men har svårt att svara på frågan eftersom världen är
relativ i sin kontext. Att vara ”lång” är en otydlig definition, det står ingenstans att ”lång >
190 cm”, utan det är snarare en tolkningsfråga. Det finns olika grader av ”lång” dessutom. Det
leder oss vidare till luddig logik. Den huvudsakliga poängen är att ett predikat har ett
sanningsvärde mellan 0 och 1, istället för bara sant eller falskt. Det finns inga hårda gränser –
alltså, luddig logik.
Passino och Yurkovich (1998, s.55) beskriver att luddig uppsättning samt luddig logik
används för att heuristiskt kvantifiera meningen av lingvistiska variabler, lingvistiska värden
och lingvistiska regler som är specificerade av en expert. Luddig uppsättning introducerar en
medlemsfunktion hos sitt koncept. En sådan medlemsfunktion, kort sagt går den ut på att en
variabel betecknar ett universum av diskurser, en annan variabel betecknar ett specifikt
lingvistiskt värde för en lingvistisk variabel, och dessa mappar med varandra och möter [0,1],
vilket då kallas medlemsfunktion. Denna är subjektivt specificerad på ett heuristiskt vis från
erfarenhet (se figur 2.1.1).
Figur 2.1.1, tagen från Passino & Yurkovich (1998, s.57).
När värdet är 0, är det inte alls med i uppsättningen, när det är 1 är den fullständigt med,
och allt mellan detta så är den delvis med i uppsättningen, menar Yen och Langari (1999
s.24). Man talar om antal grader medlemskap.
2
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
2.2 Vad är luddig logik?
Russel och Norvig (2010, s.550) beskriver luddig logik som en metod för resonemang med
logiska uttryck, som beskriver förhållandet i luddig uppsättning. Det är alltså ett
sanningsfunktionellt system, menar dem.
Ett exempel liknande deras är en komplex mening, Lång(Kalle) ∧ Tung(Kalle). Denna
funktion har ett luddigt sanningsvärde, av sanningsvärdena från komponenterna.
Standardreglerna för att räkna ut den luddiga sanningen, T (Truth), av en komplex mening är:
T(A∧ B) = min(T(A),T(B))
T(A∨ B) = max(T(A),T(B))
T(¬A) = 1-T(A)
Logiken kan skapa komplikationer, menar Russel och Norvig. Om man antar att
T(Lång(Kalle)) = 0.6 och T((Tung(Kalle)) = 0.4, får vi att T(Lång(Kalle)) ∧ Tung(Kalle)) =
0.4, vilket verkar logiskt. Men det ger också att T(Lång(Kalle) ∧ Lång(Kalle)) = 0.4, vilket
inte verkar helt logiskt. Problemet ligger i en oförmåga hos sanningsfunktionen. Den kan inte
ta hänsyn till korrelationer eller antikorrelationer omkring komponentens delar.
Med en sökning efter ”Fuzzy Logic” på Wikipedia (u.å.) finner man modellen nedan (Figur
2.2.1). Den visat ett exempel på att temperaturen inte bara är varm eller kall, utan har många
grader av ljummen mellan dessa. Att det är en kontinuerlig variabel. Vid det markerade
strecket finns tre variabler samtidigt, kallt, ljummet och varmt, och alla är sanna samtidigt.
Den röda pilen pekar mot 0, så det är inte varmt, men det kan vara lite varmt (gul), eller lite
kallt (blå). Det finns ingen sannolikhet att det är kallt om det med säkerhet är varmt och tvärt
om.
Figur 2.2.1, tagen från Wikipedia (u.å.)
3
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
Yen och Langari (1999, s.3-4) beskriver att luddig logik inte blivit accepterad som en
framväxt teknik förrän sena 1980-talet. De två årtionden tidigare ansågs den kontroversiell.
De beskriver att termen luddig logik använts i två olika meningar tidigare. Ena, som ett
logiskt system som generaliserar klassiska tvåvärdiga logiken för resonering och osäkerhet.
Andra, som representerar alla teorier och teknologier som använder luddig uppsättning, vilket
består av klasser av oskarpa gränser. Skillnaden är alltså att den ena har hårda gränser, sant
eller falskt, och den andra har oskarpa gränser, flera värden. Det är dock viktigt att poängtera
att luddig logik även inkluderar klassiska hårda gränsen, värdena 1 och 0 finns fortfarande
kvar, fast med mycket fler alternativ.
2.3 Varför luddig logik?
Yen och Langari (1999, s.12) menar att luddig logik kan användas för att kontrollera en
process som är för ickelinjär eller för dåligt förstådd för att använda formell kontrolldesign.
Logiken tillåter dessutom kontrolltekniker att enkelt implementera strategier som används av
mänskliga operatorer. Så man använder luddig logik när system är komplexa och för att enkelt
kunna beskriva mänsklig kunskap. Dessutom breddar det möjligheterna för metoder och
verktyg.
Luddig kontroll används enligt Passino och Yurkovich (1998, s.10) för att det vanligtvis är
svårt att modellera komplexa ”verkliga livet”-system för kontrollsystemsutveckling. Luddig
kontroll klarar dock av detta, i och med att den förser en formell metodologi för
representation, manipulation och implementation av en mänsklig heuristikkunskap kring hur
man kontrollerar ett system.
2.4 Luddig kontroll
Luddig kontroll är enligt Russel och Norvig (2010, s.551) en metod för att konstruera
kontrollsystem, där mappning mellan verklig (real-valued) input och utdatas parametrar är
representerade av luddiga regler. Kontrollen har varit framgångsrik i kommersiella produkter
så som automatisk överföring, videokameror och rakapparater.
4
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
Det finns enligt Passino och Yurkovich (1998, s.10-13) fyra huvudsakliga komponenter hos
en luddig kontroll:
1. Regelbasen. Den innehåller kunskap i form av en uppsättning regler kring hur man
bäst kontrollerar systemet. Är en uppsättning ”om-så”-regler.
2. Slutledande mekanism. Den utvärderar vilken kontrollregel som är relevant för
tillfället och bestämmer vad indata för grunden ska vara.
3. Luddiga gränssnittet. Den modifierar indata så de kan tolkas och jämföras med
reglerna i regelbasen.
4. Anti luddiga gränssnittet. Den konverterar sammanfattningen som nåtts till indata för
grunden.
Figur 2.4.1 nedan visar ett blockdiagram av en luddig kontroll med ett stängt loopsystem.
Man kan se kontrollen som en artificiell beslutsfattare som opererar i denna loop i verklig tid.
Den jämför alltså utdata u(t) med referensindata r(t), för att sedan bestämma vad grundens
indata u(t) ska vara, för att säkra att prestandaobjekten möts. De beskriver att en kontroll både
kan operera själv, men även ta hjälp av en människa som kommer med en mänsklig
beslutsfattare. Loopen nedan är byggd på en mängd ”om-så”-regler. Om in- och utdata beter
sig på ett visst sätt, så borde grundens indata ha något värde. Regelbasen är konstruerad på så
vis att den representerar en mänsklig expert i sin loopprocess.
Figur 2.4.1 från Passino & Yurkovich (1998). Utdata är y(t), indata är u(t), och referensindata
för kontrollen är r(t).
5
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
2.5 Analytiska problem
Passino & Yurkovich (1998) menar att det är inte är möjligt att utföra matematisk analys eller
simulatorbaserad utveckling, om man inte använder en formell modell på en säkerhetskritisk
applikation. Samtidigt hävdar dem att människor som arbetar med luddiga kontroller ofta
säger att en modell inte är nödvändig för att utveckla en luddig kontroll, vilket är den
huvudsakliga fördelen.
Yen och Langari (1999, s.247-248) hävdar att luddig logik tar ett fundamentalt icke
analyserbart perspektiv på kontrolldesignens process. Man kan dock studera beteendet för
loopen för att bestämma den trovärdiga framtida händelser, genom en funktion.
2.6 Luddig logik och artificiell intelligens
Luddiga system har enligt Passino och Yurkovich (1998, s.14) använts brett inom forskning,
teknik, psykologi med mer. Mer specifikt används det inom flygplan (flygkontroll,
feldiagnoser, satellitkontroll), automatiserade motorvägssystem (automatisk styrning,
bromsning), bilar (bromsar, växellåda), kraftindustri, robotik med fler.
Yen och Langari (1999, s.16) beskriver att luddig logik är en ickelinjär teknologi för att
utveckla intelligent kontroll- och informationssystem. Logiken når maskinell intelligens
genom att erbjuda ett sätt för att representera och resonera kring mänsklig kunskap som är
naturligt oprecis. Luddig logik passar också olika tekniker för maskininlärning som kan
användas för att skapa luddiga logiksystem med automatik. Exempelvis är neurala nätverk
och genetiska algoritmer.
6
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
3. Luddig logik i trafikljussystem
Som ett praktiskt exempel har Talab och Mohammadkhani (2014) skrivit om luddig logik
bland trafikljussystem. Mer specifikt optimerad design för ljusets timing, med hjälp av luddig
logik i en tvådelad korsning (figur 3.1). Genom två luddiga logiska kontroller, ena för att
optimera tiden för grönt ljus, andra, en fas för grönt ljus med förlängd tid, har man kunnat
optimera systemet med en modell. Systemet sker med hjälp av rörelsekameror som sensorer,
som placeras utmed körfälten. Dessa kontroller utnyttjar informationen som hämtas, för att
skapa ett optimalt beslut för att minimera målfunktionen. Detta för att minimera köerna som
uppstår vid rött ljus och minimera förseningen för bilarna (att det tar tid att starta vid plötsligt
grönt ljus). De menar att det är vanligt med en fast tid eller förinställda system, men att dessa
inte kan anpassa sig efter plötslig förändrad mängd trafik. Systemet kan därmed inte utgå från
en linjär tidslinje. Därför ersätts dessa av intelligenta trafikljus. Man optimerar då tiden för
varje fas, fassekvens och längden på cykeln för ljuset. Med hjälp av artificiell intelligens och
genetiska algoritmer, neurala nätverk med mer har man tagit fram 83 regler. Dessa har sedan
optimerats och reducerats ner till 11 regler. Dessa används av en luddig logikkontroll.
Figur 3.1, tagen från artikeln.
Artificiell intelligens ger ett alternativ till trafikljussystem. Datorteknologi inkluderar
metoder så som luddig logik, neurala nätverk, genetiska algoritmer och evolutionära
algoritmer. Talab och Mohammadkhani menar att artificiell intelligens leder till en annan
lösning på problemet kring att det bildas köer. De utförde en simulation som gav ett resultat
7
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
som visar att TAOSF (Traffic actuated optimization signal fuzzy control) markant förbättrar
sex olika trafiktillstånd med hjälp av detta alternativa system.
Två luddiga kontroller används i algoritm, för att kontrollera trafikens ljustiming. Den ena
för att tilldela optimal grön tid och den andra för att tilldela förlängd tid. Målet är att innan
tiden tar slut för en fas, ska man ha gått igenom följande steg. ST (Simulation time), som
skrivs in av användaren. Om den nuvarande tiden (t) är mindre än ST, ska följande steg ske:
Trafikljuset ska ändra fas, från grön i den minimala gröna tiden. Första luddiga kontrollen
visar den optimala gröna tiden för den gröna fasen när tiden är avslutad. Den andra luddiga
kontrollen visar ET (extension time). Om ET inte är 0, så fortsätter det vara grönt ljus för ET.
När tiden är avslutad bestämmer den andra kontrollen igen, och detta pågår tills den visar ET
som 0. Om den nuvarande tiden (t) nu är mindre än ST, ska fasen växla till rött ljus och nästa
fas för grönt beräknas åter med ovanstående process inför att det blir grönt igen. Det finns en
minimal tid för en fas, och den är anpassad efter att en fotgängare ska hinna gå över vägen när
det är rött för trafik. När vågräta vägar har grönt, har lodräta rött. Det är grönt i vågrätt under
fas 1, och grönt i lodrät under fas 2, och detta cirkuleras. Se figur 3.2.
Det den första kontrollen tar in är hur den senaste gröna fasen gick. Den kollar hastigheten
för avgång, hastighetsförändringar och kölängden. Det den andra kontrollen tar in är
fordonens kö-längd i grön samt i röd fas, samt hastigheten för avgång i tidigare gröna fas. Se
figur 3.3 för en överblick över de luddiga faserna, TAOSF, som tar in data från både grön och
röd fas.
8
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
Figur 3.2, tagen från artikeln.
Figur 3.3, tagen från artikeln
9
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
Talab och Mohammadkhani har tagit fram en modell för stadstrafiksnätverk. Denna tar i
åtanke att det sker en försening i och med förarens reaktionstid när ljuset slår grönt. Den tar
hänsyn till fotgängare och förmågan att ändra trafikskick till ”säker” eller ”osäker”. En
algoritm är designad för just denna modell för att optimera trafikljusets timing i en två-fas
isolerad korsning. Två MISO (many input single output) kontroller används för att möta
behoven av denna algoritm.
Längden på bilkön är en viktig variabel i modellen. Längden beskriver trafiksituationen och
tillståndet. På grund av rörelsekameran kan man hålla koll på hur många fordon som finns i
kön. Dessutom skiljer den på längden mellan bilar och bussar, mellantunga och tunga fordon.
Som ett exempel visas figur 3.4 nedan, där det finns 80 fordon, varav 65 passagerarfordon, 5
bussar, och 10 tyngre fordon. I en annan formel tar man antal fordon som i den gröna fasen
lämnar kön. 1 betyder grönt ljus, och 0 betyder rött.
Figur 3.4 – tagen från artikeln.
Det luddiga med systemet är att den använder luddiga kontroller för att modellera en
korsning. I korsningen ska de då avgöra hastigheten trafiken rör sig i, och ta hänsyn till förra
fasens hastighet, och hur lång tid det tar för trafiken att börja rulla från rött ljus. Detta visar att
det finns en mängd värden mellan 1 och 0. Figur 3.5 nedan visar indata för första luddiga
kontrollen, som inkluderar fordonets avgång i tidigare gröna fas, baserad på figur 3.6,
fordonens avgångsförändring i tidigare gröna fas. Dessa visar på att det finns luddiga värden
mellan olika skick.
10
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
Figur 3.5, tagen från artikeln.
Figur 3.6, tagen från artikeln.
11
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
4. Diskussion
När man talar om luddig logik gäller det att inte stampa på klassisk tvåvärdig logik. Den
klassiska logiken ingår trots allt i den luddiga. Man kan se den luddiga som en anpassning till
värden som är kontinuerliga, och för delmängder. I stora drag anser jag att det är en mycket
välbehövlig logik, eftersom, som Russel och Norvig menar, att det är svårt att definiera hur
lång en människa måste vara för att kallas för lång. Allting är relativt, i kontext, och vi ser
objekt i världen på våra individuella sätt, vilket figuren från Wikipedia visar tydligt. Det gör
att vi når det mänskliga språket bättre. Eftersom kontrollerna redan används i artificiell
intelligens, anser jag att de bara kommer växa. Vi vill utveckla allt omkring oss och skapa
mer intelligenta system, så att ta logiska system som är mer lika människan för att fatta beslut
åt oss låter bara vettigt. Det känns konstigt att logiken inte accepterats förrän 80-talet, i och
med att vi alltid haft kontinuerliga värden.
Fallet med trafikljussystemet visar liknande figurer som den från Wikipedia. Här visar man
med 0 och 1 hur de olika variablerna hör ihop. Att välja luddig logik till trafikljus kan såhär i
efterhand verka smart, när man vet vad en luddig kontroll innebär. Det ger oss kortare köer än
tidigare system, vilket ses som en fördel. I och med att det är svårt att uppskatta vad som är
mycket kö och hur lång tid det ska vara grönt, är detta system bra. Detta eftersom den
anpassar sig till föregående gröna ljus, och då förändrar sig när det är trafikstockning och det
är mer kö åt ena hållet än det andra. Det är luddigt att göra en sådan bedömning, och det är
där det är smart att som de gjort, ta hänsyn till både antal fordon, deras längd och hastigheten
de kör. Då går det göra en bedömning, inte bara 1 minut, 2 eller 3 som det ska vara grönt, utan
att man istället i en loop går igenom hur fort bilarna kör och när det är dags att avsluta.
Det man kan fråga sig är om luddig logik är en vattentät lösning. Kan man lita på att
kontrollen fungerar i alla möjliga fall, har man förberett för det oväntade? Och kan den
verkligen ersätta den mänskliga beslutsfattaren? De analytiska problem som finns, är till visso
problem, men egentligen inte så stora. Det är trots allt inte menat att utvärdera, utan det är
menat att ha en fungerande process. Man lär märka ganska snart om systemet kollapsar. Även
om man skulle kunna analysera, så går det inte förutspå framtiden helt ändå.
12
729G43 Artificiell Intelligens
Projekt
Josefin Carlbring
josca824
Referenser
Artikel
Talab, H., S., Mohammadkhani, H. (2014). Design optimization traffic light timing using the
fuzzy logic at a Diphasic’s Isolated intersection. Journal of Intelligent & Fuzzy Systems 27, s.
1609-1620, IOS Press.
Böcker
Passino, K. M., Yurkovich, S. (1998). Fuzzy control. California: Addison-Wesley.
Russell, S., Norvig, P. (2013). Artificial Intelligence, A Modern Approach, 3e upplagan.
Upper Saddle River, New Jersey; Pearson.
Yen, J., Langari, R. (1999). Fuzzy Logic, Intelligence, control and inf
,ormation. Upper Saddle River, New Jersey: Prentice Hall
Webbsida
Wikipedia (u.å.). Fuzzy logic. Tillgänglig på: https://en.wikipedia.org/wiki/Fuzzy_logic
[Hämtad: 2016-01-04]
13