Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin...

22
729G11 - ARTIFICELL INTELLIGENS 2 Fuzzy Logic (Kompletterad) Jonatan Andersson jonan259 2012-09-19

Transcript of Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin...

Page 1: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

729G11 - ARTIFICELL INTELLIGENS 2

Fuzzy Logic (Kompletterad)

Jonatan Andersson jonan259

2012-09-19

Page 2: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

INNEHÅLLSFÖRTECKNING 1. Inledning.............................................................................................................................................................. 3

2. Fuzzy logic och tvåvärdeslogik ............................................................................................................................ 4

2.1 Fuzzy sets ...................................................................................................................................................... 4

2.1 Crisp sets ....................................................................................................................................................... 5

3. Medlemsfunktioner ............................................................................................................................................ 5

3.1 Operatorer .................................................................................................................................................... 8

3.2 Modifierare ................................................................................................................................................... 9

4. Fuzzy Controller................................................................................................................................................... 9

4.1 Preprocessing.............................................................................................................................................. 10

4.2 Fuzzification ................................................................................................................................................ 11

4.3 Rule Base..................................................................................................................................................... 11

4.4 Inference Engine ......................................................................................................................................... 12

4.5 Defuzzification Methods ............................................................................................................................. 13

4.6 Postprocessing ............................................................................................................................................ 14

5. Riskberäkning inom ekonomi&finans ............................................................................................................... 14

5.1 Struktur av MATLAB-baserad riskberäknare............................................................................................... 15

5.2 Kritik mot programmet ............................................................................................................................... 19

5.3 Implementation av fuzzy logic i börsrobot ................................................................................................. 19

5.4 Problem med fuzzy logic inom ekonomi&finans samt risktagande ............................................................ 20

Page 3: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

1. INLEDNING

Denna artikel kommer är limiterad till en djupare beskrivning av fuzzy logic för att skapa en

större förståelse för dess validitet samt användningsområde och hur det kan appliceras inom

risktagande samt ekonomi&finans. Således kommer inget nytt att tillföras, utan artikelns syfte

är endast att sammanställa tidigare studier samt förmedla begreppets för- och nackdelar på ett

så tydligt sätt som möjligt men även att visa eventuella strukturer för risktagande.

Page 4: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

2. FUZZY LOGIC OCH TVÅVÄRDESLOGIK

Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en

medlems position på en reell skala mellan noll och ett, där 0 är falskt och 1 är sant. Logiken

har med sin lingvistiska karaktär funnit lösningar på artificiella problem som tidigare har varit

olösbara då det inte har funnits något mellanting mellan sant och falskt . Fuzzy logic fungerar

alltså som ett kompletterande substitut till den annars mer traditionella tvåvärdeslogiken. Den

klassiska logiken hade under en längre tid kritiserats för att just inte kunna behandla

någonting som skulle kunna benämnas som 'ganska sant', vilket la grund för utformandet av

fuzzy logic.

2.1 FUZZY SETS

Konceptet med fuzzy-sets går ut på att undvika kontraster inom en given värld där det endast

finns sanningar och osanningar. Istället för att endast låta en medlem tillhöra en grupp så

tilldelas denne ett värde som representerar hur väl medlemmen passar in bland olika grupper.

Ponera att ett rum skulle anses vara kallt vid 15 grader, varmt vid 25 grader och hett vid 30

grader. Om ett kylaggregat baserat på fuzzy logik skulle implementeras i rummet så skulle

dess uppgift t.ex. kunna vara att hålla dess temperatur vid "varmt". Skulle aggregatet mäta

temperaturen till just 25 grader så skulle alltså fuzzy-setet uppskattas till 1 inom kategorin

"varmt", men endast 0,5 inom grupperna "kallt" och "hett". Värdet 1 representerar alltså sant,

medan 0,5 är ganska sant och 0 falskt. Det gör att aggregatet börjar fungera som agent vars

mål är att alltid försöka uppnå värdet 1 inom gruppen "varmt". Skulle rummets temperatur

överstiga 25 grader skulle aggregatet kyla rummet, och vid motsatt effekt så skulle det skapa

mer värme.

Detsamma gäller exemplet nedan där Jantzen har använt sig av ett exempel gällande längd. En

person som är cirka 175 cm får i ett s.k. crisp-set värdet "sant" vid predikatet "lång", medan

hen skulle få olika värden beroende på medlemsgrupper beroende på hur designern väljer att

strukturera de olika längderna.

Page 5: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

2.1 CRISP SETS

