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

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

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

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

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

Ett Neuralt Nätverk Tittar På Kläder

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

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

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

Google Assistant & WaveNet

Linköpings universitet

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

med hjälp av Deep Reinforcement Learning

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

Artificiell Intelligens Lektion 7

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

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

Hierarchical Temporal Memory Maskininlärning

Artificiell Intelligens den nya superkraften

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

Självlärande Othello-spelare

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

Algoritmer och maskininlärning

Statistisk mönsterigenkänning

Vad behövs för att skapa en tillståndsrymd?

Att programmera en Beethoven

Inlärning utan övervakning

Ansiktsigenkänning med MATLAB

Neurovetenskap 30/08/2013. Kognitiv neurovetenskap. Lober. Olika färg, olika vävnadsstruktur. Hjärnbarken

Laboration 4: Digitala bilder

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

Grafiska pipelinen. Edvin Fischer

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

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

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

SELF- ORGANIZING MAPS

ARTIFICIELL INTELLIGENS (DEL 2)

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

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

NEURAL MASKINÖVERSÄTTNING

Introduktion till programmering

Registerforskning Oktober 2018, Stockholm City Conference Centre. Möjligheter med Artificiell Intelligens inom registerforskningen

DEEP LEARNING I STARCRAFT 2 AUTOENCODERS FÖR ATT FÖRBÄTTRA END-TO-END LEARNING

A B C D E F A B C D E F (3) Svar: Tabellen ger grafen:

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

Inledande programmering med C# (1DV402) Introduktion till programmering

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

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

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

HKGBB0, Artificiell intelligens

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

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

UPPGIFT 1 V75 FIGUR 1.

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

Modeller och simulering av språkprocessning

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

Projekt i bildanalys Trafikövervakning

Projektdokumentation för Othello

Kognitiv Modellering

Bildbehandling i spatialdomänen och frekvensdomänen

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

Ämnesområden. Examensarbete inom datavetenskap (1DV41E) Martin Fredriksson

Grundläggande datavetenskap 4p

Linköpings universitet

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

Datorspel med agenter som lär sig matematik utan symboler. Lena Pareto Högskolan Väst

Hur kan man CE-märka AI? PICTA workshop 29 Maj 2018

Higher education meets private use of social media technologies PERNILLA

Programmeringsuppgift Game of Life

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

Programmering för alla!

Laboration 1. Grafisk teknik (TNM059) Introduktion till Matlab. R. Lenz och S. Gooran (VT2007)

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

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

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

Parallellism i NVIDIAs Fermi GPU

Genetisk programmering i Othello

Tentamen Bildanalys (TDBC30) 5p

Prestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren

Distributed Computing

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

!!!!!!!! Googles'självkörande'bil!

Vad kan biologiskt plausibla modeller säga oss?

Programmering för alla!

Histogram över kanter i bilder

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning...

Autonoma Styrsystem. Fördjupningsarbete inom Artificiell Intelligens. Linköpings Universitet Artificiell Intelligens 729G

Föreläsning 1: Intro till kursen och programmering

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

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

Vad säger forskningen om programmering som kunskapsinnehåll? Karin Stolpe, föreståndare NATDID liu.se/natdid

Användarverifiering från webbkamera Sami Alajarva

Att hitta projekt. Björn Victor. måndag 19 mars 12

LARS ULVELAND HOPFIELDNÄTVERK FÖR IGENKÄNNING AV DEGRADERADE BILDER OCH HANDSKRIVNA TECKEN

Nyttjande av kartor och kartteknik hur ser framtiden ut? Jonas Bäckström, Sokigo AB

Artificiella Neuronnät

Vindkraft och ML. - hur kan vindkraft dra nytta avml

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

DT1120 Spektrala transformer för Media Tentamen

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

Transkript:

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

