AI-guiden för utvecklare - Så används det, utbildningar, kompetenser och mer
Är du som utvecklare intresserad av att slå dig in på AI? Då är ett av de första stegen att välja rätt programmeringsspråk. Vi på Demando har sett att efterfrågan på kunskap inom detta område har ökat lavinartat och har därför sammanställt en guide som borrar djupare i ämnet. Vi har bland annat tagit reda på vilket programmeringsspråk våra mest erfarna kandidater primärt använder i sitt arbete, och du får även tips om hur du kan skaffa kunskap och fördjupa dig inom ämnet.
Vad är machine learning, deep learning och AI?
Artificiell Intelligens
Sommaren 1956 hölls en konferens där de tidiga pionjärerna inom AI samlades för att prata om deras visioner om avancerade maskiner som skulle vara kapabla utföra samma typer av uppgifter som vanligtvis bara människor klarar av.
Begreppet AI har således funnits med oss länge, men fram till för några år sen var det kanske främst som inslag i dystopiska sci-fi rullar. Alla minns väl Arnold Schwarzeneggers karaktär John Connor från Terminator filmerna, eller varför inte den något mer snällare C-3PO från fantastiska Star Wars.
Definitionen för AI är alltså en dator, maskin eller ett program som kan utföra uppgifter som normalt sett kräver mänsklig intelligens. Det kan vara allt från röstigenkänning, visuell uppfattning eller beslutstagande. Mänsklig intelligens, utfört av maskiner.
Även om dagens AI ännu inte är lika utvecklad som den i Terminator och Star Wars, är det något som är hetare än någonsin med ett användningsområde som bara blir större och större. Tjänster som Apples Siri, Amazones Alexa och Googles Home är några av de tjänsterna som har flyttat AI från bioduken till vardagsrummet.
Facebook och Pinterest använder även de AI för att kunna känna igen saker som ansikten och annan typ information från bilder. Den här typen av AI kallas för “narrow-AI” och det är här vi är i dagens AI utveckling. Men hur gör man egentligen för att göra en dator eller ett program intelligent?
Machine Learning
Machine Learning eller som Arthur Samuel sammanfattade det på den där konferensen sommaren 1956: “Förmågan att lära sig utan att uttryckligen programmeras.” Man skulle kunna säga att det är en metod för att kunna uppnå “riktig” AI. Det är en teknik som använder algoritmer för att analysera data, lära sig av datan för att därefter fatta ett beslut. Istället för att för hand koda nya rutiner, tränas maskinen, eller programmet, med hjälp av en stor mängd data och algoritmer som hjälper den att “lära sig” den specifika uppgiften.
Det skulle visa sig att det “enklaste” området för machine learning var computer vision. De första lyckade experimenten var med en dator som tillslut kunde läsa av ordet och innebörden av en STOP-skylt. Men även denna till synes enkla uppgiften krävde en hel del handskriven kod.
Även om resultat var lyckat, var det långt bort från de storslagna visionerna om hur AI skulle vara.
Tid och rätt inlärnings algoritmer har visat sig vara nyckeln till framgång vilket leder oss vidare till den tredje delen i uppbyggandet av AI, Deep Learning.
Deep Learning
Artificial Neural Networks var ett nytt algoritmiskt tillvägagångssätt som myntades av de tidiga pionjärerna inom Machine Learning. Metoden hämtade inspiration från hur den mänskliga hjärnans neuroner kommunicerade med varandra.
Till skillnad från vår biologiska hjärna med neuroner som kan ansluta sig till vilken annan närliggande neuron som helst inom, har det artificiella nätverket av neuroner diskreta lager, anslutningar och riktningar för hur datan ska breda ut sig.
Låter det rörigt? Tänk så här:
Ta en bild och riv upp den i små bitar och mata in den i det första lagret i det neurala nätverket. I det första lagret delar enskilda celler vidare datan till det andra lagret. Det andra lagret kör sina rutiner och matar vidare infon till det tredje lagret. Såhär håller det på tills du har kommit till det sista lagret som visar ett resultat.
Tänk på STOP-skylten som vi nämnde tidigare. Det första lagret analyserar bitarna från bilden och drar slutsatsen att det är en skylt. Det andra lagret ser att den har en röd färg, varpå det tredje lagret läser av informationen och kommer fram till att det står STOP på skylten.
Med hjälp av alla bitarna sammanställer datorn informationen och kan på så sätt komma fram till det mest rimliga resultatet.
Tack vare den här tekniken av Deep Learning har vi idag bilar som kan köra på egen hand, vi har möjlighet att kunna se och förebygga sjukdomar, till något så enkelt som att Spotify ger oss mer träffsäkra låttips.
Att AI redan är en stor del av vår vardag som kommer att bli ännu större i framtiden råder det inga tvivel om. Så hur ska du gå till väga för att hoppa på tåget om du vill lära dig hur det fungerar? Vi hittade en bra artikel skriven av Alexis Sanders, där hon som fullständig nybörjare har listat vilka kurser hon tagit och hur du lägger upp dina studier för bästa resultat. Så här ser upplägget ut:
1. Start - ca 60h
Här får du en överblick över hur och vad Machine Learning fungerar.
- Spendera ca 3h med Jason Maye's Machine Learning 101 slidedeck: 2 years of headbanging, so you don't have to.
- 2h med Google's {ML} Recipes with Josh Gordon YouTube Playlist.
- Skriv upp dig på Sam DeBrules Machine Learnings nyhetsbrev.
- Ta dig igenom Googles egna Machine Learning Crash Course.
- När du sitter i bilen eller på bussen lyssnar du på podcasten OCDevel's Machine Learning Guide Podcast , skippa avsnitten 1, 3, 16, 21.
- Offra en helg till Kaggle's Machine Learning Track part 1.
2. Fördjupning - ca 80h
Vid det här laget bör du veta ungefär vilken intressenivå du ligger på. Följande kurser fokuserar på att tillämpa de du lärt dig från de föregående stegen.
- Försök lägga ca 10 timmar i veckan, i 7 veckor, med Fast.ai. Har du någon polare som är duktig på att sätta upp och installera AWS (Amazon Web Services) så be om hjälp, det sparar du mycket tid på.
- Fixa ett exemplar av Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems och tugga i dig de två första kapitlena, sen kan du använda resten av boken som ett komplement allt eftersom du stöter på problem.
3. Lyft blicken och bredda din kunskap - ca 115h
När du har kommit så här långt och tagit dig igenom alla de tidigare stegen kan det vara bra att lägga tid på att förstå dig på bredden i Machine Learning och skapa dig en större förståelse för algoritmer.
- Tittat på och delta i Udacity's Intro to Machine Learning.
- Ta dig igenom kursen Andrew Ng's Coursera Machine Learning.
4. Ta dig vidare
Nu har du en stabil och hyfsat bred grund av kunskap att stå på. Det är dags att fundera på hur du vill gå vidare och på vad du vill göra. Hitta ett projekt baserat på dina intressen och använd det du lärt dig för att klara dina mål.
Utbildningar
Det finns flera exempel på svenska företag som använder AI i sina tjänster, Spotify använder till exempel deep learning för att förbättra anpassade låtlistor och rekommendationer. I takt med att kompetenserna får större efterfrågan kommer även möjligheten till passande utbildningar att öka.
- Göteborgs Universitet - erbjuder en kurs i Algorithm for Machine Learning. Kursen kan dock inte tas för sig utan ingår i dagsläget i ett större kurspaket.
- Chalmers Tekniska Högskola - Här kan du läsa Datavetenskap 300p som fördjupar sig en hel del i algoritmer.
- Studentum Stockholm - Kandidatprogram för Datavetenskap på Studentum i Stockholm.
Populäraste språken för AI-programmering
Är du som utvecklare intresserad av att slå dig in på AI? Då är ett av de första stegen att välja rätt programmeringsspråk. Vi på Demando har sett att efterfrågan på kunnande inom detta område har ökat lavinartat. Därför tyckte vi att det vore intressant att ta reda på vilket programmeringsspråk våra mest erfarna kandidater primärt använder i sitt arbete.
1. Python
Vi har sett att Python är det populäraste språket hos våra kandidater. En del av anledningen av att det är så populärt kan vara för det stora utbudet av AI-bibliotek som finns att använda sig av.
2. C++
Vi har också sett att C++ är ett vanligt förekommande språk. Det har sin snabba exekveringstid som fördel. Passar bra att använda sig av i spel och när man bygger neurala nätverk då snabbheten är en betydande faktor.
3. Java
Är också ett bra språk att använda sig av. Med hjälp sin “Garbage Collector” är det lätt att utveckla algoritmer och det kan lätt köras på olika plattformar utan att behöva kompileras om.
Vi har också genomfört en undersökning på Twitter där vi gick ut med frågan vilket som är det bästa alternativet för AI-programmering. Även där hamnade Python högst upp på 44%, C++ på andra plats på 30% och Java på tredje plats på 18%.
Vilket stämmer väldigt bra överens med vår interna undersökning. I undersökningen på Twitter tog vi också med uppstickaren - utvecklingsspråket Go som hamnade på en fjärde plats med 8%. Vi har tidigare skrivit om språket Go i vår artikel "Hetaste teknikerna och programmeringsspråken bland utvecklare" och att det ofta nämns i AI-sammanhang så vi tänkte det kunde vara intressant att se hur det står sig mot de mer etablerade språken.
Något som är intressant är att språket Go som är ett mindre etablerat språk ändå står sig bra mot de mer etablerade språken. Vi kommer antagligen se mer av Go inom AI allt eftersom utvecklar antalet och communityt växer.