> Statistiques > Apprentissage > Réseaux de neurones
Réseaux de neurones
Réseaux de neurones : permettent de faire de l'apprentissage supervisé non linéaire. Ils sont constitués d'une couche de neurones d'entrées (un neurone par feature), une couche cachée intermédiaire (ou parfois plusieurs) et d'une couche de sortie où l'on lit la variable prédite. On cherche à trouver les poids reliant les neurones de façon à minimiser une fonction de coût. On utilise ici la librairie nnet (faire library(nnet) après l'avoir installée).
Phase d'apprentissage :
- model <- nnet(y ~ ., fr, size = 10) ou model <- nnet(x, y, size = 10) pour faire l'entrainement avec les paramètres par défaut (x variables prédictives, y variable à prédire)
- si plusieurs classes (plus de 2 classes), alors, y est une matrice avec sur chaque ligne (pour chaque individu) une seule valeur à 1 et toutes les autres à 0.
- Par défaut, toutes les unités sont de type logistique
- principaux paramètres :
- size : nombre de neurones de la couche cachée
- linout : TRUE si on veut des unités de sortie linéaires, FALSE sinon (défaut est FALSE)
- entropy : TRUE si on veut utiliser un critère de minimisation d'entropie, FALSE sinon (défaut est FALSE)
- decay : paramètre de régularisation (défaut est 0, donc pas de régularisation)
- maxit : nombre maximum d'itérations (100 par défaut)
- trace : donne une trace d'impression pour le suivi de l'optimisation
- Wts : un vecteur de poids pour l'initialisation (défaut est une initialisation aléatoire)
- skip : si TRUE, rajoute des connections directes entre la couche d'input et la couche d'output
- Hess : si TRUE, renvoie la valeur du hessien pour vérifier l'optimisation (défaut est FALSE)
- Attention à bien normaliser toutes les variables avant de les utiliser pour l'apprentissage.
Phase de prédiction :
- pred <- predict(model, newdata = x)
- la valeur renvoyée par predict est un vecteur si un seul neurone de sortie, ou sinon, une matrice avec autant de colonnes que de neurones de sortie (faire alors un which.max sur chaque ligne pour trouver la classe prédite).
Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R