Sunteți pe pagina 1din 2

ENSAI 3`

eme ann
ee

Ann
ee 2014 - 2015
R
eseaux de neurones
Examen de premi`
ere session

Cours, ordinateur et logiciel R autorises.


Lutilisation dInternet est interdite durant lepreuve.
Les programmes R utilises et les resultats numeriques obtenus
devront etre ecrits sur la copie dexamen.
I - Lexercice I ne n
ecessite pas lusage de lordinateur.
Soient A = {(x1 , x2 ) [0, [IR : x2 x1 , x2 x1 } et f : [0, [IR {0, 1}
telle que f (x) = 1 si x A et f (x) = 0 sinon.
1) Existe-t-il un Perceptron simple P1 : [0, [IR {0, 1}, de fonction dactivation
(u) = 1{u0} , tel que P1 (x) = f (x) pour tout x [0, [IR ?
2) Determiner un reseau de neurones a` une couche cachee, P2 : [0, [IR {0, 1},
dont toutes les unites ont pour fonction dactivation (u) = 1{u0} , tel que P2 (x) = f (x)
pour tout x [0, [IR.

II - Dans cet exercice, nous etudierons des donnees generees par la fonction mlbench.friedman1
a` laide du logiciel R. La base de donnees sera generee de la mani`ere suivante :
library(mlbench)
library(nnet)
N=600
n=N/2
z=mlbench.friedman1(N, sd=1)
y=z$y
x=z$x
A = sample(1:N, size=n)
Lobjectif est de construire un mod`ele neuronal a` une couche cachee permettant
destimer la variable quantitative y a` partir des 10 autres variables contenues dans
le tableau x.
Le vecteur A permet de partitionner la base de donnees en une base dapprentissage
et une base de test : sur les N = 600 observations, n = 300 observations tirees au hasard
serviront de base dapprentissage et les autres constitueront la base de test.
Mettre en oeuvre un algorithme pour tester differents reseaux de neurones ayant 4
unites dans la couche cachee, en faisant varier le nombre de pas dapprentissage, pour
predire la variable y `a partir des autres variables.
- Quel nombre de pas dapprentissage retenez-vous ?
- Donner lerreur quadratique moyenne sur la base dapprentissage et sur la base de
test.

III - Dans cet exercice, nous etudierons les donnees LetterRecognition contenues dans
le package mlbench. Il sagit dun jeu de donnees de N = 20000 lettres de lalphabet
{A, B, . . . , Z} decrites par 16 variables : pour plus de details, utiliser dans R la commande
1

? LetterRecognition
- Pour chacune des lettres, definir une variable V qui vaut 1 si la lettre est une voyelle
(i.e. appartient a` lensemble {A, E, I, O, U, Y }) et 0 sinon.
- Definir une base dapprentissage de taille n = 2000, les autres exemples constituant
la base de test.
1) Proposer un algorithme pour predire la variable V a` partir des 16 variables explicatives par une methode de regression logistique. Pour ce mod`ele, calculer les taux
derreurs (taux de mal classes par le mod`ele) pour la base dapprentissage et la base de
test.
2) - Est-il possible dameliorer les performances du mod`ele de regression logistique
avec un reseau de neurones a` une couche cachee ?
- Que remarque-t-on lorsquon augmente le nombre dunites dans la couche cachee ?
- Proposer un mod`ele permettant dobtenir de bonnes performances en prediction, et
calculer les taux derreurs (taux de mal classes par le mod`ele) pour la base dapprentissage
et la base de test.