Johdatus tekoälyyn

582216
5
Algorithms and machine learning
Intermediate studies
Kurssilla käydään läpi tekoälyn ongelma-alueita ja niihin liittyviä ratkaisumenetelmiä koostuen luennoista, ohjelmointitehtävistä, harjoitustehtävistä, sekä kurssikokeesta.

Exam

21.10.2011 09.00 A111
Year Semester Date Period Language In charge
2011 autumn 08.09-14.10. 1-1 Finnish Teemu Roos

Lectures

Time Room Lecturer Date
Thu 10-12 CK112 Teemu Roos 08.09.2011-14.10.2011
Fri 12-14 CK112 Teemu Roos 08.09.2011-14.10.2011

Exercise groups

Group: 1
Time Room Instructor Date Observe
Tue 14-16 B222 Teemu Roos 12.09.2011—14.10.2011
Group: 2
Time Room Instructor Date Observe
Tue 16-18 B222 Mika Laitinen 12.09.2011—14.10.2011
Group: 3
Time Room Instructor Date Observe
Wed 12-14 B222 Simo Linkola 12.09.2011—14.10.2011
Group: 4
Time Room Instructor Date Observe
Thu 12-14 B222 Ella Peltonen 12.09.2011—14.10.2011

Huom! Ensimmäinen luento torstaina 8.9. on siirretty auditorioon B123.

Information for international students

The course is only given in Finnish. International students are adviced to contact the lecturer by e-mail.
See also the Stanford University on-line class. Students at our department can get credits for completing the Stanford class (using 'advanced track'). If you are planning to do this, please send e-mail to the lecturer (Teemu Roos). For more information, click here.

Uutisia

6.9.2012 Syksyn 2012 kurssin ensimmäinen luento. Lisätietoa kurssin verkkosivulla.

21.8.2012 Erilliskoe. Lunttilappu sallittu (aiemmat ohjeet pätevät, ks alla).

7.6.2012 Erilliskokeen (5.6.2012) arvostelu valmis. Tulokset intranetissa (vaatii kirjautumisen).

15.5.2012 Erilliskokeen (17.4.2012) arvostelu valmis. Tulokset intranetissa (vaatii kirjautumisen). HUOM: Tulokset korjattu 7.6.2012

24.1.2012 Stanfordin kurssin suoritukset Oodiin. Ks. myös blogikirjoitus laitoksen sivulla.

23.1.2012 Erilliskokeen (13.1.2012) arvostelu valmis. Tulokset intranetissä (vaatii kirjautumisen).

13.1.2012 Erilliskoe. Lunttilappu (käsin kirjoitettu, 2-puolinen A4) sallittu.

16.12.2011 Uusintakokeen tulokset valmiit. Tulokset intranetissä (vaatii kirjautumisen).

28.11.2011 Uusinta-/erilliskokeen (25.11.) tehtävä 5 eli robotiikkatehtävä suoritetaan torstaina 1.12. klo 10-12 salissa B121.

23.11.2011 Uusi, kurssin sisältöjä paremmin vastaava oppimistavoitematriisin luonnos. (PDF, 27kB) Nyt on erityisen hyvä hetki vaikuttaa!

17.11.2011 Uusintakoe 25.11. (luki aiemmin virheellisesti 21.11.!) Lunttilappu (käsin kirjoitettu, 2-puolinen A4) sallittu myös uusintakokeessa.

14.11.2011 Kurssin vastapalaute saatavilla. Klikkaa tästä (PDF, 184kB).

31.10.2011 Arvostelu valmis. Tulokset intranetissä (vaatii kirjautumisen). HUOM: Arvostelussa yhteispisteet on laskettu siten, että laskuharjoituspisteiden kerroin on 0.5 ja koepisteet on skaalattu välille 0-48 (tuloslistassa näkyy skaalaamaton pistemäärä). Edellisten summa (välillä 0-60) määrää arvosanan tavanomaisen käytännön mukaan, eli 0-29 => hylätty, 30-34 => 1, 35-40 => 2,..., 50-60 => 5.

25.10.2011 John McCarthy, tekoälyn "isä" kuoli 24.10.2011 84 vuoden ikäisenä. Uutinen Wired-lehdessä.

15.10.2011 Kurssin jatkoksi on tarjolla pop-up kurssi AI Challenges I.

14.10.2011 HUOM: Kokeeseen saa ottaa mukaan käsinkirjoitetun A4-kokoisen (kaksipuolisen) lunttilaputin, joka on palautettava koepaperin liitteenä.

14.10.2011 Kertausluennolla esitelty koealueen kuvaus löytyy nyt kurssin sivulta. Klikkaa tästä (PDF, 238 kB)

14.10.2011 Tärkeää: Muista antaa kurssipalautetta!

