# Artificiële intelligentie

# Intro

Artificiële intelligentie (AI) is een gebied binnen de informatica dat zich bezighoudt met het creëren van machines en computersystemen die in staat zijn om taken uit te voeren die normaal gesproken menselijke intelligentie vereisen. Het doel van AI is om machines te ontwikkelen die kunnen leren, redeneren, problemen oplossen en beslissingen nemen, vergelijkbaar met hoe mensen dat doen.

AI-systemen worden ontworpen met behulp van algoritmen en modellen die gegevens analyseren, patronen herkennen en op basis daarvan beslissingen nemen. Er zijn verschillende vormen en toepassingen van AI, waaronder:

  • Machine Learning: Een belangrijk deel van AI, waarbij machines leren van ervaringen en data om taken te verbeteren zonder expliciete programmering. Dit omvat onder andere Supervised Learning (begeleid leren), Unsupervised Learning (ongecontroleerd leren) en Reinforcement Learning (versterkt leren).
  • Neurale netwerken: Dit zijn geavanceerde AI-modellen die zijn geïnspireerd op de structuur en werking van het menselijk brein. Ze kunnen complexe patronen en verbanden in data herkennen en worden vaak gebruikt in beeld- en spraakherkenningstoepassingen.
  • Natuurlijke taalverwerking (NLP): Dit omvat de technologie die computers in staat stelt menselijke taal te begrijpen, verwerken en genereren. NLP is essentieel voor chatbots, virtuele assistenten en automatische vertaling.
  • Computer Vision: Een gebied binnen AI dat zich bezighoudt met het verwerken en begrijpen van visuele informatie, zoals afbeeldingen en video's. Het wordt gebruikt in gezichtsherkenning, objectdetectie en autonome voertuigen.
  • Expertsystemen: Deze systemen bootsen het denkproces van menselijke experts na om oplossingen voor complexe problemen te bieden op specifieke gebieden, zoals medische diagnostiek of financiële planning.

AI wordt op talloze gebieden toegepast, waaronder gezondheidszorg, transport, financiën, onderwijs, gaming, marketing, en nog veel meer. Het potentieel van AI is enorm, maar het roept ook ethische en sociale vraagstukken op, zoals privacy, veiligheid en het vervangen van menselijke arbeid.

AI gaat over computer systemen die het intelligent gedrag van mensen kunnen nabootsen. Hierbij is het niet geweten hoe intelligentie moet worden omschreven. We weten ook niet hoe dit bij een mens werkt. Dan is het ook moeilijk om te omschrijven wanneer een machine intelligent is. In ieder geval blijft het een machine die geen opvoeding, geweten en moraal bezit. Kan die machine relativeren, inschatten, zoals een mens dit kan, neen. Het kan een machine zijn die een handeling uitvoert zoals een mens dit uitvoert. Bij repetitieve handelingen is een machine efficiënter omdat die dit langer kan dan 8 uur per dag, en waarschijnlijk accurater en sneller. Maar is die machine daarom intelligent?

Verschillende soorten AI kan opgesplitst worden in verschillende categoriën:

  • systemen die net zoals mensen 'denken'
  • systemen die zich gedragen als mensen
  • systemen die rationeel kunnen denken (op basis van logica)
  • systemen die rationele beslissingen kunnen nemen (op basis van logica)

Bij gesprekken over de eerste twee soorten systemen, ontstaan vaak filosofische discussies. Er is nog maar weinig bekend over hoe mensen denken en het gedrag van mensen is elke keer weer anders. De laatste twee types, lijken makkelijker te realiseren. Rationaliteit wordt geaccosieerd met het gebruik van logica en statistiek.

In ieder geval zullen alle sectoren en heel vele jobs in de nabije toekomst te maken hebben met één of andere vorm van AI om die sector of job te ondersteunen. Een samenwerking tussen menselijke handelingen en AI systemen zal zich overal opdringen. Data zal aan geleverd worden aan AI systemen. AI systemen zullen beslissingen, verbanden en voorspellingen aanleveren. Het is aan de mens om die dan te bekrachtigen of te valideren. Hiervoor zal er kennis nodig zijn in alle sectoren hoe met AI systemen om te gaan.

