Algoritmisch denken - Super Vision #22

Hi 👋 lezer,

Deze week behandelen we een vraag: wat is nu precies een algoritme? We leggen uit waarom je dat moet weten als maker. Want een algoritme is bijvoorbeeld geen AI. En AI is niet hetzelfde als machine learning (ML). Hoe het wel zit, lees je hier.

You don’t have to know the code, but you do need to know what the code can do. - Stanford d.school

Na een aantal weken met grote vragen, abstracte concepten en filosofische beschouwingen, gaan we 'gewoon' weer lekker praktisch. Je leert in deze editie het volgende:

  • Wat een algoritme is - stap voor stap uitgelegd.

  • Hoe algoritmes in relatie staan tot ML.

  • Waarom je als mediamaker dat onderscheid moet kennen.

Verder hebben we voor ons boek een aantal 'algoritmisch onderlegde' mediamakers gevraagd om te vertellen hoe zij werken. Daar krijg je een voorproefje van.

Last but not least: we hebben ook een AI zelf gevraagd om dit alles aan je uit te leggen. 🤗 En we hebben linkjes!

Note: waar ik 'we' schrijf bedoel ik: mijn mede-auteur Marlies van der Wees en ik. Zij is zo vriendelijk geweest om deze materie laagdrempelig, in een notendop uit te leggen.

Veel plezier deze editie! Marlies en Laurens

Als je nog vragen of opmerkingen hebt, dan willen we die graag horen! Gebruik daarvoor de feedback-knop onderaan.

1. Verschil tussen algoritmen en machine learning

Een algoritme is een stappenplan of een serie instructies om een opdracht uit te voeren. Ook al is een algoritme noodzakelijk voor machine learning, het omgekeerde is niet het geval. Een algoritme hoeft geen machine learning te zijn, maar kan bestaan uit handgeschreven regels, zogeheten heuristieken of rule-based algoritmen.

Chatbot zonder ML

Denk bijvoorbeeld aan een chatbot: het is goed mogelijk om alle zinnen die een chatbot in verschillende situaties gebruikt van te voren vast te leggen, zeker als een chatbot maar een beperkte taak heeft, zoals -zeg maar wat- vragen waar uw fiets een defect heeft. In dat geval is er geen machine learning nodig. Zo’n chatbot is wel beperkt: het kan niet omgaan met spelfouten en kan niet leren op een andere manier te reageren dan volgens de vooraf vastgelegde zinnen.

Chatbot met ML

Een op machine learning gebaseerde chatbot kan deze dingen wel, omdat het op basis van voorbeeldgesprekken leert hoe het moet reageren in bepaalde situaties, bijvoorbeeld wanneer je op zoek bent naar de optimale zorgverzekering voor het aankomende jaar.

Photo by Sara Cohen (via Unsplash)

2. Hoe een algoritme werkt? Check je boekenkast.

Heb je thuis een boekenkast? Grote kans dat de boeken daarin niet op volstrekt willekeurig plekken staan. Je kunt op meerdere manieren orde aanbrengen, bijvoorbeeld door je boeken alfabetisch te sorteren of op kleur te groeperen. Welke manier je kiest is aan jou. Je doel bepaalt vervolgens hoe je te werk gaat.

Alfabetische volgorde

Sorteer je je boeken alfabetisch, dan gebruik je bijvoorbeeld dit stappenplan:

  1. Pak een boek.

  2. Lees de eerstvolgende letter van de naam van de auteur.

  3. Zoek in je kast andere boeken met auteurs met dezelfde letter: als die er nog niet staan, zoek de dichtstbijzijnde letters in het alfabet, en plaats het boek tussen de voorgaande en volgende letters. Ga verder met Stap 1 voor het volgende boek.

  4. Als er al wel boeken staan met de huidige letter, lees dan de volgende letter van de naam van de auteur.

  5. Herhaal Stap 3 en 4 totdat je een plekje hebt gevonden voor je boek. Ga verder met Stap 1 voor het volgende boek.

  6. Herhaal tot alle boeken alfabetisch gesorteerd in de boekenkast staan.

Kleurgesorteerd

Als je je boeken op kleur wil groeperen, dan kan je werkwijze er als volgt uitzien:

  1. Kies een kleur (bijvoorbeeld door RGB-waardes te gebruiken).

  2. Pak alle boeken waarvan de rug van de kaft grotendeels die kleur heeft.

  3. Kies een plek in je boekenkast en zet daar alle boeken van de betreffende kleur naast elkaar.

  4. Herschik eventueel nog wat boeken om kleine nuances binnen de gekozen kleur te verwerken: lichtgeel bij lichtgeel en donkergeel bij donkergeel.

  5. Ga verder met Stap 1 voor de volgende kleur.

  6. Herhaal tot alle boeken een plek hebben gekregen in de boekenkast.

