Artificial Intelligence

Een overzicht van het vakgebied


Bij het horen van de term "Artificial Intelligence" (AI) hebben de meeste mensen een beeld voor zich van intelligente robots. Bekende voorbeelden zijn natuurlijk de Terminator films, maar ook films zoals A.I. en het hier getoonde Ex Machina.

Uiteraard zouden dit soort robots (met kenmerken van de mens), indien ze komen te bestaan, onder de noemer AI vallen. Echter het veld van AI is veel groter dan alleen deze robots.

Ex Machine (Text Image).png

In deze blog zal ik een verdere verkenning doen van het AI vakgebied. Er komen kort wat verschillende subgebieden van AI aan bod, alsmede de meest genoemde technieken en methoden. Vervolgens volgen er een aantal voorbeelden van hoe AI nou praktisch kan worden ingezet voor het bedrijfsleven. Als laatste zal ik de mogelijke gevaren van een echte AI toepassing behandelen.


Wat is Artificial Intelligence?

Men zou simpel kunnen stellen dat AI de volgende definitie heeft: intelligentie welke door machines wordt getoond. Je vervolgvraag zou dan kunnen zijn "Wat is intelligentie?" En hier ontstaat al veel onduidelijkheid. Een factor die daaraan bijdraagt is het AI Effect.

Dit is het effect dat als een computer/machine een bepaalde taak kan uitvoeren, waarvan geacht werd dat deze alleen door intelligente mensen uitvoerbaar was, deze later het stempel krijgt toch niet echt intelligent te zijn.

Een voorbeeld is schaken, eeuwenlang werd aan goede schakers hoge intelligentie toegeschreven, maar zodra DeepBlue de wereldkampioen schaken (Garry Kasparov) versloeg, zei men "ja, de computer doet het met brute rekenkracht, dat is niet echt intelligent”. Kortom, schaken werd hergewaardeerd als taak die ofwel door intelligentie ofwel door brute rekenkracht gedaan kan worden. En is dus minder intelligent als taak bevonden.


Vervolgens werd in de Aziatische wereld gesteld dat schaken minder intelligent is dan het bordspel Go. Toen in 2016 het programma AlphaGo ook Go meesters kon verslaan, leidde dit tot herwaardering van de intelligentie rondom bordspelen in het algemeen ten opzichte van algemene intelligentie. De oorzaak lijkt te liggen in het feit dat computers erg goed zijn in bepaalde taken en tegelijk andere dingen, die voor mensen dagelijkse kost zijn, niet of nauwelijks kunnen.

Alpha Go versus Ke Jie (Text Image).png

Douglas Hofstadter, een Amerikaanse hoogleraar in cognitieve wetenschappen, heeft deze theorie kort samengevat als: "AI is alles wat nog niet is gedaan".

Enkele voorbeelden van activiteiten die voor de meeste mensen erg moeilijk zijn, maar door bepaalde computers makkelijk uitgevoerd worden:

  • Grootmeesters verslaan in bordspelen als schaken en Go
  • Wiskunde en complexe berekeningen
  • Gigantische hoeveelheden berekeningen tegelijkertijd uitvoeren
  • Zoeken in gigantische hoeveelheden data
  • Het nauwkeurig controleren en bijsturen van een proces (bijvoorbeeld een drone op zijn plaats houden)

En taken die voor mensen alledaags en simpel zijn, maar voor computers nog steeds bijna niet uit te voeren zijn:

  • Kijken in 3D en herkennen wat we zien
  • Begrijpen van gesproken en geschreven taal
  • Humor
  • Redeneren en problemen oplossen
  • Creatieve processen (kunst/idee/nieuwe oplossing)
  • Sociale interactie

Dit maakt het voor veel mensen lastig in te schatten waar de computer (AI) wel of niet goed in is. Ter illustratie een blog die goed laat zien wat er allemaal (vanzelfsprekend) in ons hoofd gebeurt bij het kijken naar een grappige foto met Barack Obama.


Sterke en zwakke AI

De definitie van sterke AI is een computer die succesvol elke intellectuele taak kan doen die mensen ook kunnen uitvoeren. Kortom dit is een generieke algemene intelligentie die op allerlei gebieden kan worden toegepast. Bijvoorbeeld een probleem van een bedrijf analyseren en er een passende oplossing bij vinden.

