Böcker om Artificiell Intelligens

Permalänk
Inaktiv

Böcker om Artificiell Intelligens

Hej.

Jag tycker artificiell intelligens är väldigt intressant och skulle vilja börja programmera det.
Dock precis som när man började programmera finns det väldigt mycket olika böcker som tar upp artificiell intelligens och som nybörjare har jag ingen riktigt bra aning om vilken/vilka böcker som är bäst.

Så det jag frågar efter är förslag på bra böcker om artificiell intelligens.
De önskemål jag har är:
- Att boken har mycket kod exempel utöver teorin.
- Bland det bästa enligt mig i läroböcker är övningar, för där lär man sig mest, så övningar är också ett önskemål.
- Tenserflow är jättehäftigt, dock känns det lite som att "fuska", så gärna en bok som går igenom grunderna.

Har ni förslag på bra och/eller häftiga böcker så skriv dem!

Tack.

// Andreas

Permalänk
Medlem

Hej

Trevligt, jag hade samma tankar för 2-3 år sedan. Fram tills idag har jag köpt totalt 11st böcker inom ämnet och gjort
en hel del projekt. Allt från några introduktionsböcker till mer avancerade inom deep learning och autoencoders och convolutional neural networks.

Jag kan rekommendera "Introduction to Machine Learning with Python". Mycket bra bok som går igenom grunderna.

Med Phyton så är det relativt enkelt att komma igång med Machine Learning. Annat alternativt är språket R som också har massor av stöd för olika algoritmer och databehandlingar. Java har också en del ramverk som är bra. Enklast tycker jag själv är Phyton och det används också en del inom arbetslivet av många företag.

Tensor Flow som ingång till machine learning är inget jag skulle rekommendera då det kräver en del grundförståelse för att få det rätt. Handlar lite om att lära sig gå innan man springer

Exempelvis kan du börja med ett enkelt dataset som är preparerat och klart. Dvs ingen normalisering eller label encoding behövs.

Enkelt dataset är Iris datasetet, det är städat och klart från början och gör att du tar några genvägar för att komma igång. Iris datasetet är ungefär som "Hello world" inom machine learning.

Mycket inom machine learning handlar om att förstå sin data och förbereda den för den modell du har tänkt tränat upp.

En modell skapas genom att du använder en av många algoritmer för att försöka generalisera en verklighet som sedan kommer sparas i en modell som du kan använda vid senare tillfällen.

En modell är något tränas specifikt upp utifrån den data som du använder för den, det kan tex. vara CSV data eller jpg bilder som inputdata. Allt beroende på vad ditt mål är för ett visst projekt. Men hjälp av den modell du skapat kan du göra predictions.

Just CSV data är enklare att börja med till skillnad från exempelvis något som handlar om bilder eller ljud.

Viktigt att lära sig är exempelvis vad träningsdata och testdata är hur hur man arbetar med det. Också viktigt att förstå vad regression är och klassificering. Hur man mäter en modells träffsäkerhet med olika mättekniker är också viktigt att lära sig.
Vad är overfittning och underfittning och varför inträffar det och hur hanterar man det är andra viktiga begrepp.

Hoppas det inte låter för mycket, om du läser på om det så kommer du lära dig ganska så snabbt. Om du kan detta inför dina projekt i Tensor Flow så underlättar det väldigt mycket

Det finns mycket av begrepp som läsa om så att börja enkelt är viktigt och då brukar det vara att använda Iris datasetet och göra en klassificeringsmodell av det.

Sedan kan man gå vidare till exempelvis Nearest neighbors, Random Forest, Decision Trees eller Support Vector Machine. När du sedan förstår hur du tränar sådana modeller så är det enkelare att gå vidare till exempelvis deep neural networks i tex. scikit learn eller tensor flow.

Som sagt, börja med boken jag nämde ovan så får du en del koll på grunderna.

Ett exempel jag gjorde förra helgen var att använda data från ett företag som hyr ut cyklar. Jag skapade en modell för
att göra predictions på hur många cyklar företaget beräknas hyra ut.
Exempel på träningsdatan som finns i CSV format.

atetime,season,holiday,workingday,weather,temp,atemp,humidity,windspeed,casual,registered,count
2011-01-01 00:00:00,1,0,0,1,9.84,14.395,81,0,3,13,16
2011-01-01 01:00:00,1,0,0,1,9.02,13.635,80,0,8,32,40
2011-01-01 02:00:00,1,0,0,1,9.02,13.635,80,0,5,27,32
2011-01-01 03:00:00,1,0,0,1,9.84,14.395,75,0,3,10,13
2011-01-01 04:00:00,1,0,0,1,9.84,14.395,75,0,0,1,1
2011-01-01 05:00:00,1,0,0,2,9.84,12.88,75,6.0032,0,1,1
2011-01-01 06:00:00,1,0,0,1,9.02,13.635,80,0,2,0,2
2011-01-01 07:00:00,1,0,0,1,8.2,12.88,86,0,1,2,3
2011-01-01 08:00:00,1,0,0,1,9.84,14.395,75,0,1,7,8
2011-01-01 09:00:00,1,0,0,1,13.12,17.425,76,0,8,6,14
2011-01-01 10:00:00,1,0,0,1,15.58,19.695,76,16.9979,12,24,36
2011-01-01 11:00:00,1,0,0,1,14.76,16.665,81,19.0012,26,30,56

Men ovan data så tränades sedan en modell där input är alla kolumner utom den som heter count. Det är
just count som modellen används för att göra prediction på.

Som du kan se i nedan bild blev blev slutresultatet en accuracy på 0.942 på testdatan vilket är mycket bra.
Detta är genomsnittet för de olika klasser som jag har delat in datan i. Klassen 0 (noll) har fått en lite lägre accuracy som du kan se. Den fick 0.84 vilket betyder att modellen hade lite svårare att göra prediction på den klassen.
Klasserna 3 och 4 fick dock rätt predictions varje gång vilket dra upp resultatet.

Precision, recall, f1-score och support är olika tekniker för att mäta hur bra modellen har lyckats generalisera och kommer kunna göra korrekta predictions.

Med en sådan bra accuracy skulle detta företag med stor fördel kunna använda machine learning för att göra predictions för hur många cyklar de kommer hyra ut under årets alla dagar eller tider på dygnet

Permalänk
Inaktiv

@Multithread: Wow, underbart, det var precis det här jag frågade efter, tack så mycket!
Jag kommer att följa ditt råd och läsa Introduction to Machine Learning with Python.

Permalänk
Medlem
Permalänk
Medlem

Just om ML gillar jag https://www.amazon.com/Data-Mining-Practical-Techniques-Manag...
Data Mining - Practical Machine Learning Tools and Techniques
Föredrar e-boken dock, snabbare att söka upp saker. Jag läste inte boken från pärm till pärm utan slår upp saker efter hand.

Python och Sci-kit learn är skitbra verktyg för att syssla med ML. Gjorde det under mitt examensarbete, var relativt enkelt att komma igång.

Rent generellt råder jag dig att först kolla lite föreläsningar, t ex på youtube så du får en generell bild av ämnet. ML är mer statistik och matte än programmering. Sedan kan det vara värt att implementera någon super enkel algoritm själv, t ex Decision Tree. I vår kurs om AI fick vi ett framework med Pacman spel där vi implementerade ett Decision Tree för att besluta om nästa move för AI:n. Jag har PM:at dig föreläsningen.