Projet ANR-22-CMAS-0005

Cours Intelligence Artificielle

L'objectif de la formation Fidle est de proposer une introduction au Deep Learning, allant des concepts fondamentaux aux architectures avancées (VAE, Transformers, GAN, ...).
Cette formation est totalement libre, gratuite et ouverte à toutes et à tous !

Grenoble AI Summer School July 2023

Français:

Cette UE introduit les notions élémentaires d'intelligence artificielle et enseigne l'utilisation des librairies Python (sklearn, skimage) de classification d'images. L'UE se divise en 3 sessions de 3h de cours magistraux entrelacées par 6 sessions de 3h de travaux pratiques (TP). L'ensemble des TP simule une "compétition d'IA" consistant à résoudre un problème ouvert de détection et classification d'objets dans des images.

L'évaluation de l'UE portera en partie sur les performances mais aussi les interprétations, discussions des algorithmes développés (CC1 à mi-parcours et CC2 à la fin du semestre), et en partie sur un examen final permettant de valider les notions acquises au fil du cours et des TP.

English:

This UE introduces the elementary notions of artificial intelligence and teaches the usage of Python machine learning libraries for image classification (sklearn, skimage). The UE is divided into 3 lectures of 3h each, intertwined with 6 practical lecture (TP) sessions, also of 3h each. The set of TPs simulates an "AI contest" aiming at solving an open problem of object detection and classification in images.

The evaluation of the UE will be based in part on the performances, but also on the interpretations and discussions on the developed algorithms (CC1 in mid-term and CC2 at the end of the semester), and in part on a final exam validating the notions acquired during the course of the lectures and TPs.

Ce cours propose une introduction à la programmation en Python et s'adresse à un public débutant en algorithmique et en programmation. Il n'y a aucun pré-requis.

Python est un langage à la syntaxe relativement simple qui permet d'acquérir les bases de l'algorithmique de manière plus aisée que d'autres langages de programmation qui nécessitent la maîtrise de mécanisme bas-niveaux, tels que le C.

Pré-requis :
  • Bases de l'algorithmique : variables & types, instruction conditionnelle (Si), boucle (Pour et Tant que), tableaux (ou listes au sens Python)
  • (recommandé mais pas strictement nécessaire) implémentation en C ou en Python des bases de l'algorithmiques mentionnées ci-dessus

Objectifs :

  • Savoir analyser un algorithme : complexité temporelle, preuve de correction, preuve de terminaison
  • Maîtriser plusieurs structures de données : avantages et inconvénients de chacun, savoir les manipuler
  • Maîtriser les algorithmes classiques de parcours et de tri

Contenu/Plan du cours :

  • Rappels des notations de pseudo-code
  • Complexité temporelle
  • (Introduction aux) Preuves d'algorithme : correction, terminaison
  • Récursivité
  • Structure de données liste chaînée :
    • Variantes : simplement chaînée, doublement chaînée, doublement chaînée circulaire
    • Comparaison de complexité avec les tableaux pour les opérations usuelles.
  • Structures de données pile et file
  • Arbre binaire (enraciné).
    • Vocabulaire, opérations simples
    • Parcours (en largeur, en profondeur, préfixe, infixe, suffixe)
    • Introduction aux Arbres Binaire de Recherche : recherche et insertion simple (sans rotation)
  • Algorithmes classiques de tri : par insertion, par sélection, rapide, fusion

À la fin de ce cours, vous serez capable de :

  • Créer une base de données
  • Créer et modifier des tables
  • Insérer, modifier, supprimer et sélectionner des données dans la base
  • Réaliser une requête portant sur plusieurs tables avec les jointures