Johdatus tekoälyyn
Koe
Vuosi | Lukukausi | Päivämäärä | Periodi | Kieli | Vastuuhenkilö |
---|---|---|---|---|---|
2013 | syksy | 05.09-11.10. | 1-1 | Suomi | Teemu Roos |
Luennot
Aika | Huone | Luennoija | Päivämäärä |
---|---|---|---|
To 10-12 | B123 | Teemu Roos | 05.09.2013-11.10.2013 |
Pe 12-14 | B123 | Teemu Roos | 05.09.2013-11.10.2013 |
Harjoitusryhmät
Aika | Huone | Ohjaaja | Päivämäärä | Huomioitavaa |
---|---|---|---|---|
Ma 12-14 | B222 | Teemu Roos | 09.09.2013—11.10.2013 |
Aika | Huone | Ohjaaja | Päivämäärä | Huomioitavaa |
---|---|---|---|---|
Ma 14-16 | B222 | Kalle Viiri | 09.09.2013—11.10.2013 |
Aika | Huone | Ohjaaja | Päivämäärä | Huomioitavaa |
---|---|---|---|---|
Ke 10-12 | B222 | Hannu Kärnä | 09.09.2013—11.10.2013 |
Aika | Huone | Ohjaaja | Päivämäärä | Huomioitavaa |
---|---|---|---|---|
Ke 12-14 | B222 | Kalle Viiri | 09.09.2013—11.10.2013 |
Torstaina 10.10. luento on siirretty saliin CK112!
Information for international students
The course is only given in Finnish.
Uutisia
- 6.6.2014: Erilliskokeen arvostelu valmis => Tulokset (intranetissä)
- 3.6.2014: Erilliskoe
- 21.5.2014: Erilliskokeen arvostelu valmis => Tulokset (intranetissä)
- 25.4.2014: Erilliskoe
- 15.4.2014. Ylimääräinen erilliskoe. Lunttilappu sallittu (ks ohjeet alla).
- 25.2.2014: Syksyn 2013 kurssin vastapalaute (pdf).
- 5.2.2014: Erilliskokeen arvostelu valmis => Tulokset (intranetissä)
- 31.1.2014: Erilliskoe. Lunttilappu sallittu (ks ohjeet alla).
- 4.12.2013: Uusintakokeen arvostelu valmis => Tulokset (intranetissä)
- 11.11.2013: Muista antaa kurssipalautetta => Palautesysteemi
- 9.11.2013: Arvostelu valmis => Tulokset (intranetissä)
- 25.10.2013: Ilmoittautuminen AI Odyssey 2013 -harjoitustyökurssille on käynnissä.
- 17.10.2013: Shakkiturnauksen ylivoimainen voittaja on Chessmonster v1! (Tekijä voi ilmoittatua sähköpostitse, niin saa nimensä otsikoihin.)
- 15.10.2013: Niille jotka haluavat oppia lisää tekoälystä on tulossa pop-up -kurssi AI Odyssey 2013. Lisää tietoa tulossa lähiaikoina. Ks. edellisvuoden AI Odyssey 2012.
- 14.10.2013: SURF-tehtävän palautus mahdollista vielä keskiviikkon 16.10. asti.
- 12.10.2013: Kokeessa lunttilappu sallittu: 2-puolinen itse käsinkirjoitettu A4, joka pitää palauttaa koepapereiden kanssa (saa hakea myöhemmin takaisin).
- 9.10.2013: Vihdoinkin shakkiturnaus käynnissä! Lataa oma YourEvaluator.class -tiedostosi ja kilpaile muiden kanssa: tästä. (Kiitokset T Tynkkyselle!)
- 6.10.2013: Uusia pajaryhmiä perustettu ja perustetaan jatkossa lisää.
- 4.10.2013: HUOM: Torstaina 10.10. ei ole luentoa. Kertausluento 11.10.
- 4.10.2013: Ilmoittaudu pajaan!
- 30.9.2013: Neuroverkkotehtävänanto korjattu: ei lähimmän naapurin luokitinta.
- 20.9.2013: Kolmannen viikon shakkimateriaalissa oli virhe, joka ilmeni joissain (useimmissa) Java-ympäristöissä. Nyt korjattu (?).
- 13.9.2013: Toisen viikon tehtävämateriaaleista puuttui Linja.java -tiedosto, joka on nyt lisätty (ks alla).
- 6.9.2013: Toisen luennon alpha-beta-karsintaa käsittelevä osa ilmestyy verkkomateriaalina. Katso videot ja hämmästy: tästä.
- 6.9.2013: Laskuharjoitusten pitäjissä (mutta ei ajoissa) muutoksia: ma 12-14 T. Roos; ke 12-14 K. Viiri.
Kurssin suorittaminen
Suoritus perustuu laskuharjoituksiin (33%) ja kurssikokeeseen (67%). Kurssikoe järjestetään 18.10.2013 klo 9-12 salissa A111.
Läpipääsyraja on noin puolet tarjolla olevista suorituspisteistä. Huom: 4 opintopisteen kurssi edellyttää arviolta 15 viikkotuntia työtä. Varaudu siis näkemään vaivaa.
Luennoilla ei ole läsnäolopakkoa, mutta ensimmäinen luento torstaina 5.9.2013 on suositeltava.
IRC
Kurssin epävirallinen irc-kanava on #johtek. Ohjeet FuksiWikissä.
Kirjallisuus ja materiaali
Kurssilla ei ole kurssikirjaa. Käsiteltävä materiaali käydään pääosin läpi oheisessa kurssimonisteessa, jota päivitetään kurssin kuluessa (huomaa myös linkit luentokalvoissa):
- Kurssimoniste (pdf) (päivitetty 2.10.2013)
Vanhoja kurssi- ja erilliskokeita voi olla myös hyödyllistä katsella, vaikka joitain painotuseroja edellisvuosien kursseihin verrattuna onkin: esim. logiikkaa ei juuri vuoden 2011 jälkeen ole käsitelty.
- kurssikoe 21.10.2011; esimerkkiratkaisu tehtävään 6 (A*-haku): ratkaisu (pdf)
- erilliskoe 25.11.2011
- erilliskoe 13.1.2012
- erilliskoe 17.4.2012
- erilliskoe 21.8.2012
- kurssikoe 19.10.2012 (sama englanniksi) : arvosteluperusteet (pdf)
- kurssikoe 18.10.2013
-
uusintakoe 22.11.2013
Luento 1 (5.9.2013): Tekoälyn filosofiaa | Etsintäalgoritmit.
- Luentokalvot (pdf; 17 MB; päivitetty 9.9.2013)
-
Aiheet:
- kurssin perustiedot
- tekoäly kulttuurissa
- tekoälyn filosofiaa (heikko vs vahva tekoäly, ...)
- Turingin testi
- Mitä tekoäly oikeasti on? Nykytutkimus, sovellukset, ...
- Verkon läpikäyntialgoritmit (leveys- ja syvyyssuuntainen, A*)
- Ongelmien esittäminen verkkona, reitinoptimointi -
Lisämateriaalia:
- Floreen: Tietorakenteet ja algoritmit -kurssin materiaali (pdf)
- Ertel: Introduction to Artificial Intelligence, Springer 2011. Chapter 6 "Search, Games and Problem Solving"
Paperiversio löytyy kurssikansiosta, Exactum C127. Kopioi, älä vie alkuperäistä!
- Udacity AI -kurssin etsintää käsittelevät video,:erityisesti First search program, A*
- A*-hakua ja muita etsintäalgoritmeja havainnollistava demo
Luento 2 (6.9.2013): Pelit
- Luentokalvot (pdf, 20MB, (!!); päivitetty 9.9.2013) | HUOM: Luennon jälkimmäisen osan kattava videomateriaali.
-
Aiheet:
- minimax-algoritmi
- alpha-beta-karsinta
- tietokoneshakki -
Lisämateriaalia:
- alpha-beta-karsintaa havainnollistava video (10 min; eri kuin edellä!)
- alpha-beta-karsintademo1
- alpha-beta-karsintademo2
Luento 3 (12.9.2013): Logiikka tekoälyn historiassa | Todennäköisyysmallinnus I
- Luentokalvot (pdf, 5.6 MB)
-
Aiheet:
- tietämyksen esittäminen logiikan avulla
- logiikkaohjelmoinnista ja sen ongelmista (lyhyesti)
- todennäköisyyslaskennan peruskäsitteitä: perusjoukko, tapahtumat, satunnaismuuttujat
- ehdollinen todennäköisyys, Bayesin kaava, riippumattomuus -
Lisämateriaalia
- P. Tuominen, Todennäköisyyslaskenta I, Limes, 1994
- Ertel: Introduction to Artificial Intelligence, Springer, 2011. Kappale 7 "Reasoning with Uncertainty" (s. 122 asti)
- D. Barber: Bayesian Reasoning and Machine Learning, Cambridge University Press, 2012. Kappale 1 "Probabilistic Reasoning" (ladattavissa ilmaiseksi)
Muuta kiinnostavaa (vapaavalintaista):
- Ertel: Introduction to Artificial Intelligence, Springer, 2011. Chapter 5 "Logic Programming with PROLOG"
- GNU Prolog (käynnistyy laitoksen Linux-koneissa komennolla 'prolog')
- Wikipedia: Prolog
Luento 4 (13.9.2013): Todennäköisyysmallinnus II: Bayes-verkkojen periaatteet
- Luentokalvot A (pdf, 3.2 MB)
- Luentokalvot B (pdf, 577 kB)
-
Aiheet:
- Bayes verkot
- eksakti todennäköisyyspäättely Bayes-verkossa
- datan generoiminen Bayes-verkosta
- approksimatiivinen ("Monte Carlo-") päättely Bayes-verkossa -
Lisämateriaalia
- Ertel: Introduction to Artificial Intelligence, Springer, 2011. Kappale 7.4 "Reasoning with Bayesian Networks"
- D. Barber: Bayesian Reasoning and Machine Learning, Cambridge University Press, 2012. Kappale 3 "Belief Networks" (ladattavissa ilmaiseksi)
Luento 5 (18.9.2013): Todennäköisyysmallinnus III: Naivi-Bayes-roskapostinsuodatin
- Kalvot pdf
-
Aiheet:
- naivi Bayes -malli
- tekstin esitys "bag of words" -muodossa
- roskapostisuodattimen toteutus
Lisämateriaalia
- The Guardian: A formula for justice
- Dr Dobbs Journal: Naive Bayesian text classification
- M. Sahami, S. Dumais, D. Heckerman, E. Horvitz (1998). "A Bayesian approach to filtering junk e-mail". AAAI'98 Workshop on Learning for Text Categorization.
Luento 6 (19.9.2013): Koneoppiminen
- Luentokalvot (pdf; 5.4 MB)
-
Aiheet:
- koneoppimisen tyypit: ohjattu, ohjaamaton, ...
- lähimmän naapurin luokitin
- naivi-Bayes -luokitin (taas!) -
Lisämateriaalia:
- Coursera-kurssi: Machine Learning- videot: esim. "What is Machine Learning?"
- P. Domingos: A Few Useful Things to Know about Machine Learning (pdf)
- Wikipedia: Naive Bayes classifier
- C. Elkan: Nearest Neighbor Classification (pdf)
Luento 7 (26.9.2013): Neuroverkot
- Luentokalvot (pdf; 6.9 MB) -- HUOM: Boltzmannin kone ja SOM käsitellään luennolla vasta viikon päästä
-
Aiheet:
- neuroverkkotyyppejä
- neuroverkkojen oppimisesta
- perseptronialgoritmi -
Lisämateriaalia:
- Wikipedia: Types of artificial neural networks
Luento 8 (27.9.2013): Digitaalinen signaalinkäsittely
- Luentokalvot (pdf, 15 MB)
-
Aiheet:
- tietokonegraafiikka ja kuvankäsittely
- kuvan ja äänen esitysmuodot
- kohinanpoisto -- ei tarvitse opetella yksityiskohtia
- kuvantunnistus
- invariantit piirteet (SIFT/SURF) -- opeteltava perusidea (kolme vaihetta), ei yksityiskohtia
Luento 9 (3.10.2013): Robotiikka I: Yleistä robotiikasta ja Lego Mindstorms -esittely
- Luentokalvot (pdf, 2.8 MB)
-
Aiheet:
- robotiikka tekoälyn "Grand Challengena"
- esimerkkejä scifi- ja todellisista roboteista
- Lego-robottien esittely
- Lejos-ohjelmointiympäristö
- esimerkkejä -
Ohjeita Lego Mindstorms -tehtävään:
- Robottiohjelmoinnin harjoitustyö (kevät 2011)
- aloita tästä: Yleistä NXT:n ohjelmoinnista leJOS:illa
- leJOS API -rajapintakuvaus (sis. kaikki käytettävissä olevat komennot)
- leJOS -tutoriaali
Luento 9 (4.10.2013): Robotiikka II: Lisää Lego-roboteista
-
Aiheet:
- Lego-robottien esittely käytännössä
- Parrot drone quadcopter: ei lentonäytöstä (akkuongelma) -
Lisämateriaalia:
- Raffaello D'Andrea: The astounding athletic power of quadcopter (Youtube)
Luento 11 (10.10.2013): Ei luentoa
- Luennon ja laskuharjoitusryhmien sijaan pajat.
Luento 12 (11.10.2013): Kertausluento
- Luento-osallistumislinkki: AktivatorPlus
-
Aiheet:
- kurssin aihepiirien kertaus
- shakkiturnauksen voittajan julistaminen siirretään ensi viikolle
- kysymyksiä ja vastauksia
Laskuharjoitustehtävät
-
Tehtävät 1 (pdf) -- esimerkkiratkaisut (pdf) Reittiopas1v.java
Materiaali reittiopastehtävään: Tila.java Pysakki.java Pysakkiverkko.java Reittiopas1.java verkko.json | rplot.txt reitit kartalla (pdf)
oikea reitti Reittiopas1.java-tiedoston hakuun: 1250429-1250427-1250425-1173423-1173416-1220426-1220420-1220418-1220416-1220414-1121438-1121480 -
Tehtävät 2 (pdf) -- esimerkkiratkaisut (pdf) alphabeta_solution.zip Reittiopas2v.java
Materiaali tämän viikon reittiopastehtävään: Linja.java Tila2.java Pysakki.java Pysakkiverkko2.java Reittiopas2.java verkko2.json linjat.json
esimerkkikyselyn ratkaisu: 1150435 Meilahdentie-1150433 Meilahden sairaala-1150431 Töölön tulli-1140440 Kansaneläkelaitos-1140439 Töölön halli-1140436 Ooppera-1140447 Töölöntori-1130442 Apollonkatu-1130446 Caloniuksenkatu -
Tehtävät 3 (pdf) -- esimerkkiratkaisut (pdf) auto.py
Materiaali shakkitehtävään: Main.java YourEvaluator.java Position.jar OurEvaluator.jar Evaluator_Position_lähdekoodit.odt -
Tehtävät 4 (pdf) -- esimerkkiratkaisut (pdf) Perceptron.java
Materiaali neuroverkkotehtävään: Perceptron.zip -
Tehtävät 5 (pdf) : Ilmoittaudu robopajaan!
Materiaali hahmontunnistustehtävään: surf-package.zip
Materiaali Mindstorms-tehtävään: HelloWorld.java