De cursus beoogt als kennismaking van wat een AI systeem kan zijn. De gebruiker zal leren hoe een eigen AI-systeem te trainen (belangrijk proces binnen AI systemen). En eenmaal de trainingsfase is afgelopen, hoe dit AI systeem te implementeren (te gebruiken). Voorkennis is hier niet nodig.

# Enkele termen

Algoritme : De stappen die nodig zijn om een doel te bereiken.

Data (data science, big data) : De situatie waarbij grote heoveelheden gegevens beschikbaar zijn. Data die snel kan veranderen en waarbij het volume te groot is voor een traditionele database.

Machine learning : Wetenschap en praktijk waarbij machines zelf op basis van data leren hoe ze voorspellingen kunnen doen.

Deep learning : Is een methode van "Machine Learning" waarbij een machine leert en beter wordt naarmate het meer data te verwerken krijgt.

Turing test : Alan Turing beschreef in 1950 een gedachte experiment om te beoordelen wanneer een machine daadwerkelijk als intelligent kan worden beschouwd.

Classificeren : Het plaatsen van elementen in verschillende groepen (klassen) op basis van gemeenschappelijke elementen (patronen).

Patroonherkenning : Herkennen van patronen in data. Bijvoorbeeld in tekst, maar ook mogelijk in andere soorten gegevens zoals beeld, geluid, beweging, ...

Wet van Moore : Geobserveerde wetmatigheid dat de dichtheid van processoren op een geïntegreerde schakeling(chip, processor, microcontroller) elke twee jaar verdubbelt.

Artificiële intelligentie : Computersystemen die zelfstandig kunnen leren of beslissingen kunnen nemen. (?? Het denken en handelen van mensen nabootsen ??)

Artificiële Neurale Netwerken : AI geïnspireerd op wat men denkt hoe hersenen werken (alhoewel we dit totaal niet weten). Een artificieel neuraal netwerk bestaat net zoals ons brein uit neuronen, die elk een input hebben en een output genereren.

Expertsystemen : Een computersysteem dat de kennis van menselijke experts nabootst en gebruikt om beslissingen te nemen in een bepaald vakgebied.

Predictie, voorspelling : Het voorspellen van de output bij nieuwe aangeleverde data op basis van een getraind, geleerd proces. Kan soms eenvoudig worden uitgevoerd op basis van statistiek.

# Principe en werking van een AI systeem.

example image

Heel envoudig kan een thermostaat, die we thuis gebruiken om na te gaan of de temperatuur in huis niet te hoog of te laag is, en daar een actie aan koppelen door te communiceren met de HVAC installatie, gezien worden als een AI systeem. Het neemt een menselijke waarneming en beslissing over. De data die hiervoor gebruikt wordt is de temperatuur die gemeten wordt in de kamer in vergelijking met de gewenste, ingestelde temperatuur. Eventueel kan rekening gehouden worden met: vorige beslissing (hysteresis), tijdstip, dag van de week, temperatuur buiten, weersvoorspelling, ....

In de meest eenvoudige vorm is hiervoor software nodig die bestaat uit eenvoudige ALS-DAN constructies. Volgens de letterlijke definitie van AI is een thermostaat een AI systeem. Het AI model is hier een algoritme binnen een beslissingsproces gebaseerd op ALS-DAN statements (instructies).

Het wordt echter iets complexer als een geschreven letter moet worden geïnterpreteerd als een interpreteerbaar character door de computer. Ieder mens schrijft een letter toch een beetje anders. Er is dus veel interpretatie mogelijk en er kan twijfel zijn of het nu een 'o' of een 'a' is, of twijfel tussen een '0' en een 'O'. Zo'n systemen bestaan al lang en worden als OCR 'Optical Character Recognition' benoemd. Wordt veel gebruikt tijdens het inscannen van documenten.

