De pepernotenrekenmachine en de macht van de woorden

“Mensen denken niet in feiten, cijfers of wiskundige vergelijkingen, maar in verhalen – hoe simpeler het verhaal, des te beter het is.” (Yuval Harari, 2018)

Toen ik laatst de slaap niet kon vatten kwam de vraag in mij op of een schaapherder die nog nooit van getallen heeft gehoord kan weten hoeveel schapen zijn kudde telt. Het was bijna Sinterklaas en ik was eigenlijk bezig met de constructie van een pepernotenrekenmachine.

Hoe die vraag met het maken van die rekenmachine samenhangt, daarover gaat dit stukje.

Ik was begonnen met de meest primitieve vorm van zo’n rekenmachine, de pepernotentelmachine, een machine die kan tellen hoeveel pepernoten je hebt. Ik was al klaar met het invoermechanisme: de pepernoten worden in een trechter gegooid en wanneer een klepje wordt geopend valt er telkens één pepernoot op een soort schoepenrad dat een stukje om zijn as draait. (Het schoepenrad was mij bekend uit mijn omgeving waarin soms een rad in een beekje draait; zonder enig nut.) Maar moest mijn telmachine uitvoeren?

Wat moest de machine als uitvoer opleveren? Het draaien van het rad is weliswaar een uitvoeren, maar wat heeft iemand daar aan die wil weten hoeveel pepernoten hij heeft? Helemaal niets. Wat die wil hebben is een teken dat op ondubbelzinnige wijze verwijst naar een voor hem bekende grootheid. Het moest iets zijn dat alle mogelijke toekomstige gebruikers van mijn machine kenden en waarmee ze uit de voeten konden. Misschien moest de machine een streepje op een schaal aanwijzen. Bij elke noot zou de wijzer een streepje verder gaan. Maar hoe kon de gebruiker dat resultaat meedelen aan anderen. Ik besloot dat het een getal moest zijn. En toen kwam die vraag in mij op.

Kan een schaapherder die het begrip getal niet kent weten hoeveel schapen zijn kudde telt?

De vraag is of er ooit iemand bestaan heeft die het begrip getal niet kent en die niettemin wil weten hoeveel schapen hij bezit. Wat wil zo iemand dan eigenlijk weten en waarom zou hij dat willen weten? Is mijn vraag niet anti-historisch, in die zin dat het met hedendaagse begrippen het verleden bevraagt? Zijn er gebruikers van mijn pepernotentelmachine die willen weten hoeveel pepernoten ze hebben maar het begrip getal niet kennen? Mensen die, gevraagd hoeveel pepernoten er in een zak zitten, je verdwaasd aankijken en dan zeggen: veel ?

Tegenwoordig leert ieder kind de namen van de getallen al voor ze naar school gaan. Wanneer je een vreemde taal leert zijn de telwoorden, vrijwel de eerste woorden die je leert. Je leert dat je in Nederland 34 uitspreekt als ‘vierendertig’ en niet ‘dertigvier’, zoals in het Engels, Spaans of Portugees. Op school leert iedereen het notatiesysteem en hoe je twee getallen op moet tellen. Maar weet iedereen eigenlijk wel wat een getal is? Is het niet zo dat de meeste mensen helemaal geen onderscheid maken tussen het cijfer 5 en het getal 5 dat daarmee wordt aangeduid? Waarom zou je dat onderscheid ook maken? Anderzijds realiseren de meeste mensen zich wel dat er een verschil bestaat tussen het woord ‘leeuw’ of de naam ‘Jan’ en het dier of de persoon die we ermee aanduiden. Waarom doen ze dat niet bij getallen? Omdat getallen geen waarneembare dingen. Je kunt ze niet anders voorstellen dan door de tekens waarmee we ze aanduiden.

Moet iemand die met computers te maken heeft weten hoe zo’n ding werkt? Moet iemand die een auto gebruikt weten hoe deze werkt? Ja en nee. Het hangt er vanaf wat met ‘werken’ wordt bedoeld. Wordt bedoeld hoe het ding technisch in elkaar zit, of wordt bedoeld hoe je er mee om moet gaan en waarvoor je het kan gebruiken? Om auto te kunnen rijden hoef je niet te weten hoe de motor of het differentieel werkt, maar je moet wel een zekere rijvaardigheid hebben. Om een computer te kunnen gebruiken hoef je niet te weten hoe een logische schakeling werkt.

