Een computer die leert zoals een mens
11 december 2015 door TVOnderzoekers hebben een programma ontwikkeld dat computers in staat stelt om nieuwe concepten te leren op basis van één enkel voorbeeld.
Onderzoekers hebben een programma ontwikkeld dat computers in staat stelt om nieuwe concepten te leren op basis van één enkel voorbeeld. Zoiets lijkt misschien evident voor ons, maar dat is het voor computers helemaal niet.
Computers doen steeds vaker dingen die vroeger alleen mensen konden: ze herkennen voorwerpen en gezichten en vertalen gesproken taal in geschreven tekst en vervolgens naar een andere taal. Maar ze doen dat niet zoals wij dat doen, meer nog: ze spelen doorgaans een beetje vals.
De meeste programma's zoeken naar kenmerkende patronen in de data. Een gezicht bijvoorbeeld heeft, om het heel simpel uit te leggen, altijd andersgekleurde pixels (ogen, neus, mond...) die zich op een herkenbare manier tot elkaar verhouden, en toch van gezicht tot gezicht verschillen. Dankzij die patronen kan een computer gezichten onderscheiden zonder te begrijpen wat ze zijn.
Het nadeel van een dergelijke aanpak is dat ze, in de woorden van ontwikkelaars, ontzettend hongerig is naar data. Een computer moet vele honderden of zelfs duizenden voorbeelden zien van een bepaald object voor hij met voldoende zekerheid kan zeggen 'dit is er volgens mij ook eentje.' Dus krijgen programma's voor gezichtsherkenning eerst duizenden gezichten te zien, en dan liefst minstens enkele tientallen van de persoon die ze zoeken.
Mensen daarentegen hebben vaak al aan één voorbeeld genoeg. Kinderen onthouden na één keer in de dierentuin voor altijd hoe een krokodil eruitziet, zelfs al zijn alle krokodillen verschillend. Volwassenen werpen één blik op de eigenaardige schroefjes en gereedschappen in een folder die uitlegt hoe ze zelf een meubel in elkaar kunnen vijzen en vissen die vervolgens feilloos uit de doos. En na het zien van een symbool dat u nooit eerder zag tekent u er op eenvoudig verzoek zelf een.
Computers hebben het daar heel wat lastiger mee. Zo presenteerden wetenschappers in 2006 trots een computerprogramma dat de handgeschreven cijfers 0 tot 9 kon herkennen, en er vervolgens ook zelf een kon tekenen. Maar voor het dat kon, hadden ze het programma wel van elk cijfer 6.000 verschillende versies voorgeschoteld. Terwijl mensen zoiets dus van de eerste keer kunnen.
Kan beter, vond ook computerwetenschapper Russ Salakhutdinov, die meeschreef aan dat artikel. En dus toog hij opnieuw aan het werk, in de hoop een programma te ontwikkelen dat net zo goed kon leren als wij. Hij kreeg daarbij hulp van datawetenschapper Brenden Lake, die enkele jaren geleden ontdekte dat mensen aan wie je vraagt om een symbool na te tekenen bijna altijd op dezelfde manier te werk gaan: ze delen het symbool op in onderdelen die ze dan in een bepaalde volgorde tekenen.
Mensen zien niet gewoon een patroon van pixels, begreep Lake, noch enkele lijnen op papier, maar ze verbeelden zich ook hoe die lijnen tot stand kwamen – een bewuste opeenvolging van pennenstreken – waaruit ze zonder veel moeite afleiden hoe ze zelf zo'n symbool kunnen tekenen. Als we dat aan computers kunnen leren, bedachten de wetenschappers, dan zijn we vertrokken.
Ze gebruikten daarvoor een benadering die niet zoekt naar patronen die zekerheid bieden, maar een zogenaamde 'Bayesiaanse' aanpak, die rekening houdt met onzekerheid en die vaak al goed werkt met heel weinig gegevens. Ze schreven daarvoor zelf een programma dat de letters van dertig verschillende alfabetten omzet in eenvoudige computertaal die bewerkingen bevat die telkens een min of meer gelijkaardig teken opleveren.
Zo groeide een steeds slimmer programma dat in zekere zin 'leerde' hoe letters geschreven worden. En dat helpt: als je het programma een handgeschreven letterteken voorschotelt dat het nog nooit gezien heeft, leggen de wetenschappers deze week uit in Science, kiest het net zo vlot hetzelfde, maar enigszins anders geschreven letterteken uit twintig andere tekens als de gemiddelde proefpersoon.
Flink zo, maar kan hun programma ook zelf zo'n nieuwe letter natekenen? Achterhaalt het meteen wat noodzakelijk is om precies die letter weer te geven? Om dat uit te zoeken, lieten de wetenschappers het programma verschillende letters natekenen die het nooit eerder gezien had, en vroegen ze aan enkele mensen hetzelfde. Vervolgens werd aan proefpersonen gevraagd of ze door de computer getekende tekens konden onderscheiden van door mensen getekende tekens.
Slechts 3 van de 48 proefpersonen slaagden daar af en toe in. De anderen deden het niet beter dan wanneer ze zouden gokken. Mooi, maar misschien hebben we het ons programma wat te makkelijk gemaakt, bedachten de wetenschappers. Mensen kennen doorgaans namelijk geen 30 verschillende alfabetten. Dus begonnen ze opnieuw en leerden hun programma slechts vijf alfabetten kennen. Opnieuw zagen 25 van de 32 proefpersonen geen enkel verschil. Nog steeds absoluut niet slecht.
Nog waren de wetenschappers echter niet tevreden, en dus vroegen ze aan hun programma om een geheel nieuwe letter te bedenken die in een ongezien alfabet zou passen. Ook die letters konden de proefpersonen nauwelijks van door een mens bedachte letters onderscheiden. En hetzelfde bleek bij een laatste test, waarin de computer helemaal uit zichzelf een nieuwe letter mocht bedenken. Die zagen er schijnbaar even plausibel uit als de bedachte letters van volwassen mensen.
Het lijkt allemaal redelijk evident omdat we dit zelf zo goed kunnen, maar voor computers is het dat absoluut niet. Toch willen de wetenschappers niet te hoog van de toren blazen: op de persconferentie donderdag konden ze niet genoeg herhalen hoeveel werk er nog aan de winkel is. Een programma dat even vlot afbeeldingen, videobeelden en gesproken taal kan analyseren en produceren bestaat nog niet. Maar de kans dat het er komt lijkt bij deze aanzienlijk toegenomen.
Verder kan deze manier van gegevens analyseren worden toegepast in de datacompressie, het opslaan van gegevens op een manier die zo weinig mogelijk geheugen vergt, of bij het automatisch analyseren van wetenschappelijke gegevens. Zo is de derde auteur van het artikel, Joshua Tenenbaum, ook een van de ontwerpers van 'The Automatic Statistician', een programma dat geheel automatisch in een tiental pagina's de patronen in eenvoudige datasets rapporteert.