podcast #1 :: Domain-Driven Design en Machine Learning

Het is vandaag 7 december. De dag dat we eindelijk ons kerstversiering mogen uithalen. ** lacht ** En ja, we zijn gestart met een nieuw verhaal, een podcast van en voor developers, binnen en buiten Cegeka Ik heb vandaag twee gasten Elise Lodewijks en Guido Dechamps Spreek ik het juist, Guido? Je spreekt het juist uit en ik heb dat zelf ook juist opgeschreven ** lacht ** Jaja, onze podcast is niet alleen te beluisteren op soundcloud en itunes en je favoriete podcast app maar zullen hem ook op youtube zetten Ik had ook nog mijn co-host uitgenodigd, maar Sanne is ziek, in bed Dus Sanne, als je dit hoort, we wensen je heel veel beterschap! Genees goed en wel Twee onderwerpjes, 2 gasten, dat treft! we gaan vandaag efkes hebben over domain driven design en over de machine learning sandbox hoe cool Guido, vertel eens, wie ben jij? Ik ben Guido Dechamps en ik werk momenteel voor Cegeka Ik ben nogal… Mijn expertise ligt software development, Domain Driven Design vooral en de reden dat we hier dit onderwerpje nog eens aan kaarten, denk ik omdat Cegeka recent een Domain-Driven-meetup gehost, van de usergroup DDD Belgium waar ik, mijn beschijden ikzelf een presentatie mocht geven en volgende week komt Marijn Huyzenveld hier ook een sessie geven. Een Collaborative Modeling in Practice eigenlijk een warm-up, een dry-run voor zijn sessie die hij zal geven op Domain Driven Design Europe Maar hier kun je er dan gratis en voor niets aan komen deelnemen en krijg je ondertussen lekker eten en dergelijke in de Cegeka kantoren Dus ikzelf zal er zeker bij zijn Ja, ik ook Elise, wie ben jij? Ik ben dus Elise Lodewyckx en ik ben junior developer en ik zit hier eigenlijk omdat ik ondertussen ook sandbox-lead ben van de machine learning sandbox en wij doen al het mogelijke om mensen machine learning en dus de sandbox te laten leren kennen en 18 december is er ook een sandbox-fair waar we onder andere gaan staan met de Machine Learning Sandbox, waar we dan uitleg zullen geven over wat we eigenlijk doen tijdens zo’n sandbox Jullie zijn eigenlijk allebij super snel Jullie hebben al het één en ander verklapt Sorry. ** lacht ** Ja, geen probleem Het toont alleen maar jullie gedrevenheid! 11 december, dat is volgende week dinsdag, dan hebben we dus die Collaborative Modeling in Practice van Marijn Huysenveld van DDD BE in Gent Dan hebben we op 12 december de dag erop, in Hasselt, komt de usergroup PHP Limburg vertellen waarom programmeurs nooit in staat zijn om een product af te leveren Ik vind het een beetje een bizarre titel, maar ben benieuwd wat die gaat In php of Ik denk dat het los van php staat maar Hey makker, ik ben zelf al tien jaar php developer geweest Gecondoleerd PHP niet teveel onderuit halen, hé!? 18 december sandbox-fair Kan je daar iets meer over vertellen? Ons idee is eigenlijk dat elke sandbox die op dit moment bestaat, of die al dan niet gaat verder gezet worden, gaat tonen wat ze het voorbije jaar gedaan hebben en aangeven wat dat hun conclusies zijn of wat ze het volgende jaar gaan doen en om mensen vooral dan binnen Cegeka kennis te laten maken met wat is nu zo’n sandbox en welke opties zijn er? Zijn er hier sandboxen bij waar ik mij wil bij aansluiten of heb ik zelf een goed idee om zelf iets te starten Ja, cool, dat event is in Leuven, hé? Ja, in Haasrode! En 20 december is er de meetup in Gent van Angular Belgium en daar mag ik zelf ook mijn talk geven Gilliam zal spreken over Angular