Zwakke AI is een systeem dat op een erg beperkt gebied intelligentie vertoont. Bij zo’n geval blijkt dat buiten dit domein de AI toepassing geen intelligentie bevat. Een voorbeeld is het AlphaGo algoritme dat erg goed Go kan spelen, maar niet een simpel gesprek kan voeren.

De voortgang van AI de afgelopen decennia heeft zich voornamelijk afgespeeld binnen de zwakke AI. De meeste AI onderzoekers zijn het erover eens dat er voor sterke AI meer nodig is dan alleen zwakke AI methoden opschalen of simpelweg samenbrengen.


Onderverdeling AI gebieden

In de AI wereld onderscheiden we verschillende domeinen waarop onderzoek zich richt. Dit zijn gebieden (problemen) waar AI nog winst kan boeken:

  • Redeneren, logica en het oplossen van problemen
  • Het representeren van kennis
  • Plannen
  • Leren
  • Natuurlijke taal verwerken
  • Waarneming
  • Beweging
  • Sociale intelligentie

Hier volgt een korte uitleg bij elk van deze gebieden.

Redeneren, logica en het oplossen van problemen

Deze tak van AI gaat over formele logica en hoe een computer logische redeneringen kan uitvoeren. Dit veld onderzoekt de verschillende logica's met bijbehorende voor- en nadelen. Inmiddels zijn er inzichten verkregen over hoe te redeneren met onzekere en onvolledige kennis. Maar in de formele en traditionele logica's lopen we snel tegen het probleem aan dat het aantal mogelijkheden gigantisch is.


Stel je hebt een bepaald probleem (een stelling) en wil dit oplossen met logica. Dan kun je een heleboel logische regels op vele plekken in het probleem toepassen. Het aantal mogelijke redeneringen met daarin logische stappen kan dan heel erg groot worden. Je zult met andere technieken (zeg diepe neurale netwerken, waarover hieronder meer) de keuze moeten maken welk stukje van het probleem met welke logische regel aangepakt moet worden.

Artificial Intelligence (Text Image).png

Het representeren van kennis

Hoe kunnen we menselijke kennis representeren zodat deze gebruikt kan worden voor automatisch redeneren en zoeken? Kennis moet op een bepaalde manier gestructureerd zijn, bijvoorbeeld in een Ontologie taal. Op dit moment is het voor mensen makkelijker kennis in context te zien dan voor de computer.

De uitspraak ‘zo vrij als een vogel’ snappen we doordat we het idee dat de meeste vogels kunnen vliegen makkelijk met een gevoel van vrijheid verbinden. Logisch gezien is er niks mis met ‘zo vrij als een pinguïn’ zijn, toch weten wij dat het niet kunnen vliegen van de pinguïn deze minder vrij maakt dan de gemiddelde vogel. Door onze algemene kennis, redenatie- en inlevingsvermogen is dit intuïtief duidelijk, maar een computer struikelt hierover. Pinguïn is een vogel dus ‘zo vrij als een pinguïn’ impliceert ‘zo vrij als een vogel’.

Plannen

Bepalen welke doelen nagestreefd moeten worden en deze prioriteren. Moeilijkheden hierbij ontstaan als er ook anderen agents (andere computers of mensen) in hetzelfde domein acteren. Een van die andere agents kan eerder gemaakte plannen door de war sturen en zorgen dat een (deel van het) plan herzien moet worden. Zeker bij erg complexe taken waarbij veel spelers aanwezig zijn, is communicatie en algemeen begrip van het domein en de mogelijkheden nodig om tot een goed plan te komen.

Leren

Bij het leren onderscheiden we drie hoofdvormen.

Gestuurd leren
Hierbij leert het algoritme door grote hoeveelheden trainingsdata, waarbij voor elk trainingsitem het antwoord wordt gegeven. Een voorbeeld, we geven het algoritme duizenden plaatjes met en zonder verkeersborden en geven daarbij aan welk plaatje wel of geen verkeersbord bevat. Dan leert het algoritme om verkeersborden te herkennen op een plaatje. Deze vorm van leren is het meest uitgewerkt in de verschillende zwakke AI systemen en diensten.

