ID.nl logo
Battlefield 1 - De beste shooter van het najaar?
© PXimport
Huis

Battlefield 1 - De beste shooter van het najaar?

De romantiek van oorlogsvoering stierf begin vorige eeuw een kille literaire dood in de loopgraven van de ‘War to End All Wars’. In de singleplayer van Battlefield 1 komt ze weer een beetje tot leven. Het spel brengt naast de gruwelen, ook de persoonlijke overwinningen binnen de Eerste Wereldoorlog aan het licht. De singleplayermodus vertelt vijf verhalen van vijf verschillende personages op vijf verschillende plekken in de wereld.

Dankzij dit samenraapsel van losse avonturen krijgt de speler lekker veel locaties en fases van de oorlog mee. Misschien maakt dat het juist zo jammer dat de singleplayer van Battlefield 1 zich vooral richt op de personages en veel minder op de oorlog om hen heen. Verwacht geen educatieve filmpjes, verwacht geen Valiant Hearts: het googelen mag de speler zelf doen, Battlefield 1 vertelt enkel hoe bepaalde mensen bepaalde dingen in de oorlog hebben meegemaakt. Lees ook: Gears of War 4 - Een best-of van alle Gears of War-games.

Of niet hebben meegemaakt: het is zonder twijfel de beste passage uit de singleplayer van Battlefield 1, het ongeloofwaardige avontuur van de Amerikaanse piloot Clyde Blackburn.

©PXimport

Beste gameplay, beste verhaal, beste setting

Als no-good, lying son of a bitch gokt en lult Blackburn zich achter de stuurknuppel van een Brits gevechtsvliegtuig. Na een adembenemende vlucht boven besneeuwde Franse bergtoppen, een nipte ontsnapping uit vijandelijk loopgravengebied en het mislopen van een militaire eremedaille, eindigt het avontuur van Blackburn boven Londen, waar hij knallend vanaf een zeppelin een andere zeppelin neerhaalt, om vervolgens zeiknat te ontwaken naast de Theems.

Zo blijkt Blackburn toch nog een held, al is hij veel waarschijnlijker een leugenaar. De vijf (incluis inleiding zes) delen van de singleplayer zijn goed geschreven, met geloofwaardige personages en korte, intense verhaallijnen. Op het front van gameplay verschillen ze vooral in kwaliteit. Battlefield 1 kent veel vrijheid, met grote open gebieden waar spelers zowel knallend als sluipend doorheen kunnen. Maar er zijn momenten waarop de game de teugels strakker aanhaalt en open gebieden plaatsmaken voor gangetjes en strenge scripting.

Helaas, want door af te wijken van de lineaire gameplay uit eerdere singleplayermodi neemt Battlefield offline eindelijk afstand van concurrent Call of Duty. Battlefield 1 is op zijn best als er eerst met de verrekijker een beetje moet worden rondgekeken voordat er een plan van aanpak kan worden gemaakt. Gelukkig zijn er genoeg van zulke momenten, en dat maakt Battefield 1 ondanks ups en downs de leukste Battlefield-singleplayer tot nu toe, zowel op het vlak van gameplay als verhaal en setting. We waren een beetje door de kwaliteit verrast, zelfs.

©PXimport

©PXimport

©PXimport

Wisselwerking

Het is veel minder verrassend dat de gigantische veldslagen in de multiplayer wederom de kern van dit deel in de oorlogsshooterreeks vormen. De multiplayer telt zes modi, waarin het de voornaamste zaak is om samen te werken om aan bepaalde objectives te voldoen. Meestal bestaan ze uit het veroveren van bepaalde punten in de map. Het is oorlogje spelen. Hoe goed de oorlogsmachine geolied is, wordt bepaald door hoe de teams hun objectives vervullen en of individuen doen wat ze horen te doen.