Er is een belangrijk verschil tussen een auto en een computer. De computer is een algemeen toepasbare technologie. De computer staat voor het gebruik van technologie in het algemeen. De computer is voor de gebruiker verborgen achter ‘gebruikersinterfaces’. Zoals we tegenwoordig overal getallen gebruiken om meetresultaten in uit te drukken, en meten moet – want ‘meten is weten’ -, zo dringt ook overal de computer door als algemeen technisch middel om waar dan ook voor ons het werk te doen. We zijn hard op weg naar machines met Algemene Kunstmatige Intelligentie, als we de reclame-slogans van de tech-industrie moeten geloven.

De ontwikkeling van het getalbegrip en die van de computer, door wiskundigen en technici, zijn onlosmakelijk met elkaar verbonden. In eerste instantie werden ze gemaakt en gebruikt door wiskundigen om algebraïsche formules te berekenen. Maar de computer wordt nu ook gebruikt voor taken die niets met getallen, met rekenen of wiskunde te maken hebben. Veel mensen gebruiken computers als tekstverwerker terwijl ze nog niet de eenvoudigste rekensom kunnen maken. Dat laten ze aan de computer over. ChatGPT is een computer programma dat op verzoek teksten maakt die over allerlei onderwerpen kunnen gaan. Dat ook deze machine van binnen alleen maar rekent dat is verborgen achter talige interfaces.

Er waren tijden en culturen waarin getallen niet bestonden. Er waren nog geen rekenlessen op school. Als er al scholen waren. Maar er waren al wel schapen, kuddes schapen ook, en schaapherders. Schaapherders zorgden voor hun schapen. Het verhaal gaat dat wanneer de herder wilde weten of alle schapen die ‘s morgens de stal verlieten ‘s avonds daar weer terugkeerden, hij gebruik maakte van steentjes (‘calculi’). Voor elk schaap dat de stal verliet deed de herder een steentje in een pot. ‘s Avonds haalde hij voor elk schaap dat terugkeerde een steentje uit de pot. Zo vergeleek hij hoeveelheid schapen met hoeveelheid steentjes.

Tellen doe je om te vergelijken. De herder vergelijkt de hoeveelheden. Hij beeldt schapen af op steentjes, één-op-één, en omgekeerd. Tellen is een vorm van meten. Bij meten gaat het om het vergelijken van iets onbekends met iets bekends. Een lengte met een el, een voet, of met een meter. Of van een onbekende hoeveelheid met een bekend aantal.

Stel dat Henk wil weten hoe groot de kudde van de herder is en dat getallen nog niet bestaan. De meest voor de hand liggende manier om dat aan hem mee te delen is dat de herder de kudde aan Henk laat zien. Maar als dat niet kan, kan hij Henk de pot met steentjes laten zien. De hoeveelheid steentjes representeert de grootte van de kudde. Het staat als een teken voor de werkelijke hoeveelheid schapen. Althans voor degene die dit teken, dat aan deze praktijk gebonden is, kent.

We zien dat voor de praktijk van het mededelen van hoeveelheden de getallen zoals wij die kennen helemaal niet nodig zijn. Ook de ruilhandel had geen getallen nodig. Op de markt ruilt de herder een schaap voor 5 kippen, daar is getal, noch geld bij nodig. Wij, die weten wat de geschiedenis ons heeft gebracht, zien het begrip getal echter al ontstaan in de handel en wandel van de schaapherder en op de markt.

Een getal is nu een wiskundig object, een aantal als object gedacht. Een getal is dat unieke idee (drie, zeventien) dat het gezamenlijke (het ‘wezen’) uitdrukt van al die hoeveelheden (drie-tallen, zeventien-tallen) die je één-op-één op elkaar af kan beelden. De hoeveelheid steentjes in de bak en de hoeveelheid schapen van de kudde. Getallen zijn onwaarneembare gedachteobjecten. Het was Plato ook al opgevallen dat er zulke individuele zuivere ideële objecten bestaan.