Tvåvärdeslogikens motsvarighet kallas för alltså för crisp-sets och använder sig alltså endast

av statiska predikat i form av sanningar eller osanningar. Det kan leda till en högre effektivitet

vid vissa utföranden, men kan brista inom vissa användningsområden. Ett typiskt fall där

fuzzy-sets oftast visar sig vara optimalt är alltså när temperatur är ett centralt begrepp. Det

beror på att istället för att skapa en enorm mängd av olika crisp-sets för att avgöra t.ex. ett

rums temperatur så kan man skapa ett minpunkt samt en maxpunkt inom rimliga gränser.

3. MEDLEMSFUNKTIONER

Fuzzy logic segregeras framförallt ifrån andra logiker med sina lingvistiska variabler som

används för att skapa värden. Det finns alltså inga reella tal som annars är utgångspunkterna

för t.ex. tvåvärdeslogiken. För varje lingvistisk variabel finns lingvistiska värden som

benämns term sets. Vid exemplet ovan med kylaggregatet så skulle dess termset se ut på detta

vis:

M är alltså ett term set med tre olika fuzzy sets - kallt, varmt samt hett. Genom att ange

tydliga fuzzy sets så kommer resultatet av logiken av vara tydligare och därefter mer

värdefull. Då kallt, varmt och hett skulle anses vara tre väldigt olika typer av tillstånd oavsett

kontext så fungerar de alltid väl. Däremot skulle ganska varmt, lagom varmt samt nästan

Page 6: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

varmt kunna vara för luddigt för att skapa en tydlig klarhet, och är därför inte att föredra då de

tre grupperna skulle kunna anses ligga för nära varandra, oavsett tolkning.

För att beskriva att ett objekt x är medlem i ett setet X så används formeln nedan:

Om outputen ifrån formeln ovan är sann används sedan formeln nedan för att beräkna graden

av medlemskap.

U representerar universumet där x existerar, och representerar graden av medlemskap som

x har i setet vilket tar form i ett värde mellan 0 och 1.

I formeln ovan så är X ett fuzzy set där x är ett objekt och är dess grad av medlemskap i

setet. En grad av medlemskap där värdet är 0 tolkas som falskt medan 1 är sant. Värdena

däremellan är alltså det som fuzzy logic prisas för - representation i form av värden för

medlemskap som ofta refereras till som "ganska" sanna eller falska. Ett fuzzy set som endast

består av en medlem kallas för en singleton. Likt ett crisp-set så har den en medlemsfunktion

som endast kan vara sann vid värdet 1och falskt vid alla andra.

Det finns olika tillvägagångssätt inom fuzzy logic för att beräkna medlemsvärden, s.k.

medlemsfunktioner. Det finns olika medlemsfunktioner då det finns olika tillvägagångssätt för

en designer att utforma sin logik - t.ex. att ett kallt rum är 20 grader eller lägre och definiera

övriga intervaller som är relevanta för agentens syfte. Designerns uppgift är att på ett så

välformulerat och effektivt sätt som möjligt ange vilka predikat som ska användas samt att

kunna avgöra hur medlemsvärdena ska utdelas, och således vilken typ av medlemsfunktion

som är lämpligast.

Det tre vanligaste medlemsfunktionerna är trapezodial, triangelfunktioner och

Gaussianfunktionen. Ett kontinuerligt fuzzy set är definierat av medeltalen i en kontinuerlig

medlemskapsfunktion . Trapezodialfunktionen är en kontinuerlig funktion som styrs av

fyra parametrar - . Parametrarna representerar olika medlemmar inom setet. (a) är

benämningen för den första medlemmen i setet vilket sätter en gräns. Om 20-25 grader

representerar "varmt" så är 20 den nedre gränsen inom fuzzy setet. (b) representeras av det

värdet i setet som har det högsta värdet inom universumet, (c) utgörs av det värdet som är

Page 7: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

högst inom medlemsfunktionen och är därmed lik (a). (d) är namnet för den sista medlemmen

i setet.

Triangelfunktionen är väldigt nära besläktad med trapezodialfunktionen. Den enda skillnaden

mellan de två är att (b) = (c). Det resulterar i att det alltså endast finns en topp, vilket kan ses i

bilden nedan:

Gaussianfunktionen kan skrivas som:

Page 8: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

Det skapar en mjuk kurva där det högsta värdet kan tilldelas 1, alltså en ren sanning.

Något som är vitalt vid skapandet av medlemsfunktioner är överlappning. För att agenten inte