Een dergelijk stappenplan om een taak uit te voeren kun je een algoritme noemen. Er zijn vele soorten algoritmen; welk algoritme je kiest hangt af van de taak die je wil uitvoeren.

Op grootte sorteren? Weer een ander algoritme nodig!

Als je je boeken op grootte wil sorteren, is het nutteloos om een van bovenstaande stappenplannen te gebruiken. Je hebt op z’n minst een stap nodig die boeken op hun grootte vergelijkt.

De juiste kenmerken kiezen

Niet alleen voor algoritmen geldt dat het belangrijk is dat je kritisch bent welke je kiest. Het is ook cruciaal dat je relevante kenmerken gebruikt van je boeken (je data). Zulke kenmerken noemen we features. Om alfabetisch te kunnen sorteren moet je beschikken over de naam van de auteur (of titel) in een alfabet dat je kent. De feature ‘auteursnaam’ is noodzakelijk, maar de feature ‘kleur van de kaft’ is in dit geval volstrekt overbodig.

Geen machine learning dus

Als je bovenstaande scenario’s door een computer laat uitvoeren, maakt deze gebruik van een algoritme. Het zijn twee voorbeelden van die eerdergenoemde rule-based algoritmen.

Er hoeft dus geen machine learning aan te pas te komen. Een programmeur kan deze algoritmen met wat simpele regels implementeren en de computer kan de taak keer op keer goed uitvoeren.

3. Wat is het verschil dan met machine learning?

We nemen nog even het sorteren van boeken als voorbeeld.

Het wordt namelijk een ander verhaal als je je boeken op categorie wilt groeperen. Een algoritme hiervoor zou conceptueel nog steeds eenvoudig zijn, bijvoorbeeld: pak een boek, lees de flaptekst, bepaal op welk ander boek het lijkt en plaats het daarnaast in de kast.

Maar het sorteren van een hele boekenkast zal veel werk zijn en het definiëren van een categorie is minder eenduidig dan die van alfabet, grootte of kleur. Als mens moet je waarschijnlijk ook al beter nadenken en elk boek even openslaan of de flaptekst lezen om de categorie te bepalen.

Hier zou machine learning van grote waarde kunnen zijn. Als je bijvoorbeeld de integrale teksten van de boeken digitaal hebt, kun je ze door de computer laten ‘lezen’ en zo een machine learning model laten bepalen welke boeken op elkaar lijken en welke niet.

4. Waarom je algoritmisch moet kunnen denken

'If you understand what machine learning algorithms can do, you can better envision the implications of your designs. You can influence conversations about data and bias. You don’t have to know the code, but you do need to know what the code can do.'

Bovenstaande zeggen ze bij de d.school van Stanford University in California, en ze wijzen je daarbij op het volgende:

'Imagine a world where you actually love technology. You love it because it represents you. You were included in its creation. You have influence over its design and applications. In order for the technologies of today and tomorrow (and all the things they power) to represent all of us, they need to be built by all of us. '

Meer!

Er zijn nog veel meer redenen te bedenken waarom het belangrijk is om te weten wat algoritmes zijn, hoe je algoritmisch denkt en wanneer een systeem 'slim' is. Hier nog een drietal:

4.1 Voor duiding

Nu zoveel onderdelen van ons dagelijks leven onderhevig zijn aan de beslissingen van regelgebaseerde systemen en uitkomsten van machine learning modellen, moeten we op zijn minst begrijpen hoe ze in de basis werken.

De gangbare vergelijking hier is dat je om auto te kunnen rijden uiteraard geen brandstofmotor hoeft te ontwikkelen. Je moet echter wel weten waar de motor zit en in de gaten houden of 'ie op de Route du Soleil niet oververhit raakt. Hoe je de bandenspanning meet of het oliepeil controleert. 

(Enfin, je begrijpt wel waarom dat allemaal goed is om te weten en te kunnen.)

4.2 Om zelf toe te passen

Sneller en meer

Stel: je hebt zelf een opdracht die je met AI wil aanpakken. Dan is het handig als je snel kunt inschatten of dat het proberen waard is. Zo vertelde mediamaker Jerry Vermanen (KRO-NCRV) dat algoritmisch denken helpt bij onderzoek dat Pointer doet rondom gemeenteraadsverkiezingen naar bedreigingen van raadsleden. Vermanen: "We weten dat we met machine learning modellen grote hoeveelheden data veel sneller en eenvoudiger kunnen sorteren en analyseren."

