R4.04
Table des matières
1 Fiche R4.04 Méthodes d'optimisation
1.1 Quel objectif pour cette ressource ?
L'objectif de cette ressource est d'étudier des méthodes permettant d'optimiser une solution à un problème.
1.2 Quels savoirs de référence à étudier ?
– Introduction à l'apprentissage (arbres de décision, descente de gradient, fonctionnement interne d'un réseau de neurones) – Introduction à la recherche opérationnelle (programmation linéaire sous contraintes en petites dimensions) - Introduction aux méthodes arborescentes (par exemple : A*, min-max, alpha-beta...)
1.3 Implémentation BUT 2023-2024
- Responsable : Pierre Ramet
- Enseignants TD :
- Stéphane Fossé (S4A)
- Romain Giot (S4B)
- Pierre Ramet (S4C)
- Volume : 10h TD (+ 2h SAE)
2 Contenus des séances
2.1 Objectif du premier bloc : Introduction à l'IA - Deep Learning
- Introduction IA : cours
- Deep Learning : cours
- Réseaux de neurones simples : deep1 - notebook deep1
- Fonction linéaire avec Keras : deep2 - notebook deep2
- Reconnaissance de chiffres avec Keras : deep3 - notebook deep3
- Descente du gradient pour un perceptron : deep4 - notebook deep4
2.2 Objectif du second bloc : Principaux algorithmes
- KNN : cours
- KNN : systèmes de recommandations - notebook KNN
- Arbres de décision : cours
- 3 exemples de classification supervisée : arbres - notebook arbres
- PCA : cours
- PCA : nuages de points - notebook PCA
- Retour sur PCA : PCA-MNIST - notebook PCA-MNIST
2.3 Objectif du troisième bloc : Programmation Linéaire
- Méthode du Simplexe - notebook Simplexe
- Support de cours
2.4 Evaluation du module
Ce module sera évalué par :
- un mini-projet, en équipe, consistant à reproduire un exemple d'utilisation de l'algorithme KNN ou d'un arbre de décision,
- un quiz individuel sur machine portant sur les notions de cours et le mini-projet.
2.5 Ressources complémentaires
- Voir le module d'introduction à l'IA (DUT S4 2021-22)
- Prise en main de Python
- Introduction au Deep Learning du CNRS - notebooks
3 Mise en place de l'environnement technique
Plusieurs solutions seront possibles, l'objectif étant de disposer de
l'éditeur VSCode
et de l'interpréteur Python
(version 3) avec les
paquets de développement associés pour l'analyse de données et
l'apprentissage automatique.
On recommande les extensions suivantes :
3.0.1 VM VirtualBox
Voici les procédures pour installer VirtualBox
sous :
- Linux : https://wiki.debian.org/VirtualBox
- Windows : https://www.virtualbox.org/manual/ch02.html#installation_windows
- Mac : https://www.virtualbox.org/manual/ch02.html#installation-mac
Vous pouvez télécharger une image Debian
(3.8Go) avec les principaux
outils pour la programmation C
et Python
sous :
https://box.iut.u-bordeaux.fr/f/614adb35b7694af2a844/
Pour l'importer dans VirtualBox
: Menu "Fichier / Importer un appareil
virtuel" et sélectionner le fichier téléchargé avec l'extension .ova
.
Les comptes disponibles dans cette VM sont :
- root / root
- user / user
Configurer Python
en version 3 par défaut :
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2 #update-alternatives --list python #update-alternatives --config python
Un image Debian
plus complète (5Go) est disponible ici :
https://mybox.inria.fr/f/086b644be8ff4827921b/
3.0.2 Docker
Si vous pouvez installer Docker
sur votre machine, vous pourrez alors
construire votre propre image ou utiliser l'image (11Go) suivante :
https://hub.docker.com/repository/docker/tthor/test
docker pull tthor/test docker run -it tthor/test
Voici les procédures pour installer Docker
sous :
- Linux : https://docs.docker.com/engine/install/debian/
- Windows : https://docs.docker.com/docker-for-windows/install/
- Mac : https://docs.docker.com/docker-for-mac/install/
Je vous recommande d'utiliser l'éditeur VSCode
dans votre
environnement natif, et d'activer le plugin remote-docker
(https://code.visualstudio.com/docs/remote/containers-tutorial) afin de
profiter du conteneur Docker
pour compiler/exécuter/tester vos
programmes.