Uuden äärellä ohjelmoitava vai oppiva kone?

Samankaltaiset tiedostot
Uuden äärellä ohjelmoitava vai oppiva kone?

Abstraktiot ja analyysi algoritmit ja informaation esitykset

ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2015)

CS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2018)

ICS-A1120 Ohjelmointi 2 (5 op, IV V, kevät 2016)

Uuden äärellä rinnakkaisuus ja samanaikaisuus

Vertaispalaute. Vertaispalaute, /9

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Tietokoneen mysteeri ohjelmoitava kone

Constructive Alignment in Specialisation Studies in Industrial Pharmacy in Finland

Tilastotiede ottaa aivoon

anna minun kertoa let me tell you

Parinmuodostuksesta tietojenkäsittelytieteen silmin. Petteri Kaski Tietojenkäsittelytieteen laitos Aalto-yliopisto

MEETING PEOPLE COMMUNICATIVE QUESTIONS

11/20: Konepelti auki

Johdatus tekoälyn taustalla olevaan matematiikkaan

E. Oja ja H. Mannila Datasta Tietoon: Luku 2

ALGORITMIT & OPPIMINEN

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Tilastotiede ottaa aivoon

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Tähtitieteen käytännön menetelmiä Kevät 2009

Algoritmit 1. Luento 3 Ti Timo Männikkö

Näkökulmia tietoyhteiskuntavalmiuksiin

What do you do when you see that your colleague does something wrong? Learning organization and tools for expressing criticism

Digitalisaation ja IT:n johtamisen vaatimat kyvykkyydet ja osaamisen kehittäminen

JOHDATUS TEKOÄLYYN TEEMU ROOS

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Verkoston päätyypit. Nykyään rihmastomainen puuhailu, ei keskusmaista, mielipidejohtajatyyppistä toimintaa.

805306A Johdatus monimuuttujamenetelmiin, 5 op

Seminaari: Hajautetut algoritmit syksy 2009

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Opettaminen ja oppiminen

11. Oppimismotivaatio ja tehokas oppiminen. (s )

YHTEISTYÖN KÄYTÄNNÖT UUDEN TIEDON LUOMISESSA

Opettajan pedagoginen ajattelu

Makroekologiaa pedagogisella mikrolusikalla

Juha Merikoski. Jyväskylän yliopiston Fysiikan laitos Kevät 2009

Lupa toimia eri tavalla

7.4 Sormenjälkitekniikka

Tässä luvussa käsitellään optimaalisten piirteiden valintaa, luokittelijan optimointia ja luokittelijan suorituskyvyn arviointia.

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Ajattelu ja oppimaan oppiminen (L1)

T DATASTA TIETOON

Tekoäly muuttaa arvoketjuja

3. Laskennan vaativuusteoriaa

Choose Finland-Helsinki Valitse Finland-Helsinki

1 Bayesin teoreeman käyttö luokittelijana

Johdatus tekoälyyn. Luento : Koneoppiminen. Patrik Hoyer. [ Kysykää ja kommentoikaa luennon aikana! ]

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ongelma(t): Mihin perustuu tietokoneiden suorituskyky ja sen jatkuva kasvu? Mitkä tekijät rajoittavat suorituskyvyn parantamista ja mitkä niistä ovat

Kognitiivinen mallintaminen. Nelli Salminen


OPPIKIRJAT vanha ops Aine ja kurssi Oppikirja

Opiskelijat valtaan! TOPIC MASTER menetelmä lukion englannin opetuksessa. Tuija Kae, englannin kielen lehtori Sotungin lukio ja etälukio

Tällä kerralla ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus Kertausta: Perseptronin oppimissääntö

OPPIMISKESKUSTELUN RAKENNE JA MERKITYS OPPIMISEN EDISTÄJÄNÄ

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Konstruktiivisesti linjakas opetus. Saara Repo Avoimen yliopiston pedagoginen kahvila

Numeeriset menetelmät

812336A C++ -kielen perusteet,

Laskut käyvät hermoille

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

