as-2016-2017

Apprentissage Statistique

Transparents Cours

http://www-connex.lip6.fr/~gallinar/gallinari/pmwiki.php?n=Teaching.Main

Petit guide de la back-propagation en Torch

guide_lua

TP 1 – Prise en main de LUA et Torch – Descente de Gradient

TP 2 – Mini-batch, train/test et implémentation de critère

TP 3 – Non-linéarité et Critères

TP 4 – Implémentation des modules

TP5 – Graphes de calcul

TP6 – Graphes de calcul et intro au RNNs

 

  • Implémentation des GRUs, section 3.2 de http://arxiv.org/pdf/1412.3555v1.pdf
  • as_tp6

TP7 – RNNs

 

TP8 – TD 1

TP9/10 – Modèles stochastiques

TP 11/12 – Apprentissage par Renforcement (Deep, of course)

TP 13 -TD 2

Projet Deep Learning

Guidelines

Vous sélectionnerez (en binôme)  un article/projet parmi ceux ci-dessous. Les projets comportent trois aspects  :

  • un aspect théorique : vous devrez comprendre la problèmatique de l’article, le contexte de cette problèmatique, les contributions et les limites des approches proposées;
  • un aspect expérimental : vous devrez définir un plan d’expériences pour illustrer et discuter  les approches décrites dans l’article choisi, trouver les données adéquates, synthétiser et commenter vos résultats;
  • un aspect dév. : vous mettrez en oeuvre le plan expérimental défini en produisant un code soigné.

En plus du code, un rapport final est demandé, qui synthétisera l’aspect théorique et expérimental. Il est bien sûr grandement conseillé de faire un peu de bilbiographie et de lire les articles connexes.

Deadlines :
  • 29/11/2016 – rapport intermédiaire
    vous décrirez 1) le contexte, la problèmatique, les contributions de l’article choisi (2 pages environ); 2) le plan d’expérience que vous comptez mener, les données que vous comptez utiliser (2 pages max).
  • A définir – rapport final + code
 Sujets :
Titre
Sujet
Difficulté
Fiabilité du Prof
Fun
OUTRAGEOUSLY LARGE NEURAL NETWORKS: THE SPARSELY-GATED MIXTURE-OF-EXPERTS LAYER Une nouvelle cellule de mixture pour les réseaux de neurones. A priori peut fonctionner sur les peits jeux de données (voir article: Deep Sequential Neural Networks qui ressemble beaucoup) 2/5 2/5 2/5
Auto-Encoding Variational Bayes Pour ceux qui aiment un peu les maths. Permet de générer des images 4/5 5/5 4/5
Generative Adversarial Nets1406.2661v1 La version moins matheuse pour générer des images, mais difficile à faire converger 3/5 5/5 4/5
MEMORY NETWORKS Pour faire du Question Answering. Modèles à mémoire 3/5 3/5 4/5
Neural Turing Machines Une machine de turing dérivable 5/5 5/5 5/5
Pixel Recurrent Neural Networks Pour traiter les images pixels par pixels 2/5 4/5 4/5
HIERARCHICAL MULTISCALE RECURRENT NEURAL NETWORKS Traitement de séquences par RNN héirarchiques 3/5 3/5 3/5
WAVENET: A GENERATIVE MODEL FOR RAW AUDI Génération Audio 3/5 (ATTENTION = puissance de calcul nécessaire) 4/5 4/5
LEARNING TO PROTECT COMMUNICATIONS
WITH ADVERSARIAL NEURAL CRYPTOGRAPHY
3/5 2/5 entre 2 et 5/5
FRACTALNET: ULTRA-DEEP NEURAL NETWORKS WITHOUT RESIDUALS La version ultime des Highway networks 3/5 4/5 3/5

 

 

fdms-2016-2017

Ressources FDMS 2016-2017

  •  Important: Les travaux à rendre le seront avant le dimanche soir précédent le cours suivant, par email (ludovic[.]denoyer[@]lip6.[.]fr), avec le sujet « [FDMS]: Nom étudiant, Semaine XX »

Episode 1  – Travail Personnel

