• Nenhum resultado encontrado

1 Data Science and Artificial Intelligence

N/A
N/A
Protected

Academic year: 2023

Share "1 Data Science and Artificial Intelligence"

Copied!
9
0
0

Texto

(1)

Master en Sciences Informatiques Descriptif des Options

2020-2021

12 mai 2020

Table des matières

1 Data Science and Artificial Intelligence 3

1.1 Knowledge Representation and Reasoning . . . 3

1.2 Graphes et intelligence artificielle . . . 3

1.3 Big data analytics . . . 3

1.4 Multimedia Information Retrieval . . . 3

1.5 Défis en Intelligence Artificielle . . . 4

1.5.1 Défis en Intelligence Artificielle . . . 4

1.5.2 Séminaires en IA . . . 4

1.6 Advanced Machine Learning and Deep Learning . . . 4

1.6.1 Advanced Machine Learning . . . 4

1.6.2 Advanced Deep Learning . . . 5

1.7 Programmation Logique . . . 5

2 Computer Networks and Security 5 2.1 Réseaux II . . . 5

2.2 Cryptographie et sécurité des systèmes informatiques . . . 5

3 Theoretical Computer Science 6 3.1 Compilation . . . 6

3.2 Calculabilité et complexité . . . 6

3.3 Algorithmique et Bioinformatique . . . 6

3.4 Méthodes formelles pour la conception de systèmes : fondements . . . 7

3.5 Méthodes formelles pour la conception de systèmes : applications . . . 7

4 Software Development 7 4.1 Advanced operating systems . . . 7

4.2 Software Evolution . . . 8

4.3 Informatique temps-réel . . . 8

4.4 High Performance Computing . . . 8

5 Numerical and Statistical Analysis 8 5.1 Introduction à l’Analyse Numérique . . . 8

5.2 Simulation . . . 8

6 Multimedia Signal Processing 9

(2)

8 Entrepreneurship and Creative Technologies 9

9 Sciences and Society 9

9.1 Séminaires d’informatique en gestion d’entreprises . . . 9

10 Foreign Languages 9

10.1 English for Scientific Communication . . . 9

(3)

1 Data Science and Artificial Intelligence

1.1 Knowledge Representation and Reasoning

Enseignant: JEFWIJSEN

Le Knowledge Representation and Reasoning (KR&R) est la discipline de l’Intelligence Artificielle qui utilise des formalismes logiques pour (a) représenter des informations et des connaissances et (b) automa- tiser le raisonnement sur base de ces représentations. Dans ce cours, on se focalisera sur deux usages de KR&R en particulier :

1. KR&R comme moteur du Web sémantique où, par exemple, l’on souhaite représenter que "Trump a dîné à la Tour Eiffel" pour en conclure, de façon automatique, que "Le président des États-Unis a visité la France". La logique sous-jacente à cette application est appelée Description Logic (DL) et est implémentée en W3C Web Ontology Language (OWL).

2. KR&R pour représenter et résoudre des problèmes dans NP (y compris des problèmes NP-complets) en peu de lignes. Par exemple, pour tester la 3-coloriabilité d’une carte, deux lignes assez intuitives suffisent :

P ays(X)→Couleur(X,”Red”)∨Couleur(X,”Blue”)∨Couleur(X,”Green”)

P aysV oisins(X, Y)∧Couleur(X, C)∧Couleur(Y, C)∧X <> Y →F ALSE

La logique sous-jacente à cette application est appelée Answer Set Programming (ASP).

Le cours est une combinaison de théorie et pratique. La théorie est importante pour comprendre la puissance et les limites des différents formalismes logiques. Dans la pratique, les étudiants manipuleront des outils KR&R existants.

1.2 Graphes et intelligence artificielle

Enseignant: HADRIENMÉLOT

Ce cours est organisé en deux parties. La première partie est une suite naturelle du cours d’Intelligence Artificielle (en Bachelier) et aborde certains sujets de l’IA "classique" comme les problèmes de satisfaction de contraintes, le raisonnement probabiliste ou les réseaux Bayesiens. La deuxième partie aborde des sujets liant les graphes et l’IA (e.g., algorithmes d’approximations et découverte assistée par ordinateur en théorie extrémale des graphes).

