Fuzzy Logic (Kompletterad)



Relevanta dokument
729G11 ARTIFICIELL INTELLIGENS 2, LINKÖPINGS UNIVERSITET. Fuzzy Logic. Caroline Allmér, caral

Lathund, procent med bråk, åk 8

Individuellt Mjukvaruutvecklingsprojekt

Fuzzy control systems

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

Vi skall skriva uppsats

Laborativ matematik som bedömningsform. Per Berggren och Maria Lindroth

Fuzzy Logic Linköpings Universitet

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Rapport uppdrag. Advisory board

Tränarguide del 1. Mattelek.

Vetenskapliga begrepp. Studieobjekt, metod, resultat, bidrag

Presentationsövningar

4-6 Trianglar Namn:..

Riktlinjer - Rekryteringsprocesser inom Föreningen Ekonomerna skall vara genomtänkta och välplanerade i syfte att säkerhetsställa professionalism.

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

Sannolikhet och Odds

Särskilt stöd i grundskolan

Har vi lösningen för en bättre hemtjänst? Självklart.

En gemensam bild av verkligheten

Snabbslumpade uppgifter från flera moment.

NATIONELLA MATEMATIKTÄVLING

KURSPLAN,! KUNSKAPSKRAV! ELEVARBETEN!

Väga paket och jämföra priser

Ha det kul med att förmedla och utveckla ett knepigt område!

Utveckla arbetsmiljö och verksamhet genom samverkan

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Projekt benböj på olika belastningar med olika lång vila

Kampanj kommer från det franska ordet campagne och innebär att man under en tidsbegränsad period bedriver en viss verksamhet.

Om erbjudandet för din pensionsförsäkring med traditionell förvaltning.

Gissa det hemliga talet

Får nyanlända samma chans i den svenska skolan?

Sammanfattning på lättläst svenska

De två första korten Tidig position

Varför är det så viktigt hur vi bedömer?! Christian Lundahl!

HT 2011 FK2004 Tenta Lärare delen 4 problem 6 poäng / problem

Pesach Laksman är lärarutbildare i matematik och matematikdidaktik vid Malmö högskola.

3.1 Linjens ekvation med riktningskoefficient. y = kx + l.

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Översikt. Rapport från skolverket. Förändring av matematikprestationerna Grundtankar bakom Pixel

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Invisible Friend Senast uppdaterad

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Statsbidrag för läxhjälp till huvudmän 2016

EN BÄTTRE KREDITAFFÄR

e-cm Elektronisk Cash Management dygnet runt, världen över.

ANVÄNDARHANDLEDNING FÖR

Datorövning 2 Statistik med Excel (Office 2007, svenska)

Energi & Miljötema Inrikting So - Kravmärkt

Introduktion till Open 2012

Till dig som vill bli medlem i SEKO

Hävarmen. Peter Kock

Sektionen för Beteendemedicinsk smärtbehandling

skuldkollens ordlista

UTMANINGAR OCH MÖJLIGHETER HAR DU 730 DAGAR OCH ETT STARKT DRIV DÅ HAR VI EN LEDARROLL TILL DIG

Boll-lek om normer. Nyckelord: likabehandling, hbt, normer/stereotyper, skolmiljö. Innehåll

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Effekt av balansering 2010 med hänsyn tagen till garantipension och bostadstillägg

Systematiskt kvalitetsarbete

UPPGIFT: SKRIV EN DEBATTARTIKEL

DEMOKRATI 3 DEMOKRATINS VILLKOR

Statistik 1 för biologer, logopeder och psykologer

Facit med lösningsförslag kommer att anslås på vår hemsida Du kan dessutom få dem via e-post, se nedan.

Tankar om elevtankar. HÖJMA-projektet

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

Antal grodor i varje familj Antal hopp tills alla bytt plats Ökning

Denna talesmannapolicy gäller tillsammans med AcadeMedias kommunikationspolicy. I kommuniaktionspolicyn finns följande formulering:

Abstrakt. Resultat. Sammanfattning.

Träning i bevisföring

Rapport Agilityverksamhetens framtid

Finns det någon som kan förklara varför man inte kan använda formeln P=U I rotenur3 cosfi på en pump som sitter i en borrad brunn?

Disclosure. SOMP-I skapades av Kristina Persson. SOMP-I ägs av Barnens rörelsebyrå Kristina Persson & Kine Johansen är delägare i företaget

Manpower Work Life: 2014:1. Manpower Work Life. Rapport Mångfald på jobbet

Fakturering Postad av Erik Göransson - 21 mar :04

Koll på cashen - agera ekonomicoach!

Programmera en NXT Robot

912 Läsförståelse och matematik behöver man lära sig läsa matematik?

Lokal pedagogisk planering i matematik för årskurs 8

Användarvänlighet och tillgänglighet Workshop II

Friskoleurval med segregation som resultat

TIMREDOVISNINGSSYSTEM

Skriva B gammalt nationellt prov

L(9/G)MA10 Kombinatorik och geometri Gruppövning 1

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Mot ett mer jämställt arbetsliv och privatliv?

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

SOLCELLSBELYSNING. En praktisk guide. Råd & Tips SOLENERGI LADDA MED. Praktiska SÅ TAR DU BÄST HAND OM DIN SOLCELLSPRODUKT

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

Sundbybergs stad Skolundersökning 2015 Föräldrar förskola Fristående förskolor totalt Antal svar samtliga fristående förskolor: 360 (57 %)

PRÖVNINGSANVISNINGAR

När du som vårdpersonal vill ta del av information som finns hos en annan vårdgivare krävs det att:

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Cellgifter/Cytostatika Myter & Sanningar:

Något om permutationer

Föreläsning 5: Rekursion

Intervju med Årets teknikkvinna 2011 Anna Pernestål

Diskussionsfrågor till version 1 och 2

GRUNDERNA I SJÄLVLEDARSKAP

Historisk avkastning med Sigmastocks portföljmodeller

Transkript:

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

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

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.

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.

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

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 x har i setet vilket tar form i ett värde mellan 0 och 1. representerar graden av medlemskap som 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

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:

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.

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

predikatlogiken så fungerar regeldatabasen också efter om-så-formatet som visat ovan. Omsidan 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.

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; "

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:

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

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

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)

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

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:

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.

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)

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

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å.

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