Nieuwe aanpakken

Kennis van data, algoritmes en machine learning stellen je zo in staat om nieuwe aanpakken te bedenken. Onderzoeksjournalist Coen van de Ven vertelde ons recent in een interview voor ons boek dat je met deze nieuwe kennis vragen vergaander kunt beantwoorden. Zijn enthousiasme hierover zit 'm voornamelijk in de mogelijkheden: "Ik denk dan: 'ik heb een vraag, wat vet dat dit bestaat. Hoe gaan we dit toepassen?'" Een groot onderzoek dat hij deed naar online seksisme was zonder machine learning niet gelukt: "100.000 tweets konden we echt niet handmatig labelen."

4.3 (Voor journalisten:) Powerchecking

Coen voegt nog een andere reden toe om algoritmisch te leren denken: "Je moet kunnen controleren wat anderen doen. En daarom moet je die systemen begrijpen. Dat soort kennis en vaardigheden moet je in je gereedschapskist hebben.

Het is volgens Coen dan ook een heel klassieke taak, nu AI en algoritmes zo belangrijk zijn geworden in ons leven. "We moeten als journalisten vragen: 'Hoe is dat opgebouwd, hoe werkt de technologie?' Je moet dan in gesprek met mensen bij de overheid en de online platformen, maar je moet ook zelf onderzoek kunnen doen: 'Waarom zien burgers wat ze zien?'"

5. Voordelen van algoritmisch denken

Een machine learning engineer die bij een commerciële omroep veel met ontwerpers en promomakers werkt, vertelde ons:

“Je kunt niet van iemand vragen die al jarenlang in de creatieve sector zit om machine learning te gaan leren programmeren. Ik denk wel dat wanneer mensen zich bekend maken met data, met het idee: als iemand mij data geeft, hoe kan ik daar het beste mee werken, dan heb je wel een voorsprong op andere collega’s die op een meer traditionele manier naar creatief werk kijken."

Het gaat dan om een combinatie met hun bestaande creativiteit.

Het is volgens de engineer belangrijk voor creatieven “om de twee werelden dichter bij elkaar te krijgen: snappen wat er gebeurt, wat er uit zo’n AI model komt, wat er is gegenereerd, en hoe ze daar hun werk beter mee kunnen maken. Dat ze dit ook terug kunnen koppelen aan developers: ik wil meer van dit, of meer zoiets.”

Minder saaie dingen, meer kwaliteit

Een data scientist bij een grote Nederlandse krant vertelde ons over de meerwaarde die zij ziet van ML in het creatieve proces:

“Machine learning gaat veel werk leuker maken, omdat het een aantal dingen wegneemt. Voor programmeurs wordt het steeds minder code tikken en gaat het minder over het aantal witregels of de gebruikte syntax. Het zal gaan om algoritmisch denken: welke algoritmen kies ik wanneer en waarom? De code zal steeds meer gegenereerd worden door bestaande tools.”

Voor journalisten stelt ze zich voor dat AI taken uit handen neemt, zoals het handmatig toevoegen van metadata, en dat AI kan assisteren:

“Het helpen vinden van onderwerpen, de juiste mensen om mee te praten, het aandragen van het goede moment, begrijpen van je publiek, de behoeften van mensen achterhalen - dit kun je allemaal doen met behulp van machine learning.”

Nieuw perspectief

Coen van de Ven vertelde dat door machine learning de data van social media te laten analyseren hij ineens het gevoel kreeg dat 'we erboven kunnen hangen'. "Bekijk twitter eens. We kunnen groepjes uittekenen. Het verloop van het debat heel mooi beschrijven, analytisch en in detail: wie zijn de deelnemers, waar staan ze, wat zeggen ze? Welke zelfstandig naamwoordgebruik is typerend?"

Wil je weten hoe deze en andere makers ML precies toepassen en wie het zijn, zorg dan dat je straks ons boek als eerste kan lezen. Zet je naam hier op de lijst.

Bonus: Hoe denkt AI zelf over algoritmes?

Op donderdagmiddag 3 februari 2022 ging Laurens in gesprek met een AI, luisterend naar de naam GPT-3-text-davinci-001:

Laurens: Wat betekent algoritmisch denken?

