Kunstmatige Intelligentie (AI) bouwen DEEL 1: De oorsprong en eigenschappen van AI software

Gastcollege 50 Slides of A.I.

Op 19 Juni 2018 heb ik het gastcollege “50 Slides of A.I.” gegeven tijdens de cursus van het Nederlands Instituut voor de Software Industrie (NISI)  op de Universiteit Utrecht. Hierbij wilde ik het publiek een kijkje in de keuken laten nemen in de wereld van het toepassen van Machine Learning en Deep Learning technieken.  Deze techieken worden gebruikt voor het ontwikkelen van Artificial Intelligence (Kunstmatige Intelligentie) zoals bij zelf rijdende auto’s, stemherkenning, voorspellingen en en chatbots. Dit artikel is het eerste deel in een serie van meerdere delen waarin we beginnen met de oorsprong van Kunstmatige Intelligentie en hoe het zich onderscheid van andere manieren om software te schrijven.

 

De geboorte van het concept “Artificial Intelligence”

Men beweert dat de term Artificial Intelligence als eerst is genoemd in een voorstel van John McCarthy voor een onderzoeksproject in de zomer van 1955. Dit onderzoeksproject had als doel om te werken aan een onderzoek om computers te laten denken als mensen, vrij vertaald. Om specifiek te zijn: Menselijke intelligentie (Human Intelligence) na te bouwen als gebouwde of Kunstmatige Intelligentie (Artificial Intelligence). Het proposal kan gedownload worden op Google Scholar als “A proposal for the dartmouth summer research project on artificial intelligence, august 31, 1955“.

 

proposal ai mccarthy

Het originele research proposal Artificial Intelligence door John McCarthy

Het is leuk om het proposal even door te lezen. Realiseer je dat dit meer dan 60 jaar geleden is opgeschreven, wat John McCarthy op dat moment alleen nog voor zich zag, zien wij nu om ons heen in producten en services die wij dagelijks gebruiken.

 

Benodige aspecten van Kunstmatige Intelligentie (Artificial Intelligence) volgens John McCarthy: De originele definitie

Als je naar verschillende onderdelen in het proposal kijkt, zie je herkenbare aspecten waarvan wij tegenwoordig verwachten of zelfs eisen dat Kunstmatige Intelligentie dit kan uitvoeren. Vooral de derde pagina van het citaat is interessant. Deze zal ik na de twee onderstaande screenshots uitlichten:

 

aspecten artificial intelligence John McCarthy

 

Aspecten Artificial Intelligence John McCarthy

Aspecten Artificial Intelligence John McCarthy

 

Laten we de aspecten van Kunstmatige Intelligentie die we op deze pagina’s zien er even uitpakken. Ik heb de verschillende stukken uit het artikel er even uitgehaald:

Aspecten Kunstmatige Intelligentie

Aspecten Kunstmatige Intelligentie

 

Deze aspecten komen je vast bekend voor als je eerder over Kunstmatige Intelligentie projecten heb gelezen. Zoals je ziet, meer dan 60 jaar verder en nog niet veel veranderd over het concept. Dat is op zich wel netjes en laat zien dat het concept Kunstmatige Intelligentie (origineel Artificial Intelligence) een goed fundament heeft en zeer sterk is gedefineerd. Al hebben sommigen hier een andere mening over.

 

Moderne definities Kunstmatige Intelligentie

Als je kijkt naar een meer moderne definitie kun je, op taalgebruik na, niet zeggen dat dit veranderd is. We pakken er even een random Oxfort Dictionary bij:

 

definitie kunstmatige intelligentie oxfort

Definitie kunstmatige intelligentie Oxfort Dictionaries

 

Zoals je kunt lezen: “tasks normally requiring human intelligence”Vrij summier, maar exact dezelfde boodschap waar John McCarthy over begon in zijn proposal voor het Artificial Intelligence onderzoeksproject.

 

Kunstmatige intelligentie in producten en diensten die wij dagelijks gebruiken

Zoals ik aan het begin van het artikel aangaf, Kunstmatige Intelligentie neemt langzamerhand steeds meer ruimte in bij onze dagelijkse bezigheden. Dit soms zonder dat wij dat door hebben. Laten we er 2 voorbeelden bij pakken:

  • Zelfrijdende auto’s: De Autopilot van Tesla
  • Spaarkherkenning: Amazon Alexa

 

Zelfrijdende auto