JOHDATUS TEKOÄLYYN TEEMU ROOS

Koulutusta vai kasvatusta? Seikkailu- ja ryhmätoiminnan mahdollisuudet lasten ja nuorten kasvun tukena

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

OPETUSSUUNNITELMALOMAKE

KOODAUSPLÄJÄYS. Ohjelmoinnin perusteet

Moduuli 8 Vihreän liiketoiminnan johtaminen

MS-C1340 Lineaarialgebra ja

Rajoittamattomat kieliopit (Unrestricted Grammars)

Integrointialgoritmit molekyylidynamiikassa

Tietokoneen toiminta (Computer Organization I)

1. Olio-ohjelmointi 1.1

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010

SUKELLUS TULEVAISUUDEN OPPIMISEEN

Digitalisaatio opettajan apuna ja oppilaan innostajana

Imperatiivisten ohjelmien organisointiparadigmojen. historia

Imperatiivisten ohjelmien organisointiparadigmojen historia

Travel Getting Around

Vieraan kielen viestinnällinen suullinen harjoittelu skeema- ja elaborointitehtävien

Ohjelmointi 1. Kumppanit

SPSS-pikaohje. Jukka Jauhiainen OAMK / Tekniikan yksikkö

Oppijan saama palaute määrää oppimisen tyypin

Ympäristökriisi ja ilmastokatastrofi Tiedon luonteen muutos Tieto- ja viestintäteknologian kehitys, digitalisaatio Työelämän murros, automatisaatio

CALL TO ACTION! Jos aamiaistilaisuudessa esillä olleet aiheet kiinnostavat syvemminkin niin klikkaa alta lisää ja pyydä käymään!

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)

Tekoäly ja sen soveltaminen yrityksissä. Mika Rantonen

Fraktaalit. Fractals. Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. 1 / 8 R. Kangaslampi Fraktaalit

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Ohjelmoinnin peruskurssi Y1

Tulevaisuuden tietoyhteiskuntataidot

1. Liikkuvat määreet

Capacity Utilization

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Opiskelijoiden ja opettajien erilaiset käsitykset opettamisesta koulutuksen suunnittelun taustalla

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Transkriptio:

01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Uuden äärellä ohjelmoitava vai oppiva kone? Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A1120 Ohjelmointi 2 25. huhtikuuta 2018 10101011110101 01010101011101 01010111010110 10101101010110 10101110101010 11101010101101 01110111010110 10111011010101 11110101010101 00010101010101 01011010101110

Sisältö (kierrokset ja moduulit) I 1. Lämmittelykierros Tietokoneen mysteeri 2. Bitit ja data 3. Kombinaatiologiikka 4. Sekventiaalilogiikka 5. Ohjelmoitava kone II Abstraktiot ja analyysi 6. 7. 8. 9. III Funktionaalinen ohjelmointityyli Suorituskykyanalyysi Rekursio Algoritmit ja informaation esitykset Uuden äärellä 10. Rinnakkaisuus ja samanaikaisuus 11. Virtualisointi ja skaalautuvuus 12. Ohjelmoitava vai oppiva kone?

Uuden äärellä 10. Samanaikaisuus ja rinnakkaisuus 11. Virtualisointi ja skaalautuvuus 12. Ohjelmoitava vai oppiva kone? helppoa rinnakkaisuutta: rinnakkaiskokoelmat, futuurit ja lupaukset laskentaa saa kuin sähköä seinästä skaalautuvuus omasta koneesta tehdashallitietokoneeseen*; Apache Spark (asennettu Maarille) konetta voi joskus opettaa sen sijaan että sitä ohjelmoidaan, ts. kone osaa joskus näppärästi yleistää sille esitetyistä esimerkeistä *) vain sähkösopimus (ja luottokortti) tarvitaan

The science of learning mechanisms explores how a computationally limited entity can succeed in a world that is too complex for it to model. It focuses on three things: computationally bounded entities, successful action in a complex world, and, most importantly, the relationship between the two. Leslie Valiant, in Probably Approximately Correct: Nature s Algorithms for Learning and Prospering in a Complex World, Basic Books, 2013