Ik ben vergeten wat het onderwerp precies was en ik ga een talk geven over Firebase omdat Angular ook wel heel fijn samenwerkt met Firebase Met uitzondering van de sandbox-fair kan je je nog registreren op meetup.com en dan moet je maar eens zoeken naar de verschillende events En de sandbox-fair? Als je wel af komen en je bent niet een Cegeka-lid, dan moet je maar een mailtje sturen naar ons en dan zorg ik wel dat je de nodige informatie krijgt Je kunt een mailtje sturen naar – het is eigenlijk heel simpel – podcast@cegeka.com We hebben daar speciaal een e-mailadres voor in het leven geroepen Daarnaast zijn we binnen Cegeka – ik vertelde er daarstraks al over – er de staan en 180 tal vacatures open Cegeka is redelijk groot Efkes uitgelicht… een paar belangrijke We zoeken nog twee .NET- profielen voor in Gent We zoeken nog enkele JAVA-profielen voor in Leuven en een Python-persoon voor in Hasselt Wil je nog meer vacatures zien, en zoeken naar andere jobs binnen Cegeka Surf dan naar https://cegeka.com/jobs Dus, jij werkt in Leuven, Elise En Guido in Hassel, sorry in Gent Nee nee nee…Hasselt is een beetje ver Olrait !! Super DDD, Domain Driven Design, wat is dat eigenlijk? Dat is natuurlijk een moeilijke vraag, hé Ik heb dat geprobeerd in mijn presentatie van vorige maand al eens te beantwoorden Domain Drive Design is eigenlijk een filosofie van hoe je software kan ontwikkelen waarbij de focus ligt op het business domain en van daaruit een goed model te ontwikkelen in tegenstelling tot wat wij techneuten Wij kunnen nogal vaak razend enthousiast geraken over de nieuwste technologietjes een Docker, een Machine Learning, een Kubernetes Ik zeg nu maar iets Allemaal fantastisch, maar dat zijn tools Tools means to an end en Domain Driven Design gaat eigenlijk uit van de premise van “de complexe zaken zitten ‘m eigenlijk in de klant zijn business probleem” Omdat daar zit je met mensen en business processen en wat willen ze eigenlijk En da’s allemaal fuzzy terwijl dat computers nogal graag exacte zaken hebben En om uit al die fuzzy, reële echte wereldproblemen iets te distilleren waar we een model van kunnen maken waarmee we effectief problemen kunnen oplossen en in de toekomst nog altijd Een model dat je bouwt dat – zolang dat je business niet radicaal verandert – binnen vijf jaar is dat model nog altijd goed en kun je het nog altijd hergebruiken Je zal misschien al andere frameworks gaan gebruiken om mee te zijn met de tijd en de technologieën zullen wat aangepast zijn, maar je basisoplossing van het probleem zal het zelfde blijven Dus Een collega van me zei: “Eigenlijk is DDD common sense, goed boerenverstand” Dat is zo De tools en technieken die ze binnen DDD gebruiken zijn niet altijd zo common sense Ik heb ook al verschillende keren gedacht: “Ik snap het” om dan een paar jaar later te denken: “Ah, dat bedoelden ze… ik snapte het niet” Ik had een notie van Maar het is afhankelijk van op welke type probleem je de techniek toepast, hé Als je een bepaald type probleem nog niet bent tegen gekomen dan snap je niet van “oh, eigenlijk is dat hier veel belangrijker dan daar” zaken waar ik initieel – de eerste keer dat ik DDD bestudeerde – de vraag stelde: “waarom weidt hij hier een heel hoofdstuk aan? Dat kan ik in twee zinnen ook uitleggen, is niet zo belangrijk.” Waar later bleek, “Ahja…. ” Je hebt het over een hoofdstuk Je hebt mij in contact gebracht met het blauwe boekje Boh, zeg maar boek, hé Ja, ik heb ‘m laatst zien staan Je kan er iemand mee doodslaan! Vertel eens… Wie of wat? Wat is dat boek en wie heeft dat geschreven? Dus, Domain Driven Design is een term die gecoint is door Eric Evans in 2004 Dan heeft hij een boek uitgebracht, het een blauwe boek, Bwa… een mastodont… Zo dik? Het valt nog mee Het is nogal een proza om te lezen, wat ik persoonlijk niet zo vind Ik las dat om een beetje te ontspannen aan het strand van Kreta enzo Maar dat is dus het blauwe boek Dat is heel lang het enige referentiewerk geweest Ook over Domain Drive Design De laatst jaren zijn er gelukkig wel al andere – niet enkel boeken – maar heel veel videopresentaties en lessen en conferenties rond Domain Driven Design Dus die kennis is echt al erg uitgebreid