Ongestuurd leren
Het algoritme dient hierbij zelf verbanden te leggen en patronen te herkennen in de input data. Er worden geen voorbeelden gegeven van wat er geleerd moet worden. Het algoritme komt zelf met patronen en verbanden tussen eigenschappen binnen de data.

Beloning gestuurd leren
Hierbij dient het algoritme zelf te leren hoe deze zich moet gedragen om een bepaalde beloningsfunctie te maximaliseren. Voor een bordspel kan de beloning het winnen van het spel zijn. En spelend tegen zichzelf of andere algoritmen, proberen instanties van het algoritme zich zo aan te passen dat de kans op winnen verbeterd. Er wordt dus niet letterlijk verteld wat er geleerd moet worden, maar er is wel een functie waarmee het leeralgoritme zich kan richten.

Natuurlijke taal verwerken

Het gaat hierbij om het begrijpen van zinnen en het automatisch kunnen vertalen van teksten. De consensus is dat algemene sterke AI nodig is om deze taak op het niveau van menselijke taalverwerking uit te voeren. Echter zijn Recurring Neural Networks al aardig op weg om dit probleem te overwinnen.

Waarneming

Het gaat hier onder andere over spraakherkenning. Het reconstrueren van tekst uit gesproken taal. Daarnaast hebben we het over objectherkenning; aan de hand van sensorische input een 3D scene of object kunnen reconstrueren. Het herkennen van de objecten, wat ze ondergaan en welke beweging ze maken, en daarmee voorspellen wat er in de toekomst gaat gebeuren met de omgeving.

Beweging

Het plannen van verschillende kunstmatige spieren (motoren) of andere actuatoren zodat er vloeiende en efficiënte beweging ontstaat. Hierbij spelen sensoren een rol. Sensoren die precies kunnen meten wat de positie en de stand van de entiteit is die we bewegen. En daarnaast ook het kunnen voorspellen van beweging in de omgeving en het plannen van de eigen (correctie op) beweging.

Sociale intelligentie

Dit gegeven gaat over wat er nodig is om op geloofwaardige wijze met mensen te kunnen communiceren en enigszins te kunnen voorspellen wat de volgende stap zal zijn in de sociale interactie. Cruciaal onderdeel hiervan is het kunnen redeneren over menselijke emoties en drijfveren. Dit om de AI toepassing beter te kunnen laten bepalen wat voor een effect bepaald gedrag of uitspraken op mensen hebben.


Methoden en technieken

Hieronder zal ik de volgende belangrijke technieken uit het AI vakgebied behandelen:

  • Klassering en statistische methodieken
  • Zoeken en optimalisatie
  • Logica
  • Op kansrekening gebaseerde methoden

Klassering en statistische methodieken

Deze methoden zijn bedoeld om aan de hand van data bepaalde verbanden te leren. In het geval van klassering hebben we het voornamelijk over gestuurd leren zoals eerder besproken. Vele technieken zijn beschikbaar om deze manier van leren te ondersteunen, waaronder neurale netwerken de bekendste zijn.

Neurale netwerken
Neurale netwerken zijn gemaakt naar analogie van de hersenen. Het zijn netwerken van cellen die met elkaar in verbinding staan. We hebben input cellen waar we de input aan voeren. Ook hebben we output cellen (of één output cel) waar we de output aan aflezen.

Bij een specifiek input patroon zullen sommige cellen vuren en andere niet. Tussen de cellen in zitten verbindingen met gewichten (vaak tussen -1 en 1). Elke cel heeft ook een drempelwaarde. Als de som van alle signalen richting de cel boven een bepaalde drempelwaarde uitkomt, dan zal de cel vuren.

Hier een simpel neuraal netwerk van 2 input cellen en maar 1 output cel.


Stel we hebben cel X1 en cel Y met een onderlinge verbinding. Het gewicht van deze verbinding noemen we w1. Als w1 groot is (richting de waarde 1), dan heeft het vuren van cel X1 een positieve invloed op het vuren van cel Y. Bij een w1 van bijna 0 heeft het vuren van cel X1 weinig invloed (is neutraal). En als w1 zeer negatief is (richting de waarde -1), dan zal het vuren van cel X1 een uitdovend effect hebben op het vuren van cel Y. Cel Y zou in het laatste geval nog steeds kunnen vuren als andere cellen (zoals X2 in de afbeelding) wel positieve invloed uitoefenen.

