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

09.03.2017 16.00 A111
Vuosi Lukukausi Päivämäärä Periodi Kieli Vastuuhenkilö
2017 kevät 16.01-03.03. 3-3 Suomi Teemu Roos

Luennot

Aika Huone Luennoija Päivämäärä
Ma 14-16 CK112 Teemu Roos 16.01.2017-27.02.2017
Ti 14-16 CK112 Teemu Roos 17.01.2017-28.02.2017

Harjoitusryhmät

Group: 1
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
To 12-14 B120 Hannu Kärnä 26.01.2017—02.03.2017
Group: 2
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
To 14-16 B120 Teemu Roos 26.01.2017—02.03.2017
Group: 3
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Pe 14-16 B222 Hannu Kärnä 27.01.2017—03.03.2017

Information for international students

This year, the course is given in Finnish. Starting next academic year (2017-2018), the language of the course will be English.

The course will be lectured next in the Fall 2017 (period I).

Uutisia

  • 11.4.2017: Kurssin tulokset (vaatii kirjautumisen tktl-tunnuksilla)
  • 5.3.2017: Kokeeseen voi ottaa mukaan "lunttilapun": 2-puolinnen, käsinkirjoitettu (ei kopioitu) A4, johon voit kirjoittaa mitä parhaaksi näet. Koskee myös erilliskokeita ellei toisin ilmoiteta.
  • 5.3.2017: MUISTA ANTAA KURSSIPALAUTETTA: Palautejärjestelmä
  • 5.3.2017: Tekoälyllä on PR-ongelma: MIT Technology Review "AI's PR Problem"
  • 1.3.2017: HUOM: Tarkennus robotiikkatehtäviin: leJOS-ympäristöä ei tarvitse asentaa omalle koneelle. Riittää valmistella ratkaisu kotona. Se siirretään oikeaan ympäristöön laskuharjoituksissa.
  • 1.3.2017: Viimeisten laskuharjoitusten osa II jaossa. Deadline 16.3.2017. (Osa I palautetaan normaalisti 2.-3.3. laskuharjoituksissa.)
  • 26.2.2017: MAANANTAIN 27.2. VIERAILULUENTO PERUTTU SAIRASTUMISEN VUOKSI
  • 20.2.2017: Loppukurssin ohjelmassa vierailuluentoja 21.2. ja 27.2. EI LUENTOA 28.2.
  • 9.2.2017: Luennot 9 ja 10 korvataan verkkovideoilla ja muulla materiaalilla: EI LUENTOJA 13.-14.2. 
  • 7.2.2017: Shakkibotin pohja vaihdettu uuteen, jonka pitäisi olla yhteensopiva turnauspalvelimen kanssa
  • 5.2.2017: Shakkiturnaus käynnistyy: katso tilanne ja osallistu
  • 5.2.2017: Tekoäly voittaa ihmisen pokerissa: juttu HS:ssä (ks. myös video)

Kurssin suorittaminen

Kurssin arvostelu perustuu laskuharjoituksiin (noin 33%) ja kurssikokeeseen (noin 67%).

Läpipääsyraja on noin puolet tarjolla olevista suorituspisteistä. Huom: 5 opintopisteen kurssi edellyttää arviolta 18 viikkotuntia työtä. Varaudu siis näkemään vaivaa.

Luennoilla ei ole läsnäolopakkoa, mutta etenkin ensimmäinen luento maanantaina 18.1.2015 on suositeltava.

Q & A

Kysymykset ja vastaukset kurssin omalle Piazza-foorumille. Jos olet ilmoittautunut kurssille, sinun olisi pitänyt saada sähköpostiin linkki, jonka avulla pääset kirjautumaan foorumille. Ongelmatilanteissa ota yhteys luennoijaan: teemu.roos@cs.helsinki.fi .

Kurssin epäviraalinen irc-kanava on #johtek . Ohjeet FuksiWikissä.

 

 

Kirjallisuus ja materiaali

Kurssilla ei ole kurssikirjaa. Käsiteltävä materiaali käydään pääosin läpi kurssimonisteessa, jota päivitetään kurssin kuluessa (huomaa myös linkit luentokalvoissa):

Edellisvuosien kurssimateriaalista ja etenkin laskuharjoitusten esimerkkiratkaisuista voi toisinaan olla hyötyä:


Luento 1 (18.1.2017): Tekoälyn filosofiaa | Etsintäalgoritmit.

  • Luentokalvot (pdf,) -- paras-ensin–haku ja A* luultavasti seuraavalla luennolla
  • 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 videot: erityisesti First search programA*
    A*-hakua ja muita etsintäalgoritmeja havainnollistava demo

