Johdatus tekoälyyn

582216
5
Algoritmit ja koneoppiminen
Aineopinnot
Kurssilla käydään läpi tekoälyn ongelma-alueita ja niihin liittyviä ratkaisumenetelmiä koostuen luennoista, ohjelmointitehtävistä, harjoitustehtävistä, sekä kurssikokeesta.

Koe

18.10.2013 09.00 A111
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

Group: 1
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Ma 12-14 B222 Teemu Roos 09.09.2013—11.10.2013
Group: 2
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Ma 14-16 B222 Kalle Viiri 09.09.2013—11.10.2013
Group: 3
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Ke 10-12 B222 Hannu Kärnä 09.09.2013—11.10.2013
Group: 4
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):

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.

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

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

Luento 5 (18.9.2013): Todennäköisyysmallinnus III: Naivi-Bayes-roskapostinsuodatin

Luento 6 (19.9.2013): Koneoppiminen

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

Luento 9 (4.10.2013): Robotiikka II: Lisää Lego-roboteista

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

  1. 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
  2. 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
  3. 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
  4. Tehtävät 4 (pdf) -- esimerkkiratkaisut (pdf) Perceptron.java
    Materiaali neuroverkkotehtävään: Perceptron.zip
  5. Tehtävät 5 (pdf) : Ilmoittaudu robopajaan!
    Materiaali hahmontunnistustehtävään: surf-package.zip
    Materiaali Mindstorms-tehtävään: HelloWorld.java