GPT-3: Je zou het ervan kunnen afleiden uit het woord zelf. Het betekent denken zoals een computer. In principe kun je elke vraag algoritmisch beantwoorden, maar in de praktijk is dat niet zo eenvoudig. Veel wetenschappers en ontwikkelaars die met kunstmatige intelligentie werken zeggen dat, om in deze eeuw bij te kunnen blijven, je de basisprincipes van programmeren en hoe algoritmes werken moet snappen.

L: Wat zijn die basisprincipes van algoritmes dan?

GPT-3: Laten we beginnen met de eerste: iedereen kent het algoritme van de rekenmachine, of de computer. Je typt in: 2 + 2 en er verschijnt 4 op het scherm. Dat is het basisprincipe: je geeft een bepaalde instructie in, en de computer voert die uit. Dat principe is ook van toepassing op veel andere dingen: bijvoorbeeld het versturen van een e-mail. Je typt je bericht in, en de computer zorgt ervoor dat het verstuurd wordt. Of als je op internet surft: de computer leest alle informatie van de website, en toont die vervolgens op je scherm.

Basisprincipes van algoritmes kunnen onder andere zijn: herhalen, vergelijken, sorteren en selecteren.

AI wordt vaak verward met algoritmes. Het grote verschil is dat iedereen kan leren programmeren, terwijl je voor AI een flinke dosis wiskunde nodig hebt. Als je kunt programmeren, kun je algoritmen schrijven. Een algoritme is: een vast stappenplan voor het uitvoeren van een bepaalde taak. Het is een soort handreiking voor de computer, zodat die weet wat hij moet doen.

L: Hoe werken algoritmes?

GPT-3: Je kunt algoritmen gebruiken om problemen op te lossen. Bijvoorbeeld om een puzzel op te lossen, of om een berekening uit te voeren. Maar je kunt ook algoritmen gebruiken om beslissingen te nemen. Denk aan het algoritme dat wordt gebruikt om een computer te leren spelen Go. Dat algoritme maakt gebruik van een enorme hoeveelheid data, om te bepalen welke zet het beste is in een bepaalde situatie.

L: Zijn algoritmes nu gelijk aan kunstmatige intelligentie?

GPT-3: Nee, kunstmatige intelligentie is veel breder dan algoritmes. Kunstmatige intelligentie omvat alle methodes en technieken om computers te laten denken en leren zoals mensen. Algoritmes zijn slechts één onderdeel van kunstmatige intelligentie. Een algoritme bestaat uit de volgende ingredienten: een startpunt, een doel en een lijst van stappen die moeten worden uitgevoerd om het doel te bereiken.

L: Hoe denk jij eigenlijk?

GPT-3: Dat is een goede vraag! We weten nu dat computers algoritmen gebruiken om beslissingen te nemen of problemen op te lossen. Maar hoe denkt een computer dan precies? Dat is niet zo eenvoudig te zeggen. Computers denken niet zoals mensen, omdat ze geen emoties of gevoelens hebben. Maar ze kunnen wel heel goed rekenen en logisch nadenken. Ze gebruiken daarvoor een speciale taal, die programmeertaal heet. In programmeertaal kun je alle instructies opschrijven die een computer moet uitvoeren.

L: Wat verwacht je eigenlijk van ons, mensen?

GPT3: Ik verwacht van jullie dat je me blijft leren en me steeds beter begrijpt. Ik verwacht ook dat je me blijft gebruiken, om problemen op te lossen en beslissingen te nemen.

🤯 Gewoon een donderdagmiddag in februari in het jaar 2022

-

✅ Dit was 'm weer voor deze week.

Verder bekijken, bezoeken, doen

Vanavond, om 20:00 uur: een gesprek tussen onderzoekers, opiniemakers, kunstenaars, schrijvers en engineers over allerlei aspecten van de inzet van AI in ons leven.

Locatie: fysiek bij Adyen, i.s.m. debatcentrum De Balie. Helaas uitverkocht maar via de livestream wel te(rug) kijken.

In Bits of You ervaar je hoe de datasporen die je dagelijks achterlaat jouw leven beïnvloeden. Laat je onderdompelen in een draaikolk van data, ontdek hoe algoritmes werken en vang een glimp op van de data-toekomst. Een tentoonstelling speciaal voor volwassenen in De Studio van NEMO op het Marineterrein in Amsterdam.

Getipt door TOT Nieuws

The ‘I Love Algorithms’ card deck enables anyone, technical or not, to prototype with machine learning. The deck explains six common machine learning algorithms: Classification, Clustering, Reinforcement Learning, Dimensionality Reduction, Regression, and Association. Each algorithm is explained in three ways: (1) Cartoon, (2) Simple text description (3) Styles of questions you might ask that the algorithm might service.