Liswi948, Lisa Widerberg, liswi948 Fördjupningsarbete Linköpings Universitet 729G43, Artificiell Intelligens

Relevanta dokument
729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

Ett Neuralt Nätverk Tittar På Kläder

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

729G43. Neurala faltningsnät MASKINSYN PÅ SVENSKA VENDELA FOLKER ÅKERLIND

Google Assistant & WaveNet

Neurala nätverk och språkigenkänning. Henrik Linnarsson. Linköping University

Artificiell Intelligens den nya superkraften

de var svåra att implementera och var väldigt ineffektiva.

Vad är Artificiell Intelligens (AI) Olika typer av AI och deras användningsområden Innovation med hjälp av AI Framtiden och etiska frågeställningar

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

Algoritmer och maskininlärning

Statistisk mönsterigenkänning

Sub-symbolisk kognition & Konnektionism. Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén,

ARTIFICIELLA NEURALA NÄT. MARCO KUHLMANN Institutionen för datavetenskap

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

Perception och Maskininärning i Interaktiva Autonoma System. Michael Felsberg Institutionen för systemteknik Linköpings universitet

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann

Föreläsning 7: Klassificering, minsta kvadratproblem, SVD, forts.

Grafiska pipelinens funktion

EnBlightMe! - ett automatiserat stödsystem för upptäckt av potatisbladmögel

Artificiell Intelligens Lektion 7

Vindkraft och ML. - hur kan vindkraft dra nytta avml

Matcha rätt hjärta till rätt patient med AI. Dennis Medved

Maskininlärning med boostrapping. Maskininlärningslabb i Språkteknologi

Ansiktsigenkänning. Anna Ericsson Linköpings Universitet Linköping

Enlagersnät Flerlagersnät Generalisering. Artificiella Neuronnät

med hjälp av Deep Reinforcement Learning

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

SHAZAM! En!smart!musiktjänst! Linha108! Fördjupningsarbete!729G43!

Inlärning utan övervakning

Ansiktsigenkänning med MATLAB

SIMD i Intel s P5- baserade Pentium MMX

TEM Projekt Transformmetoder

Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation

Jämförelse av skrivtekniker till cacheminne

Artificiella Neuronnät

ANN fk. Örjan Ekeberg. Framåtkopplade Nät. återkopplade nät. Olika arkitekturer. BackPropagation through Time. Kalman-Filter tekniker

Hierarchical Temporal Memory Maskininlärning

Emma Hallstan Emmha584

Igenkänning av bilddata med hjälp av Kohonen-nätverk, samt beskrivning av program

Linköpings universitet

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

HAND TRACKING MED DJUPKAMERA

Projektion av träningsdata på aktuell underrum av dim 1. Föreläsning 7: Klassificering, minsta kvadratproblem, SVD, forts.

Bildbehandling i frekvensdomänen

Att programmera en Beethoven

729G43 Artificiell intelligens (2016) Maskininlärning 1. Marco Kuhlmann Institutionen för datavetenskap

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

Grafiska pipelinen. Edvin Fischer

x 23 + y 160 = 1, 2 23 = ,

! "# # # $ # " % & # # '(") " " )## (")"#*+*(, ( - " ' # (") #. % % /

HI1024 Programmering, grundkurs TEN

Single-word speech recognition with Convolutional Neural Networks on raw waveforms

ATT ARBETA MED VEKTORGRAFIK

SPEECH RECOGNITION USING ARTIFICIAL NEURAL NETWORKS. Linköpings Universitet 729G43 Artificiell Intelligens

Ett enkelt OCR-system

Histogram över kanter i bilder

Martin Burström [dit02mbm] Robert Eriksson [dit02ren] Filip Sjögren [dit02fsn] Handledare: Therese Edvall Daniel Ölvebrink :13

Optimera, inte eliminera, den mänskliga hjärnan genom AI. Anna-Karin Edstedt Bonamy, MD, PhD Chief Medical Officer, Doctrin AB

729G43 Artificiell intelligens / Maskininlärning 1. Marco Kuhlmann

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Algebra och Geometri SF1624

Om intellektuell funktionsnedsättning

Mentorprogram Real diversity mentorskap Att ge adepten stöd och vägledning Adeptens personliga mål Att hantera utanförskap

HKGBB0, Artificiell intelligens

Linköpings universitet

Flervariabel Analys för Civilingenjörsutbildning i datateknik

Vektorer, matriser, nätverk - några elementa

