Version 2, last updated by jeremyE at April 19, 2010 09:05 UTC
Entrainer un réseau à convolution de type lenet5
Auteurs
Tâche
Cette expérience fait réference au ticket: #18 .
Motivation pour cette expérience. Explorer expérimentalement les hyper-paramètres pour un réseau convolutionnel complètement supervisé.
Modèle avec lequel on a effectué l'expérience: Réseau convolutionnel complètement supervisé avec 3 couches cachées. Valeurs des hyper-paramètres explorées: pas de gradient, nombre de couches, taille des minibatch, taille des filtres pour les deux premieres couches, nombre de features pour les deux premieres couches, nombre d'itérations.
Ce qu'on teste: L'impact des hyperparametres sur l'erreur de test.
Données utilisées: L'ensemble de données NIST
Résultats
Résultats obtenus: On obtient des bons résultats pour 3 ou 4 couches, en revanche lorsque l'on en a 5 les résultats son catastrophiques (80% d'erreur de test). La taille des filtres ne change pas beaucoup l'erreur de test ( lorsque l'on reste autour de 5) et le nombre de features n'influe pas beacoup non plus. Pour la taille des minibatch, le resulat est bien meilleur pour une valeur autour de 100. La meilleure erreur de test obtenu est de 0.47%.
Emplacement des résultats
- dans la base de donnée ift6266h10_db
- sur gershwin
- dans les tables conv_mlp_eustache*.
- le SQL view (crée par la commande "jobman sqlview ...") est eustache_mlp_view
Details pour réproduire les résultats
Code utilisé:
- avec theano (par ex. revision http://hg.assembla.com/ift6266/file/9fc641d7adda/baseline/conv_mlp/convolutional_mlp.py)
- jobman
- dbidispatch
Grappe de calcul utilisé: condor au lisa
Commandes utilisées pour lancer les jobs:
- jobman sqlschedules postgres://ift6266h10@gershwin/ift6266h10_db/conv_mlp_eustache convolutional_mlp.experiment convolutional_mlp.conf 'learning_rate={{0.1,0.01}}' 'n_iter={{200}}' 'batch_size={{20,100}}' 'n_kern0={{20,50}}' 'n_kern1={{50,80}}' 'n_layer={{3}}' 'filter_shape0={{5,9}}' 'filter_shape1={{5,3}}'
- jobman sqlschedules postgres://ift6266h10:f0572cd63b@gershwin/ift6266h10_db/conv_mlp_eustache convolutional_mlp.experiment convolutional_mlp.conf 'learning_rate={{0.1,0.01}}' 'n_iter={{200}}' 'batch_size={{20,100}}' 'n_kern0={{20,50}}' 'n_kern1={{50,80}}' 'n_layer={{4}}' 'filter_shape0={{5}}' 'filter_shape1={{3}}'
- jobman sqlschedules postgres://ift6266h10:f0572cd63b@gershwin/ift6266h10_db/conv_mlp_eustache convolutional_mlp.experiment convolutional_mlp.conf 'learning_rate={{0.1,0.01}}' 'n_iter={{200}}' 'batch_size={{20,100}}' 'n_kern0={{20,50}}' 'n_kern1={{50,80}}' 'n_layer={{5}}' 'filter_shape0={{4}}' 'filter_shape1={{2}}'
- dbidispatch --condor --repeat_jobs=96 jobman sql -n0 'postgres://ift6266h10:f0572cd63b@gershwin/ift6266h10_db/conv_mlp_eustache' exp
Temps de calcul: 96 jobs avec un temps moyen de 10 heures par job.