Le travail personnel cette semaine s’organise sur deux aspects:

  • Apprendre Python : Il est essentiel que vous ayez une connaissance du langage python et des librairies de traitement de données récentes et largement utilisées: numpy, pandas, sklearn principalement. Pour cela, je vous propose de suivre le tutorial suivant: https://github.com/savarin/pyconuk-introtutorial — Travail à rendre: Aucun, si vous le faites pas, vous aurez de grosses difficultés dès le prochain TP
  • Les bases de la data science et du machine learning :  Afin de vous familiariser avec les notions sous-jacentes à la data science, je vous propose le travail suivant:
    • Lecture de l’article « Statistical Modeling: The Two Cultures » de L. Breiman. Cet article donne les clefs pour comprendre les deux types d’approche classiques centrées données: la « data modelling culture » qui correspond aux approches ‘modélisation’ historiques (et sur lesquelles sont par exemple basés les modèles de type météo), et l’approche ici appelée « Algorithmic Modeling Culture » qui correspond grosso modo à l’approche machine learning et qui tend à prendre une place de plus importante dans le traitement de données. Travail à rendre: Vous ferez un résumé (1 à 2 pages) des principes, différences, avantages et inconvénients des deux types d’approches. Vous donnerez des exemples d’applications pour lesquelles vous pensez que l’une ou l’autre des approches et la plus appropriée.
    • Lecture de l’article « Model Selection in Data Analysis Competitions » qui donne des « recettes de cuisine » classiques utilisées dans le cadre des compétitions de data science. Travail à rendre: Vous résumerez les 5 points principaux (3.1 à 3.5) en une ou deux phrases

Episode 2 – Sélection de modèles

Episode 3 – Sélection de caractéristiques

Episode 4 – Combinaisons de modèlse

  • Cours = fdms_2015_2016_cours3
  • TME = Implémentation de Bagging et AdaBoost sur des jeux de données binaires – comparaison des algorithmes
  • Challenge = Exploration des données
    • http://132.227.201.***/phpmyadmin

 Episode 5 – Visualisation

 Challenge Tennis: ICI

Episode 6 : Recommendation

  • TP4 : Implémentation des modèles de CF avec descente de gradient stochastique
    • Modèle classique L2
    • Modèle avec biais utilisateur et items
    • Modèle avec Biais temporel
    • Evaluation des modèles sur la base MovieLens
  • Movie Lens : http://files.grouplens.org/datasets/movielens/ml-100k.zip (fichier u.data)
def loadMovieLens(path='/data/movielens'):

  # Get movie titles
  movies={}
  for line in open(path+'/u.item'):
    (id,title)=line.split('|')[0:2]
    movies[id]=title

  # Load data
  prefs={}
  for line in open(path+'/u.data'):
    (user,movieid,rating,ts)=line.split('\t')
    prefs.setdefault(user,{})
    prefs[user][movies[movieid]]=float(rating)
  return prefs

  • Passage à MovieLens 1M

Episode 7 : Dataiku

Pour ceux qui travaillent sur leur ordinateur portable, veuillez installer dataiku DSS pour la prochaine séance.

 

 

Mini-stage : laissez parler votre rigueur et votre imagination !

Méthodologie

Cas pratique. Thème : « Time series prediction and forcasting »

Travail à réaliser en binôme.

Cours 1 : réaliser l’état de l’art (lecture, synthèse, …- voir cours) à partir de la biblio suivante :

Cours 2 : Les séries temporelles peuvent être utilisées pour de nombreuses applications et domaines de recherche :

  •   détection d’évènement sur Twitter
  • Prédiction de trajets
  • Prédiction spatio-temporelle de données climatiques
  • Détection de spams
  • Identification des processus de diffusion de l’information
  • Détections des pannes

Travail à faire

  • Choisir une problématique (ou en proposer une)
  • Développer une méthode ou améliorer un algorithme pour résoudre cette problématique
  • Proposer un protocole d’évaluation de la méthode/l’ algorithme proposé(e)

Pour la semaine prochaine (23/01/17) : présentation de 10 minutes par binôme de type « présentation d’une contribution à une conférence »

Bien introduire avec motivation/justification:

  • Le contexte et la problématique
  • L’état de l’art
  • Le modèle proposé
  • Le protocole expérimental
  • Le types de résultats attendus (exemples de courbes, tableaux, etc…)
  • Les conclusions et perspectives

Seront évalués :

  • La qualité de la présentation
  • L’effort de synthèse de l’état de l’art
  • Le positionnement par rapport à l’état de l’art
  • Les justifications liées à la contribution
  • La cohérence de l’expérimentation avec le contexte/modèle proposé
  • Votre rigueur et votre imagination/originalité !