Zoeken
  • Robert Haerkens

Bananen detecteren voor je stage

Bijgewerkt: jul 7


Tom van den Bogaart

Afgelopen half jaar heeft Tom van den Bogaart zijn stage voor de Fontys Hogeschool afgerond bij Code54. Tijdens zijn stage heeft hij proeven gedaan met Tensorflow, een softwarebibliotheek die je kunt trainen om objecten op foto’s te herkennen.

Het is een toepassing van wat bedrijven graag Kunstmatige Intelligentie noemen, maar waarvoor Machine Learning een beter naam is, als je tenminste aanhangt dat intelligentie die kunstmatig is, geen intelligentie is. Eigenlijk is het simpelweg een kwestie van het toepassen van, fluister het, statistieken.

Tensorflow kan van zichzelf bananen, flessen, tv’s, mensen en nog tientallen andere objecten detecteren. Het is vooral leuk omdat je er op kantoor mee kunt kijken wie van de medewerkers het meest lijkt op een mens. Een baard kost je een paar procent. Een bril ook. Na een paar dagen konden we er een systeempje mee maken dat flessen water detecteert of telt hoeveel mensen er door de deur liepen.


Trainen

Het wordt pas echt leuk als je het systeem zelf gaat trainen. Wat je doet is het volgende: je verzamelt een hele hoop foto’s van de objecten die je wilt herkennen. Bijvoorbeeld embleempjes van auto’s. Daarna trek je op elke foto een kader om het object dat je wilt leren: het embleempje op de kofferbak, het embleempje op de motorkap, etc. En je geeft daarbij telkens aan welk merk het is: Volkswagen, Ford, Ferrari, Volvo.


En dan zet je Tensorflow aan het trainen. Het gaat nu door middel van wiskundige statistieken bepalen wat de gemene deler is op alle foto’s met een Ford-embleempje. En voor een Volkswagen-embleempje, etc. Dat doet het door eerst heel grof te kijken naar primaire contouren zoals lijnen, cirkels en vlakken. En daarop wordt telkens een laag van verfijning toegevoegd. Vergelijk het met een schilder die eerst de grove lijnen schetst en daarna de details intekent. Je kunt Tensorflow gerust een hele nacht laten trainen. Telkens als er een laagje aan wat ze het model noemen wordt toegevoegd, wordt het beter in het onderscheiden van de verschillende emblemen. Terwijl het aan het trainen is, zie je een score die aangeeft dat het model steeds nauwkeurig wordt. Wanneer je het systeem traint met bijvoorbeeld 1.000 foto’s kun je ervan uitgaan dat het na een nacht trainen prima in staat is diezelfde 1.000 foto’s foutloos opnieuw op automerk te sorteren.

De kunst is nu echter om de automerken op ándere foto’s te detecteren. Net als je denkt dat het systeem beter is dan eenieder die automerken kon herkennen aan hun remlichten in “Wedden Dat?”, blijkt dat het ineens mis gaat als het embleem flink spiegelt in de zon. Of gedraaid is. Of de auto een andere kleur heeft dan die je gebruikt hebt bij de training.


De website https://art-demo.mybluemix.net/ laat je spelen met foto’s door onder andere de kleuren wat te veranderen. Het toont dan dat de foto’s ineens heel slecht gedetecteerd worden. Een paar pixels aanpassen en de computer snapt er niets meer van.


Een paar pixels aanpassen en de computer snapt er niets meer van.

Zwakheden

Hier kan misbruik van gemaakt worden. Stel dat je een systeem traint in het herkennen van verkeersborden. Stel, je zou op alle STOP-borden een gele sticker plakken. Onbewust (machine learning is natuurlijk altijd onbewust) zal die gele sticker de voornaamste gemene deler vormen op alle foto’s van STOP-borden. Het lijkt dan dat het systeem een STOP-bord herkent, maar feitelijk herkent het gele stickers. Plak je nu een gele sticker op een 100 km/u-bord, dan zal het model dat bord, ten onrechte, classificeren als een STOP-bord. Gefeliciteerd, je hebt nu een Trojan of Backdoor geïntroduceerd. Lukt je dit voor Tesla’s Autopilot, dan kun je elke Tesla op de snelweg laten stoppen met een gele sticker.

Wetenschappers toonden een paar jaar geleden aan dat je een foto van de Mexicaanse dipsaus met een paar pixels, onzichtbaar voor het blote oog, kon aanpassen, waarna Google er ineens 100% zeker van wordt dat het een kat is (bron).

Een Google algoritme was 100% zeker dat een foto van een kat guacamole was.

Er is nog een probleem. Stel dat je het systeem traint om jongens en meisjes te onderscheiden. Na een tijdje kan het systeem bijvoorbeeld “geleerd” hebben dat een oorbel typisch iets is voor meisjes. Het zal jongens met oorbellen dan ten onrechte classificeren als een meisje. Gefeliciteerd, je hebt nu een systeem ontwikkeld dat seksistisch en hoogstwaarschijnlijk racistisch is.


De toepassingen zijn echter eindeloos. Ik luisterde laatst naar een Podcast waar iemand in elke zin, drie keer “uhh..” zei, en vroeg me af hoeveel werk het zou kosten om een systeem te trainen in het herkennen van het woordje “uhh..”. En ze er dan allemaal automatisch uit te filteren. Spotify?

Hoe indrukwekkend ook, we kunnen wel stellen dat Machine Learning weinig te maken heeft met Kunstmatige Intelligentie. Het is een slimme methode om patronen te herkennen. Er is weinig intelligent aan. Om échte intelligentie te realiseren is wat anders nodig, maar niemand die nog weet wat dat dan is. Of zoals Josh Tenenbaum, hoogleraar Cognitive Science and Computation aan het Massachusetts Institute of Technology het stelde (bron): "Als je intelligent bent, ga ja op een gegeven moment inzien dat er - misschien - toch meer is, out there".


Tom deed een stage bij Code54 en...

0 keer bekeken
 

Tel. +31 492 20 20 54

Kantoorcomplex "BCT Helmond"

Wethouder den Oudenstraat 4
5706 ST Helmond

© 2019 Code54 BV - Algemene Voorwaarden