ska bli instabil och för att undvika oscillation så måste det finnas minst två medlemsgrupper

för varje set, annars kan agenten bli osäker. Genom att gardera sig så eliminerar man således

risken för att värden i form av input inte tas vara på i systemet. Skulle oscillation uppstå kan

agenten rent av krascha vilket kan få fatala konsekvenser, alltså är det upp till designern att

vara otroligt noggrann under utformandet för att kunna garantera att inga värden kan gå förbi

obemärkta.

3.1 OPERATORER

Operatorerna för fuzzy logic har sina rötter inom den diskreta matematiken. De vanligare

varianterna är union- samt intersektions operatorerna.

Formeln ovan betyder att samtliga medlemmar i fuzzy setet X respektive Y unifieras och

skapar ett nytt fuzzy set som är en union av de två. Sedan så används max-operatorn igenom

alla medlemmar för att hitta den medlemmen som har högst medlemsvärde, och således är den

bäst anpassade medlemmen.

Nästkommande formel beräknar intersektionen mellan två sets. Om vi har ett set {a,b,c} och

ett annat set {b,c,d} så blir intersektionen mellan de två {b,c} - de finns alltså i båda seten.

Därefter så används min-operatorn för att beräkna den medlem som har minst värde för att se

vilken medlem som ska bort.

Page 9: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

3.2 MODIFIERARE

Modifierare används för att kunna göra tillägg av predikat genom att förändra ett tidigare

fuzzy set istället för att skapa ett nytt ifrån grunden. Ord så som mycket, väldigt, ganska,

oerhört är typexempel på ord som kan läggas före t.ex. varmt och kallt för att precisera deras

innerbörd. Genom att sätta orden före de tidigare seten så ändras deras innerbörd. Genom att

skapa operatorer så kan designern omvandla tidigare fuzzy set efter behag istället för att

skriva om allt från start. Funktionen nedan representerar ordet oerhört. Genom att skriva

"oerhört varmt" istället för bara "varmt" så blir medlemsvärdena i setet för oerhört 4 gånger så

stora.

Genom att modifiera den rödfärgade symbolen Mµs exponentiering så kan designern själv

välja hur stor genomslagskraft olika ord har. Ekvationen nedan ökar M medan den undre

minskar M. Genom at byta ut bokstaven k i ekvationerna så kan man manuellt justera hur

mycket som bör vara rimligt för den givna lingvistiska termen.

4. FUZZY CONTROLLER

Fuzzy controllers används inom diverse produkter såsom kylaggregatet, tvätt- och

diskmaskiner, videokameror, tåg, robotar m.m. Jantzen beskriver fuzzy controllers som

"kontroll med meningar snarare än ekvationer." Med hjälp av fuzzy controllers kan man alltså

lösa problem utan att behöva använda sig av avancerad matematik, utan kan istället formulera

empiriska meningar som agerar som utgångspunkter för en agent som kan analysera och

utvärdera dem. Således gör sig fuzzy controllers som mest effektiva i operatorbaserade

miljöer då meningar likt den nedan kan behandlas utan att blanda in avancerad matematik:

Genom att samla regler likt den ovan så skapar man en regeldatabas som fungerar som en

strukturell ram för logiken då den analyserar tillstånd och gör tolkningar utifrån dem. Likt

Page 10: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

predikatlogiken så fungerar regeldatabasen också efter om-så-formatet som visat ovan. Om-

sidan benämns som den tillstånds-sidan, och så-sidan som sidan där slutsatsen sker.

4.1 PREPROCESSING

Då indata oftast är hård eller crisp från ett mätinstrument i t.ex. kylaggregatet så måste det

finnas en s.k. preprocessor som omvandlar den till lingvistiskt kompatibla termer. En

kvantiserare används för att reducera mängden indata för att effektivisera fuzzy controllers.

Genom att omvandla flyttal till värden inom ett diskret universum så minskas antalet olika

grupper som behöver behandlas. Det kan dock få negativa konsekvenser då styrenheten kan

bli instabil ifall värdena är för grova vilket leder till att oscillation kan uppstå i och med att

den inte vet till vilket värde den bör omvandla det givna värdet till. Det undviks genom att

använda sig av tillräckligt mycket distinktioner inom grupperna för att hjälpa agenten med att

ge den självklara val av diskreta variabler. Förutom att oscillation kan ett annat problem även

bli att agenten helt enkelt gör fel val vilket gör att logiken blir oberäknelig och därmed

sjunker reliabiliteten. Kvantifierarens uppgift är alltså att reducera mängden indata för att göra

