Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat...

18

Transcript of Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat...

Page 1: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisieHallo wereld.indd 3 04-10-18 09:39

Page 2: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

© 2018 Maurits Kaptein

Uitgeverij Business Contact

Omslagontwerp Adept Vormgeving

Foto auteur Jelmer de Haas

Typografie binnenwerk Elgraphic bv, Vlaardingen

Illustraties binnenwerk Adept Vormgeving

Drukkerij Bariet Ten Brink

isbn 978 90 470 1040 1

d/2018/0108/787

nur 740, 984

Uitgeverij Business Contact maakt deel uit van Uitgeverij Atlas Contact

www.businesscontact.nl

Hallo wereld.indd 4 04-10-18 09:39

Page 3: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

inHOUD

Waarom dit boek er moest komen 7

Inleiding 9Vervangen door een computer • Je zou niet de eerste zijn • Dit boek

1. Wat een computer is 17Alan Turing • Input, compute, output • De transities zijn zelf een vorm van input • De ram-machine • Nullen en enen • Booleaanse algebra • Rekenen met transistors • Toepassingen • Conclusie

2. Hoe een computer je verstaat 40Talen • Verschillen tussen programmeertalen • ‘Hello world’ • Variabelen, operaties en condities • Functies en objecten • Goede code is leesbaar én efficiënt • Conclusie

3. Hoe computers iets onthouden 65De basis van dataopslag • Van variabelen naar geheugen • Relatio-nele en niet-relationele databases • Data herstructureren • In-dexen • Hashing • Encryptie • Nog meer encryptie • De blockchain • Conclusie

4. Hoe computers met elkaar praten 92Vragen en antwoorden • De backend • get en post • api-calls en schaalbare software • De cloud • Websites, apps en het Internet of Things • Hacks • Conclusies

Hallo wereld.indd 5 04-10-18 09:39

Page 4: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

5. Hoe computers leren – de basics 117Recommendersystemen • De kracht van formalisatie • Uitgebrei-dere recommendersystemen • Omgaan met onzekerheid: kans-berekening • Drie manieren van leren • Conclusies

6. Hoe computers leren door ervaring 143Voorspellen • Modellen bouwen • Categorische uitkomsten mo-delleren • Uitbreidingen naar andere soorten modellen • De bo-men en het bos • Neurale netwerken • Conclusies

7. Hoe computers leren door patronen te herkennen 170Data zonder labels • Patronen herkennen op basis van afstanden • Patronen herkennen op basis van kansen • Andere manieren van patronen herkennen • Zekerheid • Conclusies

8. Hoe computers interactief leren 188Exploreren en exploiteren • Eficiënt leren • Bayes brengt uitkomst • Context • Staten, acties en rewards • Causaliteit • De potentie en het gevaar • Conclusies

9. Big data 208Wat is big data? • Omgaan met big data • Streaming modelleren • Onzekerheid in datastromen • Gaat iemand nog iets met al die data doen? • Risico’s • Conclusies

10. De zelfrijdende auto 229Stanleys hardware • Stanleys softwarearchitectuur • Hoe Stanley de weg ‘ziet’ • Hoe Stanley de route bepaalt • De Urban Challenge • De toekomst van zelfrijdende auto’s • Conclusies

Nawoord 245Dankwoord 249Boter-kaas-en-eieren 251Over de auteur 259Literatuur 261Register 267

Hallo wereld.indd 6 04-10-18 09:39

Page 5: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

WAAROM DiT bOEk ER MOEsT kOMEn

De meeste mensen hebben geen idee hoe computers en internet precies werken – en omdat computers steeds complexere taken kunnen uitvoeren, wordt het ook steeds moeilijker om daar in-zicht in te krijgen. Dat komt doordat we de basis missen: we we-ten niet hoe digitale technologie in essentie werkt.

Zelf werk ik al mijn hele leven met technologie en internet. Maar toen ik voor mijzelf begon en een online service wilde ont-wikkelen, realiseerde ik me pas dat ik te weinig kennis had om zo’n product te (laten) maken. Ik was een prima projectmana-ger, maar wist eigenlijk te weinig van de achterliggende techno-logie.