Innehållsförteckning Bakgrund... 2 Historia... 2 ImageNet... 2 Avgränsningar och språk... 3 Artificiella neurala nät... 3 Tillbakaspridning... 4 Neuralt faltningsnät... 4 Indata... 4 Kännetecken... 5 Filter... 6 Ariktektur... 6 Faltningslager... 6 Aktiveringsfunktion... 8 Kondenseringslager... 8 Helt ihopkopplat lager... 9 Användning... 10 Diskussion... 11 Referenser... 12 1

Bakgrund Historia Sedan AI blev ett eget fält på 50-talet har intresset för att bygga artificiella neurala nät varit stort i omgångar. Artificiella neurala nät är inspirerade av biologiska neurala nät, dvs. den typ av nät av neuroner som finns i hjärnan hos människor och djur. Det antogs att hjärnans neuroner fungerade binärt, antingen var av eller på, precis som en dator. Detta ledde till en stor tro på att kunna bygga digitala hjärnor. Tyvärr fanns det många problem när de artificiella neurala näten skulle byggas, men tanken har återkommit med jämna mellanrum. Det är dock först de senaste 15 åren som de artificiella neurala näten har blivit tillräckligt bra för att använda, främst på grund av att datorerna har blivit snabbare och mängden märkt träningsdata har blivit större. (Ketkar, 2017) De stora mängder träningsdata som behövs för att ett neuralt nät ska bli effektivt har dels inte funnits tidigare, och dels har beräkningskraften för att behandla dessa mängder träningsdata inte heller funnits. Mycket lossnade 2005 när det koms på att GPU-er kunde användas till neurala nät istället för CPU-er, eftersom de förra kan köra tyngre beräkningar snabbare än de senare. (Padmanabhan, 2016) Maskiner har dock alltid varit dåliga på bildigenkänning, och det är först efter 2010, i och med ImageNet och deras utmaning som stora framgångar rönts inom maskinsyn. ImageNet ImageNet är en enorm, hierarkiskt strukturerad databas med bilder som finns för att det har varit svårt att hitta lämpliga databaser att träna och testa maskinsynsalgoritmer på. Denna hierarkiska struktur består av olika koncept, mest substantiv, och varje koncept representerasav ca 400 1400 bilder. (Stanford Vision Lab, 2016) Numera innehåller ImageNet mer än 13 miljoner bilder. (Gershgorn, 2017) Mellan åren 2010 2017 hölls utmaningen Large Scale Visual Recognition Challenge (ILSVRC) som lät lag från hela världen testa sina algoritmer för maskinsyn på databasen ImageNet. I denna utmaning gällde det för algoritmerna att korrekt klassificera objekt i bilder samt upptäcka var i bilden dessa föremål fanns. 2009 innehöll ImageNet 3,2 miljoner bilder som var märkta med vad som fanns på dem. Detta behövdes för att ge bildigenkänningsalgoritmer en chans att prestera bra eftersom saker ser 2

olika ut i olika vinklar och i olika ljus, till exempel. Det visade sig att algoritmerna blev mycket bättre än tidigare när de fick träna med data från ImageNet, oavsett vad de skulle användas till senare. 2012 stod det vinnande laget ut från mängden när de hade 10 procentenheter mer precisa resultat än det näst bästa laget. Idag anses problemet för maskiner att klassificera objekt i bilder löst, med en felmarginal på 2 %, vilket är mindre än en människa. (Gershgorn, 2017) Avgränsningar och språk Tanken med denna rapport är att på ett lättbegripligt sätt och genomgående på svenska, ge en förklaring av vad ett neuralt faltningsnät (Convolutional neural network) är. Först beskriver jag artificiella neurala nät generellt för att sedan gå in mer specifikt på neurala faltningsnät, och därefter vad de används till. Eftersom denna rapport är skriven genomgående på svenska så har jag att försökt att använda detta språk så långt det går. Dock är det så att inom fältet för datavetenskap och artificiell intelligens är engelska det språk som används och många uttryck översätts generellt sett inte till svenska. De uttryck som inte redan finns på svenska har jag försökt översätta själv. Första gången ett uttryck, som är väletablerat på engelska men inte på svenska, används har jag valt att skriva det engelska ordet inom parentes strax bakom det svenska. Artificiella neurala nät Ett artificiellt neuralt nät har ett indatalager, ett utdatalager och minst ett dolt lager. Har det artificiella nätet mer än ett dolt lager så kallas det för ett djupt nätverk. Normalt är alla dolda lager fullt ihopkopplade, vilket betyder att varje neuron i ett dolt lager är ihopkopplad med alla neuroner från föregående lager och efterföljande lager. Neuronen är däremot inte ihopkopplad med några andra neuroner ur samma lager. Varje lager av neuroner tar som indata utdatat från lagret innan. (Ketkar, 2017) Neuronerna har vikter och multiplicerar dessa med indatat de får, samt summerar dessa produkter och lägger därefter till sin fördomsvariabel (bias). Eftersom neuronerna får indata från alla neuroner i lagret innan så kan detta bli väldigt många olika vikter och multipliceringar. Därefter tar aktiveringsfunktionen över och klämmer ihop denna summa till en behagligare siffra som skickas som utdata ur neuronen och därmed indata till alla neuroner i nästa lager. 3