Want de Medic moet healen of reviven en de Support moet ammunitie droppen, wil de wisselwerking tussen klassen werken. De samenstelling van die klassen verschilt in Battlefield 1 behoorlijk ten opzichte van het vorige deel. Vanwege de afwezigheid van assault rifles zijn middellange afstand opeens vooral terrein voor de Sniper-, Medic- en Support-klassen. De Assault-klasse moet het doen met een submachine gun en shotgun, waardoor het als die klasse vooral zaak is om de vijand van dichtbij op te zoeken.

De Medic is met zijn rifle een even bruikbare als gevaarlijke klasse, gezien de hospik zowel op middellange als op lange afstand met zijn primaire wapen uit de voeten kan. De Sniper is in de praktijk nog altijd een solist die eigen kills belangrijker acht dan de cohesie van het team. Maar een sniper kan op papier wel degelijk bruikbaar zijn door objectives te verdedigen als killing machine of zijn flaregun te gebruiken, waarmee de speler vijanden op de radar voor zichzelf en zijn teamgenoten onthuld.

©PXimport

De beste Battlefield in jaren

Wij speelden Battlefield 1 op de console – ondergetekende beschikt helaas niet over een pc om de versie voor het gaming meesterras te testen – maar ook hier is Battlefield 1 een ongekend mooie game.

De modder op een geweer als een spelers met zijn of haar snufferd in het zand ligt, de particle-effecten na een granaatinslag, de verwoesting na een clusterbombardement van overscherende vliegtuigen, de sporen die tanks achterlaten in de zompige ondergrond; de Frostbite-engine tovert zowel in de multi- als singleplayer weergaloze setpieces op het scherm. Daarbij staat de engine wederom garant voor erg imponerend geluid. Het blijft tof om te horen dat explosies en geweerschoten in binnenomgevingen opvallend anders klinken dan ze in de buitenlucht doen.

Battlefield 1 is daarmee een technisch hoogstandje van jewelste, en soms heeft de consolehardware het daar moeite mee. De framerate kan fiks dalen als het te druk wordt op het scherm. Over het algemeen gebeurt dat niet vaak genoeg om als ergerlijk te worden ervaren, maar het kan verkeren dat de actie plots draait op dertig frames per seconde. Helaas is dat niet de enige kinderziekte die de consoleversie van de game plaagt.

©PXimport

©CIDimport

©CIDimport

Het matchmakingsysteem werkt op zich goed, maar het main menu is niet erg duidelijk en soms is ‘t even zoeken naar de juiste optie voor het juiste resultaat. Het systeem waarmee vrienden elkaar moeten joinen is volstrekt irritant. In Battlefield 1 toont een pop-up-schermpje of een vriend een potje heeft gevonden. Pas dan kan iemand ervoor kiezen om met hem of haar meedoen. Dat schermpje komt opeens tevoorschijn, ook tijdens het spelen, waardoor het zomaar kan dat iemand per ongeluk op ‘X’ drukt en zo een nieuw potje begint en het oude potje verlaat.

Dat is geen verbetering ten opzichte van het oude Squad-systeem. Een ander mankement is het niet kunnen verlaten van een potje net nadat het afgelopen is en het niet kunnen aanpassen van je klassen als je in het hoofdmenu bent. Verder is Battlefield 1 gelukkig een vloeiende ervaring, zonder ergerlijke bugs en zonder opvallend grote mankementen in de balans. Dat was in het geval van Battlefield 4 wel anders. Maar goed, Battlefield 1 is dan ook een uitzonderlijk goede Battlefield-game.

Sterker nog, het is ook online de beste Battlefield-game in jaren.

©CIDimport

Memorabel

De setting, het audiovisuele geweld, tactiek op zowel grote als kleine schaal: Battlefield 1 is zonder enige vorm van twijfel de meest imponerende multiplayer-game van dit jaar. Alleen al kijken naar het strijdtoneel is memorabel. Neem de oorlog in het Italiaanse Monte Grappa in de fantastische nieuwe modus Operations, waarbij de frontlinie steeds een stukje opschuift als de aanvullende partij twee punten succesvol weet te bemachtigen.