In Domain Driven Design, het blauwe boek legt hij eigenlijk zo basistechnieken uit, die voordien ook al bestonden en gebruikt werden Maar hij geeft ze een naam Bijvoorbeeld de “ubiquitous language”, hij coint die term. En “Bounded context” Dat zijn zo’n paar van de belangrijke bouwstenen waarmee je naar een probleem kunt gaan, naar je business kunt gaan en eigenlijk kunt beginnen Ik moet hier een probleem oplossen Hoe kan ik dat modelleren? En dat zijn twee nuttige technieken En in eerste instantie, als je dat leest, is dat heel erg eenvoudig, maar hoe meer dat je daarmee vertrouwd wordt en hoe dieper je daarmee gaat hoe meer je het praktisch nut en het belang van die technieken inziet Ik heb het boek nog niet gelezen Kan je het mij aanraden? Ik zou je nu het blauwe boek niet aanraden Ik zou het kleine groene boekje aanraden van Vaughn Vernon Dat is zo zonder al te diep en in proza te gaan Dat is maar een hondertal pagina’s En dat legt zo de core concepten uit Dat is “Wil je ongeveer weten wat het is?” En het toont de kracht en nut van sommige dingen zonder al te diep in de technieken te gaan, maar waarbij je zegt: “oké ik kan het al gaan gebruiken” nog los van dat je al software aan het ontwikkelen bent Dan is het groene boekje zeker aan te raden Zeker voor mensen die niet alle dagen in de code zitten, want Domain Driven Design is zeker niet enkel voor software developers, dan zou ik het groene boekje wel aanraden om snel mee te zijn, de basisconcepten te kennen Ja er zijn nog… Er is ook nog een dik Domain Driven Design boek voor .NET Maar dat is met heel veel codevoorbeelden Ja, voor developers is dat mega interessant omdat die rap met de vraag zitten : “Ja, dat is allemaal wel tof, maar hoe doe ik dat hier nu mee? Geef mij voorbeelden! Show me the code!” En dan is dat natuurlijk een handig referentiewerk We hebben allemaal maar een beperkte tijd natuurlijk en iedereen heeft wel een vijftigtal boeken op zijn kast liggen die hij ooit eens moet lezen allé, ik toch en dan is ook “Domain Driven Design Distilled” van Vaughn Vernon aangeraden Dan kan je snel door de basis blokken heen gaan Ja, we zetten de links naar waar je de boeken kunt bestellen in de shownotes van deze podcast Vorige week, heb je zelf al verteld, hebben een meetup gehad hier in Gent van DDD Belgium en in geen tijd was die volzet, honderd man Uiteindelijk zijn er een dikke 80 afgekomen… last minute is er traditiegetrouw een aantal mensen die afhaken Volgende week is er ook weer een meetup geplant op 11 december En die zit ook al weer vol… Vanwaar het succes? Hoe komt dat het dat DDD zo hot is? Of ligt dat aan jou? Dat lag natuurlijk aan mijn faam, hé, wijd verspreid en zo Euh, nee… serieus Het zijn twee verschillende type sessies ook, hé Hetgeen ik deed, was een presentatie geven van een uurtje en daarna werd nog veel bijgepraat Ik denk dat ook de vorige sessies in het Gentse meer hands-on waren, modeling sessies waar men een actievere rol moet opnemen. Dan is typisch het aantal deelnemers ook iets beperkter. Nu is het Marijn – ik heb ook al een aantal workshops van hem gevolgd op DDD Europe, hij is ook al een aantal keer komen spreken op een meetup. Allé, hij is een ervaren en capabele man Hij komt hier gratis een modelling sessie geven waar vanalles kunt bijleren Het is vlot bereikbaar hier, dus ja iedereen springt erop want “ow, daar moeten we bij zijn, hé!” Dus het ligt niet aan DDD dat het zo succesvol is, die meetups… Of toch? Ja moest er niemand geïnteresseerd zijn in DDD, zou er niemand naartoe komen natuurlijk Ik vind het een bizar… Er zijn al programmeertalen, al van voor dat er computers waren en hoe komt het dan dat die concepten van DDD pas in 2004 effectief in een boek gezet zijn? Die concepten en die technieken leefden al Veel van de technieken zijn ook gebaseerd op werk van Martin Fowler en Rebecca Parsons, waar Eric Evans mee samengewerkt heeft Maar net zoals bij de klassieke “Gang of Four” voor Design Patterns Op het moment dat je zaken een naam geeft en ze formeel omschrijft en ze neerpent, kun je kennis ook veel makkelijker overdagen “Hey, dit is iets wat wij doen, dat zijn verschillende technieken die je kunt toepassen.” Dat maakt de zaken interessant nu 2004 was het blauwe boek, we zijn nu 2018 Er is 14 jaar over gegaan Het is nu vooral terug met de opkomst van het microservices-gebeuren, waarbij heel veel van de mensen die microservices promoten wijzen naar domain driven design