Tillbakaspridning Neurala nät kan tränas med hjälp av tillbakaspridning (backpropagation), vilket handlar om att sprida ut inlärningen av nätet till alla dess neuroners vikter. När data bearbetas från indatalagret till utdatalagret kallas det frammatning (feed forward). När slutresultatet uppnåtts och nätet har kommit fram till ett svar så bedöms det hur pass rätt nätet har jämfört med en guldstandard. Skillnaden mellan det rätta svaret (guldstandarden) och vad nätet kom fram till, summerat och kvadrerat, kallas för felet (the error). Denna felfunktion (loss function, error function) partialderiveras med hänseende till vikten som ska justeras och det är denna paritalderivata som brukar kallas för gradienten (the gradient). (Coors, 2016) När denna felfunktion och dess gradienter används för att justera vikterna tidigare i nätverket så kallas det tillbakaspridning och detta är hur nätet kan tränas, dvs. uppdatera sina vikter. Neuralt faltningsnät Indata Ofta är indata till ett faltningsnät en kvadratisk bild, men kan även vara andra typer av data där ordningen spelar roll, till exempel spelbräden eller texter. De typer av data som ska undvikas är sådan där det inte spelar någon roll om rader (eller kolumner) byter plats med varandra, alltså lägesoberoende data. (Rohrer, 2016) Om det är en färgbild som är indata till faltningsnätverkat så går den in genom tre kanaler: rött grönt och blått. Indatat har då ett djup av 3 eftersom en digital färgbild har en röd, en grön och en blå kanal. Svartvita bilder har bara ett djup av 1. In i första lagret på faltingsnätet kommer alltså en tredimensionell volym av pixlar, höjd * bredd * djup. Alla lager därefter har även tredimensionella utsignaler och insignaler. (Karpathy, 2018) Djupet beror i senare lager på antalet filter som använts i lagret före. Det är vanligt att lägga en ram av nollor runt indatabilden. Detta brukar kallas nollvaddering (zero padding) och används för att få faltningsfiltren att passa bilden på ett snyggt sätt. Anledningen till detta är att höjden och bredden på aktiveringskartorna annars minskar för varje faltningslager som datat passerar igenom. Om vi har ett filter som är 3*3 och en bild som är 5*5 så kommer filtret, med en steglängd (stride) 1, i breddled bara kunna vara på 3 unika platser samtidigt (se figur 1). Indatat som var 5*5 blir då utdata på formen 3*3. Läggs en ram med nollor runt datat så blir denna 5*5 input egentligen 7*7, men utdatat blir 5*5 och ramen av nollor kommer inte att påverka utdatat (se figur 1). (Aghdam & Heravi, 2017) Detta 4

är användbart eftersom det inte är eftersträvansvärt att datavolymerna ska bli mindre i höjd och breddled för varje faltiningslager. Minskningen i storlek är något som vi själva vill styra över. FIGUR 1 NOLLVADDERING OCH FALTNING Kännetecken Ett kännetecken (feature) är en kant, ett hörn, en böjning eller linje som faltningsnätverket tycker är användbart i sin klassificering av bilder. Vilka kännetecken som det tränade nätet 5

använder till slut kommer det fram till själv genom tillbakaspridning. Ofta handlar det om kanter, böjningar och färgskiftningar i de tidiga lagren och utvecklas till större, tydligare kännetecken i de senare faltningslagren (cirklar, fyrkanter, ekrar, ansikten). (Hlynsson, 2017) Filter Ett filter är en samling vikter och fördomsvariabler (bias) som är gemensamma för ett skikt i faltningslagret (se figur 3 på sida 7). Filtret är kopplat till alla lager av indatavolymen, men är mindre i höjd- och breddled, typiskt ungefär 5 * 5 (dock är filtret i figur 1 bara 3 * 3 stort). Filtret behandlar en yta av indatavolymen som är lika stort som filtret. En parameter som man kan välja är hur många steg (stride) filtret ska flytta sig åt gången innan det letar efter kännetecknet igen (steglängden för filtret i figur 1 är 1). Det är detta som brukar kallas att dra (slide) filtret över indatat, som i en faltningsoperation (se figur 1). På så vis kan ett filter som kollar efter, till exempel, en diagonal linje kolla igenom hela bilden efter ett sådant kännetecken. (Aghdam & Heravi, 2017) Ariktektur I ett typiskt faltningsnätverk finns det ofta, förutom indatalager och utdatalager, också fyra olika typer av dolda lager: aktiveringslager, samlingslager, helt ihopkopplade lager och som namnet föreslår, faltningslager (Rohrer, 2016). Det finns två distinkt skilda delar i ett faltningsnätverk. Den första delen är där faltningen äger rum, aktiveringsfunktionerna normaliserar känneteckenskartorna och datat kondenseras ner med hjälp av kondenseringslager. Dessa lager kan upprepas i olika konstellationer. När kännetecknen blivit tillräckligt stora så är det dags att mata in det data man har i den andra delen av nätverket, nämligen klassificeraren. Detta är de eller det helt ihopkopplade lagret eller lagren i slutet av nätverket. (Ketkar, 2017) Faltningslager I vanliga fall är alla dolda lager i ett djupt neuralt nät helt ihopkopplade, men det som gör faltningsnätverk speciella är att de istället har faltningslager som inte är helt ihopkopplade med tidigare lager. Faltningslagrets filter är bara ihopkopplade med den data som är i dess synfält och har därför mycket färre kopplingar än andra typer av neurala nätverk (se figur 2). (Ketkar, 2017) Detta gör att färre parametrar behövs och detta i sin tur gör att det krävs mindre beräkningskraft för att hantera ett faltningsnät som inte är helt ihopkopplat. 6

FIGUR 2 FALTNINGSLAGREN ÄR INTE IHOPKOPPLADE MED ALLA TIDIGARE OCH SENARE LAGER. (VAN VEEN, 2018) Ett faltningslager består av en samling filter som letar efter olika kännetecken. Dessa utför en faltningsoperation med hjälp av de vikter som filtren innehåller. Varje neuron är ihopkopplad med varje pixel dess synfält och med alla lager i djupled på detta ställe. Ett 5*5-filter ser och behandlar alltså en del av den indata det får som är 5*5*3 stor (se figur 3). Filtret är vikterna som delas av neuronerna. (Karpathy, 2018) Figur ett förklarar även hur en faltningsoperation går till i ett faltningsnätverk. Det som händer är att filtrets vikter multipliceras med den indata neuronen får. Dessa produkter summeras och det är denna summa som utgör skalärprodukten. Dessa skalärprodukter utgör sedan utdata i form av en känneteckenskarta (feature map), även kallat aktiveringskarta. Det blir lika många känneteckenskartor som det finns filter i faltningslagret. Dessa känneteckenskartor utgör sedan indata till nästa lager. (Rohrer, 2016) FIGUR 3 (EGEN REDIGERING: RÖD OCH GRÖN RAM SAMT SVENSK TEXT, DERTAT, 2018) 7