In Plato’s tijd waren er dus al getallen zoals wij die kennen. Er waren mensen die vonden dat getallen veel werkelijker zijn dan de waarneembare dingen op aarde. De waarneembare dingen zijn immers veranderlijk en vergankelijk. Getallen zijn onveranderlijke eeuwige grootheden en daarom veel werkelijker. En dat geldt ook voor andere wiskundige objecten zoals de driehoek, de rechte lijn of de punt. De waarneembare dingen zijn voor Plato slechts onvolkomen afspiegelingen van deze ideale objecten. In ons dagelijke leven komen we geen rechte lijnen, noch getallen of ‘echte’ cirkels tegen. Perfecte cirkels of rechten bestaan niet, noch perfecte machines, machines die geen fouten kunnen maken. Toch gebruiken we ze alsof het ideale mathematische dingen zijn.

Bij dat gebruik zijn de tekens waarmee de getallen worden aangeduid onmisbaar. Hoe zou je twee getallen op moeten tellen zonder er namen of tekens voor te hebben, waarmee je ze kan identificeren? De ontwikkeling van de rekenkunde is gepaard aan de ontwikkeling van notaties en notatiesystemen voor de rekenkundige objecten.

De schaapherder hecht waarde aan zijn schapen. Voor hem telt ieder schaap. Het schijnt dat primitieve volken wel stenen als ruilmiddel gebruikten. De steentjes representeerden niet alleen de hoeveelheid, maar ook de waarde van de goederen. Zoals het getal het object is dat het abstracte aantal vertegenwoordigt, zo representeert het geld de abstracte waarde. Het geld is daarmee zelf iets waardevols, waarmee dan ook gehandeld kan worden. Het is niet alleen een ruilmiddel, waarin de waarde van verschillende waren kan worden uitgedrukt, maar zelf iets waardevols, dat het ontleent aan de ruilwaarde.

X = 4. Dat de tekens met pepernoten gemaakt zijn is niet van belang voor de betekenis van de formule.

Mijn pepernotentelmachine moet dus als uitvoer een teken opleveren dat de gebruiker van mijn machine meteen herkent als teken van de hoeveelheid pepernoten. Mijn machine moet de taal van de gebruiker spreken. Ik besloot als taal ons tientallig cijfersysteem te nemen. Als het aantal pepernoten dat de gebruiker invoert 345 is, dan moet de machine tegen de gebruiker ‘zeggen’: ‘345’. Toen ik dat besloten had, lag mijn constructie vast. Met drie schoepenraderen, eentje voor de eenheden, eentje voor de tientallen en eentje voor de honderdtallen kon de machine alle hoeveelheden pepernoten tellen, mits er niet meer dan 999 waren.

Toen mijn telmachine klaar was, ging de constructie van een pepernotenoptelmachine snel. Deze heeft twee invoertrechters. Ik noem ze X en Y. Doe ik in invoer X bijvoorbeeld 23 noten en in invoer Y 27 noten, dan toont de optelmachine het getal 50 als uitvoer. De optelling van X en Y gaat door eerst alle pepernoten uit X en dan die uit Y door de trechter te laten lopen. De vermenigvuldigmachine werkt door middel van herhaalde optelling. Voor elke noot in Y telt hij wat in X zit en stopt de inhoud van X, die in een extra bakje bewaard wordt, weer in de invoer. Dit doet hij totdat de inhoud van Y leeg is.

Ik wilde mijn pepernotenmachine ook sommen laten uitrekenen die helemaal niet over pepernoten gaan. Daarvoor moest ik nog een machine maken die een teken dat voor een getal staat (zoals 23 of 17) omzet in een daarmee aangeduide hoeveelheid pepernoten. Deze invoermachine werkt als een omgekeerde telmachine. Het beeldt de ingevoerde cijferreeks af op de draaibewegingen van het schoepenrad waardoor het gewenste aantal pepernoten, waarvan een grote hoeveelheid beschikbaar was, in een apart bakje komt.

Mijn pepernotenrekenmachine kan ik nu gebruiken zoals een gewone rekenmachine. Als je bijvoorbeeld de getallen 23 en 27 invoert, door de invoerschoepen in te stellen, is het resultaat 50. De gebruiker hoeft helemaal niet te weten dat mijn machine met pepernoten werkt. Als hij er maar op vertrouwt dat mijn constructie met schoepenraderen de juiste afbeelding tussen invoerwaarden en uitvoerwaarde tot stand brengt, gebruik makend van de mechanische wetten volgens welke de vallende pepernoten de raderen doen draaien, dan werkt mijn rekenmachine, zoals ik had bedacht.