Luento 2 (19.1.2017): Pelit

Luento 3 (23.1.2017): Logiikka tekoälyn historiassa | Todennäköisyysmallinnus I

  • Luentokalvot (pdf, 4.2 MB)
  • Aiheet:
    - tietämyksen esittäminen logiikan avulla
    - logiikkaohjelmoinnista ja sen ongelmista (lyhyesti)
    - todennäköisyyslaskennan peruskäsitteitä: perusjoukko, tapahtumat
  • 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 (24.1.2017): Todennäköisyysmallinnus II: Bayesin kaava

Luento 5 (30.1.2017): Todennäköisyysmallinnus III: Naivi Bayes -roskapostisuodatin

Luento 6 (31.1.2017): Todennäköisyysmallinnus IV: Bayes-verkot | Koneoppiminen I

  • Luentokalvot (pdf, 2.3MB) :: muutama kalvo lopusta (esimerkit 4-9) jäi ensi viikolle
  • Aiheet:
    - Bayes verkot
    - datan generoiminen Bayes-verkosta
    - approksimatiivinen ("Monte Carlo-") päättely Bayes-verkossa
    - johdattelua koneoppimiseen esimerkkien kautta
  • 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 7 (6.2.2017): Koneoppiminen II

Luento 8 (7.2.2017): Neuroverkot

  • Luentokalvot (pdf; 2.6 MB)
  • Aiheet:
    - neuroverkkotyyppejä
    - neuroverkkojen oppimisesta
    - perseptronialgoritmi (luokitin)
    - Hopfielding verkko, Boltzmannin kone
    - Kohosen itseorganisoiva kartta (SOM)
  • Lisämateriaalia:
    - Wikipedia: Types of artificial neural networks

Luento 9 (VIDEOLUENTO): Digitaalinen signaalinkäsittely

Luento 10 (VIDEOLUENTO): Luonnollisen kielen käsittely

Luento 11 (20.2.2017): Robotiikka

Luento 12 (21.2.2017): Vierailuluento: NLP

Luento 11: (27.2.2017) Vierailuluento (logiikkapohjaiset menetelmät) PERUTTU

  • Matti Järvisalo

 

Laskuharjoitukset

Laskuharjoitussuoritukset kirjataan laskuharjoitustapahtumassa. Jos et pääse paikalle omaan ryhmääsi (tai jos joudut ilmoitttautumaan "jonoon" eli ryhmään 99), voi vierailla muissa ryhmissä. Jos et pääse mihinkään ryhmään, voit palauttaa tehtävät sähköpostitse (hannu.karna@helsinki.fi) viimeistään perjantaina klo 14.15. HUOM: Etänä palauttaminen on sallittua max. 2 kertaa kurssin aikana, poislukien yksittäiset hyvin perustellut poikkeustapaukset (ei esim. työkiireet).

  1. Tehtävät (pdf) | esimerkkiratkaisut (pdf) Reittiopas.java
    materiaali Reittiopas-tehtävään: Reittiopas1.zip
  2. Tehtävät (pdf) | esimerkkiratkaisut (pdf) alphabeta_solution.zip reittiopas-ratkaisut.zip
    materiaali Reittiopas-tehtävään: Reittiopas-astar.zip
  3. Tehtävät (pdf) | esimerkkiratkaisut (pdf) spam-ratkaisu (Java) spam-ratkaisu (python; kiitokset Sami Sarsalle)
    materiaali spam-tehtävään: spamham.zip
    materiaali shakkitehtävään: Shakki.zip turnauspalvelin
  4. Tehtävät (pdf) | esimerkkiratkaisut (pdf) perseptroni (Java)
    materiaali luokittelutehtäviin: Perseptroni.zip
  5. Tehtävät (pdf) | esimerkkiratkaisut (pdf) NLP-tehtävä (Java)
    materiaali koneoppimistehtävään: Weka-ohje | spirals.arff
    materiaali hahmontunnistustehtävään: surf-package.zip
    materiaali NLP-tehtävään (Java): NLP.zip
  6. Tehtävät (pdf)
    materiaali robotiikkatehtävään: Terminator.java (kirjoita ratkaisusi tähän pohjaan; leJOS-ympäristöä ei tarvitse asentaa, joten et voi testata kotona, vaan joudut tekemään lopulliset viilaukset laskuharjoituksissa)