Version 2, last updated by youssouf at April 29, 2010 22:42 UTC
Detection et 36 classes
Auteur
Tâche
Cette expérience fait réference au ticket: #54.
Motivation pour cette expérience:
- Determiner si des sigmoides en sorties permettent de detecter les 'outliers' dans la demo web
- Verifier si la reduction a 36 classes (meme etiquette pour les minuscules et majuscules d'un meme caracteres) influence les performances
Modèles utilises: MLP et SDA.
MLP
Le code réutilise celui de Xavier Muller. Les données ont été entrainé sur NIST.
Entrainement avec sigmoides:
Les hyperparametres du meilleur modeles de Xavier ont été utilisé (hormis le nombre d'unités cachés):
- learning_rate: 0.5
- nb_hidden_units: 500
- adaptive_lr: 1
Les erreurs sur les bases de test sont les suivantes:
- erreur de test sur chiffres: 17.38%
- erreur de test sur minuscules: 58.44%
- erreur de test sur majuscules: 25.19%
- erreur de test sur tout NIST: 24.46%
Les resultats sont similaires aux meilleurs modele de Xavier avec 1000 unités cachés et softmax. L'erreur sur les majuscules est legerement plus élevés(25.2% au lieu de 22.6%).
Entrainement avec 36 classes ( et softmax):
Les hyperparametres suivants ont été utilisés:
- learning_rate: 0.1
- nb_hidden_units: 500
- adaptive_lr: 1
Les resultats obtenus sur tout NIST sont les suivants:
- erreur de validation: 10.91%
- erreur de test: 20.09%
Les erreurs sur les bases de test sont les suivantes:
- erreur de test sur chiffres:19.00%
- erreur de test sur minuscules: 24.34%
- erreur de test sur majuscules: 21.31%
Les erreurs de validation et de test sont inferieures qu'avec l'utilisation de 62 classes (erreur validation:13.25% et erreur de test:24.18%). L'erreur sur les chiffres est un peu plus elevée, mais l'erreur sur les caracteres est beaucoup plus faible, en particuliers pour les minuscules.
NOTE: le learning rate utilisé est 0.1 au lieu de 0.5 a cause d'une erreur de typo. L'experience avec 0.5 est en cours.
TODO:
entrainements sur P07.
SDA
Entrainement avec sigmoides:
Le code réutilise celui de François. Les données ont été entrainé sur NIST. Le code recharge les poids 'finetuner' avec des softmax pour un finetune avec des sigmoides.
Les hyperparametres du meilleur modeles de Francois ont été utilisé (hormis le nombre de couches cachées):
- hidden_layers_sizes=800
- num_hidden_layers=2
- corruption_levels=0.2
- finetuning_lr=0.01
- pretraining_lr=0.1
Les resultats obtenus sur tout NIST sont les suivants:
- erreur de validation: 12.15%
- erreur de test: 22.99%
Les resultats sont très similaires aux meilleurs modele avec softmax.
Entrainement avec 36 classes ( et softmax):
Le code réutilise celui de Sylvain. Les données ont été pré-entrainé et 'finetuné' sur P07, avec validation sur NIST.
Les hyperparametres du meilleur modeles de Sylvain ont été utilisé:
- couches cachées: 4
- unité par couche cachée: 1500
- pretraining_lr: 0.01
- finetuning_lr: 0.05
Les resultats obtenus sur NIST et P07sont les suivants:
- erreur de validation sur NIST: 30.90%
- erreur de test sur NIST: 26.56%
- erreur de test sur P07: 67.66%
Les erreurs sont plus elevées dans ce cas.
TODO: reprendre les experiences pour le SDA avec le meilleur modele de Sylvain.