Datalogiskt tänkande för alla

FAKTAAVSNITT: ARBETSMINNETS UTVECKLING OCH KOPPLING TILL ANDRA FÖRMÅGOR

Ventilen. Nytt på IT- fronten. System som kan göra intelligenta saker, såsom att efterlikna mänskligt beteende och tänkande

Fingerprint Matching

Från ljusenergi till en kub som går att stå på Hur man får en dator att känna igen olika former i visuell information

Projekt i bildanalys Trafikövervakning

MARTIN ISAKSSON KTH SKOLAN FÖR ELEKTRO- OCH SYSTEMTEKNIK

Laboration 4: Digitala bilder

Optimering av hyperparametrar till artificiella neurala nätverk med genetiska algoritmer.

Kandidatuppsats. Jämförelse mellan neurala nätverk baserad AI och state-of-the-art AI i racing spel. Simon Karlsson, Christopher Jensen

Case-based resoning. och dess användning inom sjukvården. Linköpings universitet Artificiell intelligens II 729G11 HT 2011

Matematik med QR-koder

Matematik 92MA41 (15hp) Vladimir Tkatjev

Study and Analysis of Convolutional Neural Networks for Pedestrian Detection in Autonomous Vehicles

Hört och lärt på NES2012 Session: Visual ergonomics

Neural bas för kognition

Structuring Two Dimensional Space

Personifierad Netflix

Svensk nationell datatjänst, SND BAS Online

SELF- ORGANIZING MAPS

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

UNIVERSITETSRANKINGEN FRÅN TIMES HIGHER EDUCATION 2013

Tentamen Bildanalys (TDBC30) 5p

Min syn på koncepthantering generering och utvärdering

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

Bildmosaik. Bilddatabaser, TNM025. Anna Flisberg Linne a Mellblom. linme882. Linko pings Universitet

1 Mätdata och statistik

Kristian Almgren Artificiell Intelligens Linköpings Universitet Talstyrning

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Transkript:

Lisa Widerberg, liswi948 Fördjupningsarbete Linköpings Universitet 729G43, Artificiell Intelligens 2018-01-11

Innehållsförteckning 1 Inledning 1 1.1 Bakgrund 1 1.2 Bilder som tredimensionella matriser 2 2 Feature-inlärning 3 2.1 Features och lokala receptorfält 3 2.2 Konvolutionslagret 4 2.3 Rectified linear unit (ReLU) 6 2.4 Max pooling 6 2.5 Stapling av lager 7 3 Klassificering 8 3.1 Fullt sammankopplat lager 8 4. Bakåtpropagering 10 5. Hyperparametrar 10 6. Användningsområden, diskussion och slutsats 11 Referenser 13

1 Inledning Att en människa kan förstå vad hon ser, så fort hon ser det, är för de som inte gett det närmare eftertanke en självklar färdighet. Det lärs in i barnsben, och så snart ett barn börjar prata börjar barnet också att peka på saker för att lära sig dess namn. Maskininlärning och AI har sedan dess begynnelse varit inspirerad av människans intelligens, och inte minst förmågan att lära (Welcome to the machine, 2017). 2015 var året då Microsoft vann den årliga tävlingen ImageNet Large Scale Visual Recognition Challenge (He m.fl., 2015), med deras djupa nätverk av slaget Convolutional Neural Network (hädan efter refererat till som Convolutional Neurala Nät eller CNN) som för första gången klassificerade bilder med mindre antal fel än människor (Colin Johnson, 2015). Sedan dess har CNN varit metoden i framkant inom bildklassificering, då de är mycket användbara inom computer vision i allt från robotar till utvecklingen av automatiserade bilar (Padmanabhan, 2016). I denna rapport kommer jag att studera de grundläggande delarna av ett CNN. Många variationer, nya modeller och metoder kan integreras och läggas till, men syftet med denna text är att steg för steg förstå grunderna. 1.1 Bakgrund Där tidigare modeller av neurala nät var inspirerade av människans neuroner och förmåga att lära sig, är CNNs vidare inspirerade av människans visuella cortex (ursprungligen av studierna på katter gjorda av Hubel och Wiesel 1962) (Suryani, 2017). De första Convolutional neurala nätverken utvecklades med intentionen att lösa problemet som uppstod hos de nätverk med många lager kallade Feed Foreward Neural Networks, t.ex. Multi Layer Perceptron (MLP) som då låg i framkant inom mönsterigenkänning. I dessa nätverk är alla neuroner i de dolda lagren sammankopplade med neuronerna i det föregående lagret vilket gör att parametrarna snabbt växer i antal då bilderna bearbetas pixel för pixel (Suryani, 2017). CNNs använder istället vad som kallas lokala receptorfält för att bearbeta delar av bilder, och motverkar att datan växer i okontrollerbar takt genom att inte ha fullt sammankopplade lager samt genom en metod kallad pooling. Dessa lokala receptorfält löser även ett annat stort klassificeringsproblem med MLPs. MPLs presterar bra när det kommer till att finna globala mönster, men kan inte hantera om den data den får in har transformerats spatialt på ett vis den inte fått tränas på (Gupta, 2017). CNNs är däremot bra på detta, vilket kallas att de är translation-invariant. 1

