Projet sur les pas de gradient des réseaux de neurones
Le but de ce projet est d'explorer différentes heuristiques pour
choisir le ou les pas de gradient dans un réseau de neurones,
et de les comparer sur au moins deux ensembles de données.
La comparaison devrait se faire selon la courbe de l'erreur (de test ou d'apprentissage)
en fonction du temps de calcul. Il se peut que certaines heuristiques
dominent pour un petit temps de calcul mais pas pour un plus grand.
Voici les différentes heuristiques à comparer. Dans tous les cas
on veut comparer des réseaux qui ont la même architecture, entraînés
sur les mêmes données.
- L'heuristique de référence: on fixe le pas de gradient, qui
est donc un hyper-paramètre à optimiser. On peut l'optimiser en
essayant plusieurs valeurs, sachant qu'on devrait obtenir
une courbe en U de l'erreur en fonction du pas de gradient.
- On permet un pas de gradient différent à chaque couche.
Pour ne pas augmenter le nombre d'hyper-paramètre, on suppose
que le pas de gradient pour les poids entrant dans la couche k
est inversement proportionnel au nombre d'entrées de la couche
(i.e. la taille de la couche précédente).
- Même chose mais en prenant la racine carrée du nombre
d'entrées.
- On permet au pas de gradient de diminuer en 1/(1+c t),
où t est le nombre d'exemples vus depuis le début de l'apprentissage,
et c est un nouvel hyper-paramètre (dont la recherche va
augmenter les temps de calcul!).
Références
Voir les notes de cours sur les réseaux de neurones.