De zelf rijdende auto is misschien wel het mooiste voorbeeld van: tasks normally requiring human intelligence. Al is bij sommige automobilisten intellligence ver te zoeken, komt er bij het besturen van een auto vrij veel kijken. Je moet op jezelf letten, nog meer de omgeving en situaties kunnen inschatten. Door deze, en vast nog meer onderwerpen, op te breken kun je uiteindelijk een systeem opbouwen die deze taken kan uitvoeren. Vorig jaar circuleerde er een filmpje op internet waarin te zien is hoe een Telsa de situatie inschat en de inzittende een waarschuwing geeft dat er een incident kan plaatsvinden. Bekijk het onderstaande filmpje eens, met het geluid aan om de waarschuwing te horen:

 

 

Als je zelf genoeg oplet en situaties probeert in te schatten, kon je dit zien aankomen. Dit menselijke gedrag is dus nagebootst door de Autopilot van Tesla. Knap staaltje Kunstmatige Intelligentie. Niet alleen een knap stukje Kunstmatige Intelligentie, maar ook heel veel uren werk! Als je nadenkt over het feit dat ieder object herkend moet worden en het systeem hier op getraind moet worden ga je begrijpen waarom er zoveel tijd en geld in de techniek wordt gestopt. Voor de liefhebbers heb ik hieronder een video toegevoegd waarin te zien is wat het systeem in een Tesla ziet.

 

Stemherkenning

Iedereen die een iPhone heeft kent Siri, de digitale assistent, wel. En als je deze niet kent, zorgt ie er zelf wel voor dat je het leert kennen door zich bij vlagen ongevraagd te activeren. Het herkennen van woorden door een systeem is zeer complex, het zijn namelijk twee aparte entiteiten: Geluidsgolven en tekst. Het systeem moet op basis van onze geluidsgolven uitvinden welke woorden hierbij horen. Natuurlijk moet dit apart voor iedere taal getraind worden. Persoonlijk vind ik dat deze technologie vrij ver is. Zowel mijn iPhone als mijn Amazon Echo Dot met Alexa kunnen de woorden die ik op een normale toon spreek goed interpreteren. Het is alsof je een kind woordjes leert.

De Amazon Echo Dot (en Siri ook trouwens) gaat nog een stapje verder. Het zet de geluidsgolven om in woorden en acteert op basis van die woorden waar zij op voorgeprogrammeerd is.

 

 

 

Waar kennen wij Kunstmatige Intelligentie (AI) nog meer van?

 

Daarvoor hoef je niet ver te zoeken…. GAMES! Als we reviews lezen over games, spreken we al jaren over de AI in een game. Dit is zelfs een van de belangrijkste criteria. Hierbij wordt er met AI vooral het gedrag van de Non-player Character (NPC’s), computer gestuurde characters, bedoeld. Dit zijn bijvoorbeeld de andere racers in een race game of de vijanden in een shooter. Laten we bijvoorbeeld eens een review te kijken van een van mijn favoriete games, Halo 2. Kijk eens naar het onderstaande screenshot:

 

Review AI Halo 2

Review met o.a. een beoordeling van de A.I. in Halo 2

 

Opmerkelijk zijn de datum van het artikel en de aspecten van de A.I. in de game. De bovenstaande review is op 17 november 2004 geplaatst, bijna 14 jaar geleden! Ook als je naar de eigenschappen kijkt die genoemd worden over de AI van de vijanden. Lijken die niet heel erg op de definitie van Artificial Intelligence waar we het zojuist over gehad hebben?

“The enenemies, react, respond and adapt.”

De enemies (de NPC’s) reageren dus op jouw gedrag als speler. Dat is een groot verschil met bijvoorbeeld NPC’s in een simpeler spel als Mario Bros.

screenshot mario bros ai

MPC’s in Mario Bros 3

 

Daar gaan enemies gewoon hun normale, voorgeprogrammeerde, route af en reageren ze niet of nauwelijks op jouw gedrag als speler:

 

Vroeger kenden MPC's geen angst

         Vroeger kenden MPC’s geen angst

 

 

Hoe bouw je Kunstmatige Intelligentie?

Als het gaat over Kustmatige Intelligentie is bouwen een groot woord. De tijd zit hem meer in het bedenken, experimenteren en trainen. Op Medium kwam ik een goed artikel tegen van Calum McCelland: The Difference Between Artificial Intelligence, Machine Learning, and Deep Learning  over het bouwen van Kunstmatige Intelligentie. Hierin geeft hij aan dat de technieken Machine Learning en Deep Learning hier onlosmakelijk aan verbonden zijn. Uit dit artikel wil ik bij twee stukken even stil staan:

 

 