“Ok, een microservice, maar wat is de grens van uw microservice? En hoe groot maak je hem?” “Hoe klein maak je hem? Wat hoort samen? Wat hoort niet samen?” en dan verwijzen ze allemaal: “Kijk eens naar het Domain Driven Design, het concept van Bounded Contexten, naar je business om daar een antwoord op te vinden.” Dus, microservices worden populairder, door Netflix die er een voortrekkers rol in nemen en iedereen wees naar Domain Driven Design Dus DDD komt ook weer komt in de spotlight en mensen zijn geïnteresseerd “Ik wil er wel meer van weten” of die er dieper op in gaan Ja, super boeiend, hé Ik kijk al uit naar volgende week dinsdag Elise, het tweede onderwerpje voor vandaag Ik zou toch een bruggetje moeten vinden tegen de volgende keer, voor het veranderen van onderwerp Domain Driven Design… Machine Learning, dus ja Ik moet eerlijk zeggen: machine learning dat is voor mij gewoon ja… Een buzz-word?! Voor mij is dat wiskunde Neurale netwerken, genetische algoritmen, Ja, dat zit er ook bij! Ik denk dat in begin van onze sandbox, en dan spreek ik over meer dan een jaar geleden ondertussen, hebben we ook heel veel op een wiskundige en die hele technische dingen gefocust Misschien moeten we even halt houden bij het woord sandbox Wat is een sandbox? Een sandbox bestaat in verschillende contexten hier binnen Cegeka, maar dit is echt een hele specifieke context van speelruimte We krijgen een bepaald budget om rond bepaalde technologieën of bepaalde sectoren zelfs, te experimenteren met die zaken en om te kijken of dat iets is dat ze verder kunnen doortrekken in het bedrijf en er meer mee kunnen doen En dat is eigenlijk onze sandbox Hoe kom je op het idee om een box te starten? Ik heb zelf dat idee niet gehad Ik heb hem overgeërfd. Dat komt deels door iemand die een master had in artificiële intelligentie of die aan het volgen was en daar heel veel potentieel in zag en daarnaast nog iemand anders uit het leadership team die dan ook dacht: “Oké, dat is echt wel iets. Daar moeten we ook verder in gaan, dat moeten we gaan uitzoeken en dat gaat in de toekomst belangrijk worden En zo is de sandbox vermoedelijk ontstaan, ik was er zelf jammer genoeg niet bij Maar dat is een beetje in de geest van de mensen die hem wel hebben opgericht Maar er zijn nog andere sanbox-concepten neem ik aan Het concept van sandbox binnen Cegeka leeft niet enkel op de machine learning Nee, nee, er zijn heel veel sandboxen en we gaan in elke podcast één sandbox uitnodigen en er dieper op ingaan en de sandbox rond machine learning is de eerste Dus om nog even bij het concept te blijven stilstaan, eigenlijk komt het erop neer dat je tijdens de werkuren tijd krijgt om bij te leren over een bepaald concept in bepaalde groepen van mensen “Oké, wij focussen ons op deze nieuwe technologie – wat dat dan ook mogen zijn – zodat we dat niet allemaal onze weekends en onze avonden moeten doen, en dan delen we die kennis binnen het bedrijf” En ook bekijken welke relevantie dat dat heeft voor het bedrijf en is dat iets waar we mee verder willen gaan of is dat iets dat alleen heel interessant is, maar valt er verder niet veel mee te doen Jullie sandbox, Machine Learning, eerst en vooral: Wat is Machine Learning? Machine Learning is op dit moment eigenlijk, denk ik, nog het meest populaire om artificiële intelligentie te triggeren Het komt er eigenlijk op neer dat een computer gaat leren uit data je hem aanvoert Een beetje naar analogie met met hoe mensen leren Het idee is dat mensen leren door dat ze heel veel inputs krijgen gedurende hun leven en van daaruit dan zelf daarop kunnen reageren of bepaalde zaken een naam kunnen geven. En machine learning doet eigenlijk ongeveer hetzelfde met computers, die meestal strikt regeltjes volgen Om een voorbeeldje te geven Oh, ik hoor mezelf een echo Het ligt niet aan Guido Los van de sandbox. Jij begeleidt iemand in zijn stage, en die is bezig met een project

