zaterdag 17 januari 2015

Machine Learning is haarlemmerolie


Over een jaar of tien krijgen de ontwikkelaars het moeilijk. Er komt namelijk concurrentie uit onverwachte hoek. En dan heb ik het niet over India, maar over computers die computers gaan programmeren.


In 2013 kwam de film Her uit met  Joaquin Phoenix. Hij installeert een nieuwe operating system op zijn mobiele telefoon op basis van kunstmatige intelligentie en al snel wordt hij hier verliefd op. Nu denk ik niet dat dit in zijn geheel snel werkelijkheid wordt, maar er zijn nu echt duidelijk signalen dat computers steeds beter "begrijpen" wat mensen zeggen. Dit betekent niet dat de computer een bewust zijn krijgt, de onderliggende principes komen gewoon voort uit machine learning, of deep learning en dat gaat ongeveer zo: Je stopt allerlei teksten in een database. Deze teksten worden ontleedt en tegen nog meer data aangehouden. Hieruit wordt context verleent. Ieder onderwerp wordt zo bijvoorbeeld opgezocht en daarna automatisch gelabeld. Zo kan het systeem onderscheid maken tussen personen en dingen en herkennen wanneer het over tijd of over plaats gaat. Door al deze input te koppelen en te verriijken: welke uitspraken waren door mannen gemaakt, welke door vrouwen? Kan een systeem zonder intelligentie wel intelligentie "veinzen". Zo kan een algoritme sarcasme herkennen en uit zijn geheugen een gepast sarcastisch antwoord halen. Door het systeem te trainingen met nog meer -liefst gevalideerde- input wordt het steeds krachtiger. Als het systeem communiceert met gebruikers kan hij van deze communicatie weer leren. Nogmaals: dat leren is een algoritme, er zit geen intelligentie achter, maar uiteindelijk kan zo'n systeem verrassend authentiek reageren.

Zo heb je bijvoorbeeld machine learning implementaties die woorden bij foto's plaatsen. Als je een foto upload naar het systeem, dan antwoord deze met tekst die op de foto slaat. Bijvoorbeeld "twee jongens spelen met een bal". Als je bij de foto ook nog menselijk input krijgt, zal het systeem steeds accurater worden.

Ik zal een paar toepassingen geven waarin dit toegevoegde waarde biedt. Als ik een tekst schrijf en ik wil een aantal links plaatsen in deze teksten, dan geeft het systeem al direct suggesties waarheen je wilt linken. Of als je tegen je telefoon gaat praten, snapt het systeem je intentie. "Kan ik hardlopen vanavond?". Je telefoon weet waar je woont, of waar je meestal hardloopt en kan herkennen dat je bij regen, kou of harde wind nooit loopt, Maar ook of je vrouw al een afspraak heeft en je kinderen hebt.  Het antwoord zou kunnen zijn "Ja, maar om negen uur gaat het regenen". Dit is minder ver weg dan het lijkt. Als je voor een website een foto zoekt kan het systeem juist door te herkennen wat er op foto's staat een aantal voorstellen doen.

Maar wat als je het systeem code gaat voeren? Deze kan automatisch verbeterd en opgemaakt worden, gerefactord (herschreven voor performance, efficientie of leesbaarheid) en aangevuld worden. Maar als dat kan, dan wordt het wellicht mogelijk om aan te geven wat je wilt gaan bouwen en zal het systeem de benodigde code daarvoor schrijven. Voedt het met voorbeeld layout en het ziet er meteen goed uit. Deze code-generator zal sneller zijn dan welke groep programmeurs dan ook en het testen zal automatisch worden uitgevoerd.

"Is er nog wat op TV?" krijgt dan een hele andere betekenis, je TV neemt dan ook al op wat je wilt zien (als dat al nodig is). Dit is echter alleen maar mogelijk als het systeem voldoende data tot zich kan nemen, en hier wringt misschien de schoen. De algoritmen zijn toch tamelijk complex en het geheugen van het systeem zal waarschijnlijk niet lokaal bij je worden opgeslagen. Je geeft daarmee wel heel erg veel van jezelf weg en met de terroristische dreigingen van de laatste tijd worden steeds meer misbruikt om onze rechten op privacy te beperken.

Wat als deze data bij zorgverzekeraars terecht komen? En bij de belastingdienst? Ja we hebben dan handige machines, maar wat voor vrijheid hebben we dan nog om ze naar eigen goeddunken te gebruiken?

Maar ook: Het schrijven en componeren van een hit wordt zo kinderspel, een koud en harteloos systeem kan ons in vervoering en ontroering brengen door het toepassen van simpele patronen.

Dan komt natuurlijk de vraag: Wat levert het ons op? Maakt het ons echt gelukkiger, al dat gemak? Wie zal er nog geld kunnen verdienen?

Het lijkt science fiction waar ik over schrijf, maar ik twijfel er niet aan dat er in dit soort machine learning miljarden gestoken worden. De komende twee jaar zullen we al de contouren gaan zien waar dit heen gaat. Er zijn recentelijk wat doorbraken gedaan, die de weg vrij maken voor de Cortana's, Siri's en Google Now's. Uiteraard zullen we in Nederland niet als eerste aan beurt zijn en misschien is het wel de juiste tijd om Engels als eerste taal te introduceren in Nederlands. Dat zou wel eens een cruciale beslissing kunnen zijn. Althans, dat is de uitkomst van mijn machine learning algoritme...