Fuzzy Logic (Kompletterad) - IDA729G11/projekt/studentpapper-12/...Fuzzy logic grundas på teorin...
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/1.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/2.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/3.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/4.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/5.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/6.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/7.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/8.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/9.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/10.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/11.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/12.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/13.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/14.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/15.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/16.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/17.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/18.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/19.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/20.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/21.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022043020/5f3c8ea3acac31350f634312/html5/thumbnails/22.jpg)
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