Ik begon met een cursus programmeren. Zomaar een taal. Dat kost best wel wat moeite, en naast het runnen van een bedrijf en alle andere drukte was dit altijd het eerste wat sneuvelde. Het voelde willekeurig en het leverde te weinig op. De kans dat ik pro-grammeur zou worden was vrij klein en eigenlijk wilde ik me he-lemaal niet zo diepgaand specialiseren. En al helemaal niet in maar één programmeertaal. Bovendien miste ik vooral het over-zicht: ik wilde kunnen denken als een programmeur, maar niet speciaal zelf kunnen programmeren.

Door het agentschap voor technologie-experts dat ik opzette, realiseerde ik me hoe snel het gaat en hoe groot de invloed van technologische ontwikkelingen is en nog zal worden. De behoefte om technologie te begrijpen wordt daardoor steeds groter. Zijn er gevaren? Hoe zit het met je privacy? Is dat elektronische slot op je deur wel veilig? Mis ik een zee van mogelijkheden? Hoe overleg ik

Hallo wereld.indd 7 04-10-18 09:39

Page 6: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

h a l l o w e r e l d8

met mijn programmeur; hoe begrijp ik wat de opties zijn en zijn de bijbehorende kosten dan logisch?

Dit besprak ik met Maurits, een van de experts van The Next Speaker, en die schreef toen dit boek. En nu begrijp ik het beter. En als ik iets toch niet begrijp, dan kan ik betere vragen stellen. Want daar gaat het om: na dit boek ben je geen programmeur, maar heb je een beter inzicht, ben je hopelijk niet meer bang voor de opkomende technologie kun je de huidige ontwikkelingen be-ter plaatsen en neem je betere beslissingen. De invloed van tech-nologie wordt groter, daar is niks aan te doen en negeren is geen optie. Duik er gewoon in. Dit boek is de basis. En wie weet word je daarna alsnog programmeur.

Tessa SterkenburgOprichter The Next Speaker

Hallo wereld.indd 8 04-10-18 09:39

Page 7: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

inLEiDing

Ik schrijf dit boek op mijn laptop, terwijl mijn huis op temperatuur wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar mijn stereo stuurt. Dit zijn allemaal computers. In ons privéleven spelen ze een steeds grotere rol. Zo rekenen we op ze om ons op tijd wakker te ma-ken, om ons naar onze bestemming te navigeren en om ons te advise-ren over hoe we een gezond leven moeten leiden. En ook op ons werk kunnen we niet om ze heen.

Maar hoe werken computers eigenlijk? Hoe werken de onderlig-gende netwerken? Hoe kunnen computers op basis van data be-slissingen nemen? Best goede vragen. Vooral omdat een goed be-grip van de antwoorden inzicht geeft in hoe onze huidige wereld in elkaar zit.

Misschien denk je: zolang die technologie maar werkt, maakt het mij niet uit hóé die werkt. Die houding is echter op z’n best niet zo verstandig en in het ergste geval gevaarlijk: je hebt waar-schijnlijk een baan waarin je werkt met technologie, waarin je be-slissingen neemt over technologie of waarin je af en toe technolo-gie van anderen inkoopt of gebruikt. En anders doe je dat wel in je privéleven: als je een nieuwe telefoon of een router voor je draad-loze internet koopt, als je surft op internet of een zoekmachine gebruikt, als je een bestand verstuurt via WeTransfer of deelt via Dropbox, als je sms’t of whatsappt. En wat dacht je van die aan-koop die je gisteren online deed? Of van je auto? Op dit moment stuur je waarschijnlijk nog zelf, maar het lijkt erop dat dat in de

Hallo wereld.indd 9 04-10-18 09:39

Page 8: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

h a l l o w e r e l d10

komende jaren gaat veranderen en je de verantwoordelijkheid uit handen moet geven aan een computer. Dan is het wellicht goed om te weten hoe dat ding werkt.

Het is prettig om te snappen hoe dit allemaal kan, wie er wel en niet meekijkt met je transactie en hoe je je veiligheid en privacy daarbij enigszins kunt waarborgen. Als je meer weet over techno-logie, kun je net iets beter met de huidige wereld overweg, en al helemaal met die van morgen.