9.10.2011 HUOM: Lisäohjeita robotiikkatehtävään tarjolla. Voit käydä koko viikon ajan missä tahansa ryhmässä (niin monessa kuin huvittaa) suorittamassa robotiikkatehtävää. On kätevintä, jos lataat ratkaisusi etukäteen verkkoon, josta se on helppo siirtää robotteja ohjaaville miniläppäreille.

8.10.2011 HUOM: Koneoppimistehtävän Java-koodista puuttui Image-luokan määrittely. Jos koodi ei käänny, lataa paketti uudelleen (ks kohta laskuharjoitukset).

7.10.2011 Vieraileva luennoija Jouko Strömmer.

6.10.2011 Vieraileva luennoija Patrik Hoyer.

4.10.2011 Tiistain klo 16-18 laskuharjoitusryhmä peruttu tältä viikolta. Jos olet ilmoittautunut ko. ryhmään, voit käydä missä tahansa muussa ryhmässä. Tiistain klo 14-16 ryhmän ohjaajana Mika.

27.9.2011 Shakkiturnaus käynnissä! Klikkaa tästä ja kokeile, voittaako shakkibottisi Deep Gluen. (Toteutus: Tuomas Tynkkynen)

19.9.2011 Toisten laskuharjoitusten pisteytystä on muutettu. Reittiopastehtävästä saa 3-6 pistettä (oli 2-4 pistettä) ja maksimipisteet tältä kerralta ovat 8 (oli 6).

12.9.2011 Laskuharjoitusryhmien kokoa kasvatettu ensimmäisen viikon ajaksi. Voit ilmoittautua haluamaasi ryhmään, jos siellä on tilaa. Seuraaville viikoille perustetaan lisää ryhmiä, jos on tarvetta. Ryhmien koot pyritään pitämään max 30:ssa.

8.9.2011 Ilmoittautuneita opiskelijoita 200! Ensimmäinen luento siirretty isompaan saliin B123 (Linus Torvalds -auditorio)

Completing the course

Suoritus perustuu laskuharjoituksiin (20%) ja kurssikokeeseen (80%). 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.

Valitettavasti kurssin oppimistavoitteet (linkki vasemmalla) eivät ole ajan tasalla.

Luennoilla ei ole läsnäolopakkoa, mutta ensimmäinen luento torstaina 8.9.2011 on suositeltava.

Kurssin voi halutessaan korvata suorittamalla Stanfordin yliopiston verkkokurssin ('advanced track'). Jos aiot tehdä näin, ota yhteyttä luennoijaan (Teemu Roos). Ks. lisätietoa.

Literature and material

Kurssilla ei ole kurssikirjaa. Käsiteltävä materiaali tulee kurssin kotisivulle. Huomaa että luentokalvoissa on linkkejä mm. Youtube-videoihin.

IRC

Kurssin epävirallinen irc-kanava on #johtek.

Luento 1. (8.9.): Mitä on tekoäly?
  • Luentokalvot (PDF, 1.2MB)
  • Aiheita:
    - Kurssin perustiedot
    - Tekoäly kulttuurissa
    - Tekoälyn filosofiaa (heikko vs vahva tekoäly, ...)
    - Turingin testi
    - Mitä tekoäly oikeasti on? Nykytutkimus, sovellukset, ...
Luento 2. (9.9.) Etsintä ongelmanratkaisuna
  • Luentokalvot (PDF, 1.9MB)
  • Aiheita:
    - Verkon läpikäyntialgoritmit (leveys- ja syvyyssuuntainen, A*)
    - Ongelmien esittäminen verkkona, reitinoptimointi
  • Materiaalia:
    - Ertel: Introduction to Artificial Intelligence, Springer, 2011. Chapter 6 "Search, Games and Problem Solving"
      Tutustu verkon läpikäyntimenetelmiin (leveys- ja syvyyssuuntainen, ...).
      Kirja on vapaasti luettavissa verkossa yliopiston koneilla: linkki Helkaan. Osa materiaalista löytyy myös Google Books -palvelussa: linkki.
      Paperiversio löytyy kurssikansiosta, Exactum C127. Kopioi, älä vie alkuperäistä!
Luento 3 (15.9.) Pelit
Luento 4 (16.9.) Logiikka tekoälyssä
  • Luentokalvot (PDF, 3.9 MB)
  • Aiheita:
    - predikaattilogiikkaa
    - ongelmanratkaisu logiikalla
    - kehysongelma ("frame problem"), epätäydellisyys
    - logiikkaohjelmointi: Prolog 
  • Lisämateriaalia (vapaavalinnaista):
    - 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 5 (23.9.) Päättely epävarmuuden vallitessa I. Probabilistinen päättely
  • Luentokalvot (PDF, 2.0MB) -- huom: virheitä todennäköisyysarvoissa korjattu 24.9.
  • Aiheita:
    - todennäköisyyslaskentaa
    - Bayes-verkot
  • Lisämateriaalia (vapaavalintaista):
    - Ertel: Introduction to Artificial Intelligence, Springer, 2011. Chapter 7 "Reasoning with Uncertainty"
      (vain aliluvut 7.1 "Computing with Probabilities" ja 7.4 "Reasoning with Bayesian Networks")
    - B-Course