Voisiko konetta opettaa sen sijaan että sitä ohjelmoidaan?

Motivaatio: Ohjelmointi on raakaa työtä ja ohjelmoija luonteeltaan peruslaiska (~ Miksi raataa jos kone voi raataa puolestasi?)

(Motivaatio:) Mitä on älykkyys? Mitä on tietoisuus? (~ Ehkäpä koneen opettaminen antaisi valaistusta asiaan?)

Miten ohjelmointi ja oppiminen eroavat toisistaan?

Mitä on opettaminen? Mitä on oppiminen? (Ja miten tämä suhtautuu ohjelmointiin? Mitä on älykkyys / luovuus?)

(Eräs tapa mieltää) Opettaminen / oppiminen vs ohjelmointi

Opettaja Oppija valitsee opetettavan aiheen/ aineiston valmistelee aineiston ja esittelee sen oppijalle (toistaa edellisiä oppijan suoriutumisen ml. oppijalta saadun palautteen perusteella) aineisto suoriutuminen & palaute tarkastelee esiteltyä aineistoa ja (toivoaksemme) pyrkii oppimaan sen mitä opetetaan oppiminen vaatii työtä oppijalta aineiston omaksumista ( oppimista ) mitataan palaute opettajalle

Ohjelmoija Kone etsii täydellisen ratkaisumenetelmän tarkasteltavaan tehtävään (~ tehtävän ratkaisevan algoritmin) toteuttaa algoritmin tietokoneohjelmaksi haluamallaan ohjelmointikielellä voi halutessaan mitata ohjelman suorituskykyä eri syötteillä ohjelma (tehtävän ratkaisu & tietoa ohjelman suorituskyvystä) suorittaa annetun ohjelman

Ohjelmoitaessa työ on täysin ohjelmoijan puolella (ohjelman suoritusta vaille) Opittaessa oppiminen on oppijan vastuulla ( työ jakautuu tasaisemmin opettajan ja oppijan kesken)

Opettaja (~ohjelmoija) Oppija (~kone) valitsee opetettavan aiheen/ aineiston valmistelee aineiston ja esittelee sen oppijalle (toistaa edellisiä oppijan suoriutumisen ml. oppijalta saadun palautteen perusteella) aineisto (~data) suoriutuminen & palaute tarkastelee esiteltyä aineistoa ja oppii ohjelmointinsa perusteella oppiminen vaatii työtä oppijalta tämä työ on ohjelmoijalta pois! aineiston omaksumista ( oppimista ) mitataan

Mitä on opettaminen? Mitä on oppiminen?

Oppija pyrkii yleistämään annetuista esimerkeistä (Opettajan rooli on johdattaa oppija hyvien esimerkkien äärelle aina opettajaa ei edes tarvita!)

Esimerkkejä Osaisimmeko opettaa koneen näkemään nollia ja ykkösiä?

Esimerkkejä valmiiksi luokiteltuna ( nimettyinä ) Opettaja valmistelee nimettyjä esimerkkejä siitä miltä nolla ja yksi näyttävät, käsinkirjoitettuina

Oppijan tehtävä on oppia yleistämään esitetyistä esimerkeistä ennalta tuntemattomiin? tapauksiin

Opettaja voi helpottaa oppimista pelkistämällä esimerkeistä piirteitä, jotka korostavat opittavaa säännönmukaisuutta aineistossa (Piirteitä voidaan myös oppia ilman opettajan työtä)

Oppimisen arviointi ( validointi ) Opetusaineisto Testiaineisto Millä tarkkuudella oppija osaa käsitellä (tässä: luokitella nolliksi ja ykkösiksi) opetusaineistosta riippumattoman ja opetusvaiheessa tuntemattoman testiaineiston?

Oppimisen riskit Yleistys tuntemattomaan sisältää aina epävarmuutta Ehkäpä esimerkit eivät olekaan riittävän kattavia Virheet ovat oppimisen arkipäivää Virheet johtuvat mm. puutteellisista esimerkeistä ja puutteellisesta oppimisesta Virheisiin on varauduttava ja oppimista arvioitava