Wat doe je bijvoorbeeld als de programmeur die je hebt ge-vraagd een extra functie voor een betalingssysteem voor je te programmeren zegt: ‘Dat kost 2 ton om te ontwikkelen’? Leg je je daarbij neer en maak je klakkeloos het geld over? Of zeg je: ‘Als we een hash maken van de html van de pagina en die via een rest-call toevoegen aan onze logging zijn we er toch? Dat lijkt me nog geen vijf minuten werk.’ Zo zou je in een paar seconden duizenden euro’s besparen. Alleen dat al lijkt me de moeite waard.

Dit boek leert je de basiswetten van digitale technologie, zodat je zelfstandig, zonder blind te hoeven vertrouwen op een of ande-re cto of ict’er, beslissingen kunt nemen over deze technolo-gie. Ik bouw de kennis stap voor stap op; ik begin bij de werking van computers, ga vervolgens naar netwerken, dan via data naar machine learning en uiteindelijk naar kunstmatige intelligentie. Ik schroom daarbij niet af en toe de diepte in te duiken. De technolo-gie die wij tegenwoordig als vanzelfsprekend beschouwen, is ge-stoeld op een aantal van de baanbrekendste wetenschappelijke in-zichten, opgedaan door genieën als Alan Turing, Claude Shannon, John von Neumann en dominee Thomas Bayes.* Als het erg inge-wikkeld wordt, geef ik dat in de kantlijn aan (met het volgende

* Je kunt natuurlijk ook zelf lezen wat deze mensen hebben geschreven. In de

voetnoten geef ik soms extra informatie, maar verwijs ik vooral naar origineel

materiaal. Een introductie op Turings werk over computers vind je in Petzold,

2008, Von Neumanns computer wordt besproken in Godfrey & Hendry, 1993,

Bayes legt zijn theorie uit in Bayes & Price, 1763, en Shannon die van hem in

Shannon & Weaver, 1963. Alle de moeite waard, niet allemaal makkelijk.

Hallo wereld.indd 10 04-10-18 09:39

Page 9: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

i n l e i d i n g 11

mooie plaatje: ), zodat je weet dat je je op dat stukje even extra moet concentreren (of het eventueel kunt overslaan). Moeilijk? Wellicht, her en der, maar niemand heeft ooit gezegd dat het mak-kelijk is om in een paar seconden duizenden euro’s te besparen.

Ik kan je niet leren om computers vanuit het niks zelf te bouwen. Maar ik kan je wel laten begrijpen wat er gebeurt als digitale tech-nologie in actie komt. Daardoor leer je beter inschatten wat een computer wel en niet kan, wat daarvoor nodig is en hoeveel tijd het ongeveer kost om hem iets te laten doen. Je kunt dan ook beter in-schatten waar je moet beginnen als de technologie niet doet wat je dacht dat ze zou doen. En je kunt de charlatans – en daar zijn er veel van – die dingen roepen als: ‘Als we big data gebruiken, wordt het een succes’, of :‘Wat jij nodig hebt: de cloud!’ van repliek dienen.

Er was een tijd dat de meeste mensen niet konden lezen. In-middels is dit voor iedereen een onmisbare vaardigheid gewor-den. Voor basiskennis over digitale technologie geldt tegen-woordig hetzelfde: zonder dat begrip gaat de wereld voor een belangrijk deel aan je voorbij. Er is alleen wel een groot verschil tussen lezen en digitale technologie begrijpen. Lezen kun je op een gegeven moment, en dan kun je voortaan alle geschreven tekst ontcijferen. Er wordt echter telkens nieuwe technologie ontwikkeld; computers kunnen steeds meer, en de slimste men-sen ter wereld werken continu aan nieuwe manieren om ze tot nog meer in staat te stellen. Bijblijven is daarom lastig, en het wordt steeds lastiger: als je de basis al niet hebt, is het steeds moei-lijker om de nieuwe ontwikkelingen te plaatsen. Velen van ons zijn eigenlijk al te laat: we zijn wel gebruikers van technologie, maar we begrijpen er weinig van. Dit boek geeft je de basis waar-door je vanaf nu weer mee kunt doen.

Vervangen door een computerVeel mensen hebben moeite om te begrijpen wat computers kun-nen en hoe ze werken. Dat is niets om je voor te schamen. Ons be-grip van digitale technologie is tot nog toe vooral gestoeld op ana-

