"Godhet utan vishet och utan
gränser är bara en annan
form av ondska."
(John Paterson)
"Mänsklighetens bästa är alltid
tyrannens alibi!"
"Det är synd att 99% av
journalisterna skall fördärva
förtroendet för en hel yrkeskår"
(Okänd)
"Om du ropar "Gud är stor"
samtidigt som du spottar på
skändade kroppar av judiska
kvinnor, så hävdar jag att
din gud inte är en gud värd
att tillbe!
"När försiktigheten finns överallt,
finns modet ingenstans."
(den belgiske kardinalen Mercier)
"Den som gifter sig med
tidsandan blir snabbt änka."
(Goethe)
"Civiliserade är de kulturer
och individer som respekterar
andra."
(Hört på Axesskanalen)
"Det tragiska med vanligt
sunt förnuft är att det
inte är så vanligt."
(Albert Einstein)
"Halv kristendom tolereras
men föraktas.
Hel kristendom respekteras
men förföljs."
(Okänd)
(Note: at the top of the page you can choose translation of this article to other languages, but don't expect the translation to be perfect "Välj språk" means "Choose language")
Föreliggande artikel (som är en underartikel till min artikel om neurala nätverk) utgör ett försök att ge läsaren en känsla för hur AI baserad på neurala nätverk fungerar. Som framgår av huvudartikeln så använder inte neurala nätverk logiska slutledningskedjor utan bygger i stället på statistiska korrelationer mellan olika parameterar.
Montecarlometoder är en typ av metoder där man använder slumptal för att lösa matematiska problem, som är svåra att lösa analytiskt, dvs med "normala", logiska metoder. Namnet kommer sig av att ett av världens mest berömda kasinon ligger i Monte Carlo. Dessa metoder kan tillämpas på många olika typer av matematiska beräkningsproblem. I föreliggande artikel använder vi montecarlometoder för att beräkna (bestämda) integraler.
[Observera att talet pi, som förekommer i texten nedan, och som anges med symbolen π (≈ 3,14159) i vissa typsnitt ser ut ungefär som ett "n" (lilla bokstaven n, som i november). Många som gör typsnitt borde få smisk på fingrarna, eftersom de mer tänker på estetik än på funktionalitet. Det är ju trevligt med typsnitt som är snygga, men blir det svårläst (t ex att man lätt förväxlar bokstäver med varandra) då har man hamnat helt fel. Det är en grov felprioritering.]
En enkel integral är helt enkelt arean mellan en funktionsgraf och x-axeln (om vi begränsar oss till funktioner som ligger ovanför x-axeln), inom ett visst x-intervall (gröna området från 0 till drygt 3). I figuren är funktionen sin(x)/x och intervallet är 0 till π (exakt i förra meningen skrev jag "drygt 3"). Pi (π) är här en vinkel uttryckt i vinkelmåttet radianer (förklaras i min artikel om klassisk fysik), vilken uttryckt i grader är lika med 180° (ett varv är lika med 2π radianer). Integraler kan ofta beräknas strikt matematiskt, eller som man också säger, analytiskt. Ett analytiskt resultat är i princip exakt. Det analytiskt beräknade värdet för integralen av sin(x)/x i intervallet 0 till π är 1,851937 (avrundat till sex decimaler) och finns angivet i högra figuren ovan. För att beräkna denna integral behövs inte montecarlometoder, eftersom vi relativt enkelt kan beräkna den analytiskt. Vilket är önskvärt, eftersom vi vill kunna jämföra våra montecaroloberäkningar med "facit".
För att ta fram integralen till en funktion (integralen är själv en funktion) analytiskt, måste man ta fram funktionens s k primitiva funktion (som är lika med motsatsen till derivata, dvs deriverar man den primitiva funktion till en funktion får man funktionen själv som resultat, dvs först integrering och sedan derivering av en funktion, eller vice versa, tar ut varandra). T ex är den primitiva funktionen till f(x)=x2 lika med funktionen F(x)=x3/3 (ofta använder man motsvarande stora bokstav för att beteckna den primitiva funktionen). Och deriverar vi x3/3 får vi tillbaka x2. Ur den primitiva funktionen kan integraler mellan olika x-värden enkelt räknas ut.
Sin-1(x) är inversa funktionen (gör motsatsen) till sinus (dvs sin-1(sin(x))=x, eftersom om man först tar funktionen och sedan dess invers, tar de ut varandra). Integralen av funktionen sin-1(x) mellan 0 och 1 kan beräknas analytiskt och blir π/2-1 (≈0,570796...). Detta värde (dvs π/2-1) är exakt. Montecarlometoder kan givetvis aldrig ge exakta värden utan ger närmevärden som avrundas till lämpligt antal värdesiffror (beroende på hur noggranna beräkningar man vill göra).
Den grekiska bokstaven π (pi) är inget tal utan en symbol för ett tal. När man använder π i numeriska beräkningar måste man således sätta in ett numeriskt värde för π. I praktiken, när man skall använda beräkningsresultat för t ex tekniska tillämpningar, så finns 3 möjligheter:
1. Resultatet är exakt och kan yttryckas som exakta tal (numeriska värden), typ 1,5, 14/11, 61,543825434. I detta fall använder man det exakta värdet. Eventuellt avrundat till ett lämpligt antal decimaler (om det exakta värdet innehåller onödigt många decimaler).
2. Resultatet är exakt och uttrycks med hjälp av en eller flera symboler (som kan vara konstanter eller funktioner) eller som en kombination av symboler och exakta tal, typ π, kvadratroten av 2, sin(π/3)-1 etc. Här måste man sätta in numeriska värden för symbolerna med lämpligt antat värdesiffror, t ex π ersätts med 3,14 eller 3,14159.
3. Resultatet ges av närmevärden som uttrycks av oändligt många värdesiffror och måste avrundas till lämpligt antal.
I samband med montecarlometoder handlar det om 3 ovan och när det gäller exakt beräkningsbara integraler (genom primitiva funktioner) är det 1 och 2 som gäller. När man använder ett resultat i teoretiska beräkningar är det givetvis en stor fördel att ha ett exakt värde. Den teoretiska matematiken är ju ett symbolspråk och att handskas med symboler är inga problem. Men när man vill räkna fram numeriska resultat måste man använda numeriska värden (bestående av siffror). Om kaptenen på ett fartyg frågar styrmannen om avståndet till den hamn de är på väg till, vill inte kaptenen ha ett svar av typ, "2 pi gånger kvadratroten av 3 delat med sinus trettio grader nautiska mil", även om det är det exakta svaret. Det svar han vill ha är av typ "cirka 21,8 nautiska mil".
En hel del integraler som dyker upp när man arbetar med t ex fysik kan inte beräknas analytiskt. Eller det är väldigt svårt att göra det. Eller vi kanske har mätdata som inte kan representeras av någon känd funktion. Det är då montecarlometoder kan vara användbara. Principen är att man skriver in grafen i en rektangel, vilket gjorts i figuren. Denna rektangel har i fallet ovan bredden π längdenheter (börjar i 0 och slutar i π≈3,14) och höjden 1 längdenhet. Egentligen är sin(x)/x inte definierad för x=0, eftersom vi då har noll i nämnaren, vilket är förbjudet. Men gränsvärdet för sin(x)/x när x går mot 0 är lika med 1. Därför tillåter vi även x=0 i denna funktion (eftersom motsvarande y-värde är definierat och lika med 1). Att funktionen har värdet noll för x=π beror på att sin(π)=0. Rektangelns area är lika med dess längd gånger dess höjd och blir π areaenheter (längden ⋅ höjden=π⋅1=π).
Nu slumpgenererar vi punkter i rektangeln. En del av dessa punkter kommer att ligga över grafen och andra under. Genererar vi t ex 3 punkter kanske alla 3 ligger ovanför eller under grafen. Men genererar vi miljoner punkter så kommer de, enlig de stora talens lag, vara jämnt utspridda över hela rektangeln. Detta görs av ett datorprogram som håller reda på hur många punkter som ligger ovanför grafen och hur många som ligger under. Bilden ovan utgör en ögonblicksbild av processen efter att 314028 punkter genererats. 128820 av dessa ligger ovanför grafen medan 185208 ligger under grafen (128820+185208=314028). Om punkterna är jämt fördelade, vilket de är om datorns slumptalsgenerator är bra, så kommer förhållandet mellan antalet punkter i det gröna området (under grafen) och antalet punkter i hela rektangeln att vara lika med förhållandet mellan den gröna arean och rektangelns totala area. Och den senare har vi ju redan beräknat (i föregående stycke).
I den högra delen av bilden visas hur simuleringen fortskrider. Vi ser att i början så svänger värdet enormt (det är ju så sannolikheter fungerar).
Sannolikheten när man kastar tärning att få en sexa är 1/6. Dvs gör man 6000 kast kommer ca 1000 av dem att vara en sexa (stora avvikelser från detta är osannolika). Men gör man 6 kast kanske man får 3 sexor. Och enstaka gånger 6 sexor. Men att få 6000 sexor i rad inträffar aldrig (i så fall är det något fel på tärningen). Metoder som bygger på sannolikheter måste således bygga på ett stort antal "försök". Vid ett litet antal försök kan resultatet skilja sig dramatiskt från vad sannolikhetsläran förutsäger. Ju fler försök (kast) vi gör desto bättre stämmer de statistiska förutsägelserna (vilket gå att bevisa). Det är detta som kallas de stora talens lag.
I figuren ser vi att integalens värde börjar stabilisera sig efter ca 200000 slumppunkter.
För att beräkna integralen (arean under grafen) tar vi antalet punkter under grafen och dividerar det med totala antalet punkter i rektangeln. Då får vi hur stor del det gröna området utgör av hela rektangeln, dvs:
(som anges som "Nuvarande uppskattning" i den högra delen av figuren). Detta är det nuvarande, approximativa värdet på integralen (efter ca 314 tusen slumpunkter). Vi ser att detta värde ligger ganska nära det korrekta värdet (analytiskt beräknat till 1,851937). Hittills har vi således tre värdesiffror korrekta. Fortsätter vi att generera slumppunkter får vi fler och fler korrekta värdesiffror. Dvs varje värdesiffra kostar pengar (man får betala ca 30 000 kr/timme för att använda en superdator). Kostnaden har knappast någon betydelse i exemplet ovan, eftersom en vanlig skrivbordsdator kör en sådan beräkning på runt en millisekund. Men vid komplexa problem kan även en superdator få stå och tugga en stund.
Normalt beräknar man som sagt areor under funktionsgrafer genom att använda integraler. Montecarlometoder har inget med integraler att göra, utan är ett pragmatiskt sätt att göra olika typer av beräkningar, som inte kan göras med konventionella metoder (i föreliggande fall beräknar vi areor). Ungefär som att man i stället för att använda geometriska satser (Pythagoras sats och liknande) för att ta fram sidor och vinklar i en triangel, mäter dessa med linjal och gradskiva. Vilket inte blir särskilt exakt. Det fina med montecarlometoder är att man kan få hur noggranna resultat som helst om datorn får stå och tugga tillräckligt länge. Plus att man får en indikering på noggrannheten genom att man kan se hur lösningen stabiliserar sig (fler och fler decimaler "låses", dvs förblir desamma när iterationerna fortgår). Vilket tydligt framgår av högra delen av figuren ovan.
Sammanfattning: Att beräkna integraler ligger inom ett matematiskt område som kallas analys. Exemplet ovan försöker visa hur datorer kan lösa matematiska problem som hör till ren matematik, enbart genom att använda sannolikheter och statistik (som är starkt hopkopplade). Och utan att använda matematik inom det område där problemet hör hemma. Normalt när man beräknar integraler använder man analytiska metoder, vilka bygger på logik. Metoden ovan är inte analytisk. Den handlar bara om statistisk fördelning av slumppunkter och har inget med analys att göra. I vårt fall kunde integralen beräknas analytiskt och det behövs inga montecarlometoder. Jag har valt denna funktion av rent pedagogiska skäl. Eftersom integralen kan beräknas exakt kan vi jämföra det värde vi kommer fram till genom montecarlometoden med det korrekta värdet.
Även om montecarlometoder inte har så mycket med neurala nätverk att göra, så visar de på liknande principer, dvs hur man på helt andra vägar kan lösa matematiska och andra problem. Precis som neurala nätverk, där man inte använder logik för att dra logiska slutsatser, utan i stället använder statistiska korrelationer för att dra slutsatser som normalt bygger på logik (se huvudartikeln om AI/AGI och artikeln om neurala nätverk). Logisk slutledning kan givetvis aldrig helt ersättas med statistiska korrelationer, varför AI/AGI baserade på neurala nätverk ibland kommer att dra helt absurda och felaktiga slutsatser.
Tillbaka till huvudartikeln "Neurala nätverk"
Tillbaka till huvudartikeln "Artificiell intelligens (AI/AGI) vad är det?"
Tillbaka till huvudartikeln för avdelningen "Vetenskap och tro"