Efter hand kommer faltningslager längre fram i nätverket att reagera på större och större mönster som det bygger ihop av tidigare lagers noterade kännetecken. Till slut kommer olika typer av objekt kunna urskiljas. (Hlynsson, 2017) Lager senare i arkitekturen reagerar eventuellt bara på vad det tror är hundar, ansikten eller vilken typ av data och vad det är vi vill att nätverket ska känna igen. Aktiveringsfunktion FIGUR 4 RECTIFIED LINEAR UNIT (KARN, 2018) Efter faltningslagret kommer aktiveringslagret där en aktiveringsfunktion behandlar datavolymen. Den aktiveringsfunktion som rekommenderas att använda som standard till faltningsnät just nu är Rectified Linear Unit (ReLU, se figur 4) (Karpathy, 2018). ReLU innebär att känneteckenskartan behandlas på så vis att de negativa siffrorna blir noll och de positiva siffrorna, och noll, förblir desamma. (Sharma, 2018) Denna typ av normaliseringslager användes vid 2012 års imagenet-tävling och är mycket snabbare att träna än den dåvarande standarden tanh. (Krizhevsky, Sutskever, & & Hinton, 2012) Aktiveringsfunktionen ReLU leder till stora och jämna gradieneter (Ketkar, 2017), detta är bra eftersom vi inte vill att gradienten försvinner. (Aghdam & Heravi, 2017) Kondenseringslager Kondenseringslagret används för att minska höjd och bredd på datavolymen och därmed också antalet parametrar. Djupet förblir detsamma. (Dertat, 2018) Som exempel: om faltningslagrets utdata med dimensionerna 4*4 ska slås samman kan detta göras med hjälp av ett filter som är 2*2 och med en steglängd (stride) av 2, vilket är det normala. (Rohrer, 2016) Vid maximalkondensering (max pooling) är tanken att i varje ruta 8

som filtret besöker så tas det största värdet och skickas som utdata, det som var 4 värden har nu kondenserats ner till ett. I exempelfallet betyder det att känneteckenskartan delas i fyra lika stora delar, och högsta värdet tas ur var och en av dessa fyra rutor (se figur 5). Djupet på datavolymen påverkas inte av kondenseringen. FIGUR 5 MAXIMALKONDENSERING (MATTSON, 2016) Maximalkondensering tycks funka bra, men även andra typer av kondensering, så som genomsnittskondensering (average pooling), förekommer (Karpathy, 2018). Antalet parametrar minskar med tre fjärdedelar vid en maximalkondensering av detta slag, men de starkaste aktiveringarna och deras placering på känneteckenskartan förblir på samma plats. Förvånansvärt nog tappas väldigt lite information när datavolymen kokas ner på detta vis (Aghdam & Heravi, 2017). Helt ihopkopplat lager Det är de eller det helt ihopkopplade sista lagret eller lagren som är den delen av nätverket som klassificerar indatabilden efter features. Hur många lager man vill att klassificeraren ska bestå av beror på vilken klassificerare som kan tänkas fungera bäst till uppgiften i fråga, till exempel en Multi Layer Perceptron eller LVM (Karn, 2018). Att detta lager är helt ihopkopplat betyder att alla neuroner i ett lager är ihopkopplade med alla neuroner i nästa lager, men inte till några neuroner i samma lager (Mattson, 2016) (se figur 2). Indata till det helt ihopkopplade lagret består av en volym känneteckenskartor som görs om till vektorer med så många dimensioner som antal möjliga kategorier för klassificering (Deshpande, 2016). Detta betyder för ett faltningsnätverk som ska ta reda på om djuret på bilden är en katt eller hund, så kommer dessa vektorer vara tvådimensionella. Denna vektor innehåller sannolikheterna för vilken klass indatabilden tillhör (Deshpande, 2016). Antalet neuroner i det allra sista lagret (output layer) är samma som det antal kategorier som man vill använda, då dessa representerar svaret på klassificeringsfrågan (Mattson, 2016). 9

Användning Faltningsnätverk, med dess förmåga till maskinsyn har många olika användningsområden, här nedan listas några exempel. Det som har varit vanligt när datorprogram ska försöka bli bra på spel är att de har använt sig av sökträd som vecklar ut väldigt många möjliga drag, detta har varit en väldigt framgångsrik strategi i spel som othello, dam och även schack. I spel som Go är det dock omöjligt att skapa så stora sökträd som skulle behövas, eftersom mängden möjliga drag är långt mycket större och ett parti brukar vara fler rundor. Tekniken måste alltså förfinas och brädet har matats in i ett faltningsnät för att reducera bredden och djupet på sökträdet. (Silver, o.a., 2016) Den modell som användes 2013 av DeepMind för att spela atarispel var ett faltningsnätverk som använde sig av Q-learning, ett slags träningsmetod för neurala nät. Dessa får videospelsskärmen som indata och har som utdata en funktion som värderar vilken handling som kommer vara mest belönande. Detta gav mycket framgångsrika resultat. (Mnih, o.a., 2013) Inom medicin finns det flera användningsområden för denna teknik inom maskinsyn. Ett exempel är AtomNet som är ett faltningsnät som används för att förutsäga bioaktiviteten hos molekyler som eventuellt kan användas som medicin (Wallach, Dzamba, & Heifets, 2015). Ett annat exempel är att hudcancer kan diagnosticeras med ett faltningsnät, med samma nivå av säkerhet som en expert (Esteva, o.a., 2017). Användningen av faltningsnätverk för att kolla om cancer spridit sig tycks ha bättre säkerhet än experter också (Liu, o.a., 2017). Ett tränat neuralt faltningsnät kan köras baklänges över en annan bild och på så vis förstärka mönster ur bilden. Detta är vad Deep Dream gjorde vilket resulterade i surrealistiska bilder och frågor kring maskiners förmåga till kreativitet (Rayner, 2016). Denna teknik har sedan även använts tillsammans med viritual reality-teknik för att modellera hallucinationer. Detta kan vara ett effektfullt sätt att studera förändrade medvetandetillstånd (Suzuki, Roseboom, Schwartzman, & Seth, 2017). 10

Diskussion och slutsats Det faktum att maskinsyn har blivit en sådan succé de senaste åren och fortsätter vara framgångsrikt inom många områden tyder på att det finns stor potential att utveckla och anpassa tekniken till ännu fler användningsområden. Då utvecklingen av denna teknik fortsätter att gå snabbt så behöver den först mogna för att sedan bli etablerad som en del av den självklara vardagstekniken, något som i viss mån redan skett. På grund av denna stora potential tror jag att denna teknik för maskinsyn kommer att vara relevant länge till innan någon annan teknik behöver börja användas till detta ändamål. Ett intressant användningsområde för neurala faltningsnät är att eventuellt, med hjälp av hjärnscanningstekniker kunna läsa tankar i någon grad (Horikawa & Kamitani, 2017). Detta är dock långt ifrån realitet i dagsläget och jag tror inte riktigt på att detta kommer att lyckas. Denna typ av möjligheter kommer dock att väcka stora etiska frågor om den visar sig framgångsrik. Maskinsynen har kommit mycket långt de senaste 10 åren och nu kan nästan vem som helst med ett teknikintresse bygga egna maskinsynsnätverk. Detta har gett stora fördelar för AI i allmänhet och för robotar i synnerhet, då syn är en fördelaktig förmåga för en varelse som rör sig ute i världen. 11

