Giter Club home page Giter Club logo

rays-2019-teamwork's Introduction

rays-2019-teamwork

Arbete på RAYS-rapporterna för Hugo Berg och Felix Eriksson på RAYS 2019

rays-2019-teamwork's People

Contributors

felixseriksson avatar drummersbrother avatar joarbagge avatar

Stargazers

 avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

rays-2019-teamwork's Issues

Onsdag 26/6

Vad gjorde vi:
-Troubleshootade tensorflow-gpu
-Fick ner filerna (både testfiler och trainingfiler samt csv dok med maskerna i dicom)
-Föreläsning om double regularization for nns (viktade noder)
-pratade med Annas gamla kurskamrat och fick tips om svm (support vector machines) och mer (vad?)
-besök av saga och hanéle, presenterade våra idéer om unet

Torsdag 27/6

  • Done
    • Implementerade ett uNet i keras
    • Lunchade med Markus, fick mer info (se nedan)
    • Fixade en till remote dator med ssh
    • testade Dice som accuracy och loss
    • preprocessar alla filer genom att spara dem som numpy arrays istället för dicom eller png, sparar mycket (från ca 15-20 min generering per epok till ca 2 min per epok) tid. kan skriva om detta i metod
    • startade första långa träningssessionen på 60 epoker
    • värdenormalisering dvs intervall [-1,1] istället för [0,255] (pre)
  • Läsa mer om
    • Dilated Dense Networks (DDN)
    • Residual Networks
    • augmentering (rotera translatera etc så att positionsinfo är samma) (pre)
    • gaussisk faltning (post)
    • ta bort små öar/brus (post)
    • Mask RCNN
  • To Do
    • kör all preprocessing på flera kärnor
    • börja visualisera
    • i samma anda, titta på t-sne
    • titta upp accuracy
    • generera mer testdata (augmentering?)
    • titta upp hur batch size fungerar, varför stora batches fuckar ramen
    • titta upp om dice fungerar som loss function, annars alternativ
    • fixa generic keras conv nät för att kunna testa andra (egna) arkitekturer
    • pre- och postprocessing
    • undersök andra optimizers och learning rates (ex adam tar massa ram då en extra parameter (variabel learning rate) måste sparas per parameter i parametervektorn)
    • gör ett validation set (ex i keras fit generator eller genom att implementera en väljare)

Fredag 5/7

  • Done
    • ny dice loss function med smoothfaktor i täljare och nämnare (betona hur viktigt, problemet med mask 0 och pred nära 0 som inte ska ge dice=0)
    • fixat learning rate decrease on plateau, gjorde det möjligt för algoritmen att undvika plateauing (trots adam som borde fixa detta, betona i rapporten)
    • fixat nedteckning av datapunkter om loss, dice etc
    • startat (slutgiltig) körning av nätverket
  • Titta upp följande resurser...
    • t-sne för python (visualisera närheten av våra pneumothoraxbilder)
    • inkscape (bra allround)
    • manim (för presentationen)
    • NN-svg (CNNs, vårt nätverk?)
    • matplotlib (optimeringslandskap, resultat etc)
  • ...för att visualisera följande saker
    • FCN (vanligt neuralt nätverk)
    • Convolutional neural network
    • Optimeringslandskap/ backprop på annat vis
    • Mätresultat i form av loss, etc men också visa overlay på bild av mask och pred när nätverket har tränat (?)
    • Vårt nätverk visualiserat
    • U-Net (?) (i metod kanske?)
    • Xception och Inception (också mer i metod kanske?)
    • Residual Blocks (mer i metod kanske?)
    • Data augmentation (även det mer i metod?)
  • To Do
    • låta nätverket köra, plotta resultat från körning
    • räkna ut väntevärde för slumpad pneumothtorax och slumpad prediction
    • titta upp antal parametrar (trainable och vanliga) samt annat smått och gott med model summary

Måndag 1/7