Mijn machine werkt op basis van de correspondentie tussen de abstracte rekenregels van de rekenkunde en de regels die in de constructie van het mechanisme zijn gerealiseerd.

Mensen zeggen dat rekenmachines iets magisch hebben. Dat magische is dat de machine enerzijds iets doet dat betekenis heeft en dat het anderzijds toch slechts een natuurproces is, een mechanisch geheel. De magie van de machine nam toe toen we de machine konden programmeren. Sinds het midden van de 19ste eeuw konden we een programma invoeren, zoals je een draaiboek invoert in een straatorgel, of ponskaarten met patronen in een weefgetouw, wat al eeuwen eerder werd gedaan. Later kwamen er beroepsmatige programmeurs, experts in het programmeren. De eerste Nederlander die een aanstelling kreeg als programmeur was Edsger W. Dijkstra. Dat was in 1952, mijn geboortejaar.

Programmeren is het schrijven van een reeks opdrachten en dat invoeren in de computer, die vervolgens dit programma uitvoert. Het is alsof de machine snapt wat er met de programmatekst bedoeld wordt, want hij doet immers wat de bedoeling ervan is.

In plaats dat je twee getallen bijvoorbeeld 23 en 17 invoert in de bakjes X en Y, voer je nu de opdrachten X=23 en Y=17 in. X=23 betekent namelijk: stop in bakje X 23 pepernoten. Maar hoe weet de machine welk bakje X is en welke bakje Y? Om die vraag te beantwoorden moeten we bedenken dat ‘weten’ hier betekent functioneren en wel zo dat het lijkt alsof hij begrijpt wat we bedoelen.

Terwijl de eerste eenvoudige rekenmachines al in het begin van de 17de eeuw werden gemaakt, werden de eerste programmeerbare rekenmachines pas in de 19de eeuw ontwikkeld. Waarom heeft het zo lang geduurd voordat men het instellen van van een machine ging zien als het invoeren van een programma?

Charles Babbage Analytical Engine was de eerste machine die een geheugen met locaties had die dienden om variabelen en hun waarden in te bewaren. Hij kon algebraische formules van de vorm a+b.x+c.x^2+dx^3+ex^4+fx^5+gx^6 uitrekenen (waarbij de constanten a, b,c, gehele getallen zijn en voor variabele x een geheel getal ingevuld kan worden.) De machine werkte met twee sets invoerkaarten; een voor het invoeren van de waarden van de variabelen (x1, x2, x3) en een tweede voor de operaties die achtereenvolgens moesten worden uitgevoerd. Het idee van de invoerkaarten had Babbage gekregen toen hij op een reis naar Frankrijk kennis nam van een vinding van Jacquard. Hij had een toestel gemaakt waarmee ponskaarten, kaarten met rijtjes gaten, die weefpatronen bevatten aan een weefgetouw kon worden gekoppeld, waardoor deze het patroon automatisch kon weven. Een ware revolutie in de textielindustrie. Babbage schreef over Jacquard’s instrument.

“Het is een bekend feit dat de Jacquard machine elke gewenst design dat je maar kunt bedenken kan weven … Gaten worden gemaakt in kartonnen kaarten op zo’n manier dat wanneer deze ingevoerd worden in het Jacquard weefgetouw deze precies het door de kunstenaar (‘artist’) gemaakte patroon zal maken.” (zie Goldstine, p. 20)

Babbage Analytical Engine, de machine die algebraïsche patronen kon weven, zoals Lady Lovelace het noemde, is van ongeveer 1830. Het zou nog een eeuw duren voordat de eerste machines er kwamen die met machinecodes werkten, sets van instructies, die de voorloper waren van de programmeertalen.

De ontwikkeling van de programmeerbare machine is het resultaat van een reflectie op de voorgaande fase van de rekenmachine. Met reflectie bedoel ik wat er nodig is wanneer je precies beschrijft wat je doet om een bepaalde taak uit te voeren. Bijvoorbeeld om een ander uit te leggen hoe je dat doet. Daarvoor is het nodig elke handeling bij de uitvoering van die taak je voor te stellen. Bij het handelen maken we gebruik van praktische kennis over de relatie tussen onze eigen inbreng en de inbreng van hetgeen we bewerken of behandelen. De meest algemene vorm waarin we die relatie uitdrukken is de als-dan-regel. Als ik X doe dan gebeurt er Y. Wil ik dat Y gebeurt dan moet ik X doen. Mijn kennis van de ‘als-dan-regels’ waar de werkelijkheid zich aan houdt, vertelt mij wat ik moet doen om een bepaald doel te realiseren. We constueren nieuwe machines door bekende nauurwerkingen te combineren. In de informatietechniek houden we ons niet meer aan reeds in de uitwendige natuur gerealiseerde als-dan-regels, zoals we die we in de natuurwetenschappen hebben ontdekt, maar we construeren zelf nieuwe systemen door als-dan-relaties tussen onderdelen ervan vast te leggen.