Oppimisen ihme Datan muoto palvelee tarkoitusta Muodosta voidaan (koneellisesti) päätellä tarkoituksen kannalta hyödyllistä Vrt. kone oppii tunnistamaan käsinkirjoitetut nollat ja ykköset niiden muodon (kirjoitusasun piirteiden) perusteella Datasta oppivat menetelmät ovat perin yksinkertaisia verrattuna ohjelmointiin (vrt. kirjoita ehtolauseilla miltä nolla näyttää ) Mitä runsaammin ja monipuolisemmin dataa on saatavilla, sitä hyödyllisemmäksi tulevat oppivat menetelmät Oppivat menetelmät ottavat työtä ohjelmoijalta pois ja siirtävät sitä koneelle lämpimästi suositellaan!

Opettaja (~ohjelmoija) Oppija (~kone) valitsee opetettavan aiheen/ aineiston valmistelee aineiston ja esittelee sen oppijalle (toistaa edellisiä oppijan suoriutumisen ml. oppijalta saadun palautteen perusteella) aineisto (~data) suoriutuminen & palaute tarkastelee esiteltyä aineistoa ja oppii ohjelmointinsa perusteella oppiminen vaatii työtä oppijalta tämä työ on ohjelmoijalta pois! aineiston omaksumista ( oppimista ) mitataan

Oppija (~kone) Oppija (~kone) pyrkii mallintamaan tarkasteltavaa ilmiötä/aineistoa haastaa mallillaan toisen oppijan mallin etsii mallista parannettavaa pyrkii mallintamaan tarkasteltavaa ilmiötä/aineistoa haastaa mallillaan toisen oppijan mallin etsii mallista parannettavaa ilmiö/aineisto (~säännöt ja/tai malli, ~data)

Oppimisen ihme Oppimisessa tarvittava data voidaan tuottaa myös simulaatiolla ja/tai esimerkiksi vahvisteoppimisella (reinforcement learning) Vaikkapa lautapelin (Go, shakki, ) perussäännöt sekä suuri määrä laskentaresursseja riittävät

https://doi.org/10.1038/nature24270

https://arxiv.org/pdf/1712.01815.pdf

http://research.nvidia.com/sites/default/files/pubs/2017-10_progressive-growing-of/karras2018iclr-paper.pdf

https://www.tensorflow.org

https://spark.apache.org/docs/latest/ml-guide.html

Tehtävät binaryvision opetamme koneen näkemään käsinkirjoitettuja 0 - ja 1 -lukuja bayes rakennamme naiivin Bayes-luokittimen ja sovellamme sitä 2011 eduskuntavaalien vaalikonedataan (Helsingin Sanomat) matrixinverse harjoittelemme numeerisen laskennan menetelmiä (käänteismatriisin laskeminen Gaussin eliminaatiolla) edellisen sovellus pienimmän neliövirheen polynomin sovittamiseen dataan (polynomiregressio) SVD lisää numeriikkaa singulaariarvohajotelma (SVD) [edellisen sovellus ohjaamattomaan piirteiden erotteluun]

Kurssikalenteri

Ohjelmointi 2 Ohjelmoinnin ja laskennan periaatteita porttitasolta funktionaaliseen rinnakkaisohjelmointiin Laskenta: Eräs vähiten ymmärretyistä luonnonilmiöistä Ohjelmointi: Keino valjastaa laskenta haluttuun tarkoitukseen

Porttitasolta tehdashallitietokoneeseen (NVIDIA GV100 GPU, 5120 FP32-suoritusydintä, 21.1 miljardia transistoria, 12 nanometrin prosessi) (Google Hamina)

What s in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more. Alan J. Perlis (1 April 1922 7 February 1990) in foreword to Harold Abelson and Gerald Jay Sussman, with Julie Sussman, Structure and Interpretation of Computer Programs, 2nd ed., MIT Press, 1996