waar cv’s gematcht worden aan vacatures Cegeka heeft op dit moment een 180-tal vacatures openstaan zag ik op de jobsite, en heeft nog heel wat cv’s in stock die worden gematched met machine learning om te zorgen dat als in de toekomst iemand zijn cv uploadt automatisch het systeem met behulp van machine learning kan te weten komen welke vacatures het best passen bij die persoon Ja, en dan gaat die dat leren op basis van voorgaande matches met bepaalde vacatures of bepaalde functie-groepen om het ook uitbreidbaar te kunnen maken naar de toekomst Binnen de sandbox, hoe hebben jullie dat aangepakt? Het eerste jaar, voor ik de sandbox heb geërft, hebben we vooral gefocust op echte heel technische zaken: natural language processing, hoe zit dat in elkaar? Image recognition, hoe zit dat in elkaar? Neurale netwerken, hoe werkt dat? Ik heb zelf geen technische achtergrond, ik heb geen IT achtergrond Ik ben ingestroomd via Cegeka-School, dus ik vind het allemaal heel cool en heel interessant Maar ik geloof ook wel dat er veel meer achter zit dan alleen die zaken Dus sinds ik bezig ben met de sandbox zijn we meer dan het kijken: “oké allemaal goed en wel, dat bestaat nu Hoe kunnen we dit in een project zetten? En in een project, rekening houdend met onze manier van werken en bepaalde agile concepten daar in te brengen.” Want meestal is machine learning experimenteren tot dat je op een niveau komt dat aanvaardbaar is en daar zijn we dan eigenlijk begonnen met Kaggle-datasets, dat zijn vrij beschikbare datasets die soms vrij goed in orde zijn, niet altijd heel uitgebreid maar dan hadden we wel iets om mee te beginnen om de effort die het je toch al tijd kost om data te verzamelen effe uit te sluiten en dan zijn we ermee beginnen experimenteren en eigenlijk gewoon gaan kijken wat hebben jullie nodig om die dan een project te zetten Tijdens onze tweede sandbox kwamen er dan achter: “Ja, dat is misschien allemaal wel oké maar eigenlijk zijn we er gewoon in gedoken, we hebben niet nagedacht ‘Welk probleem lossen we hiermee op? Hoe kunnen we die zaken Hoe kunnen we dit nu echt gebruiken?'” Dus voor een tweede case zijn we nog een stapje verder gegaan met een andere Kaggle-dataset ook, want dan hebben we eigenlijk iemand ge-assigned als product owner dus die bepaalde business beslissingen kon nemen. Dat ging ook al weer iets beter en daar hebben we ook een soort van agile-flow in gevonden en agile mogelijkheid en die eigenlijk het midden houdt tussen een spike en een story We hebben het toen ‘spory’ gedoopt dat eigenlijk zegt: “We gaan experimenteren totdat we een bepaald niveau halen, een bepaalde accuraatheid en als we dat niveau niet halen binnen de drie dagen dan stoppen we ermee, gaan we terug naar de klant en gaan we vragen: “Wat wil je dat we doen? Willen we hiermee verder gaan? Gaan we een andere piste eens proberen? Is het nog mogelijk eigenlijk?” En zaten jullie met een bepaalde concrete klant? Zaten jullie met een bepaalde concrete klant voor die sandbox samen? Of is dat gewoon een eigen project? Nee, dat was gewoon een eigen project We zijn aan het kijken of we meer richting echte klanten en projecten kunnen gaan Nu, de stage voor HR is daar ook weer een hele goede voorbereiding op, dat het toch wel iemand extern is, t.o.v. de sandbox gezien dan Dat was echt allemaal van een mock-data van Kaggle en iemand die nauw betrokken was met de sandbox En welk soort data was dat dan? Het ging over diertjes die in het asiel zitten, “the animal shelter”-dataset, die eigenlijk gaat kijken of een dier het asiel levend verlaat door dat hij geadopteerd wordt, toch terug naar zijn eigenaar gaat of naar een ander asiel wordt getransporteerd of dat hij sterft in het asiel omdat hij te oud of te ziek was of zo en we hebben daar dan een probleem opgeplakt eigenlijk – wat jammer is Maar om data te hebben en te kunnen gebruiken, hebben wij de case gemaakt: Stel dat – als eigenaar van die animal shelter – wil je als een dier binnenkomt kunnen voorspellen hoe waarschijnlijk is het dat hij dood zal gaan in het asiel en misschien moeten we hier meer aandacht aan besteden en daarom meer marketing rond doen zodat die toch geadopteerd geraakt en toch niet hier moet sterven Dus dat was een beetje onze insteek Het was geen echte case, maar het kwam al dicht bij iets dat gebruikt zou kunnen worden En voor ons was het belangrijk dat niet-technische mensen zich konden inbeelden