Hallo wereld.indd 11 04-10-18 09:39

Page 10: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

h a l l o w e r e l d12

logieën. Een bekende is om de desktopcomputer te zien als een bureaublad met mappen waar allerlei bestanden in zitten. Deze analogieën zijn bedacht om ons de technologie te laten gebrúí-ken, niet om ons de technologie daadwerkelijk te laten begríjpen. Ooit was dat handig, maar nu de hele wereld digitaal wordt, staat de analogie een goed begrip soms juist in de weg. Het resultaat is dat slechts enkelen van ons diepgaande kennis hebben van speci-fieke onderdelen van de technologie. En er is eigenlijk niemand die precies kan vertellen hoe alle afzonderlijke delen van bijvoor-beeld een zelfrijdende auto werken.

Dat is een behoorlijk beangstigende gedachte, zeker als je be-denkt dat computers onderling kennis veel sneller delen dan wij: als er één computer zo geprogrammeerd is dat hij kan navigeren, dan kunnen vanaf dat moment álle computers in principe navi-geren. De gevolgen hiervan worden vaak onderschat.

Ik mag af en toe voor een clubje mensen (een branchevereni-ging of iets dergelijks) vertellen over de impact van technologie en kunstmatige intelligentie op hun banen. De laatste tijd deed ik dat bijvoorbeeld bij groepen accountants, verzekeraars, bankiers en piloten. En steevast zei men: ‘Ja, de technologie kan al veel, en delen van mijn werk zijn al overgenomen door computers, maar mijn baan is zo complex en vraagt bovendien om intuïtie, kennis en gevoel, dat zal een computer nóóit kunnen.’

Dit is een heel gevaarlijk wereldbeeld. Ik bestrijd niet dat ac-countants, verzekeraars, bankiers en piloten lastige banen heb-ben. En ik bestrijd ook niet dat ze allerlei complexe beslissingen nemen, beslissingen die op dit moment nog niet uit te besteden zijn aan computers. Maar stel nu dat een groep geniale ingenieurs een paar jaar aan het werk zou gaan om een computer te maken die een accountant kan vervangen, of een verzekeraar, of een pi-loot, en dat ze na vele jaren hard werken slagen in hun missie. Vanaf dat moment kunnen alle computers in de hele wereld, per direct, alle accountants, piloten en verzekeraars vervangen. An-ders dan mensen hoeven computers niet te worden opgeleid of ervaring op te doen: als de technologie er is, dan kan deze ver-spreid (simpelweg gekopieerd) worden. Dus zo gauw één com-

Hallo wereld.indd 12 04-10-18 09:39

Page 11: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

i n l e i d i n g 13

puter beter is in iets dan mensen, dan zijn ze het in theorie alle-maal.

Stel dat je pas gaat letten op wat een computer kan op het mo-ment dat geniale ingenieurs al bezig zijn jouw baan te digitalise-ren. Misschien ben je arts en heb je totaal niet meegekregen hoe ibm met supercomputer Watson probeert om langzaam maar ze-ker een computer te programmeren die betere diagnoses kan stel-len dan jij.* Het zal nog wel even duren voordat het zover is, maar dan kun je als arts ook meteen inpakken. Zelfs fysiek contact en een luisterend oor zijn door kunstmatige intelligentie en andere slimme technologieën te vervangen.† Met wat meer begrip van bestaande en toekomstige technologie kun jij tenminste op tijd op zoek gaan naar een alternatief tijdverdrijf. Onderschat hierbij vooral niet waar computers toe in staat zijn. John von Neumann zei al: ‘U blijft erbij dat er iets is wat een machine niet kan. Maar als u mij precies kunt vertellen wat het is dat een machine niet kan, dan kan ik er een maken die precies dat kan.’‡

Je zou niet de eerste zijnGoed, je moet dus weten hoe technologie werkt om in te kunnen schatten wat het effect ervan zal zijn op je huidige baan. Maar niet alleen voor jou persoonlijk is het heel belangrijk te weten in welke wereld we leven; juist in het bedrijfsleven en bij overheden is het van essentieel belang dat degenen die de beslissingen nemen over technologie weten waar ze het over hebben.