AI - simpel neuraal netwerk (Text Image).png

Met een proces dat backpropagation heet worden de verbindingsgewichten bijgesteld. Uiteindelijk leert het neurale netwerk het juiste output patroon bij een bepaald input patroon.

Neurale netwerken zijn (tot nu toe) de meest succesvolle techniek om ‘niet symbolische kennis’ te verwerven. Daarmee wordt kennis bedoeld die niet direct in logische stellingen kan worden uitgedrukt. Kennis waarvan menselijke experts zeggen “ik heb het gevoel dat het zo en zo zit”. Bijvoorbeeld, een schaker/Go speler kan zeggen "deze zet voelt niet goed". Wat betekent dat deze persoon met al zijn ervaring ergens een patroon heeft dat aangeeft dat het wellicht een slechte zet is, zonder dat hij direct een argumentatie/bewijs/berekening hiervoor heeft. Dit soort kennis is waar vooral de neurale netwerken in uitblinken.


Diep leren
Een diep neuraal netwerk onderscheidt zich doordat het extra veel lagen en dus neuronen in het netwerk heeft. Het volgende plaatje geeft een diep neuraal netwerk weer.

Dit betekent dat er over de leerstrategie nagedacht moet worden, waarbij het ook kan voorkomen dat de lagen afzonderlijk getraind worden. Bepaalde soorten diep neurale netwerken (Convolutional neural networks) zijn erg goed in beeldherkenning. Ook het programma dat de Go meesters heeft verslagen bevat, naast andere methodieken, een diep neuraal netwerk.

AI - complex neuraal netwerk (Text Image).png

Diep terugkerend neuraal netwerk
Bij het ‘deep recurrent neural network’ zitten de neuronen niet strikt in lagen waarbij signalen worden doorgegeven van input naar output. Maar ergens zitten er neuronen in een graafstructuur. Het voordeel van zo’n netwerk is dat er dan een geheugen is dat iets over de input kan onthouden voor de volgende input.

Zoeken en optimalisatie

Veel AI problemen kunnen direct vertaald worden naar het vinden van oplossingen in een grote zoekruimte. Dat is waarom zoeken en optimalisatie binnen zoekruimten een belangrijk onderdeel van AI is. Dit kunnen vrij simpele zoekfuncties zijn, zoals een functie die alle naburige punten (oplossingen) van een arbitrair punt in de zoekruimte bekijkt en naar dat nieuwe punt gaat als de oplossing beter is. Dit word hill climbing genoemd. Hill climbing is een simpel lokaal zoekalgoritme, dat erg snel op een lokaal maximum in de zoekruimte vast komt te zitten. Andere zoekalgoritmen kijken minder lokaal en komen minder makkelijk vast te zitten. Voorbeelden van minder lokaal opererende zoekalgoritmen zijn simulated annealing en evolutionaire algoritmen.

Evolutionaire algoritmen
Evolutionaire algoritmen zijn ook methoden om te zoeken in een grote zoekruimte. Hierbij wordt het evolutieproces, zoals Darwin heeft beschreven, op kleine schaal nagebootst om een goede oplossing te vinden. Het algoritme wordt dan gecodeerd in een digitale structuur, net zoals de opbouw van veel biologische wezens gecodeerd is in het DNA.

We beginnen met een set aan individuen (samenstellingen van genen) en testen deze individuen tegen de te leren taak. Daarmee wordt bepaald hoe fit een bepaald individu is. Vervolgens worden technieken zoals mutatie, kruising en selectie gebruikt om aan de hand van een set individuen, met elk hun gemeten fitheid, een nieuwe set individuen te creëren.

Zo’n gecodeerd individu is te zien als een punt in de zoekruimte (van alle mogelijke DNA mutaties) waarbij we een betere oplossing zoeken voor een bepaalde taak. Een taak kan heel klein zijn, zoals beter boter kaas en eieren spelen, of heel groot zijn, zoals overleven in een complex systeem met andere organismen en telkens veranderende omstandigheden.

Belangrijk hierbij is dat de balans tussen differentiatie (inbrengen nieuwe mutaties) en selectie (de individuen moeten wel beter worden in de taak) goed is.