För att ett CNN ska fungera och ge goda resultat krävs stora träningsdatamängder och därmed även stora resurser för beräkningen (Cheng m.fl., 2015). Detta är den stora anledningen till att CNNs inte förrän nu visar stor framgång, även fast konceptet funnits sedan innan 1990-talet (Padmanabhan, 2016). Stora handannoterade datamängder för träning finns nu tillgängliga för allmänheten, speciellt via ImageNet, som även årligen håller en tävling (ILSVRC) i bildklassificering och angränsande områden som t.ex. objektigenkänning (Simonyan & Zisserman, 2015). Utöver detta har den utvecklade prestandan hos grafikprocessorer (eng. graphics processing units/gpu) även gjort det möjligt att hantera de stora beräkningarna av CNNs på ett effektivare sätt än tidigare. CNNs kraft ligger som nämnt i att ta hänsyn till spatialt ordnad data. Detta betyder att all data som får sin signifikans av just ordningen är lämplig att applicera detta nät på. CNN kan utöver bildklassificering därför appliceras på till exempel text, ljud och video (Rohrer, 2016). Denna rapport är dock avgränsad till 2-dimentioella CNNs för bildklassificering. 1.2 Bilder som tredimensionella matriser När en dator ser en bild ser den en matris av tal, pixel för pixel (Rohrer, 2016). För att se om två bilder är desamma skulle man kunna jämföra dessa tal. Detta skulle dock resultera i ett mycket oflexibelt system där minsta variation i bilderna skulle resultera i att systemet inte med säkerhet kan veta om de matchar varandra. Detta nät skulle alltså bli mycket specifikt, och därmed relativt oanvändbart på verklig, varierande data. Convolutional neurala nät är därför skapta för att tackla detta genom vad som kallas featureinlärning, och sedan avslutas det med en klassifikation (Raval, 2017). Där man i vanliga fall ser bilder som tvådimensionella matriser är det i detta fall bra att se dem som tredimensionella med pixelhöjd, pixelbredd, och djup. Djupet är bildens färgkanaler, för svartvitt är det två och för färgbilder är de tre (rött, grönt och blått). Dessa representerar alla pixlar i bilderna tre gånger och har tal mellan 0-255 som representerar hur mycket av varje färg varje pixel har. 2

2 Feature-inlärning 2.1 Features och lokala receptorfält Fig. 1, Features, (Rohrer, 2016). Istället för att jämföra hela bilder så jämförs och matchas i CNNs delar av bilderna med specifika egenskaper (Olah, 2014). Dessa egenskaper kallas features. En feature kan till exempel vara en kant, en form, en textur, en färg eller kontraster mellan färger. Vad dessa i slutändan blir är något som nätverket lär sig självt (se Bakåtpropagering sid. 8) och utgångspunkterna för vad dessa features är randomiseras. Featuren har ett visst pixelmått som bildar ett kvadratiskt fönster som kommer flyttas och matchas till alla delar av input-bilden (Coors, 2016). Detta fönster är vad som kallas lokalt receptorfält (eng. local receptive field) och är inspirerat av människans visuella cortex, där neuronerna är lokalt känsliga för specifik visuell input. Det är det lokala receptorfältet som möjliggör att den spatiala informationen behålls intakt i CNNs, då dessa endast är sammankopplade med ett fält av neuronerna i kommande dolda lager i nätet. Storleken är vanligtvis endast några pixlar bred och en pixel djup, t.ex. 3x3x1 (Rohrer, 2016). Djupet 1 betyder att en feature endast matchas till en färgkanal i taget (Suryani, 2017). Detta lokala receptorfält skjutas över hela bilden tills att alla delar har blivit granskade, vilket möjliggör att samma feature kan användas för att upptäcka mönster på flera delar av samma bild (Nielsen, 2015a). Detta görs med alla features på alla djup (färgkanaler) i bilden. Fig. 2, Lokalt receptorfält, (Nielsen, 2015a) 3

2.2 Konvolutionslagret Beräkningen som nu kommer utföras för att matcha alla features (en i taget) till inputbilden kallas konvolution eller faltning (eng. convolution) (Rohrer, 2016). I korthet går detta ut på att pixel för pixel i alla lager, med hjälp av det lokala receptorfältet, se om en feature finns (och till vilken grad den finns) i alla delar av bilden. Där matchningen är stor kommer resultatet att vara ett högt positivt tal, och där matchningen inte finns alls kommer resultatet vara ett lågt tal. Dessa outputs skapar en filtrerad bild, en featurekarta (ibland kallat aktiveringskarta), som visar var denna feature finns i bilden. Konvolution är den operation som kombinerar två separata dataset till ett nytt, i detta fall ursprungsbilden med alla features för att skapa featurekartorna (Raval, 2017). Fig. 3, Feature-matchning, (Rohrer, 2016) Konvolutionen räknas ut genom att varje pixel i receptorfältet (featuren som ska matchas) får ett tal (Rohrer, 2016). I en svartvit bild där pixlarna är antingen totalt svarta eller vita skulle dessa t.ex. få antingen -1 (svart) eller 1 (vitt), se fig. 3. Detta fönster jämförs sedan pixel för pixel med input-bilden genom att pixlarna på samma position multipliceras med varandra. Om båda är svarta kommer svaret bli 1 (-1x-1) och om båda är vita kommer svaret också bli 1 (1x1). Om de däremot inte har samma tal kommer resultatet bli -1 (1x-1). Dessa resultat sparas på samma position som pixlarna som jämförts. Om bilden inte är helt svartvit, alltså inte har endast två diskreta värden, kommer talen att vara kontinuerliga flyttal mellan dessa. Fig. 4, Konvolution, (Gupta, 2017) 4

Fig. 5, Featurekarta, (Rohrer, 2016). Fig. 6, Featurekartor, (Rohrer, 2016). När den första matchningen av featursen är klara utförs ytterligare en beräkning, ibland kallat filtrering (Rohrer, 2016). Detta görs genom att talen adderas med varandra som i fig. 4, eller som i exemplet i fig. 5 och 6 där de sedan divideras med antalet pixlar. Om alla pixlar har matchat varandra exakt kommer detta (i exemplet i fig. 5 och 6) resultera i 1 ((1+1+1+1+1+1+1+1+1)/9=1), en perfekt matchning som betyder att denna feature finns exakt på den platsen i bilden. Om det däremot t.ex. var två pixlar som inte matchade kommer beräkningen att ge svaret 0.55 ((1+1+1+1+1+1+1+(-1)+(-1))/9=0.55). Om svaret är nära -1 här betyder det att bilden är en motsats av featuren, och om det är nära 0 finns ingen matchning alls. Detta görs med hela bilden, vilket är vad som kallas konvolution, och sedan igen med alla features som ska matchas. Outputen av konvolutionslagret blir en uppsättning av dessa filtrerade bilder, se fig. 6. Det blir lika många featurekartor som features man letat efter. Lägg märke till att featurekartorna är något mindre i bredd och höjd, då featuren endast kan flyttas ett antal steg innan den slår i kanten till höger och längst ner, och antal steg den tar blir storleken på featurekartan (Nielsen, 2015a). 5

Parametrarna för vad dessa features i konvolutinslagret ska vara, vilka värden matrisen ska bestå av, lärs in självt av det neurala nätet för att det ska få ut den mest användbara informationen (Dettmers, 2015). Detta är nödvändigt eftersom klassificeringen av olika objekt i bilder görs bäst med olika typer av information, och kommer därmed vara individuellt för varje situation. Den mest användbara informationen för att klassificera en bilmodell kommer till exempel inte att vara färgen, utan kanske formen, men för att klassificera en blomma kan färgen däremot vara långt mer användbar information än bara formen. 2.3 Rectified linear unit (ReLU) ReLU är ett normaliseringslager med en icke-linjär funktion som konverterar alla negativa tal i featurkartorna till 0, men behåller resten av talen som de är genom funktionen f(x)=max(0,x) (Mattson, 2016). Detta görs för att inlärda värden senare inte ska fastna kring 0 eller gå mot oändligheten (Rohrer, 2016), vilket skulle få matematiken att gå sönder, samt för att nätverket ska ha möjlighet att extrahera både linjära och icke-linjära relationer i datan (Mattson, 2016). I bakåtpropageringen betyder detta senare att inlärningen kommer ske snabbt för positiva tal och att inga negativa gradienter kommer användas för uppdateringen av vikter (Dettmers, 2015b). Denna aktiveringsfunktion är vanligast inom CNNs (Nielsen, 2015a). Det finns fler funktioner som fungerar, t.ex. Sigmoid och Tanh, men ReLU har visat sig ge bäst resultat i de flesta lägen. 2.4 Max pooling Poolinglagerts uppgift i CNNs, ibland kallat sub-sampling, är att minska storleken av featurekartorna genom att ta ut den viktigaste informationen (Coors, 2016). Detta är viktigt av flera anledningar. Genom denna metod kontrolleras overfitting hos nätverket eftersom kravet för spatial precision minskar, och det hänger mer på den spatiala relationen mellan olika features istället för faktiska positioner. Utöver detta minskar minnesåtgången mycket, eftersom datan (featurekartorna) blir mindre, vilket gör nätverken smidigare att hantera samt att det ger plats åt att göra nätverket djupare med fler lager (Dettmers, 2015a). Max pooling är den poolingmetod som har visat sig ge bäst resultat inom CNNs (Mattson, 2016). Detta görs likt konvolutionslagret genom att ett fönster av ett par pixlar, vanligtvis 3x3 eller 2x2, flyttas i vad som kallas en stride, ett antal steg i taget (Rohrer, 2016). Om striden är en pixel kommer outputen till nästa lager att vara i samma storlek som inputen, men om striden är två pixlar, vilket är vanligast, kommer storleken att bli halverad (Mattson, 2016). 6

Det är dock viktigt att hålla en balans mellan hur mycket man vill vinna i minne och hur generellt man låter nätverket bli. Ju större stride man väljer, desto mer spatial information går förlorad, och desto mer generellt blir det. Fig. 7, Max pooling, (Gupta, 2017) Max pooling sker genom att det största talet inom fönstret plockas ut för varje stride, och dessa skapar sedan en ny filtrerad version av den featurekarta som var inputen (Rohrer, 2016). Denna version behåller alltså samma mönster men är mer kompakt, se fig. 7. Om inputen är flera featurekartor görs max poolingen på alla dessa och fortsätter hålla dem isär i outputen. Ytterligare en metod för att undvika overfitting, som är vanlig att ha med inte nödvändig, är en funktion som regulariserar datan, kallad drop-out (Raval, 2017). Denna metod gör att slumpvis utvalda neuroners output sätts till 0. Detta betyder för nätverket att det tvingas lära sig nya sätt att känna igen mönster, och kan då inte förlita sig på enstaka neuroner med starka vikter. 2.5 Stapling av lager Dessa tre sorters lager, konvolutionslagret, ReLU-lagret, och max-poolinglagret är de komponenter som oftast finns med i CNN (Dettmers, 2015a). Eftersom outputen från dessa lager har samma dimensioner som inputen de tar kan dessa läggas efter varandra i flera omgångar. Ju fler konvolutionslager man har desto mer abstrakt blir informationen som filtreras ut, och ju fler pooling-lager man har desto mer kompakt och generell blir datan (Dettmers, 2015, Rohrer, 2016). Detta resulterar i att featuresen som tas ut blir mer och mer komplexa, då de behandlar större och större delar av bilderna i taget. Lägre/tidigare lager representerar alltså enklare features, t.ex. prickar, linjer och kanter, och högre upp har dessa ökat i komplexitet och representerar hela mönster och former. Vanliga variationer i dessa lager för CNNs kan vara allt från små nät: 7

