Introduktion till Autoencoders

Idag finns det tack vare samhällets digitalisering ett överflöd av data att samla in, och det är ingen hemlighet att ledande verksamheter inom en mångfald av branscher tar vara på denna data. Stora mängder data innehåller nämligen ofta information som kan användas till att skapa värde och att tackla problem på ett helt nytt sätt. Tyvärr kan informationen döljas på olika sätt av datans utformning. Ett sådant hinder är när varje datapunkt beskrivs av ett för stort antal parametrar, så kallade dimensioner. Med för många dimensioner blir det svårt för även de mest kraftfulla algoritmerna att producera meningsfulla resultat. För att ändå få ut värdet som finns i datamängden behöver de överflödiga detaljerna skalas bort så att funktionalitet byggs endast på vad som är relevant. Ett sätt att få fram den viktiga delarna är att använda så kallade autoencoders.

En autoencoder är ett speciellt utformat neuralt nätverk som ämnar att lära sig att återskapa datan den tar som input. Detta resulterar alltså i en form av datakomprimering, men autoencoders har även andra spännande tillämpningsområden som t.ex. anomalidetektering och brusreducering som beskrivs längre ner.

En autoencoder består av två delar: en encoder och en decoder. Encoderns uppgift är att komprimera datan samtidigt som så mycket information som möjligt bibehålls. Informationen har reducerats till ett mindre format med så lite informationsförlust som möjligt. Delen av nätverket där den minsta representationen av datan passerar brukar kallas flaskhalsen, som är det sista steget i encodern. Efter flaskhalsen kommer decodern, vilken tar den komprimerade datan och återskapar den till att bli så lik den ursprungliga datan som möjligt. Om decodern lyckas återskapa data som fanns från början visar det att encodern bara skalar bort överflödig information. Encodern kan då användas till att ändra formatet på datan i andra sammanhang.

En av de största fördelarna med autoencoders är att de faller under gruppen Unsupervised learning. Detta innebär att träningsdatan ej behöver vara annoterad. Att annotera data är ofta väldigt dyrt och resurskrävande, så det vill man helst undvika om det inte är absolut nödvändigt.

 

Bilden visar ett diagram för en autoencoder. Inputen går från vänster till höger, och i varje steg fram tills flaskhalsen blir datan mer komprimerad. Decodern speglar sen dimensionerna från flaskhalsen och outputen är lika stor som den ursprungliga inputen.

Nedan kommer tre exempel som demonstrerar hur autoencoders kan användas. 

Exempel 1 – Data- och dimensionsreducering

Först visat är exempel på hur autoencoders effektivt kan komprimera data tränades en modell på MNIST-datasetet för handskrivna siffror. Varje bild är 28×28 pixlar, vilket innebär att varje bild totalt har 784 pixelvärden.

Efter att vi kör datan genom vår encoder kommer datan i flaskhals-steget endast bestå av 20 datapunkter. Det är en komprimering av datan med 97.4%! De återskapade bilderna, som tydligt visar samma siffror som originalen, har alltså återskapats från endast 20 datavärden genom decodern. 

Exempel hur encodern komprimerar orginaldatan från 784 dimensioner ner till en vector med 20 dimensioner. 

Det här är den mest typiska användningen av autoencoders. Efter att ha tränat en bra autoencoder kan man t.ex. använda encoderns output som input till ett annat neuralt nätverk för att lösa en uppgift. Detta minska komplexiteten i det efterföljande nätet vilket i många fall leder till bättre resultat.
Ett annat typiskt användningssätt är att utnyttja autoencoders för att komprimera datan som ska transporteras mellan olika system. Då kan avsändaren packa datan med encodern, och mottagaren kan packa upp den med decodern. Tack vare detta minska mängden datan som behöver transporteras avsevärt.

Exempel 2 – Brusreducering 

Nästa exempel visar hur autoencoders kan användas för att ta bort brus från datan. Här har inputbilden ett synligt brus, men den återskapade bilden har avlägsnat bruset och endast den relevanta informationen kvarstår. För att få autoencodern lär sig att reducera brus då läggs till brus på inputbilden, och den ursprungliga bilden utan brus används som target variabeln i tränings steget.

Exempel 3 – Anomalidetektion

Det är också möjligt att använda autoencoders för att hitta avvikelser (anomalier) i datan. Genom att jämföra skillnaden i input- och outputdatat kan man identifiera om inputen ligger långt ifrån den önskvärda datan med avseende på träningsdatan. Vad som räknas som “långt ifrån” skiljer sig från problem till problem, och bestäms ofta med ett tröskelvärde man själv kan justera. 