Om u, geachte lezer, uit te leggen hoe mijn machine werkt, heb ik hiervoor de invoertrechters van een naam voorzien. Ik heb ze X en Y genoemd. Ik had ze ook Abe en Bert kunnen noemen. Het enige wat van belang is, is dat ik ze steeds goed uit elkaar houd en hun betekenis vast houd. Dus als ik schrijf : X = X + 1 dan bedoel ik met X in beide gevallen hetzelfde. X is hier geen vast getal, want wiskundig kan een getal niet gelijk zijn aan datzelfde getal plus 1. Maar X is nu de naam van een register (met een variabele inhoud) en met X = X + 1 bedoelen we nu de opdracht om bij de inhoud van register X 1 op te tellen. Het =-teken betekent dan ‘wordt gelijk aan’. In feite moet mijn machine mijn gedrag simuleren. Deze moet een naam geven aan een plaats waar een getal in kan en daar een getal neerzetten. Daartoe moet de rekenmachine beschikken over een voorraad ‘variabelen’, speciale ‘registers’ die we een eigennaam geven: zoals X en Y. Zo krijgen we een programmeerbare machine.

Je hebt behalve het toekennen van een waarde aan een variabele nog twee constructies nodig om alle mogelijke berekeningen door een machine te kunnen laten maken. Je moet in een opdracht naar een opdracht kunnen verwijzen die vervolgens uitgevoerd moet worden. Daarmee is het mogelijk dezelfde opdracht herhaaldelijk te laten uitvoeren. Herhaling is wezenlijk voor mechanismen. Volgens Herman H. Goldstine die samen met Von Neuman heeft gewerkt aan de ‘stored program computer’, zit de macht van de computer in de herhaling, loops. Verder moet de machine een voorwaardelijke opdracht kunnen uitvoeren: als dit-en-dat het geval is: doe …

Deze conditionele opdracht maakt volgens de filosoof D.C. Dennett de macht van de computer uit. Het is de opdracht die maakt dat ‘de computer een beslissing kan nemen‘. Dat moet je niet letterlijk nemen. We zeggen niet van een muizenval dat deze besluit om dicht te klappen als er een muis van de kaas eet. Maar bij een machine die gemaakt is om te rekenen, doen we dat wel. Alsof deze een eigen wil heeft, anders dan de muizenval die puur mechanisch werkt.

Zuivere herhaling is nutteloos; als het schoepenrad of wiel dat zonder last ronddraait. Om nuttig te zijn moet tijdens iedere cirkelgang ook iets nieuws gebeuren. Er moet iets op geleverd worden. Wat er tijdens een rondgang moet gebeuren hangt af van de huidige toestand en die afhankelijkheid wordt in een conditionele als-dan-opdracht beschreven.

Als we zeggen dat de computer een beslissing neemt vergeten we wel eens dat het door ons ingevoerde programma de conditie is die maakt dat er een beslissing wordt genomen en ook wanneer welke beslissing wordt genomen. Ik ben als gebruiker immers degene die een keuze maakt door de machine een bepaalde invoer te geven. Dat ik daarmee voldoe aan het realiseren van een conditie van een als-dan-regel daarvan heeft de machine zelf geen benul. Die ‘kennis’ is impliciet in het mechanisme dat volgens een ‘als-dan-regel’ werkt. De machine bevindt zich op elk moment in een toestand en de regels zeggen onder welke voorwaarden de toestand overgaat in een andere toestand. Het ingevoerde programma is deel van de toestand van de machine. Het is het deel dat bepaalt in welke nieuwe toestand de machine vanuit een gegeven toestand overgaat. De filosoof zegt dat hier sprake is van een ‘categoriefout’, het identificeren van iets ideëels (mathematisch) met iets materieels (fysisch). Maar zonder dat zouden computers en kunstmatige intelligentie niet mogelijk zijn.