Till djupare staplingar: Konvolutionslager à ReLU à Pooling à Klassificering Konvolutionslager à ReLU à Konvolutionslager à ReLU à Pooling à Klassificering Dessa kan varieras som man önskar. Till exempel hade vinnaren av ILSVRC år 2014 som mest 16 konvolutionslager (följt av ReLUs) och totalt 5 max-pooling-lager efter några av dessa (Simonyan & Zisserman, 2015). Detta var möjligt genom att de höll nere antal parametrar och vikter via användningen av små receptorfält (3x3 pixlar). 3 Klassificering 3.1 Fullt sammankopplat lager Den sista komponenten i ett CNN består av minst ett fullt sammankopplat lager, som utformas på samma sätt som i vanliga neurala nät (Raval, 2017). Även dessa kan läggas flera efter varandra för att bilda ett djupare nät. Att lagret är fullt sammankopplat betyder att alla neuroner i lagret innan är sammankopplade med alla neuroner i detta lager, men inga av dessa är kopplade till varandra inom det fullt sammankopplade lagret. Målet med det fullt sammankopplade lagret är att omvandla den hittills framtagna datan till probabilitet, eftersom målet med hela nätverket har varit att kunna klassificera bilder. I detta lager blir de tidigare tvådimensionella matriserna av siffror som bildar de filtrerade bilderna istället listor (vektorer) (Rohrer, 2016). Varje position i denna lista har en viss vikt mot en specifik output, alltså en viss klassificering av bilden. Neuronerna i outputlagret från det fullt sammankopplade lagret är lika många som antalet av de kategorier hela nätet ska kunna klassificera (Mattson, 2016). Detta kan se ut såhär: 8

Fig 8. Vikter mot en klass, (Edureka, 2017). I detta exempel (fig. 8), är det vissa positioner i denna lista som kommer ha höga tal om outputen är en specifik klass, här ett X (Edureka, 2017). Vilka dessa blir är inlärt. På samma vis kommer nätet att lära sig vilka andra positioner som tillsammans alla kommer ha höga tal för andra klasser. Dessa positioner kommer för ny input att adderas ihop och divideras med summan av samma positioner från listan med den specifika klassen (se fig. 9) för att få ett medelvärde av nätets gissning för respektive klass. Fig 9. (Egen redigering i rött, Edureka, 2017). I fig. 9 visas ett exempel på detta. De positioner som är starka för X adderas ihop, och divideras med summan av samma positioner hos facitbilden (Edureka, 2017). Resultatet blir att nätet tror att inputbilden är ett X med 91% säkerhet. Detta jämförs till sist med alla 9

sannolikheter för andra klassificeringar, varpå den med störst sannolikhet tas ut. Detta ger oss den mest sannolika klassen bilden enligt nätverket tillhör. En funktion som används för att göra dessa operationer, att omvandla input-matriserna till probabiliteter för varje enskild kategori, är Softmax (Deshpande, 2016). En softmax-output för 10 möjliga klasser kan till exempel se ut såhär för klassificering av siffror: [.05,.1,.0,.0,.75,.1,.0,.0,.0,.0]. Denna output kan ses som en sannolikhetsfördelning och betyder här att nätet tror att bilden den fått är en fyra med 75% säkerhet. Adderar man ihop resterade sannolikheter blir summan av en softmax-funktion alltid 1. 4 Bakåtpropagering Som tidigare nämnts finns det i nätverket vissa parametrar som lärs in av nätverket av sig självt, som inte bestäms av designern för hand. Dessa är framför allt vilka features som tas ut för klassificeringen och alla viktvärden mellan neuronerna, t.ex. vilka neuroner som ska ha stark vikt mot en viss klassificering (Raval, 2017). Detta görs genom att granska det fel som nätet gör varje gång det tränas på en bild (Rohrer, 2016). Om nätet kommer fram till att bilden föreställer en hund med.92 probabilitet, och en katt med.01, och det enligt facit är en hund, är det totala felet.09 (.08+.01). Detta propageras sedan bakåt i nätet, vilket uppdaterar vikterna och featursen, genom gradient descent. Hur mycket de uppdateras beror på hur stort felet har blivit, och en parameter som kallas learning rate som bestäms av designern. Målet med detta är att hitta de förändringar som minskar felet i outputen, och genom många iterationer uppnås tillslut nätets minsta möjliga fel där det presterar så bra det kan (Mattson, 2016; Rohrer, 2016). 5 Hyperparametrar Hyperparametrar är de parametrar som nätverket inte kan lära sig självt och som därför designern bestämmer. Att bestämma hyperparametrarna är inte en simpel uppgift, och är speciellt svårt om nätet är stort och djup (Nielsen, 2015b). I konvolutionslagret rör dessa parametrar featursen, både antal och dess pixelstorlek (Rohrer, 2016). I pooling-lagret bestäms fönstrets storlek och dess stride. I de fullt sammankopplade lagerna är det antalet neuroner som ska bestämmas. Även learning rate i bakåtpropageringen, vilken regulariseringsparameter nätet ska använda och vilken initialisering av neuronernas vikter som ska användas är sådant som designern måste besluta. Utöver detta är det även en 10