We zien hoe een klein groepje Italiaanse soldaten met getrokken baronet de heuvels oprent, om daar te worden ‘verwelkomd’ door twee sluipschutters die honderden meters verderop verschanst zitten in de groene bergtoppen. We zien een gigantische zeppelin als vuurbal ter aarde storten op een dorpje dat seconden later verworden is tot niemandsland (‘en onze party gaat ‘oeeehhhhhh!’). We zien hoe een tank zijn Squad door een tunnel probeert te loodsen, en hoe een Duitse Support-klasse die push succesvol de kop indrukt met twee antitankgranaten.

We zien 32 spelers die 32 andere spelers het leven zuur proberen te maken door als eenheid te strijden, maar we zien ook hoe snel het tij kan keren als die eenheid uiteen valt. Als de Italianen punt A met twee tanks binnen no-time veroveren en de Duitsers te drukdoende zijn met randzaken bij punt B, klinkt er een fluitje: de frontlinie is verschoven. Tientallen Italianen stormen nu naar voren. Ze schreeuwen het uit terwijl het vuur regent uit de zeppelin die boven hen hangt.

©CIDimport

Een klein leger aan Duitsers rent en rijdt terug de bergen in om een nieuwe verdedigingslinie op te zetten. Ze hebben de slag verloren, maar over een minuutje wordt de voorbereiding op oorlogsvoering ook aan Duitse kant weer hervat. De Snipers nemen hun hooggelegen posities in, de Medics healen hun teamgenoten door Health-pakketjes neer te gooien en de Support-klasses positioneren hun mortieren.

De geschiedenis herhaalt zich. Een klein groepje Italianen wordt wederom begroet door sluitpschutters als het een berg oprent. Tja, sommige dingen veranderen nooit. Ieder potje in Battlefield 1 betekent (team)tactiek te midden van onvoorspelbare chaos. Er is geen potje voorbijgegaan dat we daar niet van hebben genoten. Battlefield 1 is de interessantste shooter van dit najaar. De kans is groot dat ‘t ook de beste is.

Battlefield 1 is nu beschikbaar voor pc, PlayStation 4 en Xbox One. Deze recensie is gebaseerd op de PlayStation 4-versie van de game.

▼ Volgende artikel
Dit is de ideale temperatuur voor jouw koelkast en vriezer
© yaroslav1986
Huis

Dit is de ideale temperatuur voor jouw koelkast en vriezer

De temperatuur van je koelkast is belangrijker dan je misschien denkt. Als je 'm goed instelt, blijft je eten niet alleen langer vers, maar voorkom je ook verspilling én nare luchtjes.

Na het lezen van dit artikel weet je:

  • Welke temperatuur het beste is voor de koelkast en vriezer
  • Hoe je de temperatuur nauwekeurig meten in je koelkast of vriezer
  • Hoe je de koelkast of vriezer het beste kunt indelen
  • Hoe je warmteverlies voorkomt
  • Hoe je energie kunst besparen met je koelkast of vriezer

Ook interessant: Is het tijd voor een nieuwe koelkast?

Wat is de beste temperatuur voor je koelkast?

De gouden standaard? 4 graden Celsius. Daarmee zit je voor de meeste etenswaren helemaal goed. Mocht jouw koelkast hoger of lager staan, dan weet je dus wat je te doen staat. Maar let op: die 4 graden geldt niet overal in je koelkast. Onderin is het meestal wat koeler, omdat koude lucht naar beneden zakt. In de deurvakken – waar je telkens warme lucht binnenlaat als je de deur opentrekt – is het juist wat warmer. Zeker als je koelkast goed vol zit, kunnen de verschillen flink oplopen.

Wil je het zeker weten? Plaats dan op verschillende plekken een simpele koelkastthermometer en check of alles binnen de perken blijft. Zit er meer dan 3 graden verschil tussen boven en onder, of tussen het midden en de deur? Dan is het tijd om de boel wat slimmer in te richten.

Wist je dat sommige voedingsmiddelen gevoeliger voor temperatuurschommelingen zijn? Vlees, vis, zuivel en eieren moeten strikt op 4 °C worden bewaard. Groenten en fruit kunnen daarentegen ook bij lagere temperaturen goed gedijen in de groentelade.