1.3 Big data analytics

Enseignant: SOUHAIBBENTAIEB

Nous vivons dans l’ère du "Big Data" où de grandes quantités de données sont continuellement collec- tées et stockées. Par exemple, des données sont générées chaque seconde lors de l’utilisation de réseaux sociaux, et des capteurs intelligents collectent la consommation électrique de millions de personnes. La taille et la complexité de ces données apportent de nouveaux défis au niveau de l’analyse et de la modé- lisation de ces données. Ce cours permettra aux étudiants d’acquérir une expertise dans le traitement et l’analyse des grandes bases de données, plus précisément dans la visualisation, la modélisation, la pré- diction, l’extraction de connaissance, ainsi que l’ apprentissage automatique. Les étudiants qui suivent ce cours (et le cours de Big Data Analytics I) seront préparés aux métiers de "data scientist" qui sont de plus en plus recherchés par les entreprises.

1.4 Multimedia Information Retrieval

Enseignant: SIDIMAHMOUDI

(4)

puisque ces objets peuvent provenir de différents appareils tels que les smartphones, les satellites, les appareils photo, les drones, etc. Par conséquent, les algorithmes de traitement d’images et de vidéos ont acquis une importance croissante dans le domaine de vision par ordinateur.

Dans le cadre de cette unité d’enseignement, nous abordons d’une part différentes méthodes d’analyse et d’annotation de données multimédia et d’autre part les méthodes d’indexation et de recherche d’objets multimédia (moteurs de recherche multimédia). Les techniques d’apprentissage profond (Deep learning) et plus particulièrement les réseaux de neurones convolutionnels seront également utilisés pour l’analyse, l’indexation et la classification de données multimédia.

1.5 Défis en Intelligence Artificielle

1.5.1 Défis en Intelligence Artificielle Enseignant: S. BENTAIEB

L’accès à de très grandes bases de données (Big Data), couplée à des algorithmes d’apprentissage très performants (Deep Learning) et à une plus grande puissance de calcul (GPU) ont permis un développement fulgurant de l’Intelligence Artificielle dans de très nombreux domaines applicatifs. Les défis en IA sont des challenges applicatifs, comme la classification et la localisation d’objets dans des images, l’apprentissage profond dans le domaine des jeux vidéos ou encore la prédiction du trafic web. Après une séance intro- ductive où sont présentés des outils logiciels, les étudiants développent leur solution lors de séances de co-working.

Enseignant: THIERRYDUTOIT

L’accroissement récent de la puissance de calcul (GPU), couplée à l’accès à de très grandes bases de données (Big Data) et à des algorithmes d’apprentissage très performants (DeepLearning) ont permis en quelques années à peine le développement fulgurant de l’Intelligence Artificielle. Les défis en IA sont des challenges applicatifs, comme la détection de feu de forêts, l’assistance aux patients atteints de la maladie d’Alzeihmer, l’apprentissage profond dans le domaine des jeux vidéos ou la cartographie d’un bâtiment par un robot, au cours desquels les étudiants développent une approche pratique des outils de l’IA. Après une séance introductive où sont présentés des outils logiciels, les étudiants développent leur solution lors de séances de co-working (3 séances de 3h par défi).

1.5.2 Séminaires en IA

Enseignant: THIERRYDUTOIT ETN.

Le développement fulgurant de l’Intelligence Artificielle depuis quelques années laisse peu de place à la réflexion de fond sur les enjeux sociétaux et industriels de ces technologies. Les séminaires en IA sont un cycle de conférences (6 soirées) sur les effets de l’IA concernant le droit, la créativité, la santé, l’éthique, l’énergie, etc.

1.6 Advanced Machine Learning and Deep Learning

1.6.1 Advanced Machine Learning Enseignant: XAVIERSIEBERT

Machine learning algorithms aim at extracting information from data sets, with many applications in sound, image or video analysis, bioinformatics, natural science and engineering. This course offers an overview of several contemporary topics in this field, such as deep reinforcement learning, active learning, bandit problems, ... It covers the basics of statistical learning theory, which provides a theoretical framework to reason about what a machine is able to learn. It also puts emphasis on practical applications of the related algorithms and is thus a mixture of lectures, exercices, and programming sessions (in Python). As it is an advanced course, students are expected to have some basic knowledge about statistics and data mining.