fråga om, som tidigare nämnt, hur djupt nätet ska vara och hur många av varje sorts lager det ska finnas, samt i vilken ordning. Även om alla dessa nämnda parametrar fortfarande spelar in, fann Padmanabhan (2016) att en ökning antalet konvolutionslager påverkade prestationen av deras CNN positivt. Att djupet hade stor påverkan på prestationen var även något vinnarna av ILSVRC år 2014 fann, med ett djup på 19, och vidare analyserade vinnarna av samma tävling år 2015 hur man kan tackla de nya problem som uppstår vid CNNs så djupa som med 152 lager (He m.fl., 2015). Det He m.fl (2016) ville understryka var att maskininlärning med neurala nät inte endast var en fråga om djup. Eftersom hyperparametrarna i CNNs är många kan det vara svårt att veta vilka det är som skapar problem i ens nätverk, och därmed svårt att veta vilka som bör ändras (Nielsen, 2015b). När detta händer finns det inga regler att följa, och inte heller ett fast värde där man vet att nätverket är så optimalt det kan bli, eftersom detta alltid kommer att variera mellan alla nät (Rohrer, 2016). Det finns däremot allmänna metoder som tenderar att fungera bra, och de största framstegen som görs inom CNNs idag bygger på att hitta nya och bättre kombinationer av dessa parametrar. Dessa kan behandla de parametrar som redan finns, men forskarna i framkant är de som även lyckas integrera nya sorters lager och funktioner. Ett tillvägagångsätt som visat sig ge goda resultat, och som därför inte är ovanligt, är att låta fler enskilda CNNs lära sig av samma data, och sedan rösta om vilken klassificering som är rätt (Nielsen, 2015a). Det är relativt intuitivt att förstå att detta skulle kunna minska antal fel, då sannolikheten att alla separata nätverk gör samma fel inte är lika stor som sannolikheten att ett ensamt nätverk gör fel. 6 Användningsområden, diskussion och slutsats Det är nu när CNN och andra neurala nät visar på hög träffsäkerhet som både företag och andra aktörer börjar känna sig bekväma med att integrera dessa i deras verksamheter. I detta läge bör de enligt mig i första hand, eftersom detta fortfarande är relativt nytt, endast användas som beslutsstöd, men bara detta kan skapa stor effektivisering samt säkerhet inom många områden. Ett exempel på hur CNNs kan användas för effektivitet är Microsoft Azure (Lösningsarkitektur: Bildklassificering med CNN-nätverk (Convolutional Neural Network), (hämtad) 2018). De använder ett CNN med sista lagret ersatt av ett beslutsträd för att 11

klassificera bilder av nyproducerade kretskort som godkända eller icke godkända. Detta resulterar i att mänsklig expertis endast behöver appliceras på de som klassas som icke godkända av nätet för att göra den slutgiltiga bedömningen. Inom vården har CNNs fått stor uppmärksamhet i frågor rörande hudcancerdiagnostisering (Esteva m.fl., 2017). Dessa har visat sig kunna klassificera hudcancer korrekt i högre grad än experter, vilket ger stora förhoppningar för framtidens tillgänglighet av sjukvård. Detta kan med andra ord betyda att fler människor i framtiden kommer ha finansiell möjlighet att få denna livsavgörande vård. Detta är ett område där jag personligen anser att teknikutveckling är som allra viktigast. Dessa hjälpmedel är då inte bara en effektivisering som gynnar företag, utan de kan till och med rädda liv. En aspekt som jag ser som ett spännande skift är hur framgångar inom detta fält nu främst tycks bero på nya idéer till skillnad från tidigare, då utvecklingen av datorers beräkningsprestanda samt tillgång till träningsdata verkar ha varit den största drivkraften. I detta läge handlar det om att optimera genom nya sätt att tänka, vilket enligt mig öppnar upp långt mer intressanta möjligheter för framtiden. Detta betyder att utbildning av fler människor och möjligtvis integrering av fler forskningsfält är vad som kommer föra dessa tekniker och idéer framåt. Utifrån mina lärdomar av detta arbete är min förmodan och förhoppning att användningen och utvecklingen av CNNs kommer ha stor positiv påverkan på framtiden. 12