wat Machine Learning zou kunnen doen En dat zijn we dan verder gaan uitbreiden, zijn we verder gaan zoeken, en zo we zijn bij de case voor HR gekomen die je daarnet met vermeld hebt, waar Sacha nu aan bezig is om eigenlijk een CV te kunnen uploaden en op basis daarvan voorspellingen te maken en daar zijn we ook al tot een inzicht gekomen dat bijvoorbeeld onze agile-flow die we hadden uitgetekend, we kunnen die wel volgen, maar eigenlijk is er in agile wel een machine learning engineering loop We hebben daar een artikel over gevonden en dat beschrijft eigenlijk heel mooi hoe je zo’n flow zou kunnen volgen. Dus dat je eigenlijk in een test set hebt die uw business requirements representeert Dus in die testset zitten alle zaken die, of alle samples die je zou willen voorspellen waar ik iets mee zou willen doen en die run je dan elke keer als je een model getraind hebt. Het idee is dan om een model te trainen daarna te kijken hoe scoort dit en dan pas een diagnose te maken en echt met een heel simpel model te beginnen daarna een diagnose te maken: Waar zitten nu de grote problemen hier nog? Wat kunnen we doen om deze problemen uit te filteren? En dan start er een nieuwe iteratie eigenlijk waarbij dat het nieuwe model of met de nieuwe parameters geïmplementeerd gaat worden dat geëvalueerd gaat worden, enzoverder Knap! En welke technologie gebruiken jullie daarvoor? Op dit moment zijn we vooral aan het werken in Python met Psychic Learn wat een handige library is om daarop te gebruiken Maar we zijn aan het experimenteren met allerlei andere zaken.Sowieso gaat TensorFlow erbij komen als we meer richting deployment gaan, daar hebben we ook al mee geëxperimenteerd Maar we zijn ook aan het kijken naar dingen zoals Weka die in Java te gebruiken zijn, omdat de meeste mensen in de sandbox java-developers zijn Het is nog heel breed en we proberen in de sandbox ook zoveel mogelijk met die zaken te experimenteren om te kunnen zeggen: Dit werkt voor ons of dit werkt absoluut niet Wat is nu makkelijk te gebruiken? Wat is het beste om te gebruiken? Dat is dus experimenten Ik had gewoon maar persoonlijke interesse vraagje: Heb je het voorbije jaar een beetje gevolgd wat AlphaGo en AlphaZero allemaal gedaan hebben qua machine learning? Ik heb het met een half oog gevolgd maar die helemaal niet zo groot dit jaar heb ik persoonlijk, en mee met de sandbox vooral wel gefocust op welke zaken er binnen Cegeka al gaande zijn het Machine Learning en zulke zaken zijn wel eens vermeld, maar dat zijn we nog niet heel close aan het opvolgen Guido, leg eens uit voor diegenen die het niet gevolgd hebben? Dus AlphaGo – voor de mensen die het niet zouden weten – in 1997, denk ik heeft IBM voor de eerste keer Garri Kasparov verslagen in het schaken met Deep Blue Maar dat was eigenlijk vooral met brute rekenkracht, dat was op zich niet zo interessant Maar Go is een ander spel waar Google, allé een spin-off van Google, zich op gogooid heeft om de mens te verslaan in Go, wat een veel complexer is, de algoritmen die gebruikt worden Eigenlijk schaken kun je wel relatief makkelijk doen met Alpha–beta pruning, trees en knippen omdat het een kleinere vertakkingsgraad heeft Maar die technieken werken niet voor go Dus wat hebben ze dan eigenlijk gedaan? Via machine learning hebben ze eigenlijk de AI tegen zichzelf laten spelen en zo het spel leren Hij heeft, ik dacht in 2017 of 2018, effectief de wereldkampioen in Go verslaan, wat eigenlijk gigantisch is, want dat is een totaal verschil qua algoritme: Hoe leer ik het? En nu hebben ze sinds kort ook hetzelfde algoritme terug toepast op schaken, met dit verschil: ze laten het spelen tegen de sterkste schaakcomputers Het enige wat het ding weet is hoe de stukken van het schaken bewegen En dan laten ze het vier à vijf uur tegen zichzelf spelen, dus er komen geen menselijke algoritmes in Het is gewoon dat neuraal netwerk: “Speel tegen uzelf en leer!” En er zijn onlangs weer 200 partijen van vrijgegeven – er is natuurlijk wel redelijk wat geheimhouding – er zijn 200 grote partijen van vrijgegeven van AlphaZero tegen Stockfish, de sterkste schaakcomputer, of toch één van de sterkste Ik heb daar gisteren nog naar zitten kijken, dat is op een niveau van Mensen denken zo niet en computers helemaal niet En eigenlijk, op vijf uur tijd begrijpt dat algoritme beter schaken dan alle kennis die de mensen verzameld hebben over de jaren heen