Te vaak wordt er door technologiebedrijven en door een leger consultants voor veel te veel geld technologische onzin verkocht.

* Pogingen in deze richting zijn al jaren gaande, dus als arts ben je er echt laat

bij als je nu pas mee gaat kijken. Zie bijvoorbeeld Weaver, Ball, Kim, Kiel e.a.,

2016 voor een recent overzicht (inclusief Watson).

† Wederom geen toekomstmuziek; zie: Broekens, Heerink & Rosendal, 2009.

‡ De quote uit 1948 is naar verluidt: ‘You insist that there is something that a

machine can’t do. If you will tell me precisely what it is that a machine cannot do,

then I can always make a machine which will do just that.’ Tot mijn spijt heb ik

geen schrijven van Von Neumann zelf kunnen vinden waarin de uitspraak staat.

Hallo wereld.indd 13 04-10-18 09:39

Page 12: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

h a l l o w e r e l d14

ict-projecten lopen schandalig uit de hand omdat de mensen die de projecten managen essentiële kennis missen. Recentelijk maak-te Nieuwsuur een inventarisatie van mislukte ict-projecten bij de overheid. Daarin waren bijvoorbeeld de problemen met Digino-tar opgenomen. Deze dienst verkocht veiligheidscertificaten voor een fors aantal overheidssites, maar werd in juli 2011 zelf gekraakt door Iraanse hackers. De overheid zegde het vertrouwen op en moest halsoverkop op zoek naar andere certificaten. Ook waren er veiligheidsissues met DigiD, de vingerafdrukken in paspoorten, het systeem dat de politie gebruikt om processen-verbaal in vast te leggen en de ov-chipkaart.*

Het is overigens zeker niet alleen de overheid waar nieuwe technologie wel eens problemen oplevert. Het is voor iedereen belangrijk een kloppend beeld te hebben van hoe computers wer-ken.

Dit boekIn dit boek neem ik je mee op reis door de moderne technologie: van de ontwikkeling van de eerste computers tot big data, kunst-matige intelligentie en machine learning.

We beginnen met wat je met nullen en enen kunt doen. Alan Turing bedacht ooit dat machines konden rekenen, waarna door middel van de transistor en nullen en enen de basis werd gelegd voor onze huidige computers. Dit is de basis van de computer waar we zelf eigenlijk nooit meer over hoeven na te denken, maar die wel nuttig is om te kennen: waarom werken computers eigen-lijk met nullen en enen? En zijn alle computers tot hetzelfde in staat? Wellicht moet je er even in komen – houd vol, het is het waard!

* Voor de volledige lijst zie: http://nos.nl/nieuwsuur/artikel/2029208-misluk-

te-ict-projecten-en-andere-ict-missers.html, en voor het parlementair onder-

zoek naar het functioneren van ict-projecten binnen de overheid zie: www.

tweedekamer.nl/sites/default/files/field_uploads/33326-5-Eindrapport_tcm181-

239826.pdf.

Hallo wereld.indd 14 04-10-18 09:39

Page 13: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

i n l e i d i n g 15

Voortbouwend op deze basis bekijken we hoe we überhaupt praten met computers. In dit tweede hoofdstuk leg ik uit hoe we computers tegenwoordig programmeren en wat er wel en niet met een computer te bespreken valt. Dit hoofdstuk geeft je hand-vatten om mee te praten met programmeurs, mee te denken over softwarestructuren en geïnformeerde beslissingen te nemen over programmeerprojecten.

In hoofdstuk 3 bekijken we hoe computers kennis onthouden. Hoe kunnen we informatie opslaan in databases en hoe verschil-len bepaalde soorten databases van elkaar? Dit hoofdstuk behan-delt sql- en Nosql-databases, en alle huidige buzz-termen – Ha-doop, Spark, Map/Reduce – die vaak door consultants gebezigd worden. Na het lezen van dit hoofdstuk begrijp je hoe lastig het is om informatie veilig op te slaan, te koppelen of te veranderen.

In hoofdstuk 4 bekijken we hoe computers tegen elkaar praten. Nu behandelen we de moderne infrastructuur: is die cloud nu echt zo bijzonder? En hoe werkt internet eigenlijk? In dit hoofd-stuk wordt duidelijk hoe servers verschillen van laptops, hoe apps verschillen van websites, en wat er nu wezenlijk nieuw is aan het Internet of Things (IoT). Een goed besef van de structuur van dit netwerk van computers helpt je om te begrijpen waar de zwakhe-den zitten.