Referenslista Cheng, Y., Cai, R., Zhao, X., Huang, K. (2015). Convolutional Fisher Kernels for RGB-D Object Recognition. 2015 International Conference on 3D Vision (3DV). Institute of Electrical and Electronics Engineers, Inc. Coors, B. (2016). Navigation of Mobile Robots in Human Environments with Deep Reinforcement Learning. KTH Royal Institute of Technology. Deshpande, A. (2016). A Beginner's Guide To Understanding Convolutional Neural Networks. Hämtad 2018-01-02 från: https://adeshpande3.github.io/adeshpande3.github.io/a-beginner%27s-guide -To-Understanding-Convolutional-Neural-Networks/ Dettmers, T. (2015a). Deep Learning in a Nutshell: Core Concepts. Hämtad 2018-01-02 från: https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-coreconcepts/#convolutional-neural-network Dettmers, T. (2015b). Deep Learning in a Nutshell: History and Training. Hämtad 2018-01 -05 från: https://devblogs.nvidia.com/parallelforall/deep-learning-nutshellhistory-training/ Edureka. (2017). Convolutional Neural Network (CNN) Convolutional Neural Networks With TensorFlow Edureka. Hämtad 2018-01-04 från: https://www.youtube.com/watch?v=umgj30-15_a Esteva, A., Kuprel, B., Novoa, R. A., Ko, J., Swetter, S. M, Blau, M. H., Thrun, S. (2017). Dermatologist-level classification of skin cancer with deep neural networks. Nature 542, 115 118. Doi:10.1038/nature21056. Gupta, V. (2017). Image Classification using Convolutional Neural Networks in Keras. Hämtad 2018-01-05 från: https://www.learnopencv.com/imageclassification-using-convolutional-neural-networks-in-keras/ He, K., Zhang, X., Ren, S., & Sun, J. (2015a). Deep residual learning for image recognition. CoRR, abs/1512.03385. Hubel, D. H. & Wiesel, T. N. (1962). Receptive fields, binocular interaction and functional architecture in the cat s visual cortex. The Journal of Physiology, 160(1):106 154. Johnson, R. C. (2015). Microsoft, Google Beat Humans at Image Recognition: Deep learning algorithms compete at ImageNet challenge. Hämtad 2018-01-04 från: https://www.eetimes.com/document.asp?doc_id=1325712 Mattson, N. (2016). Classification Performance of Convolutional Neural Networks. Uppsala Universitet. Microsoft Azure. (Hämtad 2018). Lösningsarkitektur: Bildklassificering med CNN-nätverk (Convolutional Neural Network). Hämtad 2018-01-08 från: 13

https://azure.microsoft.com/sv-se/solutions/architecture/image-classificationwith-convolutional-neural- networks/ Nielsen, M. (2015a). Neural Networks and Deep Learning, Kap. 6, Determination Press, Hämtad 2018-01-04 från: http://neuralnetworksanddeeplearning.com/chap6.html Nielsen, M. (2015b). Neural Networks and Deep Learning, Kap. 3, Determination Press, Hämtad 2018-01-04 från: http://neuralnetworksanddeeplearning.com/chap3.html#how_to_choose_a_neura l_network's_hyper-parameters Olah, C. (2014). Conv Nets: A Modular Perspective. Hämtad 2018-01-05 från: http://colah.github.io/posts/2014-07-conv-nets-modular/ Padmanabhan, S. (2016). Convolutional Neural Networks for Image Classification and Captioning, Department of computer science, Stanford University. Raval, S. (2017). Convolutional Neural Networks - The Math of Intelligence (Week 4), Hämtad 2018-01-04 från: https://www.youtube.com/watch?v=ftr3n7ubiue Rohrer, B. (2016). How Convolutional Neural Networks work. Hämtad 2018-01-02 från: https://www.youtube.com/watch?v=fmpdiaimiea Simonyan, K. & Zisserman, A. (2015). Very deep convolutional networks for large-scale image recognition. Visual Geometry Group, Department of Engineering Science, University of Oxford. Suryani, D. (2017). Convolutional Neural Network. Hämtad 2018-01-03 från: http://socs.binus.ac.id/2017/02/27/convolutional-neural-network/ WorldQuant. (2017). Welcome to the machine. Hämtad 2018-01-04 från: https://www.weareworldquant.com/en/thought-leadership/welcome-to-themachine/ 14