(5)

1.6.2 Advanced Deep Learning Enseignant: SIDIMAHMOUDI

Après avoir découvert et expérimenté les différentes techniques et architectures d’apprentissage pro- fond (et plus particulièrement les réseaux de neurones convolutionnels, CNN) durant le cours d’intelli- gence artificielle (Ma1), nous proposons via cette activité d’explorer de nouvelles architectures (RNN, LSTM, etc.) ainsi que les techniques d’évaluation de performances, interprétation, visualisation, amélio- ration et optimisation des modèles de Deep Learning. Différentes approches seront abordées telles que : le réglage d’hyper paramètres, la régularisation, la normalisation, la validation croisée, etc. Cette activité serait conclue par une formation à l’utilisation du matériel embarqué dans le domaine du Deep Learning.

After discovering and experimenting different techniques and architectures of Deep Learning (and more particularly convolutional neural networks, CNN) during the course of artificial intelligence (Ma1), we propose within this activity to explore new architectures (RNN, LSTM, etc.) as well as the techniques of performance evaluation, interpretation, visualization, improvement and optimization of Deep Learning models. Different approaches will be taught such as : setting hyper parameters, regularization, batch nor- malization, cross validation, etc. This activity will be concluded by the use of embedded material in the field of Deep Learning.

1.7 Programmation Logique

Enseignant: TOMMENS

La programmation logique est une façon de programmer des applications logicielles qui est basée sur le formalisme de la logique mathématique. Un programme logique est décrit de manière déclarative plutôt qu’impérative, en définissant un ensemble de règles logiques et de faits logiques qui sont interpretées par un moteur d’inference qui s’occupe de trouver toutes les solutions possibles au problème décrit. La programmation logique est particulièrement adaptée aux besoins de l’intelligence artificielle, dont elle est un des principaux outils. Lors du cours on apprendra tous les concepts de la programmation logique, tels que l’unification, la résolution, le backtracking et d’autres aspects plus avancés. On étudiera aussi une variante plus poussée de la programmation logique, notammant la programmation par contraintes. Le langage Prolog sera utilisé tout au long du cours pour mettre en pratique les concepts étudiés.

2 Computer Networks and Security

2.1 Réseaux II

Enseignant: BRUNOQUOITIN

Ce cours aborde plusieurs problèmes choisis et récents des réseaux informatiques. Le cours est découpé en trois grandes parties. La première se focalise sur l’architecture d’Internet et s’intéresse aux liens entre routage et économie, à la tenue en charge et aux protocoles spécifiques mis en œuvre (BGP et IPv6). La seconde partie s’intéresse aux réseaux sans fil, aux réseaux de capteurs et à l’Internet des objets, avec un ac- cent particulier sur les protocoles de communication efficaces énergétiquement. La troisième est consacrée aux réseaux multimédia et aux mécanismes permettant d’offrir des garanties de service.

2.2 Cryptographie et sécurité des systèmes informatiques

Enseignant: ALAINBUYS