Dat is gigantisch waat daarmee nu mogelijk is Ja, dat zijn nu cases waar wij zeker naar kijken, maar waar wij ook de bedenking zullen maken: dat is prachtig om te tonen wat machine learning kan, maar uiteindelijk zitten wij hier ook nog in een business omgeving en business waarde van een machine die kan schaken is Het is het blijft enorm cool, daar treed ik je volledig in bij, maar de businesswaarde is jammer genoeg zeer weinig en we merken dat er heel veel showcases zijn en daar proberen we ook te kijken: Hoe kunnen we dat niet doen, hoe kunnen we eens geen showcase maken, Maar een verkoopbare businesscase Het is ook de complexiteit van de data die hebt natuurlijk… Als je een specifieke showcase neemt, de data die je hebt is redelijk beperkt en proper Je weet waar je op leert, op zaken van CV’s of … Als er een fout zit in je data, leert je AI verkeerde dingen Dus het is allemaal niet zo rechttoe rechtaan Er zit sowieso ook een bias in, dat is ook iets wat steeds vaker op komt in Machine Learning als de mensen die nu op dit moment die beslissingen nemen bepaalde biassen hebben, dan neemt de machine het eigenlijk over Als er een bedrijf is waar er geen vrouwen worden aangenomen of veel minder vrouwen worden aangenomen, dan gaat je machine leren: “het is een vrouw, we gaan haar waarschijnlijk niet aannemen” en dat is iets wat je wil vermijden De machine leert op basis van de huidige situatie, en als de huidige situatie tekortkomingen heeft, dan gaat die machine learning, dat niet oplossen Nee, er is ooit een case van microsoft geweest, ze hadden een twitter-bod gemaakt die zelf content plaatste en die is na een dag terug verwijderd, omdat die te racistisch en te sexistisch was Dus hij heeft geleerd van verkeerde content Ik zou mijn kinderen ook niet leren spreken met behulp van Twitter Dat is zo’n beetje het idee wat dan ook mee speelt Dataverzameling is verschrikkelijk moeilijk Je moet eraan geraken GDPR maakt het niet gemakkelijker Ten tweede, gestructuurde data vinden is nog veel moeilijker en ten derde, eigenlijk moet je er wel al een beetje inzichten in verwervenen een beetje alert zijn voor die biases en kijken of je die er op één of andere manier kunt uit filteren Het blijft natuurlijk machine learning, het blijft op basis van datasets, dus De realiteit is nooit te vatten in datasets alleen, een artificiële intelligentie zal nooit een soort bewustzijn hebben omdat het blijft werken op basis van data sets Of heb ik dat verkeerd? Ik denk dat er wel een mogelijkheden zijn, omdat uiteindelijk gaat wel de hele wereld of… ze zijn bezig met de hele wereld te representeren in datasets Dat zijn alleen geen gestructureerde datasets die datasets zijn er ook nog niet Maar er gaan heel veel theorieën de ronde: over zoveel jaar hebben we eigenlijk de hele wereld virtueel Gescand, in virtual reality Er zijn wel mogelijkheden maar op dit moment met de rekenkracht, die ook beschikbaar en de datasets die beschikbaar zijn, is het nog heel erg nodig om te focussen op een specifiek probleem en zo lang dat je voor specifieke problemen dataset hebt of datasets die ervoor gebruikt zouden kunnen worden, zijn er wel mogelijkheden Er is een quote van Tijmen Blankevoort “Het IQ van artificiële intelligentie is 0” en die baseert zich op: je blijft afhankelijk van datasets om een artificieel intelligentie te bouwen Ja, langs de ene kant denk ik dat dat waar is, langs de andere kant Uiteindelijk, als je zelf zou opgesloten worden in een hokje en nooit iets van de wereld zou zien, of nooit spraak zou horen, zou je ook niet leren spreken en zou je ook geen zaken leren Dus ik denk dat dat bij de mens niet anders is Het feit dat je niet intelligent wordt Om terug even naar het voorbeeld van de AlphaZero te gaan, hij kan niets, maar hij leert van zichzelf, hij blijft tegen zichzelf spelen Hij genereert zijn eigen dataset, hij leert uit ervaring Dat ding leert, hé!? Weliswaar binnen zijn eigen wereldje, maar dat leert op een niveau dat wij Doordat het mechanisch is op een snelheid die wij niet kunnen Voor heel specifieke problemen, AI gaat fantastisch dingen doen