Luento 6 (23.9.) Kuvankäsittely, grafiikka -- ei kuulu koealueeseen!
  • Luentokalvot (PDF; 7.7MB)
  • Aiheita:
    - hahmontunnistus
    - kuvantaminen
    - tietokonegrafiikka
Luento 7 (29.9.) Päättely epävarmuuden vallitessa II. Case study: Naive Bayes -roskapostinsuodatus
Luento 8 (30.9.) Kuvankäsittely
  • Luentokalvot (PDF, 2.6 MB)
  • Aiheita:
    - digitaaliset signaalit vs symbolinen data
    - kuvantunnistuksen menetelmiä
    - SURF-featuret
    - kasvojentunnistus
  • Lisämateriaalia (vapaavalintaista):
    - Wikipedia: SIFT (SURFin edeltäjä; artikkeli on varsin tekninen); SURF
    - Stromberg Labs: JOpenSurf (laskuharjoituksissa sovellettava toteutus)
    - Herbert Bay, Andreas Ess, Tinne Tuytelaars ja Luc van Gool: "SURF: Speeded up robust features", Computer Vision and Image Understanding, Vol. 10, No. 3, ss. 346-359, 2008. (PDF, 2.8 MB)
Luento 9 (6.10.) Vierailuluento: Patrik Hoyer -- Koneoppiminen
Luento 10 (7.10.) Vierailuluento: Jouko Strömmer -- Robotiikka
  • Luento (1h 38min, video)
  • Materiaalia:
    - Moottorit ja ajoneuvot (robottiohjelmoinnin harjoitustyön materiaalia)
      Ohjeet soveltuvat nykyiseen versioon seuraavilla muutoksilla:
      + Motor-luokka on nykyään NXTRegulatedMotor
      + TachoPilot on DifferentialPilot
      + navigaattori ei toimi enää kuten sivulla esitetään
    - lejos API
    - Huomaa että robotiikkaan liittyvä laskuharjoitus suoritetaan "pajamallia" mukaillen: olet tervetullut niin moneen laskuharjoitusryhmään kuin ehdit tai haluat -- tutustu kuitenkin tehtävään jo etukäteen niin pitkälle kuin se on mahdollista ilman itse robotteja!
Luento 11 (13.10.): Neuroverkot
  • Luentokalvot (PDF, 1.5 MB)
  • Aiheita:
    - eteenpäin syöttävä (feedforward) verkko
    - takaisinkytkeytyvä (recurrent) verkko
    - itseorganisoiva (self-organizing) verkko, SOM
  • Lisämateriaalia (vapaavalintaista):
    - Ertel, "Introduction to Artificial Intelligence", Springer, Section 8.2 "The Perceptron: A Linear Classifier" ja Chapter 9 "Neural Networks"
    - Wikipedia: Artificial neural network ja Types of artificial neural networks
Luento 12 (14.10.): Koealueen kertaus

Laskuharjoitukset

  1. Tehtävät : esimerkkiratkaisut
  2. Tehtävät : lisämateriaali reittiopastehtävään : esimerkkiratkaisut + video tehtävään 1c
    huom: alunperin ilmoitetusta poiketen tehtävästä 3 voi saada 3-6 pistettä: 3 pistettä kummastakin kohdasta, viikon maksimipistemäärä 8.
  3. Tehtävät : lisämateriaali shakkitehtävään (vaihtoehtoinen OurEvaluator.class, jossa Java-versio 49.0) : esimerkkiratkaisut
    huom: Shakkitehtävässä pelataan ns. Los Alamos -shakkia, jossa hyvä arviointifunktio voi olla erilainen kuin normaalissa shakissa.
    Voit osallistua shakkiturnaukseen klikkaamalla tästä. (Toteutus: Tuomas Tynkkynen)
    Kysymyksessä 1a on olennaista huomata, että P=NP on esimerkki lauseesta, jonka totuusarvoa ei toistaiseksi osata päätellä.
  4. Tehtävät : lisämateriaali SURF-tehtävään : esimerkkiratkaisut
    Huom: Tehtävässä 1 ollut virhe korjattu 1.10. (kohdassa Odds/(1+Odds) luki Odds/(1-Odds)).
  5. Tehtävät : lisämateriaali luokittelutehtävään : lisämateriaali robotiikkatehtävään : esimerkkiratkaisut
    k-NN -luokittelija MakeBMP.java