Cours La Horde
Algorithmes d'apprentissage
Module pour les M1
Séance 1 : 28/10/2022
Séance 2 : 16/11/2022
Séance 3 : 07/03/2023
Séance 4 : 24/03/2023
Séance 1 : 28/10/2022
Histoire de l’IA :
- Sources, origines et évolution du concept d’IA
- Exploration du concept d’intelligence
- Lien avec l’intelligence artificielle, l’apprentissage machine et l’apprentissage profond
- Approche philosophique des courants symboliques et connexionnistes
- Différences entre les paradigmes de programmation classique et celui d’apprentissage machine
- Combinaison des mathématiques et des neurosciences pour formaliser et reproduire le fonctionnement de notre cerveau
- Présentation du neurone biologique et du neurone formel de McCulloch & Pitts
- Concepts clés de perceptron multi couche, effet des fonctions d’activation sur la capacité d’estimation de fonctions non linéaires, intuitions sur le surapprentissage
- Régression
- Présentation en détail d’un exemple de regression : comment le réseau apprend au fur et à mesure des exemples (avec TP pratique)
- Différence entre machine learning et Deep learning : l’extraction des descripteurs et caractéristiques extraites essentielles à la décision
- Classification
- Réseau de neurones convolutionnel et application à l’ensemble de données MNIST : classification d’image de vêtements
- Architecture de réseau de neurones
- Présentation en détail de l’apprentissage du réseau profond à chaque pas
- Apprentissage par transfert, ajustage de réseaux pré-entrainés
- Notions de cartes caractéristiques produites par convolution (feature maps)
- Généralisation 2D vers 3D avec visualisation rapide de la convolution 3 dimensionnelle
- IA appliquée
- Utilisation d’un modèle de réseau de neurone sur Unity
- L’IA et les jeux vidéos
- Applications possibles
- Noms de personnes ayant été influentes dans le domaine
Séance 2 : 16/11/2022
Séance pratique : Jouer avec des données brutes, et les exploiter au moyens de traitements et algorithmes d’apprentissage machine
- Algorithmes de machine learning
- Algorithmes des K voisins les plus proches (K-nearest neighbours)
- Régression
- Classification
- Implémentation en Python
- Régression linéaire
- explicabilité de l’opération
- résolution analytique
- résolution par approche itérative (descente de gradient)
- Taux d’apprentissage et conséquence sur la convergence
- Notion d’extremum locaux et globaux
- Implémentation en Python
- Régression logistique
- Fonction logistique
- Classification simple
- Arbre de décision
- Méthode discriminante non linéaire
- Noeuds d’arbre
- Score de Gini
- Méthodes ensemblistes : les forêts aléatoires
- Ensemble d’arbres de décision
- Algorithmes des K voisins les plus proches (K-nearest neighbours)
- Approche générique dans un problème d’apprentissage machine
- Exploration intuitive de l’apprentissage sur un perceptron multicouches (playground tensorflow)
- TP sur la prédiction de l’équipe victorieuse dans une partie de League of Legends en fonction des donnnées des 10 premières minutes.
- Notebook jupyter & Python
- Exploration analytique et statistique des données
- Présentation et utilisation des algorithmes classiques de machine learning.
Séance 3 : 07/03/2023
Initialement prévue le 17/01/2023.
Décalée au mercredi 22/02/2023 après midi.
Finalement partagée avec le cours Algorithmique/IA du 07/03/2023.
Darwin et les algorithmes évolutionnistes
Décalée au mercredi 22/02/2023 après midi.
Finalement partagée avec le cours Algorithmique/IA du 07/03/2023.
Darwin et les algorithmes évolutionnistes
- Support visuel du cours 1/6 (Darwin et les algorithmes évolutionnistes) du module Algorithmique/IA
- Darwin et la théorie de l’évolution
- Darwin
- Théorie de l’évolution (parallèle point de vue biologique et informatique)
- Les 3 principes majeurs
- Lexique
- Visualisation pas à pas
- Etapes
- Génèse
- Adaptation / Simulation
- Sélection
- Reproduction / Hérédité
- Opérateurs de reproduction
- Croisements
- Mutation
- Opérateurs de reproduction
- Algorithmes évolutionnistes
- Introduction du compromis exploration/exploitation
- Impact du déterminisme dans nos opérateurs
- Impact des opérateurs stochastiques
- Différentes procédures de sélection
- Les schémas d’évolutions globaux et stratégies de convergence
- Histoire des algorithmes évolutionnistes
- Compromis entre diversité génétique de nos population et convergence globale/locale
- Introduction du compromis exploration/exploitation
- Pause + Kahoot pour le recall
- Algorithmes génétiques
- Réponse aux problèmes d’optimisation complexes
- Démarches générale de résolution
- Rappel du fonctionnement
- Limites
- Application pratique : Jouons avec des jetpacks !
Séance 4 : 24/03/2023
Matinée du vendredi 24/03/2022
L’apprentissage par renforcement et applications
L’apprentissage par renforcement et applications
- Origine et TD-learning : Richard Sutton
- Illustrations
- Point de vue biologique (Skinner, Pavlov)
- Point de vue jeux vidéos (Atari, Jeu de Go, DOTA 2…)
- Point de vue animation (cinématiques complexes, apprentissage de la marche)
- Point de vue abstrait
- Cas d’usage
- Exemples de domaine d’application
- Théorie de l’apprentissage par renforcement
- Evolution du concept
- Concepts clés (environnement, agent, observations, actions, état, récompense)
- Visualisation de cas simples (1D, 2D, généralisation)
- Algorithme d’apprentissage (on-policy & off-policy)
- Horizons de réflexion court terme et long terme:
- Taux de réduction (discount rate)
- Taux d’apprentissage (learning rate)
- Q-learning (off-policy)
- Comportement appris
- par matrice de combinaison etat-action
- par réseau de neurone (Deep Q Learning)
- pseudo code
- Comportement appris
- SARSA (on-policy)
- Horizons de réflexion court terme et long terme:
- Retour d’expérience sur un projet perso
- Objectif : apprendre à une araignée à marcher sans aucun code ou animation
- Technologies : Unity ML-agents + PyTorch
- Environnement et ingénierie de récompense
- Entrainement et visualisation de l’apprentissage (tensorboard)
- TP de configuration de l’environnement
- Unity ML agents
- Projet PushBlock
- Modèle de comportement ONNX (visualisation dans l’inspecteur Unity ou via Netron)
Algorithmique IA
Module pour les B3 et M1
Séance 1 : 07/03/2023
Séance 2 : 23/03/2023
Séance 3 : 28/03/2023
Séance 4 : 30/03/2023
Séance 5 : 03/04/2023
Séance 6 : 04/04/2023
Séance 1 : 07/03/2023
après midi 13h30-16h30
Darwin et les algorithmes évolutionnistes
- Support visuel du cours 1/6 (Darwin et les algorithmes évolutionnistes) du module Algorithmique/IA
- Darwin et la théorie de l’évolution
- Darwin
- Théorie de l’évolution (parallèle point de vue biologique et informatique)
- Les 3 principes majeurs
- Lexique
- Visualisation pas à pas
- Etapes
- Génèse
- Adaptation / Simulation
- Sélection
- Reproduction / Hérédité
- Opérateurs de reproduction
- Croisements
- Mutation
- Opérateurs de reproduction
- Algorithmes évolutionnistes
- Introduction du compromis exploration/exploitation
- Impact du déterminisme dans nos opérateurs
- Impact des opérateurs stochastiques
- Différentes procédures de sélection
- Les schémas d’évolutions globaux et stratégies de convergence
- Histoire des algorithmes évolutionnistes
- Compromis entre diversité génétique de nos population et convergence globale/locale
- Introduction du compromis exploration/exploitation
- Pause + Kahoot pour le recall
- Algorithmes génétiques
- Réponse aux problèmes d’optimisation complexes
- Démarches générale de résolution
- Rappel du fonctionnement
- Limites
- Application pratique : Jouons avec des jetpacks !
Séance 2 : 23/03/2023
Matinée 9h30-12h30
Systèmes multi agents, Automates cellulaires, Jeu de la vie
- Support visuel du cours 2/6 (Systèmes multi-agents et Automates cellulaires) du module Algorithmique/IA
- Introduction préliminaire superficielle aux systèmes multi agents
- Définition d’un agent
- Exemples de cas concrets (agent mécanique, biologique, logiciel)
- Définition d’un système multi agents
- Squelette d’un système multi agents
- Environnement
- Objets
- Agents
- Relations
- Opérations
- Lois de l’univers via opérateurs
- Définition d’un agent
- Automates cellulaires
- Quelques grands noms (Von Neumann, Conway)
- Introduction au concept de voisinage
- Définition d’un automate cellulaire
- Cas d’usage
- Particularités notables
- Points de vue multiples (HMM, SC, Evolutionniste)
- Ecart entre règles basique micro et comportements complexes macro
- Exemple visuel
- Classification Wolfram
- Complexité des structures émergeantes
- Lien avec le caractère universel de la machine de turing
- Exemple visuel pas à pas du feu de forêt
- Grille
- Cellule et états
- Règles d’évolution
- Cas spécifique du Jeu de la Vie
- Cas particulier d’automate cellulaire
- Définition de différentes règles plausibles pour simuler la vie
- Exploration visuelle avec un outil open source
- Quelques grands noms (Von Neumann, Conway)
- Pause + Kahoot pour recall
- TP : Feu de foret
- Notebook jupyter
Séance 3 : 28/03/2023
Matinée
Séance 4 : 30/03/2023
Matinée
Séance 5 : 03/04/2023
Matinée
Séance 6 : 04/04/2023
Matinée