Vraagstelling
ObsIdentify-NIA (O) is software voor PC en smartphone die planten en dieren op soortnaam kan brengen aan de hand van foto's. Bij het identificeren van soorten geeft O altijd aan hoe zeker de identificatie is met percentages tussen 0 en 100%. Een percentage tussen 0 en 40% betekent onzeker (rode gebied), tussen 40% en 90% betekent redelijk zeker (blauw); groter dan 90% is vrijwel zeker (groen) en 100% is helemaal zeker. 100% is per definitie zeker, geen twijfel mogelijk. Klopt dat wel? Hoe zeker is 100%? De ultieme vraag is: is de identificatie altijd correct bij 100%? Dat is een belangrijke, maar niet eenvoudig te beantwoorden vraag.
Uit
eerder onderzoek
bleek dat O nooit 100% zekerheid gaf met egaal gekleurde vlakken
en 1-pixel plaatjes. Het maximum was 95.5%. De verklaring kan zijn dat
O nooit 100% zekerheid geeft omdat het simpelweg nep plaatjes
zijn. Maar misschien zijn er niet genoeg verschillende nep plaatjes
aangeboden. Het aantal beschikbare kleuren is 16.777.216 (16 miljoen).
Deze kunnen nooit allemaal handmatig getest worden. Een alternatieve
manier is de computer random gekleurde pixels laten genereren en deze
door O laten beoordelen. Het genereren van random plaatjes is een
makkelijke manier om een eindeloze hoeveelheid kleurschakeringen en
patronen beschikbaar te hebben. Veel meer dan handmatig mogelijk is.
Omdat er zo'n 16.000 soorten in de database van O zitten, zal er
wellicht eentje bij zitten die herkend wordt. Het gaat er niet om bij
een van te voren gekozen soort een score van 100% te bereiken, maar of
er überhaupt soorten herkend worden met 100% zekerheid.
Resultaten!
Bosvleermuis 100% 200x200 R=25 G=10 B=95 |
Vale vleermuis 100% 115x110 R=25 G=10 B=99 |
sterk uitvergroot detail van plaatje hierboven. 1 vierkantje is 1 pixel |
Alle random pixel plaatjes geproduceerd met RGB-noise worden door O geïdentificeerd als vogels, vissen, vleermuizen, vlinders, planten en paddenstoelen met verschillende percentages zekerheid. Bijna alle blijven ruim onder de 90% en de meeste onder de 40%. Meer specifiek, alle plaatjes geproduceerd met RGB-noise R=25; G=10; B=99 worden door O geïdentificeerd als Vale Vleermuis (Myotis myotis) met zekerheid percentages tussen de 50% en 100%. De meerderheid van de percentages ligt zelfs boven de 90% en 12 plaatjes hebben 99.9%. De laagste is 54,6%. Tot nu toe zijn er 4 plaatjes met 100% zekerheid Vale Vleermuis (zie screenshot hieronder) gevonden. Ook de Bosvleermuis is in een random pixel plaatje met 100% zekerheid geïdentificeerd. Ze zijn hier te downloaden om zelf te testen.
ObsIdentify voorspelt Vale Vleermuis met zekerheid 100.0% testfile: 115x110RGBnoise-025-010-99.jpg |
Een andere serie plaatjes met RGB noise waardes R=30; G=10; B=100 geeft
consistent hogere waardes boven 90% waaronder ook 100%. De succesvolle
RGB waardes liggen dichtbij bij elkaar in het RGB kleurenuniversum. De
plaatjes voor de Vale vleermuis zien er overwegend geel-groen uit. De
Vale Vleermuis kan met meerdere RGB parameters geproduceerd
worden.
Een andere soort die hoog scoort met random pixel plaatjes is de
Veldleeuwerik (Alauda arvensis) die 90.3% heeft
gehaald. En de Witwangstern (Chlidonias hybrida) heeft
met R=37; G=26; B=60 een zekerheid van 96.2% gehaald
[5]. In die serie zijn er 19 plaatjes met zekerheden boven de 90%
gevonden. In totaal zijn er door O tot nu toe met alle geteste RGB waardes 69 soorten gevonden, waarvan 53
met zekerheden hoger dan 90.0%. Percentages boven de 90% zijn voor
O zeker in die zin dat de vermelding "ObsIdentify is helaas niet zeker" achterwege blijft en er een groene achtergrondkleur verschijnt.
Een enkele soort (Killdeerplevier) bereikt spontaan het blauwe gebied
(tussen 40% en 90%).
Verder is geconstateerd dat van de 69 geteste perfecte
foto's in waarneming.nl, die opgenomen zijn als illustratie bij de
officiële soortbeschrijving, maar 27 foto's 100% opleveren en dat er
zelfs 7 soorten fout geïdentificeerd worden. Zie
hier
voor de tabel met alle soorten.
Conclusie
Hierboven is bewezen dat met random pixel plaatjes een 100% zekere identificatie verkregen kan worden van Vale vleermuis en Bosvleermuis. De stelling dat 100% zekerheid altijd correct is, is gefalsifieerd. Een zekerheid van 100% kan fout zijn. Daarnaast zijn er series random plaatjes die zekerheden boven de 90.0% geven. Op moment van schrijven zijn er in totaal 70 soorten door O geïdentificeerd in random pixel plaatjes. Tegelijkertijd zijn er foto's in waarneming.nl die door de redactie zijn uitgekozen als perfecte illustratie van hoe een soort eruit ziet, die géén 100% zekerheid opleveren in ObsIdentify.Discussie
Deze resultaten zijn voor zover mij bekend nieuw. In de literatuur [1],[2] worden percentages genoemd van 99.12%, 95,5%, 99.6% en 99.99%. Dus geen 100%. Deze resultaten zijn nogal subversief. Foto's in waarneming.nl die met 100% zekerheid zijn geaccepteerd zijn dus niet meer 100% zeker. De logica van hoe hoger het percentage, hoe betrouwbaarder, wordt hier op zijn kop gezet. Nep plaatjes met een lage zekerheid zou je nog acceptabel kunnen noemen, maar met 100% zekerheid zijn ze een serieus probleem. Nep plaatjes zouden 0% op moeten leveren. Wat mij ook verontrust is het relatieve gemak waarmee ik de 100% nep plaatjes op een handmatige manier heb kunnen vinden. Misschien heb ik geluk gehad. Mijn inschatting is dat er met een geautomatiseerd systeem en toegang tot een interface met O er in korte tijd duizenden false positives met hoge zekerheid inclusief 100% gevonden zouden kunnen worden.Zijn de vier soorten met hoge scores uitzonderingen? Zelfs als het bij deze vier blijft is de claim dat 100% zeker, ook écht 100% zeker is, definitief gefalsifieerd. Immers, je hoeft maar één zwarte zwaan te zien om de stelling 'alle zwanen zijn wit' definitief te weerleggen. Dit onderzoek heeft betrekking op hoe de software werkt, de onderliggende techniek, en die geldt voor alle soorten. Dat kan niet anders want er is geen aparte software voor vogels en vlinders, etc. Het lijkt dat deze tekortkoming inherent is aan de software. Een alternatieve verklaring kan zijn dat het aan de trainingsplaatjes ligt.
Dat er in random plaatjes tot nu toe slechts drie soorten gevonden zijn met een score hoger dan 90% komt vooral omdat de testen steekproeven zijn. Soms wat uitgebreidere, maar het blijven steekproeven. Het is een kwestie van tijd om er meer te vinden. Er zijn in totaal 61 soorten gevonden met lagere percentages (zie tabel hier). Deze kunnen hogere percentages opleveren door met kleine stapjes de RGB waardes te variëren.
Een bezwaar tegen mijn conclusie kan zijn dat de conclusie niet opgaat voor échte foto's van échte planten en dieren. De resultaten zouden in de dagelijkse praktijk van waarneming.nl niet van belang zijn. Natuurlijk worden er in de praktijk geen nepplaatjes aangeboden. Maar mijn resultaten zeggen wel degelijk iets over de software. Dit onderzoek raakt aan wat er onder de motorkap gebeurd. Mogelijk kan dit onderzoek licht werpen op tekortkomingen van de software en aanleiding zijn voor verbeteringen. Als er bij nep plaatjes 100% gescoord kan worden, dan zouden foto's van slechte kwaliteit ook wel eens 100% score kunnen opleveren. En dat is een serieus probleem in de dagelijkse praktijk van waarneming.nl waar duizenden nieuwe waarnemingen per dag worden ingevoerd.
Een andere vraag is waarom juist deze drie soorten, en in mindere mate 61 andere soorten, boven komen drijven. Een afdoende verklaring heb ik niet. Mogelijk zijn soorten als Vale vleermuis, Bosvleermuis, Witwangstern en Veldleeuwerik 'moeilijke soorten' die O niet goed kent en daardoor misschien hoog scoren in random plaatjes. Als je een blik werpt op het soort foto's die er in Observation.org aanwezig is van de Vale vleermuis, dan is het geen wonder dat O daar grote moeite mee heeft. Als er geen strenge selectie heeft plaatsgevonden bij de foto's voor de trainings-set lijkt het een hopeloze opgave om een Vale vleermuis te identificeren. In feite mis-identificeert O een uitstekende foto van de Vale Vleermuis als Gewone Grootoorvleermuis Plecotus auritus (74.7%). Dat is de foto waarmee ik dit blog opende en die als illustratie dient van de soort beschrijving op waarneming.nl.
ObsIdentify: Rode poon Trigla lucerna (47.5%) |
Witwangstern (Waarneming.nl) O geeft terecht 100% zekerheid |
In het geval van de Witwangstern betreft het weliswaar een zeldzame soort, maar er zijn 6.000 foto's en O kan de soort terecht met 100% zekerheid identificeren. Aan de andere kant: laat je alleen de kop zien, dan maakt O er een Blauwe Reiger (12.5%) van! Niet te begrijpen.
In het geval van de Veldleeuwerik komt O met een perfecte foto (die uitgekozen is door de redactie van waarneming.nl) niet verder dan 73,5%. Dit zou bijna per definitie 100% moeten zijn [3].
O: Veldleeuwerik 73,5%... |
Op zich is het niet relevant dat de software op een totaal andere manier (pixel statistieken!) soorten herkent dan de mens. Het gaat immers om de resultaten. Als de resultaten goed zijn, dan is de techniek geen probleem. Maar als de resultaten fout zijn, begint de onderliggende techniek wel relevant te worden.
Wintertaling random patroon? |
Klein koolwitje random onderkant vleugel? |
Dit onderzoek heeft niet als bedoeling om ObsIdentify als onbetrouwbaar weg te zetten. Het is zonder meer een aanwinst voor waarneming.nl. Het bevordert interesse in het leren identificeren van soorten bij een groter publiek en kan als wetenschappelijk instrument ingezet worden. Mijn onderzoek is ontstaan uit nieuwsgierigheid. Het sluit aan bij internationaal onderzoek naar Artificial Intelligence [1], [2]. De resultaten geven aanleiding tot verder onderzoek. Misschien kunnen deze resultaten aanzetten tot het verbeteren van het algoritme.
Methode
RGB instellingen Vale Vleermuis 100.0% |
Het vinden van plaatjes die door O met een hoge zekerheid als een soort worden geïdentificeerd is een trial-and-error proces: 1) met grote stappen verschillende combinaties van Red, Green en Blue uitproberen totdat de percentages die O geeft boven de 40% uitkomen. 2) met kleinere stappen rondom de succesvolle RGB waardes net zolang variëren tot de percentages van O blijven stijgen. Een pixel bestaat uit een R, G en B component. De R,G,B parameters in het RGB noise algoritme bepalen (waarschijnlijk) hoe vaak een kleurcomponent gebruikt wordt bij de aanmaak van de kleur van een pixel. Als R,G,B op maximaal staan, worden er altijd 3 kleurencomponenten gebruikt bij de aanmaak van een pixel. Staat een RGB parameter op nul, dan wordt die kleurcomponent niet gebruikt. Ieder plaatje dat gegenereerd wordt is uniek omdat op een random manier gekozen wordt hoeveel van iedere RGB component gebruikt wordt binnen de parameters die door de gebruiker gekozen zijn (zie afbeelding). Bijvoorbeeld de instelling R=0.25 G=0.10 B=0.99 zal bij iedere generatie een ander plaatje opleveren. Je kunt er eindeloos plaatjes mee produceren. Wordt hetzelfde plaatje meerdere malen aan O aangeboden, dan is het resultaat steeds hetzelfde.
ObsIdentify (O) in Firefox 71.0 (Ubuntu 16.04 LTS) via het invoerscherm van waarneming.nl.
Updates
26 Dec 2019: Inmiddels is een random pixel plaatje gevonden die een Bosvleermuis met 100% zekerheid oplevert. zie: Data11 Jan 2020: Witwangstern is opgelopen tot 99,4%. Zekerheidspercentages van referentie foto's in waarneming.nl zijn toegevoegd aan de tabel. Zie: data.
Data
Noten
- It is alarmingly easy to trick image recognition systems. Slate.
- Deep neural networks are easily fooled: High confidence predictions for unrecognizable images, Evolving Artificial Intelligence Laboratory.
- Is er een maatstaf voor een 'moeilijke soort' onafhankelijk van een laag percentage? Het aantal trainings-foto's? Ik heb O nooit betrapt op de uitspraak: "kan foto niet beoordelen'. Wel 'foto bijsnijden', maar dan heeft O al een voorspelling gedaan. Om altijd maar een voorspelling toe doen lijkt me niet goed. Een voorspelling met 1,9% zekerheid is niet zinnig. In de app heb ik zelfs een voorspelling met 0% gezien (in het rijtje alternatieven)! De redactie van waarneming.nl heeft de soortengroep tjiftjaf-fitis in de Disclaimer aangemerkt als moeilijk. Toch gaat O er vrolijk mee in de fout. Een door de redactie uitgezochte perfecte foto van de tjiftjaf krijgt: "ObsIdentify voorspelt Siberische Tjiftjaf Phylloscopus collybita tristis met zekerheid 98.5%". Fout dus. Geef dan geen oordeel.
- Goede uitzonderingen zijn uitslagen als: 'Dwergvleermuis onbekend' en 'Vleermuis onbekend'.
- Ondertussen is het O percentage Witwangstern opgelopen tot 99,4% met handmatig pixels toevoegen aan random pixel plaatjes. Zie: Data. 11 jan 2020.
Alle ObsIdentify blogs
- 30 September 2019 Test van ObsIdentify algoritme voor automatische identificatie van dieren en planten deel 1
- 21 Oktober 2019 ObsIdentify software gekraakt! Vlinders identificeren zonder te weten wat een vlinder is... deel 2
- 19 November 2019 ObsIdentify (3) Who is afraid of red, yellow and blue? De Vlinder Turing test voor mens en AI deel 3
- 4 December 2019 ObsIdentify herkent Kuifeend, Kikker, Kiekendief en vele andere soorten in plaatjes van 1 pixel deel 4
- 23 December 2019 Hoe zeker is 100%? Soorten met 100% zekerheid herkennen in random pixels. deel 5
- 4 Februari 2020 Hacken voor dummies en gevorderden. Beeldherkenningssoftware ObsIdentify is makkelijk te misleiden. deel 6
- 18 maart 2020 ObsIdentify geeft ALTIJD foute antwoorden buiten zijn eigen domein. Ook met hoge zekerheden. deel 7
- Voor alle volgende blogs over ObsIdentify klik op label ObsIdentify.
Klik voor alle ObsIdentify blogs op label ObsIdentify.