dinsdag 23 augustus 2016

08 - Ultrasound - game over ... :-)

Alweer heel geleden dat ik een berichtje heb geplaatst. Enerzijds door een geweldig ontspannende zeilvakantie. anderzijds heb ik er gewoon de tijd niet voor gevonden. De weinige uurtjes die beschikbaar waren heb ik echter nog wel e.e.a. aan deeplearning spielerei gedaan. Vooral bezig geweest met met de Kaggle competitie 'Ultrasound' die helaas nu afgelopen is. Ik heb verschillende strategieën uitgeprobeerd waaronder een drie-weg neuraal netwerk welke daarna werd gemerged tot een uitkomst. In een volgende poging heb ik, omdat de input bestond uit veel afbeeldingen van dezelfde patiënt, (48 patiënten, 5635 afbeeldingen), de afbeeldingen eerst per patiënt op gelijkvormigheid gesorteerd. (Via code van  Christopher Hefele) Daar heb ik vervolgens per 5 opeenvolgende afbeeldingen gekeken of ze gemiddeld wel of niet maskers hadden. Zo niet dan kreeg de 'centrale afbeelding' ook geen masker. Zo wel dan kreeg de centrale afbeelding een gemiddeld masker. (feitelijk de som) De gedachte was dat hier waarschijnlijk veel medisch studenten op hadden zitten ploeteren waar sommigen wel en andere weer niet de plek van de nekzenuw in de echo herkenden. Een gemiddelde vlakt daarbij de variatie een beetje uit.

Eerst heb ik de input zo ook per 5 afbeeldingen en 1 uitkomst aan een NN, gebaseerd op een U model van Marko Jocic, een ' convolutional auto-encoder' (U-net architectuur) aangeboden.

Helaas heb ik daar de bugs niet uit kunnen krijgen.
Daarna heb ik het zo een op een aangeboden. Ook dat bleek vrij buggy. (Te weinig tijd om de code goed door te lopen.)  Uiteindelijk is het gelukt maar niet met een sterk verbeterd resultaat.

De competitie is nu beëindigd met een trieste 575e plaats van de 923 (score 0.56808 t.ov. een top van 0.73226  )   . Toch weer een heleboel geleerd.
Met het U-model heeft Edward Tyantov een score van .70399 gehaald en de verbeteringen beschreven. Ondermeer toch door data-verrijking (flipxy, random zoom, random channel shift) en bijvoorbeeld 2 hoofdige training. (aanwezigheid zenuw en segmentatie).

Voor mij zijn de belangrijkste learnings:

  • Begrijp de dataset. Ik heb pas laat doorgehad dat we maak 48 patiënten hadden.  
  • Bouw constante controlepunten in. Dat moet meer zijn dan gemiddelden of maxima/minima. Ik denk dat een histogram wel redelijk aan kan geven of de data niet door de code verminkt is.
  • Dataverrijking is hier zeker noodzakelijk gezien ook de beperkte aantal patiënten. Toch eens wat standaard routines pikken :-)

Geen opmerkingen:

Een reactie posten