Als mens zullen we een inschatting maken van wat we zien als we een charater lezen. In onze hersenen zullen neuronen geactiveerd worden die met elkaar zullen communiceren om tot een voorspelling te komen van wat het chararcter zou kunnen zijn (teneinde een beslissing te kunnen nemen). Hierop doen onze getrainde neuronen beroep op wat we in het verleden hebben geleerd en gezien (trainingsperiode). Opvoeding en ervaring spelen hierbij een belangrijke rol om associaties te leggen en patronen te herkennen. Er wordt dus een voorspelling gedaan die een 'confidence score' oplevert (zie ook statistiek). Bij twijfel tussen twee mogelijkheden zullen we bepalen hoeveel kans het is dat het het ene is of het andere. We zouden dit procentueel kunnen uitdrukken. Bij geavanceerde denkprocessen zouden we ook kunnen kijken naar de characters in de buurt van het onduidelijke character en-of de context van de tekst beoordelen en op basis daarvan onze 'confidence score' laten beïnvloeden.

Dit is net hetzelfde hoe AI systemen werken. De basis hiervan is een neuraal netwerk. Dit is een software ontwikkeling die we hier als black-box behandelen. In die black-box zitten virtuele layers met daarin een aantal nodes. De structuur van layers en nodes zijn te vergelijken met de neuronen en hun verbindingen. Nogmaals, we weten totaal niet hoe dit in ons brein functioneert.

Er kan een vergelijking worden gemaakt tussen een klassiek geprogrammeerde tool en een AI geprogrammeerde tool:

  • Klassiek geprogrammeerde tool: Als input is er data en zijn er regels. Als output zijn er resultaten.
  • AI geprogrammeerde tool: Als input is er data en zijn er resultaten. Als output zijn er regels (ook al kan het AI systeem niet vertellen wat die regels inhouden)

Een dergelijk neuraal netwerk kunnen we trainen. Er worden hiervoor verschillende technieken aangewend zoals lineaire regressie, k-Nearest Neighbour, deep learning (Neurale netwerken), .... Het trainproces van een neuraal netwerk is een zeer belangrijke stap binnen AI en er bestaan verschillende trainmethoden voor AI. Zo spreekt men over:

  • Supervised Learning
  • Unsupervised Learning
  • Reinforcement learning

Enige verduidelijking:

# Supervised Learning

Bij supervised learning wordt het neuraal netwerk getrained op basis van data (variabelen) die leiden tot een classificatie. Let wel: de classificatie is samen met de data gekend voor het trainen. Een eenvoudig voorbeeld is beeldherkenning van honden en katten. Hierbij bestaat de data uit veel foto's van honden waarbij het op voorhand geweten is per foto dat het over een hond gaat. Idem voor katten. Tijdens het leren wordt een foto aangeboden aan het neuraal netwerk en wordt er bij vermeld dat dit een hond of een kat is. Op die manier leert het neuraal netwerk verschillen te herkennen tussen honden en katten. Natuurlijk weet de computer niet dat het over honden of katten gaat. Het neuraal netwerk herkent enkel patronen in de beelden die uniek zijn voor de verschillende classificaties en vergelijkt die bij nieuw aangeboden data. Het neuraal netwerk zal dan als output een zekere confidence score geven voor de verschillende classificaties (meestal een float getal tussen 0 en 1). De classificatie met de hoogste score zal volgens het neuraal netwerk de hoogste kans tot voorspelling opleveren. Maw het neuraal netwerk zal bij de hoogste score classificatie, patronen in het nieuwe beeld herkent hebben die geassocieerd zijn met patronen van getrainde beelden. Eigenlijk zijn het verbanden van enen en nullen, meer niet.

Dankzij de wet van Moore kunnen huidige processoren dit op een relatief snelle manier uitvoeren (zowel trainen als classificeren van nieuwe data). Er worden zelf specifiek processoren ontwikkelt om dit te kunnen doen en fabrikanten van grafische kaarten zijn daar koploper in. Op grafische kaarten van een computer wordt al heel lang gebruik gemaakt van snelle processoren voor beeldrendering.

Supervised learning kan gebruikt worden bij alle soorten data als beeld, tekst, geluid, beweging, en andere soorten data ...

# Unsupervised Learning

Hierbij wordt data gebruikt als training van een neuraal netwerk, idem als supervised learning, maar er is geen classificatie op voorhand gekend. Dit in tegenstelling tot supervised learning. Het is de bedoeling dat het neuraal netwerk zelf een classificatie genereert van de aangeboden data op basis van clustering of groepering van de verschillende data. Dit is een stuk complexer dan supervised learning. Hierbij laat men het neuraal netwerk patronen herkennen in trainingsdata en nieuwe data. Eenmaal dit gelukt is kan men echter niet nagaan wat de criteria is die het neuraal netwerk hanteert om tot die specifieke classificatie te komen. Hierbij kan een leek al een beetje onwennig worden. Men kan dus een beslissing overlaten aan een neuraal netwerk maar men weet niet welke criteria hierbij worden gebruikt.