Wat ik met het door mij ingevoerde programma (het kan een opdracht zijn in de vorm van een vraag) bedoel moet overeenkomen met de reaktie van de machine op de invoer als fysische conditie van een proces. De machine kent mijn bedoeling niet en kan alleen reageren op de wijze waarop ik die in de taal van de computer uitdruk. Daarin schuilt het gevaar en de macht van de technologie.

Hierboven had ik het over alle mogelijke berekeningen. Berekeningen zijn die denkprocessen die je door een programmeerbare machine kunt laten uitvoeren. Het zijn processen waarvan de uitkomst bij voorbaat al vaststaat, zoals bij het maken van een rekensom of een sudoku-puzzel. Het komt erop neer dat je een voorgeschreven methode (functie) in een concreet geval moet toepassen. Wat berekenbaar is, dat is door een programmeerbare machine te berekenen. Een functie f heet berekenbaar als er een machine te maken is die bij alle mogelijke invoerwaarden x als resultaat f(x) oplevert. Maar zijn alle programmeerbare machines dan gelijk? De register-machine blijkt precies hetzelfde te kunnen doen als de Turing-machine. Berekenbaar is een intuitief begrip. Alle pogingen het begrip wiskundige te formaliseren hebben geleid tot equivalente mechanismes. Dit staat bekend als de Church-Turing these, genoemd naar Alonzo Church en Alan M. Turing.

Computers zijn tegenwoordig onderdeel van complexe systemen, waarin ze met elkaar verbonden zijn via informatiekanalen. Mobiele telefoons en auto’s zijn verbonden aan verschillende netwerken van computers. Systemen die zorgen voor het waarnemen van de omgeving noemen we sensoren. Mijn schoepenrad is een heel primitieve invoersensor, die op het gewicht van de pepernoot reageert. Mijn muizenval reageert op het gewicht van de muis die van de kaas snoept. Sensoren worden steeds slimmer. Het begrip sensor of waarnemer of voeler veronderstelt een onderscheid tussen datgene wat waarneemt of voelt en datgene wat waargenomen of gevoeld wordt. Technisch gezien komt dit onderscheid neer op twee aparte systemen. Het ene zou moeten waarnemen het andere wordt waargenomen. Fysisch gezien is het waarnemen immers één proces dat zich in beide systemen (in de muis en in de muizenval) afspeelt. De indruk die het waargenomen object (de muis) op de sensor (het klepje) maakt moet verwerkt worden om herkend te worden als iets relevants, waar op gereageerd moet worden. Waar zit nu het vermogen om waar te nemen? Wat is de rol in de waarneming van dat wat waargenomen wordt? Het is lastig om de grens aan te geven tussen de computer die het beeld moet verwerken en zijn sensoren die het waargenomen moeten afbeelden. Daarover gaat het volgende.

De blinde schaakcomputer

Computers kunnen goed schaken, maar kan een computer ook blind-schaken? Wat is het verschil tussen een computer die wel en een die niet blind schaakt? Een vreemde vraag. In de wereld van de machine is er immers geen onderscheid meer tussen de echte fysische wereld van het schaakbord en de representatie ervan in de virtuele wereld van de wiskunde. Op de inhoudelijke structurele correspondentie van die twee is immers de informatica gebaseerd. Die correspondendtie is het principe van de informatica. Model en werkelijkheid zijn uitwisselbaar. Zodra we het verschil willen beschrijven blijken de twee hetzelfde. Het verschil bestaat wel, maar slechts buiten de beschrijving ervan. Zoals de werkelijkheid bestaat buiten de taal waarin we erover spreken en schrijven. ( Als er buiten de taal geen werkelijkheid was, zou de taal nergens over gaan en dan zou deze bewering ook geen zin hebben omdat ze dan immers nergens over gaat. )