In de hoofdstukken 5 tot en met 8 gaan we ons bezighouden met machine learning: hoe kan het dat computers dingen ‘leren’? Hoe kan een computer bedenken wat onze voorkeuren zijn, bij-voorbeeld welke muziek we leuk vinden? En hoe kan het dat er computers zijn die beter kunnen schaken dan grootmeesters? Deze hoofdstukken leren je wat een computer wel en niet kan le-ren, en hoe dit werkt.

We beginnen in hoofdstuk 5 met wat simpele wiskundige for-malisaties van problemen (en wat statistiek, sorry) om te laten zien wat de kracht is van zelfs heel simpele algoritmen. Daarna bespreken we in hoofdstuk 6 hoe computers kunnen leren van voorbeelden en in hoofdstuk 7 hoe computers patronen herken-nen, om in hoofdstuk 8 te eindigen met reinforcement learning: de huidige manier waarop veel computers zelf interactief leren door

Hallo wereld.indd 15 04-10-18 09:39

Page 14: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

h a l l o w e r e l d16

trial-and-error.* Natuurlijk focussen we in dit deel van het boek ook op kunstmatige intelligentie (of artificial intelligence, kort-weg ai). Dit is een veelbesproken onderwerp: de groten der aarde (Stephen Hawkins, Elon Musk et cetera) waarschuwen ons ster-velingen voor de impact van deze technologie.† We sluiten dit deel van het boek af door te kijken hoe computers omgaan met big data; dit doen we in hoofdstuk 9.

In hoofdstuk 10 zien we hoe dit alles samenkomt. Hier bekij-ken we een van onze mooiste toepassingen van moderne compu-ters: de zelfrijdende auto. Als je zover bent gekomen, kun je al het voorgaande integreren en begrijpen hoe we een computer onbe-grijpelijke dingen kunnen laten doen.

Ten slotte kijken we in het nawoord terug op wat we hebben besproken, en gaan we in op de maatschappelijke impact: willen we wel dat ‘onze’ data gebruikt wordt door computers? Is onze data daar wel veilig? En wordt onze privacy niet geschonden?

Na het lezen van dit boek heb je een redelijk idee van de technolo-gieën die gebruikt worden om het internet draaiende te houden en om de zelfrijdende auto op de weg te houden. Je kunt dan nog lang niet zelf zo’n auto bouwen, maar hopelijk wel inschatten waar de technologie naartoe gaat.

* Wil je al direct meer diepgang, dan hierbij alvast een paar interessante boe-

ken over machine learning en kunstmatige intelligentie; verderop in het boek

verwijs ik naar specifieke artikelen die de methoden die ik bespreek presenteren.

Maar voor nu zie bijvoorbeeld: Bishop e.a., 2006; Hastie, Tibshirani & Fried-

man, 2013; Sutton & Barto, 1998.

† Voor de indringende waarschuwing, ondertekend door velen, zie: https://

futureoflife.org/ai-open-letter/.

Hallo wereld.indd 16 04-10-18 09:39

Page 15: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

1WAT EEn COMPUTER is

‘Computers doen iets met nullen en enen.’ Dit was lange tijd mijn begrip van digitale technologie, en dat geldt voor veel mensen – ook voor mensen die dagelijks computers gebruiken, thuis of op hun werk, en zelfs voor mensen die programmeurs aansturen.* Met deze uitspraak schep je echter bewust afstand: je hebt geen idee, en eigenlijk vind je dat wel prima. Maar hoewel technologie complex kan zijn, is een computer geen magisch apparaat, en hij hoeft geen black box voor je te blijven.

