Version 2, last updated by jeremyE at April 19, 2010 09:05 UTC

Entrainer un réseau à convolution de type lenet5

Auteurs

Jérémy Eustache

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é:

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.