Anders gezegd, de zintuiglijke waarneming, waar ‘blind’ naar verwijst, veronderstelt het fysieke onderscheid tussen het zelf en het andere. Je neemt immers iets anders waar, iets dat je niet zelf bent, ook al heb je het op je netvlies en geef je het waargenomene een naam, waarmee je het je toeeigent. Maar de grens tussen de machine zelf en het ‘andere’ (de fysieke omgeving met het schaakbord) is niet een grens van de machine zelf. Het is geen fysieke grens. Die grens is door de constructie door de mens van buiten af opgelegd. Het is aan ons, te bepalen waar die grens ligt. Is de visuele sensor deel van de machine? Het is een mathematische grens en die heeft als zodanig iets willekeurigs. De constructie veronderstelt een beschrijving van de grens en van het andere. Maar door die beschrijving van het andere, die voorwaarde is voor de constructie van de machine, is het andere niet meer het andere. Dat is de fundamentele reden waarom blindheid, en zintuiglijke waarneembaarheid, geen geschikte begrippen zijn als het over machines gaat. Natuurlijk kunnen we de schaakcomputer met een echt fysisch bord laten werken en blindheid simuleren door een grens aan de geheugencapaciteit op te leggen. Zo’n simulatie (model) veronderstelt het begrip blindheid echter.

In de technologie komen mathematische en fysische objectiviteit samen, maar we moeten ze goed onderscheiden. In de informatietechnologie gebruiken we de structurele correspondentie tussen denkprocessen die we door middel hun talige uitdrukkingen representeren en de natuurprocessen.

Het gevaar van kunstmatige intelligentie zoals ChatGPT is dat het functioneren van de machines als norm wordt gezien voor ons denken en handelen. We behandelen deze taalmachines als zuivere rekenmachines, die werken volgens de wetten van de wiskunde. Maar woorden zijn geen getallen en niet elke Nederlandse zin is een wiskundige bewering. De woorden en zinnen van onze taal zijn uitdrukkingen van ideeen en denken dat het mathematische ver overstijgt in complexiteit en vaagheid.

Aristoteles waarschuwde zijn tijdgenoten al voor de sofisten, mensen die de woorden gebruiken alsof het getallen zijn.

Een belangrijk verschil tussen wiskunde taal en natuurlijke taal is dat de woorden van de natuurlijke taal veelzinnig zijn. Omdat ze naar een veelzinnige werkelijkheid verwijzen. In de wiskunde zijn de tekens éénzinnig. In het eerste deel, sectie 1 van De sophisticis elenchis wijst Aristoteles op de analogie tussen het redeneren met woorden en het werken met rekensteentjes (calculi).

Want omdat het niet mogelijk is, bij het redeneren de dingen zelf mee te brengen, maar wij in plaats van de dingen de woorden als symbolen gebruiken, menen wij dat wat voor de symbolen geldt ook voor de dingen opgaat, zoals dat bij de rekenaars met de rekensteentjes het geval is. Maar die vergelijking gaat niet op, want de woorden en de uitspraken zijn begrensd, de dingen echter zijn oneindig in aantal. Het is derhalve onvermijdelijk dat één en dezelfde uitdrukking en één en hetzelfde woord meer dan één ding aanduidt. Zoals derhalve de in het hanteren van de rekensteentjes onbedrevenen door de daarin bedrevenen worden beetgenomen, zo misrekenen ook zij zich die niet op de hoogte zijn van de draagwijdte van uitdrukkingen en van de woorden, zowel wanneer ze zelf redeneren als wanneer ze anderen aanhoren.“ (vertaling door E.W. Beth)

De Stagiriet waarschuwt hier voor de sofist die bedreven in de taal de luisteraar misleidt door misbruik te maken van de verschillende betekenissen van de woorden en uitdrukkingen.

Ook de uitdrukking ‘taalgebruik’ is dubbelzinnig en kan derhalve tot verwarring leiden. Wanneer we het hebben over het ‘taalgebruik’ door ChatGPT dan bedoelen we daarmee iets heel anders dan wanneer we het hebben over het ‘taalgebruik’ door mensen. Dat woorden en teksten veelzinnig zijn, daar komen we achter als dezelfde tekst door verschillende mensen op verschillende wijze gelezen wordt. Maar ook als we een tekst later nog eens herlezen kan deze voor ons een andere betekenis krijgen.

De macht van de woorden

In de informatica gebruiken we woorden om machines voor ons te laten werken volgens de betekenis van de woorden. Hierboven hebben we gezien dat dit kan omdat we de machine zo kunnen inrichten dat deze geschikt is voor het rekenen. Programma en machine passen bij elkaar als de sleutel bij het slot.

Mensen zijn geen machines en laten zich niet zo eenvoudig programmeren. Toch hebben de woorden ook macht over de mens. Omdat we de woorden herkennen en vertrouwen op wat ze zeggen.