feedback first milestone.txt

  • Done
    • Försökt felsöka u-net och smet
    • Möte med anna-karins förskningsgrupp
    • fixat så att retraining är optional i koden
    • kommit överens om att överge(?) plan A (bygga en egen algoritm för att lösa problemet) och övergå till plan B (sno nåns algoritm, implementera med nån novelty)
    • Sett vissa fall när körd kod ger endast nollor som predictions, vissa fall där predictions är icke noll vid undre kanten, vissa fall (främst smet med bara några få konvolutioner) där predictions följer en generell outline av kroppen, lungan
  • Läsa mer om
    • andra algoritmer, typ d-densenet, unet, unet++, mask rcnn etc
  • To Do
    • Fixa accuracy measure
    • Hitta/implementera fungerande algoritm
    • Tänka ut novelty
    • Hitta adekvat loss function
    • börja köra kod/träna algoritmer
    • Köra ny häftig kod på big boi pc
    • använda ny häftig boundary loss på big boi pc

Tisdag 2/7

  • Done
    • felsökt unet
    • försökt köra original-unet (funkade inte)
    • försökt göra om original-unet till autoencoder (funkade inte)
    • progress inom tensorboard (speciellt beholder)
  • Läsa mer om
    • se "to do"
  • To Do
    • Undersöka gradienter
    • alternativ project topic: bygga en så bra autoencoder som möjligt (undersöka olika cross connections, olika djupa nät etc)
    • Undersöka alternativa projekt (plan B) ifall plan A inte funkar för att slippa göra plan C (MNIST)
    • undersöka alternativa metoder (densenets, residual nets etc)
    • titta på olika loss functions och learning rates etc
    • göra flera körningar, se var vårt unet fuckar upp (gärna isolera enstaka parametrar som ändras mellan körningar.

Tisdag 25/6

Mattegenomgång

Vi gick igenom matematiken för konvolutionella neurala nätverk på morgonen.

Kaggle-tävling som forskningsprojekt

Vi kom överrens om att delta i en Kaggle-tävling för att försöka oss på ett problem som är svårt/inte redan löst, samt kunna använda novella metoder utan att ta oss vatten helt över huvudet.

Lagnamn

Vi heter Rays For Excellence 2019, Anna-Karin Thornberg, Anna Broms & Joar Bagge

Nya beräkningsresurser

Under eftermiddagen lyckades Felix få sin pappa att köra hans dator till vårt kontor, och vi satte upp den med de relevanta python-paketen och drivrutinerna, samt försökta få igång Teamviewer på datorn för att kunna komma åt den även när vi inte är på KTH; det slutade fungera under tågresan hem.

Vidare resurser

Vi hittade diverse länkar och resurser kring tävlingen, som handlar om att diagnostisera Pneumothorax, vilket är typ luftbubblor i lungor.

Problemet vi behöver lösa är att segmentera bilden (semantic istället för instance), dvs. givet en CT(computer tomography)-skan säga för varje pixel om det är en del av luftbubblan. Det är ett bildbehandlingsproblem, som inte är klassifikation, och därför ser mer okonventionella toppoliger intressanta ut. Fully-connected-network och Unet/unet++ verkar vara vad introducerande modeller använder.

Resurser och länker/artiklar vi hade i slutet av dagen:

Att göra snart

  • Vi behöver testa den nya datorn
    • Detta borde ske genom att få mnist-modellerna som vi skrivit under den första dagen att fungera att köra med GPU-träning
  • Vi behöver få exempelkerneln att fungera, och gärna experimentera runt med några egna konvolutionella idéer eller dylikt, kanske ensemble-metoder?

Torsdag 4/7

OBS: citera albumentations (referens finns på albumentations github längst nere

  • Done
    • tränat nätverket på 2000 bilder. testat både på dessa och på nya bilder
    • ändrat plot till att visa maskerna och ground truths overlayade på bilden
    • finare downsampling
    • mer augmentation
    • köra med validation data
    • träna även på "tomma" masker
    • spara ner data efter preprocessing så att inte hårddisken blir en begränsande faktor
    • skriva ut dice över bild där vi visar ground truth, mask och overlap
  • Läsa mer om
    • t-sne
    • data augmentation
    • manim (?)
    • callbacks (?)
    • regularisering (?)
  • To Do
    • ändra metric till bce och dice_loss för att förhindra dice = 0 vid true_label = 0 och pred_label = väldigt svag
    • planera vad vi vill mäta samt mäta det
    • mer regularisering
    • köra fler träningssessions
    • fixa callbacks för att kunna hantera plateauing etc (?)
    • jämföra/plotta performance över epoker
    • plotta fler roligare saker (t-sne etc)
    • animationer för presentationen i 3b1bs library (python) manim (ifall tid finns)
    • rita upp nätverket, få överblick (över hur den overfittar etc)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.