Tips voor de juiste koelkasttemperatuur:
Gebruik een koelkastthermometer om de temperatuur goed in de gaten te houden.
Zet gevoelig voedsel, zoals vlees, op de middelste planken.
Bewaar producten die tegen een lagere temperatuur kunnen, zoals groenten, onderin.

©Olga Yastremska and Leonid Yastremskiy

Wat is de juiste vriezertemperatuur?

Voor je vriezer geldt één ijskoude regel: -18 graden Celsius is de sweet spot. Op die temperatuur liggen bacteriën en schimmels stil als een standbeeld, en blijft je eten dus veilig bewaard – soms wel maandenlang. Veel vriezers kunnen nóg kouder, maar dat heeft weinig zin. Het kost alleen extra stroom en levert geen voordelen op.

Check ook eens het sterrensysteem op je vriezer: hoe meer sterren, hoe beter hij in staat is om je eten langdurig in topconditie te houden. En twijfel je of jouw diepvries koud genoeg is? Met een vriezerthermometer weet je het zo. Want hoe warmer het wordt, hoe sneller je eten achteruitgaat, en dat is zonde van je boodschappen én je energie.

Tips voor de optimale vriezertemperatuur:
Gebruik een vriezerthermometer om de temperatuur in de gaten te houden.
Stel je vriezer niet kouder in dan nodig. Elke graad lager kost 5% meer energie.
Plaats nieuwe producten zoveel mogelijk rondom al ingevroren voedsel.
Laat warme gerechten eerst afkoelen voordat je ze invriest.
Zet je vriezer niet in de volle zon of naast een warmtebron zoals de oven.
Ontdooi je vriezer regelmatig.

©Hedgehog94

Hoe stel je de temperatuur in?

Hoe je de temperatuur precies instelt, hangt af van het soort koelkast of vriezer dat je hebt. Heb je een klassiek model met een draaiknop? Dan doe je het een beetje op gevoel. Voor je koelkast zit je meestal goed op stand 3 of 4, voor de vriezer op stand 5. Een losse thermometer is dan geen overbodige luxe om te controleren of je echt rond de 4 °C (koelkast) en -18 °C (vriezer) zit.

Nieuwere apparaten maken het je makkelijker: met een digitaal display stel je de temperatuur tot op de graad nauwkeurig in. En met een slimme koelkast kun je zelfs vanaf je vakantieadres even de boel bijstellen via een app. Ideaal als je vergeten bent dat restje stoofpot erin te zetten voordat je wegging.

Een paar praktische tips: zet je koelkast niet pal naast het fornuis of een radiator – dat maakt 'm onnodig lui. Laat warme gerechten eerst even afkoelen voordat je ze in de koelkast zet, anders raakt de temperatuur van de hele inhoud uit balans. En check af en toe of de deur nog goed sluit. Versleten rubbers laten koude lucht ontsnappen en dan is je energiezuinige instelling voor niks geweest.

Ook interessant: Koelkastproblemen? Zo los je ze op!

©WEBSERVIS

Slim koelen, minder stroom verbruiken

Je koelkast en vriezer staan dag en nacht aan, dus alle kleine beetjes energiebesparing tellen. Begin bij de basis: kies bij de aanschaf voor een energiezuinig model, bij voorkeur eentje met label A. Die zijn flink zuiniger dan oudere of minder efficiënte modellen, en dat merk je uiteindelijk op je energierekening.

Ook de details maken verschil. Controleer minstens één keer per jaar de deurrubbers. Sluiten die niet meer goed aan? Dan ontsnapt er koude lucht en moet je apparaat overuren draaien om alles koel te houden. Houd de deuren sowieso zo veel mogelijk dicht; hoe korter je 'm opent, hoe minder warmte erin komt.