De singularity, is het over tien jaar of over dertig jaar de meesten denken, tenzij we de wereld om zeep helpn, zeker over 100 jaar Ik denk dat we daarmee (de singularity) ook wel de wereld om zeep zullen helpen Dat is inderdaad een andere kant van de medaille Inderdaad dat die AI zich afvraagt: “Wat doen al die mensen nu nog…?” Allé, met jullie sandbox Jullie zijn eigenlijk niet goed bezig dan?! Ik vind het zelf eigenlijk heel interessante materie om dan ook de ethiek ervan te bekijken Mijn focus ligt ook meer in alle zaken die erbij komen kijken naast het technische Er zitten andere mensen in de sandbox die dat voor hun rekening nemen Ik vind cellen die dingen heel interessant Wanneer gaan we hier te ver mee? Waarvoor moeten we opletten? Wanneer bereiken we eigenlijk dat punt dat het niet meer te vertrouwen is? Dat zijn zo wel zaken die mij persoonlijk interesseren en die ook wel een beetje verder komen in de sandbox Ja, ik ben vooral benieuwd wanneer auto’s zelfrijdend zullen worden En welke gevolgen dat zal hebben Volgens mij zullen er veel minder accidenten zijn Aangezien, wanneer alle auto’s zelfrijdend worden, ze perfect op elkaar zullen kunnen inspelen De problemen nu zitten dus vooral in in de ethics en legal, aangezien… Er zijn van die beslissingen, zelf als je bijna een accident gaat meemaken en je kunt kiezen tussen zelf tegen de boom rijden en doodgaan of kinderen die oversteken omver rijden Je maakt die beslissing onbewust, dat is een instinct dat jou overneemt, je heb geen een tijd om daarover na te denken Maar uw machine of uw auto in dat geval moet wel een berekende beslissing kunnen maken, die kunnen wel zo snel beslissen. En dat zijn nu vooral de zaken waar nu heel veel debatten over zijn: Hoe lossen we dat op? Hoe maken we die onmogelijke beslissing tussen twee mensenlevens? Dat maakt het nu net heel interessant dat we verplicht zijn om die ethische discussies te hebben Welk mensleven is er meer waard dan een ander? Moet je dat kind omver rijden omdat het een kind is? Wat als het een oud dametje is? Mag ze dan wel serven? Als het om verschillende personen gaat, is hun leven meer waarde dan alleen het mijne? Dat zijn zo van die zaken waar je instinctief iets op gaat doen, je toch de tijd niet om te reageren Maar voor een computer moet je zeggen: Dit is het algoritme! Je moet het wel neerpennen “Ahja, ik die mensen omver gereden… of ik heb mijn bestuurder dood gemaakt, want dat hoorde zo!” Iemand had dat beslist! En dan is het ook: Wie is er dan accountable? Is dat dan autoconstructeur of de developer die dat algoritme erin heeft gestoken of de bestuurder zelf die misschien had moeten ingrijpen of Daar zijn nu heel veel debatten rond gaande Dus ik denk dat eigenlijk auto’s al vrij goed zelf kunnen rijden zeker als je autostrade hebt Daar is niks moeilijk aan Dat kan een auto beter dan eender welk mens, denk ik maar het zit hem nu vooral in: Wie gaat die beslissingen maken? En hoe kunnen we hier een wettelijk kader rond maken zodat er niet bij elk accident weet ik veel hoeveel debatten zijn over wat er nu wel of niet gebeurd is Boeiend!! We gaan afronden hier. Ik wil er wel nog graag op verder gaan, maar dan wordt de podcast een beetje te lang Als je feedback hebt, je hebt opmerkingen, Je vindt dat Jelle, Elise en Guido iets over het hoofd gezien hebben – dat kan altijd gebeuren – je mag altijd feedback sturen naar podcast@cegeka.com Guido, is er iets dat jij nog kwijt wil? Neen, ik ben blij dat ik alphaGo en alphaZero heb kunnen vermelden Dus mijn dag is goed! Fantastisch! Elise? Nee. Ik denk dat ik niets meer te zeggen heb Voila, dat was dan onze allereerste podcast Er zullen er zonder twijfel nog heel veel volgen! Heer, Dame, dankjewel om erbij te zijn En tot … een volgende!