Le besoin de pouvoir communiquer de façon secrète a existé depuis très longtemps, notamment à des fins militaires, avec des techniques de plus en plus élaborées. Avec l’apparition de l’ordinateur et plus tard d’Internet, le chiffrement est devenu omniprésent (domaine militaire, bancaire, etc). Dans ce cours, les techniques de chiffrement actuelles sont abordées, avec les bases mathématiques qui les concernent (essentiellement, des mathématiques discrètes, d’un niveau très accessible pour un étudiant qui a suivi les

(6)

d’un environnement informatique. Des TP permettent d’examiner plus concrètement quelques problèmes et failles classiques.

3 Theoretical Computer Science

3.1 Compilation

Enseignant: VÉRONIQUEBRUYÈRE

Les programmeurs utilisent au quotidien un compilateur pour traduire leurs programmes écrits dans un langage de programmation en du code objet correct qui s’exécutera sur un ordinateur. La théorie sous- jacente est à ce point comprise que des outils d’aide à la conception automatisée de compilateurs ont été développés. Un compilateur fonctionne en deux phases : une phase d’analyse qui transforme le programme source en un code intermédiaire formé d’instructions simples, suivie d’une phase de synthèse qui pro- duit le code objet en traduisant chacune des instructions de ce code intermédiaire. La phase d’analyse est composée de (1) une analyse lexicale qui découpe le programme en des lexèmes comme les mots-clé, les variables, les constantes numériques, etc, (2) une analyse syntaxique qui agence ces lexèmes dans un arbre dit syntaxique en respectant la grammaire du langage de programmation utilisé, et (3) une analyse séman- tique qui effectue des vérifications dépendant de la sémantique du langage de programmation (comme le type des variables), et modifie l’arbre syntaxique pour préparer la génération du code intermédiaire. Dans le cours de compilation, on présente la théorie sous-jacente aux analyses lexicale, syntaxique et sémantique, qui s’appuie sur les concepts d’expressions régulières, d’automates finis et de grammaires hors-contexte.

Des séances d’exercices et de travaux pratiques aident les étudiants à bien comprendre ces concepts et à concevoir un petit compilateur.

3.2 Calculabilité et complexité

Enseignant: VÉRONIQUEBRUYÈRE

Le premier objectif du cours est de comprendre quelles sont les limites des algorithmes, c’est-à-dire ce qu’il est possible ou impossible de résoudre avec eux. C’est une question fondamentale puisqu’elle touche à la notion de ce qui est calculable ou pas par ordinateur. Pour répondre à cette question, on introduit la modèle abstrait de machine de Turing pour pouvoir effectuer des raisonnements sur les algorithmes. Pour bien comprendre ce concept, on commence par étudier un modèle de calcul plus simple, celui d’automate fini. On apprend à programmer avec les automates finis et ensuite avec les machines de Turing, et on étudie quelles sont leurs propriétés et leurs limites. Le second second objectif du cours est d’étudier la complexité algorithmique de problèmes quand il est possible de les résoudre algorithmiquement. Cela permet de classer les problèmes selon leur niveau de difficulté. Deux classes de complexité importantes sont présentées : la classe P et la classe NP, ainsi que la question non résolue à ce jour « P = NP ? ». La classe P regroupe les problèmes qui peuvent être résolus par un algorithme en temps polynomial, tandis que la classe NP regroupe ceux dont une solution proposée peut être testée comme étant correcte en temps polynomial. Plusieurs exercices sont proposés pour bien cerner ces notions ainsi que la notion de problème NP-complet.

3.3 Algorithmique et Bioinformatique

Enseignant: OLIVIERDELGRANGE

La bioinformatique, dans le sens qui nous intéresse dans le cours d’«Algorithmique et Bioinforma- tique», est le «traitement automatique le la bioinformation». La bioinformation représente l’information génétique véhiculée par les macro-molécules biochimiques (le génome : l’ADN - le protéome : les pro- téines - le transcriptome : l’ARN). Le contenu informatif de ces macro-molécules est complètement décrit par de très longues chaînes de caractères sur des alphabets restreints (l’alphabet de l’ADN contient 4 ca- ractères, le génome humain comporte de l’ordre de3×109caractères !). L’algorithmique adressée dans le cours est donc de l’algorithmique sur les très longues chaînes de caractères : recherche de motifs, comparai- sons, .... La taille gigantesque des données manipulées impose une réflexion adéquate sur la structuration

(7)

des données et l’efficacité des méthodes. La partie théorique parcourt quelques problématiques de base de la bioinformatique. Les TP (par groupe) consistent à développer une méthode d’assemblage de frag- ments d’ADN, assemblage indispensable au processus de séquençage d’ADN (obtention des informations génétiques d’un individu).

3.4 Méthodes formelles pour la conception de systèmes : fondements

Enseignant: MICKAELRANDOUR

Nous abordons comment les outils d’abstraction et de raisonnement mathématiques permettent d’amé- liorer le processus de développement logiciel et la fiabilité des systèmes informatiques. Nous nous fo- calisons sur le model checking qui permet la vérification automatisée de logiciels abstraits représentés sous forme d’automates (ou dérivés). Le cours porte aussi sur la synthèse, qui permet la création semi- automatisée de logiciels corrects par construction. Les principaux concepts mathématiques que nous dis- cutons sont les automates, la logique, la complexité, les processus stochastiques et la théorie des jeux. La philosophie du cours s’axe sur la compréhension des différents concepts et mécanismes, ainsi que de leurs interactions. Les méthodes formelles constituent un terrain de jeu idéal pour approfondir les liens entre mathématiques et informatique, et pour apprendre à manipuler des concepts abstraits et des raisonnements rigoureux avec le recul nécessaire à une application concrète. Le cours contient aussi une partie outils, dont le but est d’aborder l’application pratique des concepts fondateurs des méthodes formelles dans des projets logiciels réalistes.

3.5 Méthodes formelles pour la conception de systèmes : applications

Enseignant: MICKAELRANDOUR

Le cours se base sur Méthodes formelles pour la conception de systèmes : fondements et en constitue la suite. Il se développe selon deux axes qui mettent un fort accent sur le travail personnel et collaboratif (entre étudiants et avec le corps enseignant). Le premier est l’étude de travaux avancés en méthodes formelles.

Les étudiants sont invités à choisir un sujet à approfondir et à présenter sous forme de cours accessibles aux autres, ce qui implique un recul suffisant par rapport aux travaux étudiés et un effort pédagogique. Le second est un projet, mis en place en concertation avec les étudiants, dont le but est d’intégrer les méthodes formelles dans un processus concret de développement logiciel, en se basant sur des outils pratiques im- plémentant les concepts théoriques du premier cours. Ce projet est dans la mesure du possible adapté aux intérêts des étudiants. En 2018-2019, il se base sur l’intégration de synthèse formelle dans des applications d’IA : nous développons des IAs pour divers environnements du framework OpenAI Gym en utilisant des outils de vérification et de synthèse. Cela nous permet par exemple de renforcer les garanties données par les IAs classiques obtenues via machine learning.

4 Software Development

4.1 Advanced operating systems

Enseignant: ALAINBUYS

Le cours de "Advanced (Lectures on) Operating Systems" s’intéresse à des sujets peu ou pas couverts par le cours de Systèmes d’exploitation en Bachelier tels que la virtualisation ou les systèmes distribués.

Donné en Anglais, il s’adresse aux étudiants déjà suffisamment familiers avec un usage passif de la langue mais qui souhaitent progresser dans l’expression orale et écrite. A cette fin, une collaboration est en place avec le CLV dans le cadre du CLIL (Content and Language Integrated Learning). La majeure partie du cours consiste en la préparation d’une présentation orale et un travail écrit individuels liés à un article dans le thème du cours. Les étudiants de fin de cycle de bachelier qui le souhaitent sont les bienvenus aux présentations qui ont normalement lieu peu après Pâques.

(8)

4.2 Software Evolution

Enseignant: TOMMENS

This course is taught in English. The course will be a mix of lectures, student presentations, practical exercices, and a small student project related to the activities of software evolution. Software evolution (also known as software maintenance) is the collection of all activities, methods, tools and processes for supporting the life cycle of software after the first release of a software product. Throughout the course we will explore how to analyse, visualise and assess the quality of software. We will learn how to maintain or improve this quality using techniques such as bad smell detection, technical debt reduction, software testing, refactoring, restructuring and reengineering. Finally, we will become acquainted with a variety of techniques such as software versioning, software product line engineering, continuous integration, software configuration management, (open source) software ecosystems, and software repository mining.

4.3 Informatique temps-réel

Enseignant: OLIVIERDELGRANGE

L’informatique temps-réel étudie les systèmes informatiques chargés d’effectuer des traitements liés à des échéances temporelles. Ces échéances peuvent être régulières et prédictibles ou totalement imprévi- sibles. Les systèmes temps réel sont souvent impliqués dans des systèmes plus larges munis de capteurs ou d’actuateurs. Les réponses du système aux événements doivent arriver dans des délais prédictibles (temps réel critique) ou avec avec certains manquements prédictibles (temps réel non critique). Le cours aborde les problématiques et méthodes de résolution logicielles impliquant des exécutions de tâches concurrentes et communicantes. Les travaux pratiques permettent de concevoir et d’implémenter des cas de solutions logicielles en temps réel.

4.4 High Performance Computing

Enseignant: SIDIMAHMOUDI

L’objectif de ce cours sur le calcul à haute performance (HPC) est de former les étudiants aux différents outils et langages de programmation parallèle (OpenMP, Open MPI, CUDA, etc.). Ceux-ci permettant d’exploiter les ressources de calcul HPC tels que les processeurs CPU ou/et les processeurs graphiques GPUs, clusters, grilles de calcul, etc.

5 Numerical and Statistical Analysis

5.1 Introduction à l’Analyse Numérique

Enseignant: CHRISTOPHETROESTLER

La modélisation mathématique est aujourd’hui présente au cœur de nombreux domaines, de disciplines scientifiques (physique, écologie, épidémiologie, météorologie,...) aux marchés financiers, en passant par les jeux vidéo, l’analyse de données,... Souvent ces modèles utilisent des mathématiques continues et re- quièrent l’usage de l’ordinateur pour comprendre leurs prédictions. Ce cours introduira quelques techniques de base permettant de traiter des modèles continus. Un petit projet permettra de les mettre en action sur un problème concret.

5.2 Simulation

Enseignant: ALAINBUYS

La simulation et la génération de nombres aléatoires qu’elle demande, est présente dans de nombreux domaines, tant en informatique que d’en d’autres sciences, exactes (physique, chimie) ou sciences hu- maines (sélection d’un échantillonage représentatif en vue d’un sondage), bref, dans la multitude des do- maines auxquels un informaticien peut se trouver confronté. Ce cours a pour but d’aborder la génération

(9)

de nombres aléatoires, ainsi que les méthodes qui permettent de s’assurer que les nombres générés pos- sèdent bien les qualités requises pour leur domaine d’utilisation. Il fait appel à des notions de probabilités et d’analyse pour lesquelles des rappels sont prévus.

6 Multimedia Signal Processing

6.1 Signal Processing

Enseignant: THIERRYDUTOIT

This course is taught in English. The course will be a mix of lectures, practical exercices, and lab sessions Signal Processing is a subfield of mathematics, computer science and electrical engineering that concerns the analysis, synthesis, recognition or modification of signals, which are broadly defined as func- tions conveying "information”, such as sounds, images, and biological measurements. Digital Signal Pro- cessing techniques are used in all digital objects around us, from cell phones to GPS to cameras. Throu- ghout the course we will explore how to create, analyze, and modify digital signal. We will see why the Fast Fourier Transform is the most widely used tool in digital objects, and how it can be used in practice.

We will examine how to sample and resample signals. Finally, we will see how to design filter that can modify the frequency content of signals.

7 Optimization and Decision Support

8 Entrepreneurship and Creative Technologies 9 Sciences and Society

9.1 Séminaires d’informatique en gestion d’entreprises

Enseignant: SOUHAIBBENTAIEB

L’objectif des séminaires d’informatique est de permettre aux étudiants de mieux comprendre l’utilisa- tion de l’informatique en entreprise, et d’apprécier l’importance qu’il faut accorder aux activités de veille technologique. Différents professionnels vont présenter des applications industrielles liées à des domaines technologiques émergents, présenter les difficultés rencontrées et partager leur expérience. A l’issue de ces séminaires, les étudiants auront une vue plus globale des concepts et technologies informatiques utilisés en entreprise. Les sujets abordés vont changer d’une année à l’autre.

10 Foreign Languages

10.1 English for Scientific Communication

Enseignant: NICOLASDEVILEZ

Ce cours enseigne aux étudiants la théorie de la communication scientifique écrite et orale. Celle-ci est mise en contexte au travers de nombreux exercices pratiques. Les étudiants seront notamment amenés à prélever des informations dans des textes en langue anglaise à caractère scientifique et à se servir de ces informations pour rédiger du contenu scientifique. Par ailleurs, le cours entraîne à utiliser, de manière contextuelle, la plupart des notions de base de la grammaire anglaise et à mettre en pratique les règles de base de la prononciation de l’anglais.

Referências

Documentos relacionados

Paulo e O Estado de São Paulo sobre questões de política externa brasileira durante o Governo Lula e constatou que tais jornais compartilharam a impressão de que a política externa