Een voorbeeld is hierbij gekend dat foto's van een iris (oog) door een neuraal netwerk kan geclassificeerd worden naar de vroegtijdige kans op hartfalen, zonder goed te weten welke criteria in de foto nu juist bepalend is om tot dit oordeel te komen. Gelijkaardige systemen gebruikt men reeds bij bloedanalyse om vroegtijdig kanker op te sporen. Hierbij worden patronen herkend uit grote hoeveelheden data. Daar hebben wij het als mens soms moeilijk mee om overzicht te houden bij grote hoeveelheden data.

# Reinforcement Learning

Bij supervised en unsupervised learning is de standaardstructuur dat een model eerst wordt getraind om de juiste regels te vinden. Daarna kan het getrainde model gebruikt worden voor nieuwe data. Bij reinforcement learning leert het model tijdens het aanbieden van nieuwe data. Er is dus een continu leerproces. Bij dit leerproces is er bij de start geen data en ook geen uitkomst voorhanden.

Een voorbeeld hiervan is een robot die leert recht stappen zonder om te vallen. De robot bezit balanceer sensoren als input en stuurt de stapactuatoren aan. Bij de eerste stappen valt de robot onmiddelijk om. Door deze handeling leert de robot dat dit niet goed was en probeert andere vormen van aansturen van de stapactuatoren tot hij niet meer omvalt. Daarna leert hij een tweede stap te zetten en leert constant bij door zelf nieuwe data te generen via de balanceersensoren. Hij leert dus verbanden te leggen tussen die sensoren en de actuatoren om op een efficiente manier te stappen en niet om te vallen.


Om een verschil te illustreren tussen (un)supervised learning en reinforcement learning zou een AI systemen getraind kunnen worden volgens deze twee methoden om te leren schaken. Wat zou het verschil zijn?

  • Bij (un)supervised learning zal het systeem getrained worden aan de hand van vele belangrijke schaakpartijen die gespeeld zijn door mensen in het verleden. Door die te digitaliseren kan dit als leerdata gebruikt worden voor dit AI systeem. Eenmaal het leerproces achter de rug, zal het systeem direct al bij de eerste testwedstrijd een behoorlijk moeilijke tegenstander zijn. Het nadeel is dat dit systeem nooit beter zal worden (tenzij er een nieuw leerproces zou gebeuren).
  • Bij reinforcement learning is er bij de start nog geen leeproces geweest. Het systeem weet wel wat verliezen en winnen is. Maar verder bezit het systeem totaal geen ervaring hoe er moet geschaakt worden. Zelfs de regels moet het systeem niet kennen. Door nu tegen een al dan niet menselijke tegenstander te spelen, (het leerproces zal natuurlijk veel vlugger verlopen als het tegen een andere computer speelt, een mens kan geen 24 uur schaak spelen, en ook niet zo vlug), leert het AI systeem constant bij wanneer het verliest en wanneer het wint. Bij de start zal het niveau heel laag liggen en zal de domste zetten uitvoeren. Maar het systeem zal beter en beter worden.

Er zijn in het verleden schaakpartijen uitgevoerd tussen dergelijke twee AI systemen. Het reinfocement systeem had niet veel tijd nodig om het niveau van het unsupervised learning AI systeem in te halen. Nu tijd is hier relatief (dat is het eigenlijk altijd). Er worden in enkele seconden honderden games afgewerkt. Het nadeel van het (un)supervised learning AI systeem is dat het minder vrijheidsgraden bezit dan het reinfocement learning systeem omdat het gebaseerd (getraind is met) is op (beperkte?) ervaringen, expertise, kennis, doorzicht van mensen die schaak hebben gespeeld. Maar misschien zijn er wel nog andere manieren om nog beter te schaken, en daar zal het reinfocement learning systeem wel de vrijheid hebben om daar mee te experimenteren. Het (un)supervised learning systeem wordt niet slimmer en beter met de tijd, het reinforcement learning systeem wel.