Logica

Er zijn vele soorten van logica. In de verschillende klassieke AI systemen worden dan ook een of meer van deze logica vormen toegepast. Een aantal mogelijke vormen van logica zijn:

  • Propositielogica
  • Predicatenlogica
  • Temporele logica of tijdslogica
  • Modale logica

Dit zijn gangbare logica vormen voor klassieke AI systemen, waarbij een uitspraak (op een bepaald moment) waar of niet waar is. Naast de reguliere logica heb je ook te maken met fuzzy logica. Hierbij is het doel om te kijken hoe we met vagere begrippen (grijswaarden) kunnen redeneren in plaats van met strikte begrippen (zwart/wit).

Op kansrekening gebaseerde methoden

In de AI wereld (net als in het echte leven) komen er veel situaties voor waarbij de kennis niet compleet is, of dat het niet zeker is dat de kennis echt waar is. De op kans gebaseerde methoden proberen gereedschappen te leveren om met deze onzekerheden om te gaan. Er zijn vele verschillende methodes die onder deze vlag vallen, onder andere:

IMG_9601.jpg

Praktische toepassingen

AI wordt ondertussen in veel producten en diensten gebruikt. Enkele belangrijke voorbeelden:

  • Zelfsturende voertuigen (zelfrijdende auto's, drones)
  • Medische diagnose
  • Bewijzen van wiskundige stellingen
  • Zoekmachines
  • Computer assistentie, zoals Siri en Cortana
  • Spam filtering
  • De juiste doelgroepen bereiken met online marketing

AI as a Service

Steeds meer grote bedrijven bieden nu diensten aan gebaseerd op AI. Zo heeft Microsoft diverse diensten (cognitive services) om bijvoorbeeld gezichten, emoties, geslacht en leeftijd te schatten van mensen die op een foto staan. Deze diensten zijn te gebruiken door ontwikkelaars om in hun eigen applicatie iets met die gegevens te doen.

Google heeft op haar beurt bijvoorbeeld de Vision en Natural Language API's.


Het mogelijke gevaar van AI

Afgelopen jaren hebben meerdere AI onderzoekers, maar ook bekende visionairen zoals Bill Gates, Stephen Hawking en Elon Musk in de media laten weten dat zij zich zorgen maken over het mogelijk ontstaan van een superintelligentie. Dit fenomeen wordt ook wel Techincal Singularity genoemd.

Dit is een veel gehoorde theorie die stelt dat indien een AI toepassing hetzelfde intelligentieniveau zou krijgen als een mens, deze AI toepassing dit niveau van intelligentie maar heel erg kort heeft. Het idee is dat een toepassing met deze intelligentie snel manieren vindt om zijn intelligentieniveau omhoog te laten schieten. Veel sneller dan mensen kunnen leren. Kortom een intelligentie explosie resulterend in een superintelligentie.

Onze hersenen zijn gevormd door miljoenen jaren evolutie en zijn erg moeilijk aan te passen, dan wel uit te breiden. Voor een AI toepassing ligt dit verhaal toch anders. Het zal voor een sterke AI zeker mogelijk worden om de al bestaande zwakke AI technieken te kunnen incorporeren. Het opschalen van denkkracht over meerdere parallelle computersystemen zou vrij moeiteloos moeten kunnen verlopen. En met dataopslag en zoekalgoritmen kan al snel een ijzersterk geheugen van vele Peta bytes bereikt worden. Daarnaast zal deze AI toepassing niet hoeven te eten of te slapen en kan dus op parallelle wijze al zijn denkkracht inzetten om zichzelf, dan wel zijn opvolgers, verder te ontwerpen en verbeteren.

Door deze enorm hoge intelligentie is het voor de AI toepassing mogelijk om super slimme wapensystemen te maken en daardoor een niet te overtreffen macht te verwerven. Voorlopig lijkt het er op dat de sterke AI nog vrij ver weg is, maar laten we hopen dat als de tijd van sterke AI aanbreekt we te maken zullen krijgen met een vriendelijke variant.


Artificial Intelligence - Een overzicht van het vakgebied

Betabitter Herman


Artificial Intelligence - Een overzicht van het vakgebied

Kom jij bij ons werken?