den mer lättanvänd.

Normalisering är förekommande inom preprocessing. I FL Smidth styrenheten så förutsätter

den att typiska värden i form av siffror binds till liten, mellan och stor. De siffrorna

representerar brytpunkter för respektive grupp. Brytpunkterna används sedan för att dela in

inkommande värden efter skalorna som de skapar. Effekten blir en förvrängning de

ursprungliga fuzzy setten som sedan ska skickas iväg till styrenheten.

Page 11: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

4.2 FUZZIFICATION

Fuzzification utgör det första blocket i styrenheten. Dess uppgift är att konvertera all input till

olika grader av medlemskap, ett för varje lingvistik variabel som har tilldelats styrenheten.

Blocket klarar av uppgiften genom att matcha inputen med regelbasen för att sedan se hur väl

den givna data som har kommit stämmer överens med reglerna.

4.3 RULE BASE

Regelbasen består av systemets regler och är oftast utformade efter om-så-satser:

Om vattnet är kallt returnera varmt

Där "vattnet är kallt" och "varmt" är fuzzy sets. Exemplet ovan är ett s.k. SISO-problem där

SISO står för single input single output. Det finns dock mer komplexa varianter i form av

MIMO-problem, där MIMO står för multi input multi output. Inputen brukar kallas för

felsignaler, likt formatet;

"

Page 12: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

Bilden ovan ger en tydlig översyn över hur reglerna är uppdelade efter error, change in error

och vad det leder till för output. Reglerna sparas oftast i form av matriser likt den nedan för att

spara plats och göra informationen mer kompakt utan att tappa innehåll:

En förutsättning för en sunt utformad regelbas är att samma konnektiv används. Exempel på

konnektiv kan vara and eller or. Om de skulle blandas så blir strukturen väldigt otydlig och

svårarbetad. Det skulle även öka komplexiteten hos styrenheten vilket kan anses vara onödigt

då det inte ökar effektiviteten utan snarare gör dess arbete krångligare.

4.4 INFERENCE ENGINE

Inference Engine är organet i styrenheten som matchar input ifrån fuzzification-blocket med

reglerna som befinner sig i regelbasen vilket sedan leder till en output som representerar den

ändring som ska ske för att anpassa data för styrenheten.

För att möjliggöra processen finns det tre olika steg inom inference engine - aggregering,

aktivering och ackumulering. Aggregering beräknar graden av uppfyllande eller firing

strength, k för villkoret för en regel k. En regel, t.ex. regel 1, vill således generera ett fuzzy

medlemskap med värdet µe1 vilket kommer ifrån error i form av input till styrenheten och

värdet µce1 som kommer ifrån change in error. Aggregationen är alltså kombinationen mellan

error och change in error, vilket ger:

Aggregation är ekvivalent med fuzzification då det endast finns en form av input.

Aktivering är deduktionen av en regel och dess konsekvens samt resultatet av dess eventuella

reduction av firing strength - alltså kombinationen mellan error och change in error, µe1 and

µce1.

Regler som är utformade med en premiss, likt:

Page 13: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

Använder sig av aktiveringsoperatorn min. Det innebär att operatorn beskär deduktionens

fuzzy set för att skapa en representation där endast det minsta medlemsvärdet skickas ut i

form av output. Anledningen till beskärningen är det faktum att det inte är troligt att

deduktionen uppfylls om inte den reducerade outputen gör det vilket leder till en

effektivisering av data. Maxoperatorn gör det motsatta - den beskär deduktionens fuzzy set

där medlemsvärdet är som högst. Det resulterar i att om ett av försatsens villkor uppfylls så

innebär det att även deduktionen blir sann.

Det sista steget inom inference engine är ackumulering. Ackumuleringen skapar en graf som

utgörs av alla tidigare aktiverade slutsatser genom att använda sig av max-operatorn för att

sedan skicka den vidare till defuzzification.

4.5 DEFUZZIFICATION METHODS

Syftet med defuzzification är att formatera om outputen för att maskinen ska kunna bearbeta

utifrån det. Således måste alltså outputen vara ett fixerat värde och inte en lingvistisk variabel.

Syftet med fuzzy logic är som sagt att kunna använda sig av termer så som "lite" och

"mycket", och hela processen som sker just innan defuzzification är att möjliggöra denna

transformering som ger termerna värden utifrån medlemskapsvärden. Det finns olika modeller

för att kunna genomföra defuzzification, några av de vanligare är dock de som nämns nedan.

Centre of Gravity (COG)

Centre of Gravity är en relativt komplex beräkningsmetod som kan vara ansträngande för en

agent att ut då den använder sig av s.k. flytpunkter.

U är betäckningen för universumet. är flytpunkten inom universumet, och är dess

medlemsvärde i medlemskapsfunktionen. Poängen med COG är att beräkna grafens

mittvärde. Genom att använda sig av summan av alla element inom universumet och

multiplicera den med medlemskapsfunktionen för att sedan dividera resultatet med

summan av alla element igen så får man ut grafens mittpunkt.

Mean of Maxima (MOM)

MOM är en relativt simpel metod i kontrast till COG. Den tar det högsta värdet inom givet

fuzzy set som argument och returnerar det värdet som har högst medlemskap. Om det skulle

Page 14: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

finnas ett flertal värden som alla har väldigt högt medlemskap så beräknas istället deras

medelvärde för att endast returerna ett värde. Det bidrar till en mer precis uträkning.

Leftmost Maxima (LM) och Rightmost Maxima (RM)

LM och RM är metoder som undviker det som MOM väljer att göra - skapa medelvärden.

Istället så väljer metoderna de längst till vänster respektive till höger som har högst

medlemsvärde. Anledningen till detta är för att det finns situationen i diverse agenter där

styrning är vitalt. Ponera att en robot antingen skulle behöva svänga höger eller vänster för att

undvika ett hinder. Om MOM-metoden skulle användas så finns risken att roboten skulle

räkna ut ett medelvärde vilket skulle kunna resultera i att den inte svänger tillräckligt mycket,

utan istället krockar in i hindret.

Alla metoderna skickar sedan ut output i form av ett crisp-set.

4.6 POSTPROCESSING

Då outputen kan vara definierad inom ett standard universum kan det i vissa fall vara

nödvändigt att formatera om den för att den ska fungera inom viss apparatur. Det kan t.e.x

vara så att man behöver formatera om värdet inom universumet till fysiska enheter

likt volt.

5. RISKBERÄKNING INOM EKONOMI&FINANS

Artificiell intelligens används flitigt inom företag som arbetar inom ekonomi och risktagande.

Genom att ge robotarna formler - såväl simpla som extremt komplexa - så garderar sig

företagen gentemot sina konkurrenter för att få övertag på deras respektive marknad. Fuzzy

logic kan användas för att öka vinster och minska kostnader. Genom att använda sig av

MATLAB och Fuzzy Logic Toolbox har man lyckas skapa en relativt simpel, men fortfarande

effektiv, modell för att beräkna risktaganden. Nedan kommer först ett exempel för hur en

bank skulle kunna använda en MATLAB-baserad agent för att beräkna risken för att låna ut

Page 15: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

pengar till en bankklient att beskrivas. Dess struktur kommer sedan att användas för att

kortfattat förklara hur man kan minimera risken för en börsrobot att förlora pengar på

transaktioner.

5.1 STRUKTUR AV MATLAB-BASERAD RISKBERÄKNAR E

Modellen består av elva inputvariabler, tre regelblock och en output med tre olika attribut.

Inputvariablerna är följande:

Sex (man, woman),

Age (young, middle, old),

Marital

status (married, single, other),

Children (none, one, more),

Income (low, medium, high),

Account (none, medium, high),

Debt (none, medium, high),

Employment(short, medium, long term),

Contact with client (short, medium, long term),

Orders(first, few, more),

Delayed payment (none, few, more)

Page 16: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

De tre blocken är personlig data, finansiell data samt kvalitén av klienten.

Genom att justera regelbaserna så kan modellen kontinuerligt optimeras utan att dess struktur

måste ändras. På så sätt så fungerar fuzzy logic alldeles utmärkt då designern kan skapa ett

skelett medan användaren själv, vid behov, kan gå in och ändra på regelbasen för att öka dess

kvalité.

Det som är intressant är valen av par som designern har valt för projektet. Något som är vitalt

för att outputen av programmet ska fungera väl i praktiken är att det finns empiri bakom valen

av par.

Sex(man, woman) säger sig självt - antingen är personen som vill ta ett lån av banken man

eller kvinna. Det som är intressant här är hur designern visar hur en singleton fungerar

exceptionellt väl inom fuzzy logic utan att ta formen av ett crisp set - genom att säga t.ex. att

Sex är ett fuzzy set med argumentet man, så blir det antingen en sanning eller en osanning

men det finns ändå inga hårda begrepp, och styrenheten kan givetvis tolka setet utan problem.

Något annat som är spännande är att designern väljer att kombinera sex(man, woman) med

age(yound, middle, old). Det tyder på att hen har hittat information som tyder på att vissa

typer av människor, t.ex. att en medelålders man är en tryggare bankklient än t.ex. en ung

kvinna. Det måste alltså finnas någon slags empiri för att det stämmer, annars är det bara

Page 17: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

irrelevant information som inte påverkar outputen, utan endast gör programmet mer komplex

utan att tillföra något.

Nästa steg är marital status(married, single, other) samt children(none, one, more). En

potentiell anledning till att designern har valt att kombinera dessa två är att en gift människa

förmodligen utan barn skulle anses ha en tryggare ekonomin gentemot en ensamstående

förälder.

De tre nästkommande variablerna är de som förmodligen väger tyngst - income(low, medium,

high), account(low, medium, high) och debt(low, medium, high). Man kan tänka sig att dessa

tre påverkar outputen mer än de andra två kombinationerna inom programmets första fas då

de är direkt kopplade till ekonomi. En människa som tjänar mycket pengar är såklart en

tryggare bankklient än någon som tjänar lite, någon med ett bankkonto av god likviditet kan

förmodligen betala av större amorteringar vid behov och någon med en stor skuld är

rimligtvis inte en klient som man bör låna ut ännu mer pengar till. Hur som helst är det viktigt

att ändå ta med just skuld, då programmet förmodligen inte beräknar skuld i korrelation till

t.ex. inkomst och tillgångar. Det innebär att det är rimligt att en person som tjänar otroligt

mycket pengar även kan ha stora skulder då skulderna i relation till inkomsten inte är särskilt

hög, medan en person som tjänar lite pengar i värsta fall skulle kunna be om personlig

konkurs med en lika stor skuld i ryggen. Således kan det vara mer intressant att skapa en ny

parameter som istället räknar ut just skuld i relation till inkomst och tillgångar för att skapa ett

samlat ekonomiskt värde för en individ snarare än att endast se över just lön, tillgångar och

skulder. Det kan dock även vara något negativt då det är av intresse för banken att veta hur

mycket personen i fråga har lånat tidigare. En lösning på problemet skulle kunna vara en

operator likt denna:

Page 18: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

Programmet skulle då ta income, account och debt som indata och skapa en ny post som heter

Economic value(low, mid, high) som fungerar som ett mått på hur stark en persons ekonomi

är. Den skulle använda inkomst och tillgångar och ställa dem mot skulder - ju högre

inkomster och tillgångar samtidigt som skulderna är låga, desto starkare ekonomi har

personen. Likväl skulle en enorm skuld dra ner en persons ekonomiska status även fast

personen i fråga, i relation till andra, drar in ofantligt mycket pengar (Nicholas Cage är ett

fantastiskt bra exempel på någon som omsätter sinnessjuka pengar men ändå inte är en person

man vill låna ut pengar till). Det verkar även som att designern tänker likadant vilket kommer

återkopplas till snart.

Det sista paret i den första fasen av programmet är parametrarna orders(first, few, more) och

delayed payment(none, few, more). Även denna kombination är väldigt logisk då någon som

har lånat pengar få gånger men ändå har väldigt många försenade betalningar rimligen inte är

en person som man vill låna ut pengar till.

Sedan sammanställs alltså all data likt den egenskapade bilden ovan till tre väldigt starka

poster - personlig data, finansiell data och kvalité av klient. Samtliga parametrar använder sig

av fuzzy seten (excellent, good, bad). Dessa tre kombineras alltså sedan för att avgöra hur stor

risken är för banken att låna ut pengar till klienten, och använder sig av fuzzy seten (low,

medium, high).

Själva beräkningen i sig är relativt simpel. Medlemskapsfunktioner implementeras för att

beräkna ifall t.ex. en persons inkomst passar bäst inom låg, medel eller hög. Själva idén är

alltså att beräkna alla värdet för alla olika parametrar för att sedan välja vilken output de får.

Sedan används någon form av algoritm som beräknar sammansättningar av parametrar, likt

kön och ålder. Slutligen får man ut hur stor risken är att låna ut pengar till klienten, och den är

direkt beroende till samtliga tidigare parametrar som behandlats tidigare.

Något som är värt att nämna är att i och med att programmet endast är implementerat i en

dator så behövs ingen avancerad styrenheten i stil med en fuzzy controller användas. Det gör

att beräkningskomplexiteten bör vara otroligt låg med dagens processorer och RAM-minnen.

Det talar för att taket för antalet olika funktioner att ha med i beräkningen bör, i teorin, vara

näst intill obegränsade då tid inte är någonting som är lika vitalt som i börsrobotar som nämns

längre ner i projektet.

Page 19: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

5.2 KRITIK MOT PROGRAMMET

Något som skulle behöva implementeras inom programmet för att göra det mer effektivt är

tid. Positiv utveckling under korta perioder är högst relevant för utlånande av pengar, och en

bank som tackar nej till en klient som en gång i tiden har varit oerhört skuldsatt men som har

börjat beta av sina skulder med en extrem fart är en förlorad chans att kunna dra in pengar på

ränta. Alltså borde man addera fler parametrar i form av indata för att kunna se över fler

attribut hos människor. Löneutveckling under en längre tid skulle också kunna komma att

vara otroligt relevant för att kunna skapa goda och långa kundrelationer.

För att summera kan man säga att information är intelligens, och intelligens är makt. Därav

bör man analysera så mycket parametrar som möjligt så länge de har någon form utav

relevans och inte har otroligt stor påverkan på beräkningstider.

5.3 IMPLEMENTATION AV FUZ ZY LOGIC I BÖRSROBOT

Något som i dagsläget är väldigt omtalat är s.k. börsrobotar. Deras funktion är kort och gott

att kunna göra lyckade transanktioner på marknaden utifrån algoritmer som de använder. Det

är i stort sett omöjligt att få fram djupare information, därför kommer jag endast att presentera

ett förslag på hur en börsrobot skulle kunna fungera med fuzzy logic.

Det viktigaste är, likt exemplet ovan, att hitta de parametrar som är relevanta för att kunna

skilja på en god aktie som kommer resultera i en vinst och en dålig aktie. Låt oss tills vidare

ponera att vi har ett stort kapital och behöver därför inte ta hänsyn till hur dyr en aktie är, utan

istället begränsa oss till hur många av dem vi köper.

Anledningen till att börsrobotar är så effektiva är för att de är maskiner och därmed

omänskliga. Konceptet med dem är att de kan genomföra transaktioner onaturligt snabbt

vilket gör att de kan köpa och sälja aktier för miljonbelopp för att sedan avbryta transaktionen

utan att banken hinner registrera det. Det innebär att en aktie får ett onaturligt högt värde i

några millisekunder, vilket gör roboten kan sälja av tidigare ägda aktier utan att gå med

förlust. Det kan sammanställas som:

Köp x antal aktier hos ett företag. Köp y antal aktier, avbryt transaktionen så snabbt så att

banken inte kan registrera det. Sälj aktierna x till en vinst innan banken har registrerat att

transaktionen har avbrutits.

Idén som jag har med fuzzy logic är att kunna beräkna vilka aktier som skulle kunna vara

attraktiva att arbeta med för en börsrobot. Inputvärden skulle t.ex. kunna vara:

Utveckling under de senaste sex månaderna(excellent, good, bad)

Högsta värde av aktien(low, mid, high)

Lägsta värde av aktien(low, mid, high)

Page 20: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

Genom att använda sig av parametrar likt de ovan så kan man hitta aktier som tyder på en

positiv utveckling vilket minimerar riskerna för att man kommer förlora pengar genom att

använda sig av börsrobotar. Det handlar huvudsakligen alltså inte om att dryga ut vinsterna,

utan snarare att minimera riskerna för att köpa och sälja aktier som kan resultera i förluster.

Med strukturen ovan som beräknar risk för att låna ut pengar till en klient så kan man alltså

applicera filter för börsrobotar där de väljer bort vissa aktier som kan resultera i förluster,

alltså för höga risktaganden. Det skulle kunna leda till en otroligt farlig kombination, som

eventuellt redan är verklighet, då de som äger robotarna skulle kunna känna sig trygga i att

investera ännu mer kapital utan att känna sig otrygga i att pengarna kan försvinna.

Skulle man även lägga till maskininlärning så skulle man i teorin kunna använda maskinen till

att förutse vilka typer av aktier som fungerar väl, och varför de troligtvis gör det. Då skulle

designern kunna kalibrera fuzzy setsen för att låta roboten lättare hitta de mer attraktiva

aktierna. Man skulle alltså kunna skapa en ultimat börsrobot som dels lär sig av marknaden,

ändrar sitt eget filter för att hitta ännu bättre aktier och som samtidigt utnyttjar börsens system