I exemplet nedan kan vi se att vår autoencoder, som är tränad för att återskapa handskrivna siffror, inte alls lyckas återskapa bilderna när input istället föreställer kläder. Här är skillnaden mellan input- och outputbilderna väldigt stor och hamnar utanför det satta tröskelvärdet. Dessa bilder kan vi då markera som avvikande, bilderna på kläder innehåller ju inte siffror. Beroende på användningsområde kan man antingen rensa bort dessa eller titta närmare på avvikelserna. Detta kan t.ex.för att identifiera bedrägeri på finansiella marknader, med att identifiera när återskapad transaktion bryter tröskelvärdet på en autoencoder som är tränat med giltiga transaktioner. Om du är intresserad av att använda autoencoders för att upptäcka bedrägeri kan du se mer här.

Sammanfattning 

Autoencoders är en speciell typ av neurala nätverk som kan vara kraftfulla verktyg när användaren endast vill behålla nödvändig data, eller när annoterad data är en bristvara. Vi har visat olika användningsområden, bl.a. hur autoencoders kan användas för att avlägsna brus eller hitta anomalier i datan. Utöver de exempel vi tagit upp finns självklart ännu fler användningsområden, som t.e.x bildsegmentering.

Examensarbete inom Autonom skogsplantering, 30 hp

Är du i slutet av din utbildning inom datateknik, IT, inbyggda system, mekatronik, teknisk fysik eller liknande och letar efter examensarbete till hösten? Leta inte längre!

BIT ADDICT är ett ingenjörs- och konsultbolag med huvudkontor i Göteborg. Vi på BIT ADDICT älskar teknik och att utvecklas som problemlösare. Just nu söker vi dig som skall skriva ditt exjobb och har ett gediget intresse för mjukvaruutveckling, signalanalys, bildbehandling, och/eller matematik.

Uppgiftsbeskrivning

I projektet BraSatt, som drivs av Södra Skogsägarna, utvecklas ett fordon för att autonomt plantera gran- och tallplantor som en del i framtidens hållbara skogsbruk. BIT ADDICT ansvarar för fordonets styrsystem för autonom navigation och perception.

I dagsläget sker plantering oftast i två steg: maskinell markberedning följt av manuell plantering. Den maskinella markberedningen ökar plantornas chans till överlevnad, men är energikrävande och åsamkar skogsmarken skada. Den manuella planteringsprocessen är skonsam, men förlitar sig på planterarens kompetens och tillgång till arbetskraft.

I BraSatt vävs de två stegen samman till ett: en relativt liten skogsmaskin navigerar autonomt runt på ett kalhygge för att markbereda och plantera i ett kombinerat steg. De potentiella vinsterna för miljö och ekonomi är stora, men kräver teknisk innovation på många fronter för att realiseras.

BIT ADDICT har följande tekniska utmaningar, vilka var och en lämpar sig väl för ett examensarbete:

  1. Kamerafusion för top-down-perspektiv och människodetektion
    I moderna bilar finns funktionalitet för att se bilen från ovan, vilket är användbart vid t.ex. parkering. I BraSatt hade en sådan kameralösning kunnat användas för att detektera människor i maskinens omgivning och vidta säkerhetsåtgärder om en människa kommer för nära maskinen. Då skogsmaskinen som används är midjestyrd krävs en nyskapande lösning för att slå samman (fusionera) bildströmmar från ett flertal HDR-kameror. I den sammanslagna bildströmmen kan sedan människor detekteras.
    Relevanta (men icke nödvändiga) kunskaper: Bildbehandling, projektioner.
  2. Val av rörelseprimitiv genom optimering och simulering i 3D
    När skogsmaskinen ska välja väg använder den sig av en uppsättning garanterat farbara kommandosekvenser (s.k. rörelseprimitiver), vilka den pusslar ihop steg för steg. För att välja nästa rörelseprimitiv krävs simulering och optimering i 3D.
    Relevanta (men icke nödvändiga) kunskaper: 3D-simulering, optimering, 3D-grafik.
  3. Hinderklassificering med Lidar
    För att se sin omgivning använder skogsmaskinen bl.a. Lidar, vars punktmoln filtreras för att skapa en representation av omvärlden. På ett kalhygge finns både solida och icke solida hinder, t.ex. stenblock resp. hallonsnår. Då Lidarns laserstrålar kan genomstråla buskar men inte stenar bör det vara möjligt att särskilja solida hinder från icke solida genom att bearbeta Lidarns punktmoln på rätt sätt.
    Relevanta (men icke nödvändiga) förkunskaper: Punktmolnshantering, 3D-grafik.
Publik information om projektet BraSatt:
Vilka är BIT ADDICT?

BIT ADDICT är ett ingenjörs- och konsultbolag med fokus på att möjliggöra innovation åt kunder som är ledande inom sina respektive branscher. Vårt huvudkontor ligger i Göteborg. 

Vi erbjuder anpassade utvecklingsprojekt och konsulter inom följande specialistområden:

  • Beräkningsmjukvara
  • Sensorik & Styrsystem
  • AI & Maskininlärning

Vår specialitet är att snabbt och säkert ta oss fram i outforskad teknisk terräng. Kunderna vänder sig till oss på grund av vår förmåga att konsekvent och effektivt skapa innovativa tekniklösningar oavsett bransch, tillämpning och teknikområde.

Kvalifikationer

Vi söker dig som studerar till civilingenjör inom datateknik, IT, inbyggda system, mekatronik, teknisk fysik eller liknande. 

Relevanta förkunskaper inkluderar:

  • God programmeringskunskap inom C#, C/C++, Python, eller liknande.
  • Bekväm i Linux-miljö och med Git.
  • Kan arbeta med hårdvara, sensorer, mikrokontrollers (t.ex. Arduino), etc.
  • Intresse för fältexperiment.
Formalia
  • Omfattning: Fulltakt, 30 Hp
  • Antal personer: 1-2 
  • Start: September 2022 eller enligt överenskommelse. 
  • Arvode: Ja
Ansökningsprocess

Intresserad? Skicka in en ansökan redan idag. Intervjuer sker löpande. Du kan ansöka till oss antingen individuellt eller i par. Söker ni i par vill vi gärna ha endast en ansökan med all information. Ansökan sker genom att skicka CV, personligt brev och betyg till veronica.lilja@bitaddict.se 

Kontaktpersoner
Veronica Lilja 
Marknad- & rekryteringsansvarig 
veronica.lilja@bitaddict.se
072 703 75 37

Välkommen Victor!

Våren kom med raketfart och det har hänt mycket på BIT ADDICT de senaste veckorna. Men störst av allt är att vi har fått ett nytt stjärnskott till kollega!

Victor gjorde sin första dag hos oss för ett litet tag sedan och är nu en väletablerad BIT ADDICT-are. Victor är utbildad civilingenjör i kemiteknik och har läst på Chalmers tekniska högskola. Efter att ha jobbat inom flödessimulering valde han att byta inriktning till att jobba med IT och har sedan dess arbetat som konsult hos Ericsson med Python och Kubernetes.

Victor har ett stort teknikintresse och älskar att lära sig. På fritiden sitter han ofta med något teknikprojekt, helst ett som involverar att programmera i Rust. Han gillar även löpning och att läsa, gärna sci-fi eller berättelser med fokus på psykologi. Inom kort så kommer dock mycket att få läggas åt sidan då den efterlängtade husrenoveringen går av stapeln.  

Varmt välkommen till oss! 

Välkommen Jacob!

Vilka vårnyheter!

Precis innan påsk välkomnade vi en ny kollega till oss på BIT ADDICT. Jacob är civilingenjör i Informationsteknik från Chalmers Tekniska Högskola där han fokuserade studierna mot artificiell intelligens och maskininlärning. Efter studietiden har han arbetat som utvecklare inom både fordonsindustrin och fastighetsbranschen, med erfarenheter av molnbaserade system.

 

När han inte sitter nergrottad i sin kod så är det ljud och musik som tar extra stor plats i Jacobs liv, som både lyssnar på och skapar eget material. Vid sidan av datorn förgylls vardagskvällar och helger med en löptur eller intensiv promenad, oavsett väder.

 

Varmt välkommen till oss på BIT ADDICT! 

Välkommen Richard!

Vilket tillskott! 

Varmt välkommen säger vi till Richard som nu gjort sin första dag hos oss på BIT ADDICT. Med lång och gedigen erfarenhet inom mjukvaruutveckling så beskriver han sig själv som en ”catch all”-utvecklare, dvs en utvecklare som fixar i princip allt. En sådan behövs alltid! 

Vi är glada att äntligen ha dig hos oss på BIT ADDICT.
Varmt välkommen Richard!

Välkommen Marcus!

Välkommen Marcus!

För några veckor sedan gjorde Marcus sin första dag hos oss på BIT ADDDICT. 

Marcus bidrar alltid med ett lösningsorienterat fokus och att hitta nya perspektiv. Han prioriterar helhetsbilden och använder gärna sitt stora intresse för ledarskap för att skapa värde. En kombination av civilingenjörsutbildning i Teknisk Fysik med masterexamen i komplexa adaptiva system och studier i företagsekonomi har skapat en god grund för Marcus att utvecklas från. Senast har han jobbat med utveckling av morgondagens 5G-system.

Vidare värdesätter Marcus att spendera tid i naturen i form av att vandra, springa, segla och åka skidor. Annars kan man ibland hitta honom spelandes saxofon i en orkester eller klurandes på något knepigt sudoku.

Varmt välkomna till oss på BIT ADDICT!

Välkomna Jens & Olle!

Välkomna Jens och Olle!

Jens och Olle har sedan några veckor tillbaka påbörjat sitt examensarbete hos oss på BIT ADDICT. Båda studerar idag till Civilingenjör inom maskinteknik på Chalmers här i Göteborg.  

Utanför studierna och exjobbet så skiljer sig fritidsintressena åt. Jens hittar vi på fotbollsplanen eller i soffan med en bok i högsta hugg. Favoritförfattaren för stunden är Haruki Murakami. Olle hittar vi plinkade på keyboardet eller gitarren. När gitarren och skolböckerna läggs åt sidan så finner vi Olle i köket lagandes någon go pasta.

Jens och Olle kommer att vara en del av projektet BraSatt som går ut på att automatisera markberedning och plantering av ny skog. Examensarbetets del handlar om att identifiera bra planteringspunkter med hjälp av tekniker inom datorseende. Hittills har dom kommit en bra bit på vägen.

Varmt välkomna till oss på BIT ADDICT!

Välkommen Jonathan!

Februari börjar på bästa sätt!

Varmt välkommen säger vi till Jonathan som tidigare i februari gjorde sin första dag hos oss.

Jonathan är utbildad civilingenjör i medieteknik från Linköpings universitet. Jonathan har under de senaste 10 åren jobbat med komplexa affärssystem och högintensiva transaktionssystem som används i flertalet europeiska länder. Under åren har Jonathan haft många olika ledande roller, bland annat som lead developer och projektledare där han länkat samman flertalet partners i omfattande projekt.

Jonathan har ett stort intresse för teknik och kreativt skapande. Han spendera gärna sin fritid med familjen ute i naturen eller inne, klurandes på något tekniskt projekt. Klura på tekniska projekt är något som vi kan lova Jonathan att han kommer få göra hos oss på BIT ADDICT. 

Varmt välkommen till oss på BIT ADDICT, vi är glada att ha dig hos oss.

Välkommen Adam!

Varmt välkommen till BIT ADDICT och Göteborg säger vi till vår exjobbare Adam!

Adam studerar just nu sista terminen på Teknisk Fysik vid Lunds Tekniska Högskola och valde att packa sina väskor och lämna studentlivet i Lund för en hel vår i Göteborg och hos oss på BIT ADDICT. Han kommer under våren att skriva sitt examensarbete inom mobil bildbehandling där målet är att generera skisser på husfasader från fotografier.

Adam beskriver sig själv som resultatorienterad person och tycker om att utforska nya metod för att lösa kluriga problem. När Adam inte sitter och knappar på datorn så hittar vi honom i köket där det lagas någon god middag tillsammans med vänner. Då Adam är ny i Göteborg så går just nu mycket av tiden åt till att upptäcka vad staden har att erbjuda samt att lära sig att hitta rätt i spårvagnstrafiken.

Varmt välkommen till oss!

Välkommen Martin!

Välkommen Martin!

BIT ADDICT fortsätter att växa som aldrig förr. Tidigare i januari välkomnade vi Martin som går in som senior systemutvecklare hos oss på BIT ADDICT. Martin är civilingenjör i Teknisk Matematik från Lunds Tekniska Högskola. I sitt examensarbete utvecklade och implementerade han en algoritm för effektiv bildsegmentering för att användas inom automatisk bildanalys. Efter sin examen tog Martin sitt pick och pack och flyttade till England där han arbetade som mjukvaruutvecklare inom geofysik och seismisk inversion. Efter ett par år på andra sidan Nordsjön så lockade Sverige igen. Flyttlasset gick till Göteborg och Martin gick vidare i karriären som utvecklare inom flygindustrin där han jobbade med att optimera schemaläggning för flygbesättningar.

Om vi inte finner Martin framför datorn, kodandes så hittar vi honom antingen på frisbeegolfbanan, på cykeln eller i köket i full färd med att laga vegetarisk mat. Martin har lovat oss på BIT ADDICT att hålla i BIT ADDICTs första frisbeegolfturnering under våren när vårvärmen kommer. Detta ser vi framemot!

Varmt välkommen till oss!