Module de Reconnaissance de Formes, EFREI, 2006-2007, Benoît Decoux
3
On place les commandes dans un fichier que l’on appellera par exemple « retro », sans
extension, que l’on rend exécutable par exemple avec la commande :
chmod 777 retro
On choisit les valeurs suivantes pour les paramètres :
c=5, 10, 15, 20, 25
i=100000
a=0,01 ; 0,05 ; 0,2
On génère un fichier de commandes, par exemple pour Optdigits :
./rpg ../DATA/optdigits.don c=5 i=100000 a=0,01
./rpg ../DATA/optdigits.don c=10 i=100000 a=0,01
./rpg ../DATA/optdigits.don c=15 i=100000 a=0,01
./rpg ../DATA/optdigits.don c=20 i=100000 a=0,01
./rpg ../DATA/optdigits.don c=25 i=100000 a=0,01
./rpg ../DATA/optdigits.don c=5 i=100000 a=0,05
./rpg ../DATA/optdigits.don c=10 i=100000 a=0,05
./rpg ../DATA/optdigits.don c=15 i=100000 a=0,05
./rpg ../DATA/optdigits.don c=20 i=100000 a=0,05
./rpg ../DATA/optdigits.don c=25 i=100000 a=0,05
./rpg ../DATA/optdigits.don c=5 i=100000 a=0,2
./rpg ../DATA/optdigits.don c=10 i=100000 a=0,2
./rpg ../DATA/optdigits.don c=15 i=100000 a=0,2
./rpg ../DATA/optdigits.don c=20 i=100000 a=0,2
./rpg ../DATA/optdigits.don c=25 i=100000 a=0,2
puis le fichier équivalent pour caract_holland.don et chiffres.don.
Les meilleurs résultats obtenus sont les suivants :
Résultats :
chiffres : 97,33% (30 NCC ; alpha=0,3 ; 100000 IA)
caract : 84% (80 NCC ; alpha=0,3 ; 1000000 IA)
iris : 96,7% (5 NCC ; alpha=0,3 ; 100000 IA)
wine : 98,6% (25 NCC ; alpha=0,3 ; 100000 IA)
2.3) Interpréter ces courbes et tenter de mettre en évidence l'apprentissage par cœur (qui se
manifeste par une amélioration initiale du taux de reconnaissance sur les données de test,
suivie par une dégradation).
L’apprentissage par cœur se manifeste par un taux de reconnaissance sur les données
d’apprentissage tendant vers 100%, et un taux sur les données de test se dégradant au fur et à
mesure des itérations d’apprentissage, après une progression initiale.
2.4) Modifier le programme pour tester l'apprentissage en mode différé (off-line) : cumul de
l'erreur et modification des poids après présentation de toute la base. On pourra s’inspirer
pour cela de la méthode utilisée dans le programme compet.c pour sélectionner tous les
vecteurs de la liste d’apprentissage ou de la liste de test une seule fois.
//Recherche d'un vecteur représentatif pour chaque classe