Nog een gouden tip: laat je koelkast en vriezer ademen. Zorg voor genoeg ruimte rondom, vooral aan de achterkant, zodat de warmte netjes kan worden afgevoerd. Zit de boel vol stof? Maak dan even de condensor schoon. En vergeet je vriezer niet af en toe te ontdooien. IJs op de wanden klinkt koud, maar werkt juist als een isolerend jasje, en dat kost extra stroom.

▼ Volgende artikel
Van neuraal netwerk tot deep learning: experimenteren met AI
© svitlini - stock.adobe.com
Huis

Van neuraal netwerk tot deep learning: experimenteren met AI

Dagelijks hoor en lees je over artificiële intelligentie (AI). Daarbij worden vaak termen als neuraal netwerk en deep learning gebruikt. In dit artikel vertellen je hier meer over en gaan we ook zelf met AI aan de slag. We doen dit via TensorFlow Playground en Google Teachable Machine.

In dit artikel laten we zien hoe je zelf kunt experimenteren met kunstmatige intelligentie:

  • Bouw met TensorFlow Playground een neuraal netwerk
  • Maak je eigen beeldherkenningsmodel met Google Teachable Machine
  • Train de AI met foto's van jezelf via je webcam
  • Pas de AI toe in een educatieve setting, zonder programmeerkennis

Ook bijzonder interessant: Makkelijk switchen tussen AI-taalmodellen? Maak kennis met Jan

Het begrip artificiële intelligentie verwijst naar de mogelijkheid om zelfstandig kennis op te nemen, problemen op te lossen en beslissingen te nemen, net zoals een mens. Het woord ‘artificieel’ duidt erop dat deze vorm van intelligentie door mensen is ontworpen en door computers of machines wordt uitgevoerd en dus niet door een biologisch brein.

Veel AI-toepassingen, zoals beeld- en spraakherkenning en taalverwerking, maken hierbij gebruik van zogenoemde neurale netwerken. Deze zijn namelijk uitstekend geschikt voor het herkennen van complexe patronen in grote hoeveelheden ongestructureerde data.

Zo’n digitaal neuraal netwerk (DNN) is gebaseerd op de werking en structuur van het menselijke brein, maar het blijft niet meer dan een abstracte vereenvoudiging. Het menselijke brein is tenslotte (vooralsnog) aanzienlijk complexer, flexibeler en vooral ook energiezuiniger met een maximaal verbruik van circa 20 watt. Ons brein is bovendien superieur in creativiteit, contextueel begrip en emotionele verwerking. 

Biologisch neuraal netwerk

De menselijke hersenen zijn opgebouwd uit een biologisch neuraal netwerk. Dat bestaat uit tientallen miljarden neuronen of zenuwcellen. Deze sturen signalen naar elkaar door via minuscule ruimtes tussen de neuronen, synapsen genoemd. Binnen een neuron (tussen het cellichaam en het uiteinde van de zenuwvezel) gebeurt dit elektrisch. Bij de overgang naar een ander neuron verloopt dit chemisch. Er worden signaalstoffen (neurotransmitters, zoals glutamaat, dopamine en serotonine) vrijgegeven. Deze binden zich aan receptoren van het ontvangende neuron.

Laten we dit verduidelijken. Wanneer je een dier ziet, sturen je ogen het beeld via het neurale netwerk naar je hersenen, door talrijke lagen van neuronen. Elke laag zoekt naar specifieke kenmerken, zoals oren, lichaamsgrootte en vacht. Door eerdere ervaringen zijn sommige neuronen getraind om bijvoorbeeld katten te herkennen, andere honden. Herkent het netwerk meer kenmerken van een kat, dan worden de bijbehorende neuronen sterker geactiveerd. Worden in de uitvoerlaag meer ‘kat-neuronen’ dan ‘hond-neuronen’ actief, dan beslissen je hersenen dat het om een kat gaat. Vergis je je, dan onthouden je hersenen dit en passen de verbindingen tussen neuronen zich aan (neuroplasticiteit): je leert.

Neurotransmitters zetten het signaal via de synaps over naar het ontvangende neuron.

Digitaal neuraal netwerk

