Post on 07-Jul-2020
OMP 20171107 pascal.dayre@enseeiht.fr 1/56
Des réseaux de neurone au Deep Learning,Quelles mises en œuvre ?
OMP 20171107 pascal.dayre@enseeiht.fr 2/56
Résumé
● Nous ferons un retour sur quelques expériences de mise en oeuvre de réseaux de neurones dans le milieu académique (correction instrumentale; classification de l'occupation du sol à partir d'images multi-spectrales, multi-résolutions, multi-temporelles; système d'alerte de pollution des bassins versants à partir des données disponibles dans les agences de l'eau). Nous nous intéresserons à la découverte de la bonne topologie du réseau pour optimiser l'apprentissage et surtout la généralisation.
● Par suite, nous essayerons d'en tirer des enseignements pour la mise en oeuvre de solutions d'apprentissage profond.
OMP 20171107 pascal.dayre@enseeiht.fr 3/56
Agenda
● Retours d’EXpérience sur le perceptron multi-couche (PMC)– Classification de l’occupation des sols (images multi-spectrales,
multi-resolutions, multi-temporelles)
– Correction instrumentale
– Système de prévision de la pollution des bassins versants
● Quelle mise en œuvre des PMC : quelle méthode pour la recherche ?
● Quels apports du Deep learning ? Quelles nouvelles approches pour la recherche
● Discussion intérêts et limitations de l’apprentissage profond ?
OMP 20171107 pascal.dayre@enseeiht.fr 4/56
Comprendre et prédire ?
● Comprendre un phénomène observé à partir d’un modèle explicatif
● Une observation représentée par le tuple <X,Y> :
– X, un vecteur de variables/attributs/paramètres prédictifs
– Y, une variable/un vecteur cible dont on souhaite prédire la valeur pour des événements non observés
● On recherche F(X), tel que Y = F(X) + E(X)
– F(X), la fonction de prédiction modélisant notre phénomène
– E(X), l’erreur de prédiction (bruit, approximation)
● Données d’apprentissage → algo d’apprentissage automatique → F(X)
ens. d’observations {<X,Y>}
● F(X) est recherchée dans un espace de fonction/modèle
OMP 20171107 pascal.dayre@enseeiht.fr 5/56
3 Retours d’EXpérience sur les RNs
● Perceptrons multi-couches– REX 1 : segmentation d’image
=> Classification de l’occupation des sols
– REX 2 : correction de série temporelle
=> Correction instrumentale
– REX 3 : modélisation multi-critères de la pollution des eaux.
=> système d’alerte de la pollution des eaux des bassins versants
OMP 20171107 pascal.dayre@enseeiht.fr 6/56
REX1 : Classification de l’occupation des sols
● Travaux de 1995-1997 dans le cadre du programme « Bretagne eau pure » ● Objectif : suivi de l’impact des (bonnes) pratiques agricoles sur la pollution des bassins
versants. (zone tampon pour le maïs autour des cours d’eau, ...). Applicable aussi pour le contrôle des subventions.
● Méthode : utilisation de la télédétection pour remplacer les contrôleurs terrain● Données :
– En entrée : Construction d’une image multi-couche à partir d’images satellitaires (images IGN avion). multi-spectrale, multi-resolution, multi-temporelle (entrée X)
– En sortie : le numéro de classe. 6 classes de pixel à trouver (eau, bâti, maïs, blé, prairie, …) Vérité terrain par parcelle (sortie Y)
● Méthode d’apprentissage supervisée : perceptron multi-couche● Logiciel : code C maison● Matériel : Processeur Alpha de Digital (le premier 64 bit)● Recherche de F(X)=Y
OMP 20171107 pascal.dayre@enseeiht.fr 7/56
REX1 : Classification de l’occupation des sols
● Les entrées : images landsat et spot● En sortie, un seul pixel donne le numéro de classe. Pixel non classé si
la sortie n’est pas compris entre +- 20 % d’une valeur entière. ● Résultat : une seule couche cachée suffit.● 5 classes détectées à 99 %, une à 95 %● Impact de l’atmosphère● Quelques parcelles vérité terrain suffisent pour l’apprentissage! ● Incidence des parcours culturaux ? Choix des dates par un agronome,
nécessité de connaître les phénomènes étudiés (bien qu’un RN puisse être considèré comme une boîte noire)
● Exploration des entrées aussi
OMP 20171107 pascal.dayre@enseeiht.fr 8/56
REX : Classification des sols
● En entrée, un pixel avec ses composantes dans les différentes couches des différentes images● Landsat-5 : 1984-2013.
– Bandes spectrales : 0,45-0,52 µm, 0,52-0,6 µm, 0,63-0,69 µm, 0,76-0,9 µm, 1,55-1,75 µm, 2,08-2,35 µm
– Résolution : Générale : 30 m, Infrarouge thermique :120 m
● Spot 1,2,3 : 1986- … ?– 10 mètres en panchromatique (canal couvrant le domaine visible du spectre électromagnétique : 0,50–0,73 μm)
– 20 mètres en multispectral : Bande 1 : Vert (0,50–0,59 μm), Bande 2 : Rouge (0,61–0,68 μm), Bande 3 : Proche infrarouge (0,78–0,89 μm)
Input n
.
.
OMP 20171107 pascal.dayre@enseeiht.fr 9/56
REX2 : correction instrumentale● Travaux de 1996 : un thésard essayait vainement de corriger les mesures d’un instrument de précision de 1
degré avec une régression linéaire pour en améliorer la précision. PB : la fonction était discontinue...● Objectif : améliorer la précision de radiothermomètre pour des expérimentations en bio-climatologie. Etude
du couvert végétal.● Méthode : cible d’eau avec thermomètre immergé pour les températures de référence. ● Entrées : Température ambiante ? Température de l’électronique ? Température mesurée ? …● Sortie : la température corrigée● Finalement un RN très simple
<todo mettre un schéma d’un radio-thermomètre : E : température mesurée, température de l’électronique S : température corrigée >
● Résultat : passage d’une précision de 1 degré à 0,1 degré.
?Mesure corrigée
Mesure mesurée
Température de l’électronique
Température ambiante
OMP 20171107 pascal.dayre@enseeiht.fr 10/56
REX3 : système d’alerte de pollution d’un BV● Travaux 2011 : contexte du projet
européen Aquaflash (2009-2012)
● Encadrement du master 2 de
Sylvain Pinet avec Sabine Sauvage (Ecolab)
● Publication au colloque mondial SWAT de 2013 (Soil Water Assessment Tool – simulation hydrologique)
● Objectif : système de prévision de pollution des eaux de surface en périodes de crues
1) Identifier les processus et les
facteurs de contrôle des transferts (à partir de données « simples à acquérir » sur le BV)
3) Construire une carte du bassin versant en fonction des risques de
contamination
2) Implémenter un ANN qui modélise ces transferts pour chaque élément considéré
OMP 20171107 pascal.dayre@enseeiht.fr 11/56
REX3 : système d’alerte de pollution d’un BV
● Travaux 2011 : contexte du projet européen Aquaflash (2009-2012)
● Objectif : système de prévision de pollution des eaux de surface en périodes de crues
● Adour sur Garonne● Données● Logiciels :
– R : Pré-traitement des données R
– SWAT : création de données synthétiques
– YANNS : simulateur réseau de neurone
OMP 20171107 pascal.dayre@enseeiht.fr 12/56
ETAPE 1 PROCESSUS ET FACTEURS DE CONTROLE
Master 2 Recherche Bio-Statistiques et Modélisation21 Juin 2011
PRESSIONS NATURELLES
Précipitations Températures Vitesse du vent Pourcentage
d’humidité Rayonnement
solaire
12
OMP 20171107 pascal.dayre@enseeiht.fr 13/56
ETAPE 1 PROCESSUS ET FACTEURS DE CONTROLE
Master 2 Recherche Bio-Statistiques et Modélisation21 Juin 2011
PRESSIONS ANTHROPIQUES
PRESSIONS NATURELLES
Occupation des sols Itinéraires techniques Aménagement du territoire
13
OMP 20171107 pascal.dayre@enseeiht.fr 14/56
ETAPE 1 PROCESSUS ET FACTEURS DE CONTROLE
Master 2 Recherche Bio-Statistiques et Modélisation21 Juin 2011
PRESSIONS ANTHROPIQUES
PRESSIONS NATURELLES
CARACTERISTIQUES DES SOLS Pente
Superficie Conductivité hydraulique Profondeur
14
OMP 20171107 pascal.dayre@enseeiht.fr 15/56
OBJECTIF 1 PROCESSUS ET FACTEURS DE CONTROLE
Master 2 Recherche Bio-Statistiques et Modélisation21 Juin 2011
CARACTERISTIQUES DU COURS D’EAU
PRESSIONS ANTHROPIQUES
PRESSIONS NATURELLES
CARACTERISTIQUES DES SOLS
Débit de base Débit de surface Débit de sub-surface Débit de l’aquifère
15
OMP 20171107 pascal.dayre@enseeiht.fr 16/56
Démarche Données terrain à l’exutoireà l’échelle du bassin versant
Données simulées par SWAT à l’échelle des 73 sous
bassins versants
MODELE DE TRANSFERT POUR CHAQUE CONTAMINANT
Sorties obtenues par l’utilisation des modèles à l’échelle des sous
bassins versants
Données terrain sur l’ensemble du bassin
versant
OMP 20171107 pascal.dayre@enseeiht.fr 17/56
Modélisation des flux hydriques puis modélisation des flux de polluants
ANN – hydrologie
ANN – NO3inANN – MESin
Débit de surface
Débit de l’aquifère
Débit de sub-surface
PARAMETRES ISSUS DE RELEVES TERRAIN
QUANTITES DE CONTAMINANTS DISSOUS ET PARTICULAIRES DU MILIEU
17
OMP 20171107 pascal.dayre@enseeiht.fr 18/56
Entrées et sorties utilisées
pour chaque ANN (les paramètres
marqués d’un * ne sont pas pris en compte à l’échelle
mensuelle)
HYDROLOGIE TAUX DE MES TAUX DE NO3
ENTREES
PCP - Précipitations (mm) QSURF - Débit issu du ruissellement de surface (mm)
QSURF - Débit issu du ruissellement de surface (mm)
PCP7 - Précipitations moyennes depuis 7 jours (mm) *
AGRL - Terres agricoles diverses (%) QSUB - Débit issu de l'écoulement de sub-surface (mm)
PCP15 - Précipitations moyennes depuis 15 jours (mm) *
URMD - Réseaux urbains moyens (%) QAQUI - Débit issu de l'écoulement de l'aquifère (mm)
PCP30 - Précipitations moyennes depuis 30 jours (mm) *
WWHT - Blé d'hiver (%) AGRL - Terres agricoles diverses (%)
PEN - Pente moyenne (degré) CORN - Maïs (%) URMD - Réseaux urbains moyens (%)
SUP - Superficie totale (hectare) SUNF - Tournesol (%) WWHT - Blé d'hiver (%)
PROF - Profondeur moyenne des sols (mm)
FRST - Forêts (%) CORN - Maïs (%)
AGRL - Terres agricoles diverses (%) PAST - Pâturages (%) SUNF - Tournesol (%)
URMD - Réseaux urbains moyens (%) MESBASE - Taux de MES moyen en sortie (tonnes)
FRST - Forêts (%)
WWHT - Blé d'hiver (%) MESIN - Taux de MES entrant du sous bassin (tonnes)
PAST - Pâturages (%)
CORN - Maïs (%) PENTFA - Pentes très faibles (%) NO3BASE - Taux de NO3 moyen en sortie (kg)
SUNF - Tournesol (%) PENFA - Pentes faibles (%) NO3IN - Taux de NO3 entrant du sous bassin (kg)
FRST - Forêts (%) PENMOY - Pentes moyennes (%) PENTFA - Pentes très faibles (%)
PAST - Pâturages (%) PENFO - Pentes fortes (%) PENFA - Pentes faibles (%)
ETP - Évapotranspiration (mm/j) PENTFO - Pentes très fortes (%) PENMOY - Pentes moyennes (%)
COND - Conductivité hydraulique (mm/h)
SUP - Superficie totale (hectare) PENFO - Pentes fortes (%)
QBASE - Débit de base du sous bassin (/s)
DATE - Mois d'appartenance de l'échantillon
PENTFO - Pentes très fortes (%)
SUP - Superficie totale (hectare)
DATE - Mois d'appartenance de l'échantillon
SORTIES
QSURF - Débit issu du ruissellement de surface (mm)
MESOUT - TAUX de MES sortant du sous bassin (tonnes)
NO3OUT - TAUX de NO3 sortant du sous bassin (kg)
QSUB - Débit issu de l'écoulement de sub-surface (mm)
QAQUI - Débit issu de l'écoulement de l'aquifère (mm)
OMP 20171107 pascal.dayre@enseeiht.fr 19/56
Résultats pour les matières en suspension
> 84% de bonnes prédictions au niveau de la moyenne
> 87% de bonnes prédictions au niveau des crues majeures
OMP 20171107 pascal.dayre@enseeiht.fr 20/56
Résultats pour les nitrates
> 94% de bonnes prédictions au niveau de la moyenne
> 97% de bonnes prédictions au niveau des crues majeures
OMP 20171107 pascal.dayre@enseeiht.fr 21/56
Quelques rappels sur les RNs
● Un perceptron est un classifieur– Une seule couche cachée suffit pour faire un
approximateur universel (Théorême [Cybenko 1989]) (http://devlog.cnrs.fr/jdev2017/t7)
● Comment faire pour qu’il apprenne bien ?● Les Rns vu comme un objet informatique
OMP 20171107 pascal.dayre@enseeiht.fr 22/56
● Mettre une diapo presentant le calcul du RN● Mettre une diapo sur la propagation des erreurs
sur le RN
OMP 20171107 pascal.dayre@enseeiht.fr 23/56
Rappel sur les RN (vers le Deep learning : séparation extraction de caractéristiques et classifieur)
● Un simple Perceptron (neurone) est en fait un classifieur linéaire, capable de discriminer uniquement deux classes via une droite dans le plan.
● https://blogs.msdn.microsoft.com/mlfrance/2016/04/28/une-premiere-introduction-au-deep-learning/
X∈ℝn , Y∈ℝ
Neural Networks
What a Multi Layer Perceptron (MLP) may compute
What does a hidden neuron
Divides the input space in two
Combining multiple hidden neurons
Allows identifying complex
areas of the input space
New (distributed)
representation of the input
T. Arti `eres (ECM, LIF-AMU) Deep Learning July 5, 2017 7 / 58
Présentation et vidéo de Thierry Artières (ECM, LIF-AMU)
aux JDEV 2017 http://devlog.cnrs.fr/jdev2017/t7
OMP 20171107 pascal.dayre@enseeiht.fr 25/56
Apprentissage supervisé par descente de gradient
OMP 20171107 pascal.dayre@enseeiht.fr 26/56
L’apprentissage, pourquoi faire ?
Trouver les bons paramètres du réseau/ de la fonction recherchée
et surtout trouver la bonne topologie du réseau !
OMP 20171107 pascal.dayre@enseeiht.fr 27/56
Comment initialiser votre RN ou comment éviter un minimum local ?
● Tirer aléatoirement des paramètres/poids du RN : faire plusieurs fois l’apprentissage (et donc le tirage) et comparer pour éviter de tomber sur un minimum local
● Fonction d’erreur : E(X,W) mesure écart entre valeur attendue et valeur fournie par le réseau.
● Surface d’erreur : ensemble des valeurs (w1 , w2 , ..., wp ,E) de dimension p + 1 avec W=<w1 , w2 , ..., wp > le tuple des paramètres du RN et E la fonction d’erreur
● Réseaux de neurones :
=> surface d’erreur complexe
● Il faut trouver son point le plus bas
● Rétropropagation du gradient :
correction d’erreur = déplacement sur la
surface d’erreur en suivant la ligne de plus grande pente
OMP 20171107 pascal.dayre@enseeiht.fr 28/56
Algorithme de rétropropagation standard
● Règle du « delta généralisé » : usuellement un terme d’inertie (momentum) est rajouté pour une descente de gradient sans oscillation :
en remplaçant (17) par
Source : Le perceptron multicouche et son algorithme de rétropropagation des erreurs - Marc Parizeau (2014)
α
i kj
y i(n) x w ji (n) y j(n) x wkj (n)
i j
y i(n) x w ji(n) e j (n)=Y j− y j(n)
OMP 20171107 pascal.dayre@enseeiht.fr 29/56
Evitez l’apprentissage localisé !
● Choisissez une bonne valeur pour le pas d’apprentissage et le terme d’inertie (momemtum) !
– Pas/taux d’apprentissage : vitesse de descente
– Momentum : limite la plasticité de l’apprentissage vis à vis d’une seule donnée (erronée)
● Présenter les données d’apprentissage aléatoirement à chaque itération pour éviter un apprentissage et désapprentissage local !
OMP 20171107 pascal.dayre@enseeiht.fr 30/56
Comment trouver la bonne topologie du réseau de neurone ?
=> 2 solutions : résolution mathématique ou exploration des topologies
● Il faut trouver une topologie adaptée à la complexité du modèle recherché (attention à la sous-modélisation et à la sur-modélisation)
● Il faut trouver les bons paramètres pour l’apprentissage de chaque réseau de neurone.
OMP 20171107 pascal.dayre@enseeiht.fr 31/56
Quelle est la bonne topologie de mon réseau ?
Recherche de F(X, w)=Y dans l’espace des fonctions de
avec x la dimension du vecteur X des entrées du RN
y la dimension du vecteur Y des sorties du RN
p le nombre des paramètres du RN de l couches et de n(i) paramètres par couche i : p =
=> la topologie doit être en adéquation avec la complexité de la fonction recherchée
Source http://scikit-learn.org
ℝx xℝpdansℝ y
∑i=2
l
n(i)(1+n( i−1))
Sous-dimensionnement Bon dimensionnement Sur-dimensionnement
Attention : le sur-dimensionnement du RN rend possible le sur-apprentissage (over-fitting) avec conséquence une mauvaise généralisation !
TODO : expliquer pourquoi 3 jeux de donnees. Un jeu de données utilisés pour la construction du modele ne peut pas etre utiliser pour la validation.
C’est un principe d’analyse de données.
Les jeux apprentissage et stop utilisées pour la construction du modele.=> il faut un jeu de generalisation
Rq : nb couche intermediaire. Representation lineairement independante. Lineairement independant ??
OMP 20171107 pascal.dayre@enseeiht.fr 32/56
Un code de RN (ex : un simulateur tel que YANNS avec une grammaire de RN)
NoNeurons=27;
Neurons[1..17] {
TransfertFn=Linear;
NoLayer=L1; }
Neurons[18..26] {
TransfertFn=Sigmoid;
NoLayer=L2; }
Neurons[27] {
TransfertFn=Linear;
NoLayer=L3; }
Inputs=[1..17];
Outputs=[27];
Bias {
Target=[18..26];
}
Connections {
Source=L1;
Target=L2; }
Connections{
Source=L2;
Target=L3; }
SCRIPT {
PATH=".\";
LEARNING="jeu.learn.txt";
STOP="jeu.stop.txt", bestNetwork;
TEST="jeu.test.txt";
}
LEARNING {
Algorithm=BACKPROPAGATION(online, 0.5);
AllWeightsInit=Uniform(-0.1, 0.1);
Momentum=0.0001;
NOMAXSTEP=1000;
MinLearningError=0.0000001;
MinStopError=increase;
MAOStopError=5;
Save="jeu.sortie.dsc";
Use="use.set.txt";
}
Boné, R & Crucianu, M & Asselin de Beauville, Jean-Pierre. (2017). Yet Another Neural Network Simulator.
OMP 20171107 pascal.dayre@enseeiht.fr 33/56
Quand arrêter l’apprentissage ?
● Minimisation de l’erreur de la généralisation
● Erreur quadratique sur la base de généralisation (stop) : elle consiste à minimiser la somme des carrés des erreurs entre la sortie du réseau et la valeur réelle de la sortie sur le corpus de généralisation
● Plusieurs conditions d’arrêt :
– OMAXSTEP=1000; // Arrêt de l’apprentissage de 1000 itérations sur le corpus d’apprentissage
– MinLearningError=0.0000001; // Arrêt de l’apprentissage si l’erreur sur le corpus d’apprentissage devient inférieur à 0.0000001
– MinStopError=increase; // Arrêt de l’apprentissage si l’erreur de sur le corpsus de généralisation/stop augmente
– MAOStopError=5; // Moyenne mobile des 5 dernières erreurs calculées sur le corpus de stop
OMP 20171107 pascal.dayre@enseeiht.fr 34/56
Quelle volume de données est nécessaire à l’apprentissage ?
Une règle empirique :
● Il faut 5 à 10 tuples <X,Y> (<entrée,sortie>) pour ajuster chaque poids
● p le nb paramètres du RN de l couches et de n(i) paramètres par couche i :
p = soit p=82 pour un RN 5 entrées/10 neurones en couche cachée/2 sorties
● Il faut donc un corpus d’apprentissage d’au moins 5x83 tuples
● Bonne représentation de l’espace des entrées par le corpus d’apprentissage et du corpus de généralisation
=> complexité pour l’apprentissage d’un RN : nb données * nb itération * coût une rétropropagation
∑i=2
l
n(i)(1+n( i−1))
w i
OMP 20171107 pascal.dayre@enseeiht.fr 35/56
Que faut-il faire si ça n’apprend pas ?● Analyser le processus/phénomène à étudier
– Est-ce les bonnes entrées ?
Attention : les entrées sur les erreurs sont multiplicatives. Enlever les entrées peu contributives
– Est-ce les bonnes sorties ?
● La mise en œuvre des Rns– Assez de données couvrantes ?
– Bonne distribution du corpus d’apprentissage et du corpus de généralisation
– Changer la fonction d’activation
– Choix du taux d’apprentissage et du momentum
● La nature des RN– L’apprentissage : descente de gradient ?
– Nature de la fonction ?
Expliquer les différences entre les fn d’activation.Pourquoi la RELU est utiliser dans les archi profond, car elle permet de propager la quantification du neurone aux couches suivantes
OMP 20171107 pascal.dayre@enseeiht.fr 36/56
Rechercher la meilleure topologie
● Celle qui donne la meilleure généralisation● Explorer des topologies
– Nb couches et nb de neurone limités
– Explorer aussi les entrées ! Limiter le nombre d’entrée.
● Analyser les résultats (vérifier si l’apprentissage a pu se dérouler correctement, ...)
● Rq :– Le nb de neurone intermédiaire m est généralement compris en n/2 et
2n avec n, le nb d’entrée
– Pour un classement, m ≥ nombre de classes (linéairement indépendantes)
OMP 20171107 pascal.dayre@enseeiht.fr 37/56
Méthode pour la recherche du meilleur réseau entraîné (complexité?)
1. Identification des données en entrée et en sortie (corpus d’apprentissage et corpus de généralisation)
2. Normalisation de ces données
3. Identification des paramètres optimisant l’apprentissage tels que les fonctions d’activation, taux d’apprentissage, momentum
4. // Recherche de la topologie plus adaptée
5. Itération sur les topologies de RN (de 2..4 couches, de 1..30 neurones par couches)– Itération (facultative ?) sur quelques paramétres à optimiser (fonctions d’activation, , taux
d’apprentissage, momentum) si nécessaire1. apprentissage du réseau (cf. slide )
6. Analyse des résultats (généralisations)
7. Identification, validation et (raffinement/optimisation?) du réseau optimal
8. Dénormalisation des données en sortie.
OMP 20171107 pascal.dayre@enseeiht.fr 38/56
Synthèse sur l’outil des Rns : quelle méthode pour la recherche ?
● Un estimateur de fonction boîte noire définie par ses entrées et ses sorties
● Modélisation d’un processus par une fontion● Nécessité de bien comprendre les entrées et le sorties du
processus étudié (connaissance à priori des données)● Intérêt : besoin de peu de données. Puissance de calcul moyenne.● Limitation des Rns : le « malheur d’un grand nombre de
paramètre » = les erreurs sur les paramètres sont multiplicatives !!
=> les Rns sont limitées à des modèles ayant peu de paramètres pouvant être les variables explicatives du processus étudié avec une bonne précision (cf. radio-thermomètre).
OMP 20171107 pascal.dayre@enseeiht.fr 39/56
Espace d'entrée
X
Extraction
des
primitives
Espace des primitives
Y
Système
de
décision
Espace des décisions
D
Processus de la reconnaissance de formes
Machine Learning vs. Deep Learning
T. Arti `eres (ECM, LIF-AMU) Deep Learning July 5, 2017 14 / 58
Perceptron 3 couches
Deep learning
Machine Learning vs. Deep Learning
T. Arti `eres (ECM, LIF-AMU) Deep Learning July 5, 2017 14 / 58
Perceptron 3 couches
Deep learning
Caractéristique/forme bas niveauEx : pixel, lettre
Caractéristique/forme haut niveau de plus en plus synthétique (espace de représentation de plus en plus petit)Ex : objet, sequence de mot
Feature extraction : une hiérarchie
Caractéristique/forme niveau moyenEx : trait, mot
OMP 20171107 pascal.dayre@enseeiht.fr 43/56
Méthode
● Apprentissage profond : extraction des représentations et des caractéristiques. Yann Lecunn
● On part des données brutes● Ingénierie des primitives/caractéristiques (feature engineering)●
● Feature extraction / primitives/motif/forme● => paramètre fixe● Presenter exemple: son/spotify -
https://www.ibm.com/developerworks/community/blogs/jfp/entry/Feature_Engineering_For_Deep_Learning?lang=en
● Presenter exemple pour image
OMP 20171107 pascal.dayre@enseeiht.fr 44/56
Différentes types de couches, des architectures variées● Fn d’activation Rectified linear unit (ReLU)
=> suppression des valeurs négatives
● La convolution (cf. filtrage d’image
-passe bas, passe haut, moyen)
● Max pooling, Mean pooling, Sum pooling,
… (sous-échantillonnage)
● Fully Connected layer cad un perceptron
pour la classification
● https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
● http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/
● https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/
OMP 20171107 pascal.dayre@enseeiht.fr 45/56
CNN (Convolution Neural Networks) ou Convnet : The LeNet Architecture (1990s)
● Reconnaissance visuelle
● shift invariant or space invariant artificial neural networks (SIANN)
● Apprentissage des poids des filtres de convolution
● L’hyper-paramètre de la convolution : la taille du filtre
● Par le pooling, indépendance à la rotation
● Par la convolution, indépendance à la translation
source : https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
OMP 20171107 pascal.dayre@enseeiht.fr 46/56
Deep Learning
An image of a traffic sign is filtered by 4 5×5 convolutional kernels which create 4 feature maps, these feature maps are subsampled by max pooling. The next layer applies 10 5×5 convolutional kernels to these subsampled images and again we pool the feature maps. The final layer is a fully connected layer where all generated features are combined and used in the classifier (essentially logistic regression). Image by Maurice Peemen.
● Source : https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/
OMP 20171107 pascal.dayre@enseeiht.fr 47/56
CNN : a tiny VGG Net ● FC : Fulll Connected
Source: http://cs231n.github.io/convolutional-networks/, http://cs231n.stanford.edu/
● Honglak Lee, et al, “Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations” (link)
Recent convNets architectures
I Standard convNets
x i = F i (x i− 1 )
[He et al, CVPR 2016] Thomas Pellegrini
DenseNets: dense blocks
He et
al, CVPR 2016
Thomas Pellegrini
OMP 20171107 pascal.dayre@enseeiht.fr 50/56
Feature engineering (système de recommandation musicale de Spotify)
MP : Max Pooling
Couche d’entrée : spectre de l’analyse de Fourier
Source :https://www.ibm.com/developerworks/community/blogs/jfp/entry/Feature_Engineering_For_Deep_Learning?lang=en, http://benanne.github.io/2014/08/05/spotify-cnns.html
Feature extraction : structure du sous-réseau gelé
Apprentissage :Modification des poids
OMP 20171107 pascal.dayre@enseeiht.fr 51/56
Comment entraîner un CNN ?The overall training process of the Convolution Network may be summarized as below:
Step1: We initialize all filters and parameters / weights with random values
Step2: The network takes a training image as input, goes through the forward propagation step (convolution, ReLU and pooling operations along with forward propagation in the Fully Connected layer) and finds the output probabilities for each class.
Lets say the output probabilities for the boat image above are [0.2, 0.4, 0.1, 0.3]
Since weights are randomly assigned for the first training example, output probabilities are also random.
Step3: Calculate the total error at the output layer (summation over all 4 classes)
Total Error = ∑ ½ (target probability – output probability) ²
Step4: Use Backpropagation to calculate the gradients of the error with respect to all weights in the network and use gradient descent to update all filter values / weights and parameter values to minimize the output error.
The weights are adjusted in proportion to their contribution to the total error.
When the same image is input again, output probabilities might now be [0.1, 0.1, 0.7, 0.1], which is closer to the target vector [0, 0, 1, 0].
This means that the network has learnt to classify this particular image correctly by adjusting its weights / filters such that the output error is reduced.
Parameters like number of filters, filter sizes, architecture of the network etc. have all been fixed before Step 1 and do not change during training process – only the values of the filter matrix and connection weights get updated.
Step5: Repeat steps 2-4 with all images in the training set.
https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
OMP 20171107 pascal.dayre@enseeiht.fr 52/56
Comment construire mon premier reseau profond
1. Set up ML package Environment
2. Data Preprocessing
3. Network architecture
4. Training and Hyper-parameter tuning:
5. General tips and points:
https://www.quora.com/How-do-I-build-and-run-my-first-deep-learning-network
OMP 20171107 pascal.dayre@enseeiht.fr 53/56
Apprentissage non supervisée des formes pour l’apprentissage profond
● http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Recommended_Readings
OMP 20171107 pascal.dayre@enseeiht.fr 54/56
Problèmes des réseaux profonds
● Explosion des topologies possibles (nb couches, type de couche)
● La découverte de la bonne topologie du réseau est un problème de recherche
● Optimisation plus complexe avec les hyper-paramètres (taille des filtres de convolution, des fenêtre et du type de polling)
● Explosion des données d’apprentissage à annoter par un expert (on passe de quelques centaines avec les perceptrons à plusieurs milliers)
● Explosion des besoins de calcul● Problématique de l’apprentissage
OMP 20171107 pascal.dayre@enseeiht.fr 55/56
Apprentissage profond, quelle mise en œuvre ?● Trouver la bonne architecture...un combinatoire exponentiel● Tout est dans l’ingénierie des primitives (feature engineering)● Dans les faits, ce n’est pas tout à fait boîte noire. Il faut analyser quelle est la
hiérarchie de caractéristiques à extraire qui vont servir d’entrée à notre algo de décision/de classification (et comment l’extraire)
● Rechercher dans la littérature les réseaux ou les portions de réseaux extracteurs des primitives/formes/caractéristiques des données d’entrée (image, son, texte, …)
● Trouver si possible des extracteurs déjà entraînés● Qu’est ce que c’est que de l’extraction de forme d’un ensemble de mesure (cf.
REX3) ?● Puis-je faire de la recherche par les données sans comprendre mon processus
avec l’apprentissage profond ?● Structurer des données non structurées ?● Recherche des caractéristiques de données brutes sans analyse/pré-traitement
d’un expert ?
OMP 20171107 pascal.dayre@enseeiht.fr 56/56
Vos questions, vos retours d’expériences ?