zondag 11 december 2016

01 Fish - Nieuwe Kaggle competitie

Het is helaas geen medische competitie maar wel een grafische. Misschien hier wat meer succes dan bij de EEGs. Het gaat in deze competitie (the-nature-conservancy-fisheries-monitoring) om het herkennen van bijvangst bij vissers. Men heeft camera's op de schepen geplaatst om daar de bijvangst (dolfijnen / haaien etc) automatisch te identificeren.
Helaas zijn er maar relatief weinig foto's en ze overlappen elkaar ook behoorlijk.

plenty of fish in the sea
Bij Keras, mijn favorite ML omgeving, zit ook een module bij om afbeeldingen te draaien / schuiven zoomen etc zodat er met minder afbeeldingen toch betere resultaten bereikt kunnen worden. Hier wordt daar een voorbeeld van uitgewerkt. Het moet met name 'overfitting' voorkomen bij gebruik van kleine datasets.
Ik heb zelf al eerder dergelijke functies gemaakt en gebruikt maar deze doet het allemaal 'on-the-fly' en automatisch. Wel even wennen aan de syntax:

# this is the augmentation configuration we will use for training
train_datagen = ImageDataGenerator(rotation_range=20,
                                   rescale=1./255,
                                   shear_range=0.2,
                                   zoom_range=0.2,
                                   horizontal_flip=True)

# this is the augmentation configuration we will use for testing:
# only rescaling
test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow(X_train,y_train, batch_size=32)

validation_generator = test_datagen.flow(X_test,y_test, batch_size = 32)

history = model.fit_generator(
                    train_generator,
                    samples_per_epoch=nb_train_samples,
                    nb_epoch=nb_epoch,
                    validation_data=validation_generator,

                    nb_val_samples=nb_validation_samples)

Zie hier de resultaten van 50 epochs trainen:




       

Geen opmerkingen:

Een reactie posten