Een digitaal neuraal netwerk (DNN) werkt net als het biologisch brein met neuronen (zie bovenstaand tekstkader). Alleen in een DNN gaat het hierbij om wiskundige rekeneenheden die informatie verwerken. Elk neuron ontvangt invoer, vermenigvuldigt deze met een gewicht om de relevantie te bepalen en telt daar een compensatiewaarde, de zogeheten bias, bij op. Samen vormen deze gewichten en biases de ‘parameters’. GPT-4 bevat er naar schatting 1,7 biljoen.

De informatie stroomt door een of meer verborgen lagen tussen de invoer- en uitvoerlaag. Elke verborgen laag verwerkt de gegevens verder, waardoor complexere patronen worden herkend. Hiervoor gebruikt elk neuron een zogeheten activatiefunctie, die bepaalt of en in welke mate de uitvoer wordt doorgegeven. Zonder activatiefuncties zou het netwerk alleen eenvoudige wiskundige verbanden leren, zoals rechte lijnen, terwijl het nu ook met complexe, gebogen of gelaagde patronen overweg kan.

Een eenvoudig digitaal neuraal netwerk, met één verborgen laag.

Sturing en zelflering

Mensen sturen het DNN indirect aan door het bepalen van het aantal lagen, het aantal neuronen per laag en het type activatiefunctie. Verder kiezen ze hoe het netwerk moet leren, bijvoorbeeld door te bepalen hoeveel data het ziet en hoe complex de gegevens zijn, hoe vaak het leert en hoe groot de aanpassingen mogen zijn. Tijdens deze training worden de parameters automatisch aangepast door het netwerk om optimaal patronen te herkennen en voorspellingen te doen.

Vereenvoudigd komt het hierop neer: nadat het netwerk een voorspelling heeft gedaan, wordt berekend hoe ver deze afwijkt van de juiste waarde, waartoe het netwerk tijdens de training toegang heeft. Deze afwijking wordt vervolgens teruggestuurd door het netwerk, van de uitvoer- naar de invoerlaag. Onderweg berekent het netwerk hoeveel elke verbinding (gewicht) en extra waarde (bias) heeft bijgedragen aan de fout. Daarop past het netwerk de parameters aan om de fout kleiner te maken. Dit proces herhaalt zich vele malen, zodat het netwerk steeds accurater wordt. Dit principe wordt ‘backpropagation’ genoemd (letterlijk: achterwaartse terugkoppeling) en maakt dat het netwerk grotendeels zelflerend is.

©Vallabh soni - stock.adobe.com

Backpropagation: het netwerk stuurt zelf bij op basis van de vastgestelde afwijking.

TensorFlow Playground

Spelen met werking DNN

Het wordt interessanter wanneer je zelf experimenteert met de principes en werking van een DNN. Ga naar https://playground.tensorflow.org. Hier herken je de lagen met neuronen: een invoerlaag, twee verborgen lagen en een uitvoerlaag. Bij DATA is al een specifieke dataset geselecteerd. Zodra je op Run (het pijltje) klikt, probeert het netwerk het patroon in de gekozen dataset te herkennen. Het resultaat verschijnt onder Output.

Hoe langer je het proces laat lopen, hoe hoger het aantal trainingscycli (hier epochs genoemd) en hoe accurater de ruimte-indeling of dataclassificatie in de output: blauwe achtergrond voor blauwe punten en oranje achtergrond voor oranje punten. Omdat het standaard om een eenvoudig datapatroon gaat, zal de Training loss waarschijnlijk 0.000 zijn. Dit betekent dat het netwerk het patroon vrijwel meteen correct herkent op basis van de ingestelde parameters, zodat er nauwelijks of geen backpropagation nodig is.

Met de standaardinstellingen kan dit neurale netwerk moeiteloos overweg.

Verdere aansturing