Referenser Aghdam, H. H., & Heravi, E. J. (2017). Guide to Convolutional Neural Networks. Springer. Coors, B. (2016). Navigation of Mobile Robots in Human Environments with Deep Reinforcement Learning. Stockholm, Sweden: KTH ROYAL INSTITUTE OF TECHNOLOGY. Dertat, A. (den 24 Mars 2018). Towards Data Science. Hämtat från https://towardsdatascience.com: https://towardsdatascience.com/applied-deeplearning-part-4-convolutional-neural-networks-584bc134c1e2 Deshpande, A. (den 20 Juli 2016). A Beginner's Guide To Understanding Convolutional Neural Networks. Hämtat från A Beginner's Guide To Understanding Convolutional Neural Networks: https://adeshpande3.github.io/a-beginner%27s-guide-to- Understanding-Convolutional-Neural-Networks/ Esteva, A., Kuprel, B., Novoa, R. A., Ko, J., Swetter, S. M., Blau, H. M., & Thrun, S. (2017). Dermatologist-level classification of skin cancer with deep neural networks. Nature, 115-118. Gershgorn, D. (den 26 07 2017). IT'S NOT ABOUT THE ALGORITHM. Hämtat från Quartz: https://qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-andpossibly-the-world/ Hlynsson, H. D. (2017). Predicting expert moves in the game of Othello using fully convolutional neural networks. Stockholm, Sweden: KTH ROYAL INSTITUTE OF TECHNOLOGY. Karn, U. (den 06 April 2018). An Intuitive Explanation of Convolutional Neural Networks. Hämtat från the data science blog: https://ujjwalkarn.me/2016/08/11/intuitiveexplanation-convnets/ Karpathy, A. (den 08 01 2018). Convolutional Neural Networks: Architectures, Convolution / Pooling Layers. Hämtat från CS231n Convolutional Neural Networks for Visual recognition: http://cs231n.github.io/convolutional-networks/ Ketkar, N. (2017). Deep Learning with Python. A Hands-on Introduction. Bangalore, Karnataka, India: Apress. Krizhevsky, A., Sutskever, I., & & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. Advances in neural information processing systems, 1097-1105. Liu, Y., Gadepalli, K., Norouzi, M., Dahl, G. E., Kohlberger, T., Boyko, A.,... Hipp, J. D. (2017). Detecting cancer metastases on gigapixel pathology images. arxiv preprint arxiv:1703.02442. Mattson, N. (2016). Classification Performance of Convolutional Neural Networks. Uppsala: Uppsala Universitet. 12

Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D., & Riedmiller, M. (2013). Playing Atari with Deep Reinforcement Learning. arxiv preprint arxiv:1312.5602. Padmanabhan, S. (2016). Convolutional Neural Networks for Image Classification and Captioning. Stanford University: Department of Computer Science. Rayner, A. (den 28 Mars 2016). Can Google s Deep Dream become an art machine? Hämtat från The Guardian: https://www.theguardian.com/artanddesign/2016/mar/28/googledeep-dream-art Rohrer, B. (den 18 08 2016). Data Science and Robots. Hämtat från How do Convolutional Neural Networks work?: https://brohrer.github.io/how_convolutional_neural_networks_work.html Sharma, S. (den 02 04 2018). Activation Functions: Neural Networks. Hämtat från Towards Data Science: https://towardsdatascience.com/activation-functions-neural-networks- 1cbd9f8d91d6 Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G., &... & Dieleman, S. (2016). Mastering the game of Go with deep neural networks and tree search. Nature, 529(7587), 484-489. Stanford Vision Lab. (2016). About ImageNet Overview. Hämtat från ImageNet: http://imagenet.org/about-overview Suzuki, K., Roseboom, W., Schwartzman, D. J., & Seth, A. K. (2017). A deep-dream virtual reality platform for studying altered perceptual phenomenology. Scientific Reports, 7(1). Wallach, I., Dzamba, M., & Heifets, A. (2015). Atomnet: A deep convolutional neural network for bioactivity prediction in structure-based drug discovery. arxiv preprint arxiv:1510.02855. van Veen, F. (den 24 Mars 2018). A mostly complete chart of Neural networks. Hämtat från http://www.asimovinstitute.org/neural-network-zoo/: http://www.asimovinstitute.org/neural-network-zoo/ 13