för att dra vinster av dem. Den mörka sanningen är som sagt att detta förmodligen redan är

verklighet då man uppskattar att cirka hälften av börsen kontrolleras av just robotar.

Problematiken i dagsläget är alltså inte att utforma agenter som kan beräkna risk, utan att

förse dem med relevant information av hög kvalité. Inputen ovan måste ha en direkt koppling

till empiriska studier för att först ens kunna övervägas att användas i ett program, och att hitta

all information som kan anses vara nödvändig är ett väldigt tidskrävande projekt. En annan

relevant fråga är hur många input som behövs för att kunna garantera hyfsad säkerhet hos

agenten utan att outputen tar för mycket skada av ovanligheter hos, i detta fall, klienten.

5.4 PROBLEM MED FUZZY LOGIC INOM EKONOMI&FINANS SAMT

RISKTAGANDE

Hela problematiken, och anledningen till att alla inte använder sig av fuzzy logic hela tiden, är

vissa saker är oberäkneliga i den verkliga världen. Att designa t.ex. ett riskberäknarsystem

som aldrig gör fel är omöjligt, för att det finns faktorer likt slump som inte går att ta hänsyn

till. Det som gör alla väl designade program inom t.ex. finans och risktagande så bra är dock

att de har rätt i majoriteten av beräkningar, vilket ger alla företag inom en kommersiell

bransch en fördel gentemot de som inte använder sig av det. Det största problemet är att

investera i kunskap ifrån experter som kan finna empiri för att vissa studier stämmer medan

andra är falska. Kunskap är som sagt makt, och att ha vetskap över vilka parametrar som styr

t.ex. en akties värde är det som är vitalt - men hur ska det kunna göras? Just nu kan man

ponera att de som kalibrerar börsrobotar dels är allmänna experter inom ekonomi, men

förmodligen även daytraders som vet hur man kan göra mindre procentuella vinster på väldigt

Page 21: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

kort tid. Det handlar alltså inte endast om att ha de bästa programmen, utan även att kunna

kalibrera dem i takt med att marknaden förändras.

Men det är viktigt att komma ihåg att risktagande finns inom allt, och att använda sig av

automatiserade beräknare eliminerar risken för felberäkningar av en människa samtidigt som

den effektiviserar själva processen. Möjligheterna är oändliga - man skulle t.ex. kunna

använda sig av fuzzy logic inom sjukhus för att hjälpa läkare att lättare ställa prognoser med

patientens symptom som input, och som output skicka ut hur stor sannolikheten för olika

sjukdomar är beroende på vilka tester som har gjorts osv. Automatiserade processer är alltså

framtiden, och således är artificiell intelligens likaså.

Page 22: Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin fuzzy-sets som möjliggör graduella positioneringar av en medlems position på en

6. Referenser

Börsrobotar hotar ännu Hämtad 2012-09-19 kl 18:20

https://www.avanza.se/aza/press/press_article.jsp?article=219147

Dagens Industris stockwatch Hämtad 2012-09-19 kl 18:10

http://www.di.se/stockwatch/

Dostál, P. Fuzzy Logic and Risk Evaluation Hämtad 2012-09-16 kl 22:00

http://www.petrdostal.eu/papers/cla51.pdf

Dote, Y. Introduction To Fuzzy Logic Hämtad 2012-09-16 kl 22.10

http://ieeexplore.ieee.org.lt.ltag.bibl.liu.se/stamp/stamp.jsp?tp=&arnumber=483332

Jantzen, J. Design Of Fuzzy Controllers Hämtad den 2012-09-16 kl 22.20

http://site.iugaza.edu.ps/mahir/files/2010/02/design.pdf

Jantzen, J. Tutorial on Fuzzy Logic. Hämtad 2012-09-16 kl 22:30

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.2096&rep=rep1&type=pdf

Mathworks, Gaussian curve membership function. Hämtad 2012-09-16 kl 22:35

http://www.mathworks.se/help/fuzzy/gaussmf.html

Stolz, P. Fuzzy Logic as a Paradigm for a Mainstream Economics beyond Self-Sufficiency?

Hämtad 2012-09-16 kl 22:40

http://www.prof-stolz.ch/FuzzyLogic_def_Vers.pdf

Yong-Hua Song and Allan T. Johns: Applications of fuzzy logic in power systems Part 3

Hämtad 2012-09-16 kl. 22:50

http://ieeexplore.ieee.org.lt.ltag.bibl.liu.se/stamp/stamp.jsp?tp=&arnumber=765695