Je kunt het netwerk flink uitdagen door enkele instellingen aan te passen. We geven je enkele mogelijkheden die zeker leerzaam kunnen zijn. Activeer in de invoerlaag bijvoorbeeld alleen de bovenste eigenschap X1. Het netwerk classificeert dan uitsluitend op basis van de horizontale posities van de punten. Voor de derde dataset (linksonder) kan dit voldoende zijn, maar voor andere niet. Probeer het gerust zelf uit. Je zult ook merken dat hoe meer features je inschakelt, hoe meer informatie het netwerk gebruikt en hoe beter het complexe patronen kan herkennen.

Verhoog eens Noise (ruis) met de schuifknop om het leerproces te bemoeilijken. De datapunten worden hierdoor minder gestructureerd, wat je meteen terugziet in de Output. Verminder nu eens het aantal neuronen (via de minknop boven elke laag) om het netwerk minder complexe beslissingen te laten nemen. Minder verborgen lagen verlaagt eveneens de capaciteit om diepere datapatronen te leren.

Nog steeds te makkelijk? Verlaag dan de Learning rate naar bijvoorbeeld 0.0001. Een lagere leerratio betekent tenslotte kleinere stappen bij het aanpassen van de gewichten (wat zich hier visueel vertaalt als minder snel aangepaste lijndiktes tussen de neuronen), waardoor het netwerk langzamer leert.

Experimenteer gerust verder met andere, ook meer geavanceerde instellingen om het netwerk – en jezelf – uit te dagen.

Met deze instellingen wordt de training van het neurale netwerk nagenoeg onmogelijk.

Deep learning

Een DNN is een van de meest effectieve methoden of algoritmen binnen machine learning (ML), waarbij computers leren van data zonder ze expliciet te moeten programmeren. Het is vooral geschikt voor complexe taken zoals beeldherkenning, spraakherkenning en taalverwerking.

Eenvoudige ML-modellen hebben meestal een of enkele verborgen lagen. Bij een complexere architectuur met meerdere verborgen lagen, die in staat is complexere patronen en relaties te herkennen, spreekt men van deep learning (DL). Deep learning is daarmee een subonderdeel van machine learning, al is het onderscheid niet altijd scherp te maken.

Bij DL gebruikt het neurale netwerk logischerwijze meer parameters, wat meteen ook een grotere hoeveelheid data vereist om het effectief te kunnen trainen. Meer data en parameters vereisen uiteraard ook meer rekenkracht, waarvoor vaak talrijke gpu’s (Graphics Processing Units) of gespecialiseerde processors als Googles TPU’s (Tensor Processing Units) nodig zijn.

Een Google TPU op een PCIe-kaart.

Google Teachable Machine

Experimenten met AI

Het zal je nauwelijks verbazen dat je, behalve geavanceerde kennis, frameworks als TensorFlow of PyTorch nodig hebt om een DL-model te ontwikkelen. Wil je hier desondanks toch mee experimenteren, dan biedt Googles Teachable Machine een uitstekende omgeving. Dit project heeft namelijk een interface waarmee je zonder technische expertise toch een AI-model kunt trainen.

Het platform is gebaseerd op DL-technieken en gebruikt neurale netwerken om patronen en kenmerken in diverse datasets te herkennen. Het werkt met voorgetrainde modellen, maar je kunt ook eigen gegevens toevoegen om een aangepast model te trainen. Na training kun je het model exporteren in verschillende formaten en inzetten in een web-app, mobiele app of op toestellen als Raspberry Pi, Arduino of IoT-apparaten.

Via deze GitHub-pagina vind je talrijke leuke projecten met Teachable Machine (van Bananameter tot Snake Game), evenals tutorials. Maar laten we nu vooral zelf aan de slag gaan met een bescheiden project.

Dit model heeft meteen door dat deze banaan overrijp is.

Starten met project

Surf naar https://teachablemachine.withgoogle.com. Hier leer je een computer trainen om je eigen afbeeldingen, geluiden en houdingen te herkennen. Klik op Aan de slag om een nieuw project te starten en kies uit drie modelopties: Projectafbeelding, Audioproject of Project met houdingen.