In dit hoofdstuk leg ik de basis van de werking van computers uit. Dit is lastig, en ik heb me die zelf ook maar met moeite eigen gemaakt. Bij mij kwam het begrip van computers niet vanzelf. Ik zou graag willen zeggen dat ik al vanaf mijn vijfde programmeer, op mijn zevende mijn eerste computer in elkaar soldeerde en op mijn elfde een programma schreef om automatisch het voorschot op mijn erfenis te verhandelen, maar niets is minder waar. Ik was wél jong toen ik voor het eerst met computers in aanraking kwam. In 1987, ik was toen vier, kwam mijn vader thuis met een apparaat ter grootte van een schoenendoos. Het ding was grijs en had op de kopse kant een zwart scherm waarop groene tekens verschenen. Er zat geen muis bij, en er was geen grafische inter-face.† Wat er wel op zat, waren spelletjes. Mijn broer en ik speel-

* Het kan nog erger: mijn vriendin heeft de neiging om te zeggen: ‘Mijn vriend

doet iets met computers’, wat een enorm slechte beschrijving is van mijn werk.

† Geen grafische interface, dus geen mooie icoontjes om op te klikken, maar

zonder muis is klikken sowieso lastig. Overigens bestonden de muis en de grafi-

Hallo wereld.indd 17 04-10-18 09:39

Page 16: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

h a l l o w e r e l d18

den veel samen, maar eens in de zoveel tijd zagen we ‘papa’ terug in de highscore-lijst. We dachten dan dat hij een avondje had zit-ten spelen, maar op een dag kwamen we erachter dat hij recht-streeks de highscores kon veranderen. Toen werd de computer voor mij iets magisch.*

Een aantal jaren later speelde ik nog steeds spelletjes, toen op een mooiere computer (met kleurenscherm, muis en Windows). Van deze periode herinner ik me vooral de stress wanneer de computer vastliep door een gekopieerd spelletje op een floppy-disk. Ik probeerde dan uit alle macht het ding weer aan de praat te krijgen voordat papa thuiskwam. Zo bracht ik mezelf onder grote tijdsdruk een aantal basiscommando’s bij om de computer te herstellen. Bedenk dat het toentertijd onmogelijk was om online te zoeken naar die commando’s. Ik was aangewezen op trial-and-error (en wat hulp van mijn oudere broer).†

Mijn eerste ervaring met programmeren kwam door de Kijk (een populairwetenschappelijk blad). In het maandblad stond af en toe computercode, bijvoorbeeld om een spel te maken. Code was voor mij destijds een onleesbare collectie letters, cijfers en te-kentjes (zoals het dat voor velen nog steeds is), maar op een dag heb ik zo’n pagina overgetypt in WordPerfect (de voorloper van Word). Ik zou hiermee een spelletje maken, maar toen ik de code had ingevoerd, gebeurde er niets. Ik had een halve dag zitten ty-pen en de code tot in den treure gecontroleerd (ik had wel begre-pen dat het maken van fouten funest was), en toch gebeurde er helemaal niks. Niks! Diep teleurgesteld heb ik het programmeren gelaten voor wat het was.

Ik ging radio’s bouwen en met elektronica spelen, skateboar-

sche interface toen al wel, ze waren echter niet wijdverspreid. Apple introdu-

ceerde al in 1983 (mijn geboortejaar) de lisa, de eerste commerciële computer

met muis en grafische interface.

* Het bleek uiteindelijk heel simpel: de highscores werden bijgehouden in een

tekstbestand dat, als je wist waar het stond, direct aan te passen was. We leerden

dus al op jonge leeftijd digitaal valsspelen.

† Voor ingewijden een paar termen om de herinneringen terug te halen: ‘auto-

exec.bat’, ‘command.com’, en natuurlijk ‘hiMem.sys’.

Hallo wereld.indd 18 04-10-18 09:39

Page 17: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

w a t e e n c o m p u t e r i s 19

den, muziek maken, psychologie studeren en allerlei andere din-gen die niets met computers te maken hadden. Natuurlijk ge-bruikte ik computers en applicaties en wist ik prima waar ik op moest klikken om de boel aan de praat te krijgen.

Toen ik een jaar of twintig was, kwam het internet op. Alles wat nieuw en interessant was, leek zich ineens online af te spelen. Daardoor besefte ik dat het toch wel verdraaid handig zou zijn om iets beter te weten hoe computers nu echt werken. Ik verdiep-te me erin en niet veel later schreef ik mijn eerste werkende pro-gramma. Toen begreep ik pas waarom mijn eerste poging mis-lukte: ik had de computer nooit ‘verteld’ dat hij iets met de door mij ingevoerde lettertjes, cijfertjes en tekentjes moest dóén. Tot mijn spijt kom ik nog steeds mensen tegen die geen idee hebben hoe je van een tekstbestand een werkend spelletje kunt maken. Hopelijk is dat over een hoofdstuk of drie anders.*

