1. Livres & vidéos
  2. Data Scientist et langage R
  3. Réseaux neuronaux et Gradient Boosting
Extrait - Data Scientist et langage R IA, Machine Learning et Statistiques, Forecast, Tenseur, Gradient, Pytorch, Keras, CNN, LLM, GPT, RAG… (4e édition)
Extraits du livre
Data Scientist et langage R IA, Machine Learning et Statistiques, Forecast, Tenseur, Gradient, Pytorch, Keras, CNN, LLM, GPT, RAG… (4e édition) Revenir à la page d'achat du livre

Réseaux neuronaux et Gradient Boosting

Réseau neuronal - premiers pas vers le Deep Learning

Les réseaux neuronaux et le Gradient Boosting sont deux algorithmes supervisés "stars", couramment utilisées par les data scientists quand ils manipulent des données tabulaires (une observation par ligne).

Nous vous proposons ici de faire vos premiers essais ayant trait aux réseaux neuronaux avant d’attaquer "les monstres" Deep Learning et IA Générative (comme ChatGPT).

Pour comprendre le Deep Learning, il vous faudra d’abord pratiquer les réseaux neuronaux sur divers jeux de données et constater leurs forces et leurs faiblesses.

Vous serez alors prêt pour aborder la théorie des réseaux neuronaux du Deep Learning, car vous comprendrez en finesse la nature des problèmes que ces solutions résolvent : cela permet de ne pas se laisser emporter par la "magie" en utilisant les algorithmes les plus puissants sans aucune idée de leurs tenants et aboutissants... ce qui se finit souvent par de grandes déceptions opérationnelles.

1. Introduction aux réseaux neuronaux

a. Composition de fonction

Avant de nous attaquer à la structure des réseaux neuronaux, il nous faut comprendre que les couches qui les constituent s’agencent comme une composition de fonctions.

En mathématiques, on désigne souvent la composition de fonction par un petit "rond" o.

Dans les documentations sur les réseaux neuronaux, il est courant de voir cette composition représentée par une flèche qui "injecte" le résultat d’une fonction dans une autre.

images/11EP01N.png

Composition de fonctions

Cela étant dit, nous pouvons maintenant nous attaquer au fonctionnement des réseaux neuronaux multicouches.

b. Description succincte d’un modèle NN de classification

Nous allons décrire ici le fonctionnement basique d’un réseau neuronal de classification. En dehors des couches de sorties du réseau, les mécanismes pour un réseau de régression seraient similaires (une sortie triviale pour un réseau de régression étant un neurone sans fonction d’activation).

Nous appliquons pour chaque observation de notre dataset d’entraînement des couches cachées de neurones de structure simple...

Gradient Boosting et Generalized Boosted Regression

1. Les grands principes

Nous allons maintenant nous focaliser sur une implémentation pratique, particulièrement facile à manipuler pour des datasets de taille raisonnable comme ceux que vous croiserez dans les concours de data scientist : la Generalized Boosted Regression.

L’objectif d’une régression se formalise sous la forme suivante images/eq10N.PNG.
Dans le cas "paramétrique", cela revient à trouver un vecteur de paramètres images/eq11N.PNG estimés de la fonction, tels que images/eq12N.PNG.

Dans le cas non paramétrique, on reste sur la première formulation en fonction du risque et la méthode du gradient s’applique directement sur le risque.

À chaque itération on a dans les deux cas images/eq13N.PNG.

Mais dans le cas paramétrique, il est possible d’appliquer la méthode du gradient directement sur les paramètres, ce que l’on ne se prive pas de faire.

Tout cela pose quelques problèmes pratiques. En effet le modèle a tendance à s’"overfitter" sur l’ensemble des observations (plutôt que de créer une fonction résultante généralisable). Les cas où des observations différentes avec les mêmes valeurs explicatives débouchent sur une réponse différente peuvent déstabiliser la descente de gradient (ce n’est pas pour rien que l’on a mis au point d’autres méthodes d’optimisation telles que celles que nous avons vues plus haut !).

Une conclusion pratique (cf. l’œuvre de Friedman) est de baser la descente de gradient sur des fonctions peu sensibles à la valeur d’un point (et donc de ne surtout pas s’appuyer directement sur la valeur de la fonction f en chaque point).

Dans...