De mededeling “U bevindt zich hier” op een informatiebord langs de weg kan en zal vaak opgevat worden als die van een autoriteit die de gebruiker zijn plaats in de werkelijkheid van de plattegrond aanwijst. De pijl wijst naar een rode stip op de kaart. Het is zó. Maar als dit zelfde bord in de opslag staat dan werkt de tekst niet zoals bedoeld. De voorwaarde voor het correct functioneren van de tekst is dat de situatie waarin de gebruiker en bord zich bevinden op het moment dat de tekst gelezen wordt overeenkomt met de locatie op de plattegrond waarop de plaats van het lezer wordt aangewezen. Er moet een correspondentie zijn tussen model en werkelijkheid om zinvol in termen van het model over de werklijkheid te kunnen praten.

De naïeve lezer van het informatiebord en van taaltechnologie in het algemeen gaat er vanuit dat aan de voorwaarden voor zinvol taal en techniek-gebruik voldaan is. Hij geeft de macht aan de tekst. Wat deze hem zegt is zo. Het omgaan met de nieuwste vormen van communicatietechnologie vraagt een zeker inzicht in de mogelijkheidsvoorwaarden van deze technologie.

De wetenschappelijke, technocratische samenleving

De 19de eeuwse filosoof August Comte is de grondlegger van het positivisme, de opvatting dat de mathematische natuurwetenschap het voorbeeld moet zijn van iedere discipline in de samenleving. De positieve sociologie zal betrouwbare kennis opleveren voor een positieve politiek die moet leiden tot een rationele samenleving. De positivist gaat er vanuit dat alle werkelijkheid in wetenschappelijke kennis te vatten is en dat de vooruitgang van de mensheid samenvalt met de vooruitgang van de technologie. In de technocratie is de technologische ontwikkeling van middel doel in zichzelf geworden. Het doel is de technische ontwikkeling en dat is de vervolmaking van de mens. Deze opvatting is nog steeds die van een dominante stroming in onze samenleving. Kunstmatige intelligentie (AI) wordt door sommige politici opgevoerd als panacee voor alle mogelijke problemen, in de zorg, in het onderwijs, in de bouw, in de oorlog. Overal komt AI ons te hulp.

Niet alleen de ontwikkeling van de technologie, ook de roep om middels bestuur en politiek, met wetten en regels deze aan banden te leggen is uiting van deze technocratische visie. Alsof de samenleving programmeerbaar is. Alsof je gedrag van anderen door middel van regels en wetten kan afdwingen. Een overheid die volhardt in dat technocratische idee zal uiteindelijk geweld moeten toepassen als blijkt dat de mens niet programmeerbaar is, maar een eigen wil heeft. Of ze zal toe moeten geven dat de samenleving niet programmeerbaar is en dat je het met technologie alleen niet redt. Dat je de mens mee moet nemen. Want zonder inzicht in de voorwaarden waaraan de technologie moet voldoen om te werken is ze een tegenkracht, het tegendeel van wat het positivisme er mee had willen bereiken.

Bronnen

Herman H. Goldstine (1972). The Computer from Pascal to von Neumann. Princeton University Press.

Zeer interessante geschiedenis van de ontwikkeling van de stored program computer geschreven door een van de pioniers op het gebied.

Donald E. Knuth (1970). Von Neumanna First Computer Program. In: Computing Surveys, Vol. 4 nr. 2, 1970.

Dit is een zeer gedetailleerde analyse van Von Neumannas eerste computer programma. Het is een programma om woorden te sorteren. Von Neumann wilde aantonen dat zijn set van instructies (programmeertaal) geschikt is om niet alleen getalproblemen op te lossen, maar ook met woorden kon ‘rekenen’. Zijn programma was sneller dan de speciale sorteermachine die IBM had ontwikkeld. Het programma voor het inelkaar schuiven van twee reeds geordende lijsten wordt in 36 regels machine code beschreven en van Knuth van commentaar voorzien. In moderne functionele programmeertalen (zoals Haskel) kan het hele sorteerprogramma in een paar regels geschreven worden.

Published by

admin

Rieks op den Akker was onderzoeker en docent kunstmatige intelligentie, wiskunde en informatica aan de Universiteit Twente. Hij is gepensioneerd.