Wij nemen het eerste model als voorbeeld. Dit opent een venster waarin je kunt kiezen tussen een Model voor standaard afbeelding (kleur, 224 × 224 pixels) of een Model voor ingesloten afbeelding (grijswaarden, 96 × 96 pixels). Dit laatste, een embedded model, is geschikt voor microcontrollers. Wij kiezen hier voor het wat grotere standaardmodel.

Teachable Machine laat je uit drie grote trainingsmodellen kiezen.

Dataset en klassen aanmaken

Je komt nu terecht op een webpagina waar je eerst je dataset moet aanmaken. In dit geval bestaat deze uit afbeeldingen. Je deelt deze op in twee of meer categorieën, die je ook labelt. Teachable Machine heeft standaard twee categorieën (klassen), maar via +Een klasse toevoegen kun je eenvoudig meer klassen toevoegen.

Het aantal klassen dat je nodig hebt, hangt af van je project. Voor het onderscheiden van bijvoorbeeld QR-codes en zebrapatronen volstaan twee klassen (QR en Zebra). Wil je echter overrijpe, rijpe en rauwe bananen classificeren, dan heb je er minstens drie nodig. Zorg eerst dat het juiste aantal klassen beschikbaar is. Via de knop met drie stippen verwijder je desnoods overtollige klassen. Klik bij elke klasse op het potloodicoon en geef de categorie een zinvolle naam.

Daarna voeg je data toe aan elke klasse via de knop Uploaden of Webcam. Bij gebruik van de webcam moet je de pagina toegang geven tot de aangekoppelde camera. Door op Ingedrukt houden om op te nemen te klikken, stuur je continu snapshots naar Teachable Machine. De afbeeldingen verschijnen vervolgens in de betreffende klasse.

Vul je dataset met voldoende en gevarieerde afbeeldingen, via webcam en/of uploads.

Trainen en testen

Zodra je voldoende en gevarieerde data hebt toegevoegd, kun je het AI-model trainen. Klik op Model trainen om direct te starten of pas eerst enkele instellingen aan via het pijlknopje bij Geavanceerd. Hier kun je Tijdvakken, Batchgrootte en Leersnelheid aanpassen, vergelijkbaar met Epochs, Batch size en Learning rate in TensorFlow Playground. Klik op het vraagteken voor meer uitleg. Bij Geavanceerde opties kun je in een apart venster interessante statistieken over het trainingsproces bekijken. Na afloop verschijnt de melding Model getraind.

Klik rechts op Voorbeeld bekijken, zet Invoer op AAN en kies of je via Webcam of Bestand data wilt aanleveren. Wij kozen voor Webcam en testten met verschillende afbeeldingen van QR-codes en zebra’s. Bij Uitvoer toont Teachable Machine een percentage dat de zekerheid van de classificatie weergeeft.

Een QR-code op de rug van een zebra: daar heeft Teachable Machine niet van terug.

Export

Als alles goed werkt en je het model buiten de Teachable Machine-omgeving wilt gebruiken, klik je op Model exporteren. Kies voor Tensorflow.js, selecteer Downloaden en klik op Mijn model downloaden. Pak het gedownloade zip-bestand uit in een lege submap \my_model. Deze bevat een drietal bestanden, maar niet je trainingsdata. Dit komt doordat de neurale netwerkarchitectuur, geoptimaliseerde gewichten en modelconfiguratie kunnen volstaan voor nieuwe voorspellingen.

Ga vervolgens naar het tabblad Javascript, klik op Kopiëren en plak de code in een teksteditor, zoals Kladblok of Notepad++. Sla dit op als een html-bestand in de map net boven de submap \my_model.

Om lokaal te kunnen testen zonder browserfoutmeldingen zet je eerst een eenvoudige webserver op. Wij gebruikten de gratis Abyss Web Server (voor Windows, macOS en Linux). Plaats het html-bestand samen met de submap \my_model in de standaardmap C:\Abyss Web Server\htdocs. Dubbelklik erop om het in je browser te starten. Als het goed is, kun je nu meteen je AI-model testen. Succes.

Je kunt het model bijvoorbeeld testen via een lokale webserver.