Alan TuringJe kunt het niet over computers hebben zonder het werk van de wiskundige Alan Turing te bespreken. Ik geef in dit boek geen complete weergave van zijn gedachtegoed, en er zullen vast lezers zijn die menen dat mijn uitleg hem tekortdoet. Ik hoop echter een beeld te geven van Turings theorieën voor zover die van belang zijn om de huidige en toekomstige technologie te duiden en te begrijpen. De geïnteresseerde lezer kan via de referenties in de voetnoten de details vinden die zij of hij wenst.

Het lijkt me sterk dat je nog niet eerder van Turing hebt gehoord, nu er de laatste jaren verschillende boeken (Turing’s Cathedral is een aanrader) en een film (The Imitation Game) over hem zijn ver-schenen. En anders ken je hem wellicht van de Turingtest, waarmee

* Natuurlijk is het lezen van dit boek een heel goed startpunt om iets over

computers te leren, maar zelf iets bouwen is in mijn ogen nog steeds het meest

effectief: bedenk een spelletje en maak het op een computer. Als je een makke-

lijk spelletje bedenkt, kost het minder tijd dan een serie kijken op Netflix, en je

hebt er net iets meer aan.

Hallo wereld.indd 19 04-10-18 09:39

Page 18: Hallo wereld.indd 3 04-10-18 09:39 2e revisie · wordt gehouden door mijn ‘slimme’ thermostaat en mijn tablet ‘spe-ciaal voor mij’ muziek selecteert en die draadloos naar

2e revisie

h a l l o w e r e l d20

kan worden nagegaan of een computer intelligent is.* In deze test chat een proefpersoon met een computer of met een mens.† Als de proefpersoon na het gesprek denkt een mens te hebben gesproken terwijl dat niet zo is, heeft de computer de Turingtest doorstaan.

Turing is echter, zeker onder wiskundigen en computerweten-schappers, vooral bekend vanwege zijn in 1937 verschenen paper ‘On computable numbers, with an application to the Entschei-dungsproblem’.‡ Hierin doet hij iets wat even opmerkelijk als ge-niaal is: hij beschrijft de theoretische eigenschappen van een computer, terwijl die nog helemaal niet bestaat. Rond die tijd wa-ren er alleen wat mechanische apparaten om berekeningen uit te voeren. De ‘computer’ die Turing bedacht, lijkt niet echt op de computers die wij tegenwoordig gebruiken, maar deze ‘Turing-machine’ blijkt een model te zijn waar álle huidige computers toe te reduceren zijn. Dat wil zeggen dat alles wat we op dit moment kunnen uitrekenen met een computer, ook door een Turingma-chine uitgerekend zou kunnen worden. En dat terwijl Turing de machine ‘alleen’ bedacht om een wiskundig probleem op te los-sen (het Entscheidungsprobleem)!§

Input, compute, outputDe machine van Turing is een apparaat dat input krijgt, daar be-werkingen op uitvoert en dan output produceert. Een computer is ook een apparaat dat ‘input’ ontvangt, daar iets mee doet (‘compute’) en daarna ‘output’ produceert. Als je een zoekterm intikt in Google, creëer je input, en nadat zowel jouw computer

* Alan Turing beschrijft zijn test in Machinery, 1950.

† Turing was zijn tijd wat dat betreft trouwens ver vooruit, want chatten be-

stond nog helemaal niet.

‡ Dat is deze: Turing, 1937, en hij is voor velen van ons gewone stervelingen

onleesbaar. Het artikel, met een uitgebreide uitleg, staat in Petzold, 2008.

§ Het Entscheidungsprobleem draait om de vraag of het altijd mogelijk is om

aan de hand van een aantal axioma’s de juistheid van een stelling te bepalen. Dit

blijkt niet het geval. Zie ook Petzold, 2008, of voor een bredere en toegankelijke

introductie in axiomatische systemen Hofstadter, 2000.

Hallo wereld.indd 20 04-10-18 09:39