“Machine Learning is een manier om Kunstmatige Intelligentie te bereiken”

Even vrij vertaald stelt hij dat Machine Learning een manier is om AI te bereiken. Hij vervolgt met het alternatief: handmatig hele grote programma’s schrijven om gedrag te simuleren. Kort gezegd, hard-coded. Zie je het al voor je? Om elk mogelijk gedrag op basis van input van de speler uit te schrijven? Dat resulteert in een gigantische matrix. Zo zitten wij mensen ook niet in elkaar, en Kunstmatige Intelligentie ook niet. McCelland gaat in zijn artikel verder met het alternatief:

 

 

Het alternatief is het trainen van een algoritme om een specifieke taak uit te voeren. Ook geeft McCelland al aan wat Machine Learning inhoudt: Het voeden van grote hoeveelheden data aan een algoritme. Simpel gezegd: Data + Algoritme = Model. Voeg daar het stukje “allowing the algorithm to adjust itself and improve” aan toe, en je hebt Kustmatige Intelligentie, of zoals McCelland het noemt: Artificial Intelligence.

Quiz: Kunstmatige Intelligentie of geen Kunstmatige Intelligentie?

 

Test 1: Nederlandse-taal Telegram bot

Als experiment heb ik een bot gebouwd met Telegram die de Nederlandse taal begrijpt. Bekijk de video en oordeel:

 

Test 2: Cryptocurrency Tradebot

Een cryptocurrency tradebot die automatisch cryptocurrency (bijvoorbeeld Bitcoin en Ethereum) voor je verhandeld en geld voor je verdiend. Wederom, bekijk de video en oordeel:

 

 

 

Verdere uitleg over hoe deze bots gebouwd zijn, krijg je na het volgende hoofdstuk. Dan kun je zelf oordelen of het in deze voorbeelden Kunstmatige Intelligentie is gebruikt of niet.

 

Machine Learning

Laten we voor we dit eerste deel afsluiten stil staan bij het onderwerp Machine Learning. Zoals McCelland in zijn artikel aangaf, is het een hele andere benadering dan alles hard coded programmeren. Machine Learning en Deep Learning zijn de bouwstenen van Kunstmatige Intelligentie. In het volgende deel gaan we hier diep op in en krijg je te zien welke tools, typen modellen en software die er beschikbaar zijn om AI door middel van Machine Learning en Deep Learning Kunstmatige Intelligentie te bouwen. We gaan samen scripts bouwen om modellen te trainen en demonstreren hoe deze modellen als een mens patronen kan herkennen. Stay tuned!

 

De code achter de bots

De Nederlandse taal chatbot

De code achter de logica van de Nederlandse taal chatbot is groot, heel groot. Niet zo groot als McCallen het beschrijft als alternatief voor Kunstmatige Intelligentie, maar wel hetzelfde soort type script: een groot script met complexe regels.

hardcoded script vs artificial intelligence

hardcoded script vs artificial intelligence

 

In het bovenstaande script wordt aangegeven wat de chatbot moet doen als er een command wordt uitgevoerd. Hier is dus geen sprake van het interpreteren van tekst zoals het bijvoorbeeld bij speech to tekst gaat. Als een gebruiker een ander command intikt dan er van tevoren in het script is gedefinieerd, moet de chatbot je helaas teleurstellen. Gelukkig is er software waarmee er wel bots gemaakt kunnen worden die AI aspecten hebben zoals het Microsoft Bot Framework .

 

De cryptocurrency tradebot

De Technical Analysis is waar handelaren op de aandelenmarkt, en ook sommige handelaren op cryptocurrency exchanges, zich mee bezig houden. Dat is ook waar deze cryptocurrency tradebot op is getraind, het herkennen van patronen en daar op handelen. Dat klinkt vrij menselijk, maar er zit echter geen model achter. Zo’n model is ook niet nodig om goede winsten te behalen met zo’n bot, maar een mooie toevoeging zou zijn als de bot bijvoorbeeld kan leren van zijn fouten. Iets dat voor mensen nog moeilijk is als het gaat om handelen in cryptocurrency.

 

screenshot technical analysis

Screenshot Technical Analysis

 

 

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit /  Bijwerken )

Google photo

Je reageert onder je Google account. Log uit /  Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit /  Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit /  Bijwerken )

Verbinden met %s

Deze site gebruikt Akismet om spam te bestrijden. Ontdek hoe de data van je reactie verwerkt wordt.

%d bloggers liken dit: