Télécharger le fichier pdf d’un mémoire de fin d’études
Apprentissage profond
Le reseau de neurones artificiel est un algorithme d’apprentissage automatique qui s’inspire de quelques aspects des neurones animaux (voir Figure 2.1 ). Il s’agit d’un des plus puissants classifieurs aujourd’hui. Il est mod´elis´ math´ematiquement par un r´eseau dans un graphe, plus ou moins complexe, hi´erarchique sous forme de couches dont les nœuds el´ementaires sont appel´es neurones.
Il est compos´e g´en´eralement de trois types de couches : la couche d’entr´ee (input layer), couche(s) cach´ee(s) (hidden layer) et la couche de sortie (output layer). La couche d’entr´ee est compos´ee de neurones qui correspondent aux caract´eristiques des donn´ees d’entr´ee repr´esent´ees par une grille multidimensionnelle (par exemple la matrice de pixels de l’image ou la forme vectorielle de la donn´ee). La couche de sortie repr´esente les r´esultats de la tache assign´ee au r´eseau. Prenons l’exemple d’une classification de 1 000 classes, les 1 000 neurones de la couche de sortie repr´esentent la probabilit´e ou le score pour chaque classe. Les couches cach´ees sont les couches interm´ediaires entre l’entr´ee et la sortie. L’ensemble du r´eseau ainsi form´e est g´en´eralement vu comme une boˆıte noire.
La taille d’un r´eseau de neurones est mesur´ee par le nombre de couches, nombre de nœuds et la fa¸con les nœuds/neurones sont connect´es (voir la figure 2.2 ).
Theorem 2.1. Th´eor`eme d’Hornik [36, 15, 29, 16] : Un r´eseau de neurones avec 1-couche cach´ee poss`ede la propri´et´ d’approximation universelle, c’est-a`-dire qu’il peut approximer n’importe quelle fonction continue avec une pr´ecision arbitraire, a` condition de disposer de suffisamment de neurones sur sa couche cach´ee.
Comme on peut faire approximer n’importe quelle fonction continue avec un r´eseau de neurones a` 1-couche cach´ee (cf th´eor`eme d’Hornik), l’id´ee de l’apprentissage profond vient du fait d’augmenter le nombre de couches cach´ees du r´eseau, d’o`u le terme profond, pour pouvoir apprendre un niveau d’abstraction plus elev´e [5, 14].
Historique des r´eseaux de neurones
Les grandes lignes de l’histoire des r´eseaux de neurones sont les suivantes :
— Le r´eseau de neurones est apparu dans les ann´ees 1940 sous le nom ”multilayer perceptrons” (perceptron multicouche) par [5, 68] les travaux de Warren McCulloch et Walter Pitts qui ont montr´e que l’on pouvait approximer n’importe quelle fonction arithm´etique ou logique, avec des perceptrons multicouche”.
— Puis, de 1958-1969 les recherches sur les perceptrons multicouches se sont multipli´ees avec l’apparition des premiers ordinateurs qui ont permis de faire plusieurs calculs.
— 1969 : les perceptrons ne peuvent faire que des classifications binaires et par contre ils rencontrent des difficult´es avec la classification de la porte logique XOR.
— 1980 : ach`evement de l’algorithme de r´etro-propagation par David E Rumelhart, Geoffrey E Hinton, and Ronald J Williams [45, 65] .
— Yann LeCun a popularis´e les r´eseaux de neurones avec LeNet le premier r´eseau de neurones convolutif pour la reconnaissance de caract`ere en 1998 [50, 45] .
Fonctionnement
Un neurone biologique se caract´erise par (cf figure 2.1) :
— synapse : le point de connexion avec les autres neurones,
— dendrites : les points d’ entr´ees du neurone,
— axone : le point de sortie,
— le noyau : qui active les sorties en fonction des stimulations en entr´ee.
Par ressemblance a` un neurone biologique, un neurone artificiel se d´efinit par (cf fi-gure 2.1) :
— un vecteur poids w de mˆeme taille que les signaux d’entr´ees,
— des signaux d’entr´ees X = x1, …, xn,
— une fonction d’activation g,
— le neurone calcule le produit scalaire entre les signaux d’entr´ee et le vecteur poids en ajoutant un biais. Le r´esultat est appliqu´e dans la fonction d’activation. n s = g(X.w + b) = g(X xi ∗ wi + b) (2.3)
s : la valeur ou ´etat interne, ou score interne du neurone.
b : variable biais du neurone.
La fonction d’activation g sert `a introduire une op´eration de non-lin´earit´ apr`es l’op´eration de produit scalaire (cf ´equation 2.3). Cette non-lin´earit´ permet d’avoir diff´erentes variations de l’´etat interne sur un objet de la mˆeme classe (voir un aspect particulier de la classe) [45]. Les fonctions d’activation les plus utilis´ees sont :
— sigmoid : σ(x) = 1 x 1+e
— tanh : tanh(x) = e x −e −x e x +e −x
— Rectified-Linear unit (ReLU) : relu(x) = max(0, x)
Les mod`eles tanh, sigmo¨ıde, ReLU, sont bien adapt´es aux algorithmes d’optimisation comme la descente stochastique de gradient (cf. ci-dessus) car elles sont diff´erentiables. Mais actuellement c’est le ReLU qui est le plus utilis´e dans les r´eseaux de neurones profonds a` cause d’un probl`eme que l’on appelle ”vanishing gradient”. Comme les autres fonctions d’activation (sigmo¨ıde, tanh ) produisent des valeurs entre 0 et 1, le gradient va se tendre vers 0 au fur et a` mesure que l’on a des r´eseaux profonds (plusieurs couches). Le ReLU permet d’amortir le ”vanishing gradient” car sa valeur de sortie est invariante si x est >0. De plus le calcul des exponentielles pr´esent dans les fonctions sigmo¨ıde et tanh est lent par rapport au calcul du max() dans ReLU qui est donc pr´ef´er´.
Ce sont (a) la valeur du vecteur poids et (b) le biais pour chaque neurone qui seront les hyper-param`etres estim´es pendant la phase d’apprentissage.
Pour pr´edire a` partir d’un mod`ele de r´eseaux de neurones artificiels (cf. ´equation 2.2), on parcourt le r´eseau en partant de la couche d’entr´ee puis, on calcule successivement les valeurs des ´etats internes de chaque neurone dans les couches cach´ees jusqu’`a la couche de sortie. Par la suite on applique aux valeurs internes de la couche de sortie ce qu’on appelle une fonction d’entropie. Par d´efinition, une fonction d’entropie est fonction math´ematique qui sert `a transformer les valeurs des ´etats internes des neurones de la couche de sortie en probabilit´e. La pr´ediction est la classe correspondant au neurone qui poss`ede la plus grande probabilit´e. G´en´eralement on utilise softmax entropie ou sigmo¨ıde est utilis´ee avec comme fonction d’erreur respective softmax loss ou sigmoid entropy loss. sof tmaxP K j=1 esj = esy (2.4)
sof tmax loss = − log(sof tmax) 1 + es K σ = 1 (2.6)
sigmoidEntropyLoss = − X[yk log(σk) + (1 − yk) log(1 − σk)]. (2.7)
K : nombre de classes
y : valeur r´eelles des classes, de taille k, dont la valeur est 1 si yk est la classe de l’entr´ee et 0 sinon pour k variant de 1 `a K
s : score obtenu par la variable d’entr´ee (image i) sur la couche de sortie , vecteur de mˆeme taille que y sy : valeur du score a` l’indice de y o`u il y a un 1 .
σ : sigmoid, vecteur de taille K, car on fait une op´eration sur les el´ements du vecteur. La diff´erence entre softmax et sigmoid est que softmax est normalis´e alors que sigmoid ne l’est pas.
Par exemple dans le cas du mod`ele pr´esent´ dans la figure 2.2, nous avons une entr´ee X de taille 3, deux couches cach´ees h1 et h2 de taille 4 et une couche de sortie de taille 1. Cet exemple correspond a` une classification binaire donc la sortie est soit 0 soit 1. Si on veut pr´edire a` partir de ce r´eseau, on suit l’´equation 2.10.
h1 = relu(X ∗ W 1 + b1) (2.8)
h2 = relu(h1 ∗ W 2 + b2) (2.9)
predit = sof tmax(relu(h2 ∗ W 3 + b3)) (2.10)
Diff´erence par rapport au cerveau humain
Bien que les r´eseaux de neurones artificiels soient puissants dans le domaine de l’intel-ligence artificielle, voici quelques remarques sur les r´eseaux de neurones artificiels et leurs limites par rapport au cerveau humain :
— Un cerveau humain poss`ede environ 100 milliards de neurones et 100 trillions de connexions (synapses), alors qu’il faut encore une super machine pour pouvoir sup-porter un tel nombre de neurones artificiels.
— Les donn´ees d’entr´ee du cerveau sont les 5 sens mais non un vecteur ou une matrice.
— Un enfant n’a pas besoin d’apprendre en regardant 100 000 images de sandwich pour savoir s’il s’agit d’un sandwich ou pas (une classification d’images), alors que les algorithmes d’apprentissage automatique oui.
R´eseaux de neurones convolutif
Le r´eseau de neurones convolutif (Convolutional Neural Network ou ConvNet ou CNN) est tr`es similaire `a un r´eseau de neurones du type de ceux que nous avons evoqu´e pr´ec´edemment. Les ConvNet sont tr`es utilis´es dans le domaine de la vision par ordinateur si on n’´evoque qu’ imageNet, et pascal voc qui sont des probl`emes de d´etection et de classification d’objets dans une image. Les CNN ont aussi beaucoup de succ`es dans les reconnaissances faciales, la d´etection d’objets tr`es utilis´ee dans les robots et les voitures automatiques. En gros, tout ce qui concerne la vision par ordinateur et les images. De plus on peut utiliser les convNet dans tous les probl`emes ayant en entr´ee une matrice. Par exemple, Gehring [24] a utilis´e une matrice de texte dans une tˆache de traduction automatique de langue. Le r´eseau de neurones convolutif est sp´ecialis´ dans le traitement des donn´ees matricielles et du signal.
On note que le terme ”convolutional” vient de l’op´eration de convolution de matrices utilis´ee dans le traitement de signal. Dans les convNet, 2 nouveaux types de couche ont et´ ajout´es dans le r´eseau : la couche convolution (convolutional layer) et la couche de mise en commun (pool layer). Nous les d´ecrivons dans les parties suivantes.
Couche de convolution
Dans la couche de convolution, au lieu de faire un produit scalaire entre les valeurs internes et les poids de chaque neurone (´equation 2.3), on applique un produit de convolu-tion. Ce produit de convolution sert `a extraire des caract`eres sp´ecifiques dans le signal ou de l’image trait´ee. Dans un r´eseau de neurones convolutif on applique une succession de filtres de convolution dans le but d’extraire petit `a petit les informations caract´eristiques sur l’image.
L’op´eration de convolution est illustr´ee dans la figure 2.4. On la calcule par l’´equation 2.11 o`u S est le produit de convolution r´esultant [18]. M′N′R C S = X X X X I(i+k),(j+l)F(R+i−1),(C−j+1) (2.11)
avec
I : matrice de pixels repr´esentant l’image
F : matrice du filtre de convolution `a appliquer sur l’image
S : r´esultante du produit de convolution , appel´ee feature map
R : nombre de lignes de la matrice filtre
C : nombre de colonnes de la matrice filtre
M ′ : M −R + 1 , avec M est le nombre de lignes de la matrice d’images, et P le nombre de P pas du filtre suivant la ligne et colonne
N ′ : NP−R + 1, avec N le nombre de colonnes de la matrice d’images.
Couche de mise en commun
La couche de mise en commun est une sorte de sous ´echantillonnage non lin´eaire. Elle sert `a r´eduire la dimension spatiale dans un r´eseau ConvNet.
C’est une couche qui prend en entr´ee chaque ”feature map” 1 et la simplifie. Par exemple le ”maxpooling” prend une r´egion et donne en sortie le maximum de cette r´egion (figure 2.5).
Par exemple, si la couche cach´ee `a partir des ”feature map” est de 4×4, en prenant une r´egion de 2×2 pour le ”maxpooling”, il ne restera plus en sortie que 2×2 unit´es.
1. feature map : r´esultat du produit de convolution
Transfert d’apprentissage
Le transfert d’apprentissage [45] est une strat´egie qui cherche a` optimiser les perfor-mances sur une machine d’apprentissage a` partir des connaissances et d’autres tˆaches faites par une autre machine d’apprentissage [90].
En pratique d’apr`es Yosinski et al. [92] , entraˆıner un mod`ele ConvNet depuis le d´ebut (avec les initialisations) n’est pas recommand´ parce que l’entraˆınement d’un mod`ele de ConvNet n´ecessite une grande masse de donn´ees et prend beaucoup de temps. Par contre, il est plus usuel d’utiliser des mod`eles de ConvNet d´ej`a entraˆıner et de les r´eadapter pour le probl`eme, c’est ce que l’on appelle le transfert d’apprentissage. Il s’agit de transf´erer l’apprentissage d’un mod`ele traitant un probl`eme vers un autre type de probl`eme.
Il y a deux types de transfert d’apprentissage.
— L’extraction de variables du ConvNet : ici, le ConvNet est utilis´e comme un extracteur[79, 45], c’est `a dire qu’un vecteur est extrait a` partir d’une certaine couche du mod`ele sans rien modifier a` sa structure ou son poids et le vecteur pr´ec´edemment extrait est utilis´e pour une nouvelle tˆache.
— Le r´eglage fin du mod`ele de ConvNet [78, 81, 38, 55] : ici, le nouveau ConvNet est initialis´e avec les poids et la structure du mod`ele pr´e-entraˆın´e `a utiliser. La structure du mod`ele pr´e-entraˆın´e est l´eg`erement modifi´ee pour la nouvelle tˆache, et enfin le nouveau mod`ele est entraˆın´e pour la nouvelle tˆache.
R´eseau de neurones r´ecurrents et ”long short-term me-mory”
Les convNets et r´eseaux de neurones connect´es sont con¸cus pour traiter des probl`emes dont les variables en entr´ee ont une instance ind´ependante dans le temps. Par contre, il y a certains probl`emes o`u l’ordre des ev´enements compte. Comme dans le cas des traitements vid´eo qui sont des s´equences d’images dans le temps, ou des traitements de textes qui sont une suite de mots successifs et interd´ependants. Pour cela, le r´eseau de neurones r´ecurrent (RNN, R´ecurrent Neural Network), une autre extension du r´eseau de neurones connect´e, a et´ introduit. Le RNN est un r´eseau de neurones avec m´emoire o`u les informations du pass´e importent dans l’algorithme. Donc il est fait pour traiter le probl`eme de donn´ee s´equentielle.
Un simple RNN se construit juste en prenant la couche sortie de la prec´edente ´etape et le concat´en´ avec l’entr´ee de l’´etape courante. Tout cela dans le but d’avoir la pr´ediction de l’´etape courante (´equation 2.12), d’o`u le nom de r´ecurrent pour la r´ecurrence.
yt = fW (xt, yt−1) (2.12)
xt : entr´ee a` l’instant t
yt−1 : sortie pr´edite pour l’instant t-1
yt : sortie pr´edite pour l’instant t
f : la fonction d’activation dans le r´eseau de neurones connect´es (tanh, sigmo¨ıde, relu).
Dans le cas g´en´eral on n’utilise pas cette forme simple de RNN car cette forme ne suffit pas pour avoir les meilleurs r´esultats. De plus, l’information apport´ee par la valeur de sortie a` t − 1 n’est pas tr`es riche [43]. Ainsi, au lieu d’utiliser la valeur de sortie de l’instant t-1, on met en param`etres les valeurs de la couche cach´ee a` t-1 qui sont plus signifiantes en termes neuronaux. [77, 13, 44]. La formulation de RNN est dans l’´equation 2.14
ht = fW (xt, ht−1) (2.13)
yt = W.ht (2.14)
Apprentissage profond et imagerie m´edicale
De nombreuses techniques d’acquisition permettent d’obtenir des images internes du corps humain comme les imageries par r´esonance magn´etique (IRM) en 1971, les ultrasons en 1952, les scanners en 1979 et les tomographies d’´emission monophonique et par ´emission de positons, etc. Ces repr´esentations num´eriques du corps humain doivent ˆetre interpr´et´ees pour en faire des diagnostics qui sont g´en´eralement longs et prennent beaucoup de temps aux m´edecins.
Les chercheurs ont construit des syst`emes pour automatiser les analyses. Initialement, l’analyse des images m´edicale ´etait faites avec des traitements d’image basiques sur des pixels comme filtre, d´etection de contour, dilatation de r´egion, binarisation, ´erosion ou avec des m´ethodes de mod´elisation math´ematique (cf. cours [22])
A partir de ces techniques les experts font une r´ecurrence de type ”si .. alors … sinon” sur l’image trait´ee pour pouvoir automatiser les analyses. Il ´etait difficile de travailler avec ces images `a cause de la r´esolution de l’image en ce temps-l`a o`u de l’importance du bruit interf´erentiel dˆu aux mat´eriels d’acquisition utilis´es ou juste parce que les informations int´eressantes sur l’image ´etaient petites voire mˆeme microscopiques.
Apr`es l’apparition de l’apprentissage automatique, il a ´et´e possible de r´ealiser des classifications et segmentations plus ou moins bonnes et automatiques. Mais la proc´edure est encore difficile car il faut faire manuellement beaucoup d’ extraction de variables clefs feature engenering pour avoir les caract´eristiques pertinentes des donn´ees (comme les points d’int´erˆet de SIFT , histogramme de couleurs, GIST) [61, 87] avant de les mettre dans un classifieur et un r´egresseur (SVM, logistique r´egression, Randomforest ) pour am´eliorer la performance de ces algorithmes.
Actuellement avec l’apprentissage profond, on arrive `a automatiser la phase d’extrac-tion de variables clefs, l’apprentissage profond est le choix le plus tendance dans l’analyse des images m´edicales. Dans la suite nous allons voir quelques utilisations de l’apprentissage profond.
Classification
La classification est l’application la plus directe de l’apprentissage profond non seule-ment dans l’imagerie m´edicale mais aussi dans d’autres domaines aussi. Dans les examens, on utilise la classification pour d´etecter la pr´esence d’une maladie, d’un organe dans une ou une s´erie d’images. On utilise g´en´eralement du transfert d’apprentissage car il n’y a pas de donn´ees suffisantes pour entraˆıner un mod`ele dans la plupart dans cas. Par exemple, Antony et al. [4] a obtenu une efficacit´ (accuracy) 4 de 57.6% pour d´eterminer les grades de l’entorse du genou en utilisant un transfert d’apprentissage de type r´eglage fin avec le mod`ele d’alexNet. Kim et al. [39] a obtenu une efficacit´ (accuracy) de 70.5% avec transfert d’apprentissage pour l’extraction de vecteur caract´eristique pour la classification cytopathologie. D’autres ont r´e-impl´ement´es leurs propres architectures de r´eseau de neurones ConvNet au lieu de faire un transfert d’apprentissage. Les r´esultats ne sont satisfaisants que si l’on dispose de suffisamment de donn´ees [92, 81, 67].
D´etection et localisation
Il s’agit de localiser un el´ement (organe, l´esion) dans le temps (suivre) et dans l’espace de l’image. D’habitude on ajoute un contour comme un cadre ou un cercle, ou mieux, une courbe qui convient bien `a l’objet d’int´erˆet cadre de contour ou (bounding box).
A la diff´erence de la pr´ec´edente classification, la d´etection est plus difficile car on veut des informations beaucoup plus pr´ecises. Le plus grand challenge de la d´etection dans l’imagerie m´edicale c’est la vitesse de la d´etection, la pertinence du cadre de contour et de pouvoir d´etecter les petits el´ements [55, 88] car d’habitude on applique le mod`ele dans un flux d’images (vid´eo) en direct que ce soit en 2D ou en 3D.
Segmentation
La segmentation a beaucoup d’importance en analyse d’image m´edicale surtout dans des domaines sp´ecifiques comme la cardiologie ou la neurologie. Cette segmentation consiste a` d´ecider si un pixel ou voxel appartient `a un el´ement ou son contour. U-Net [73] est un mod`ele de ConvNet sp´ecialement cr´e´ pour faire de la segmentation des images biom´edicales. Son architecture est une succession de couches de convolution avec diff´erentes tailles et filtre down-conv, pour r´etr´ecir, et de crop puis une succession de ”d´econvolution” up-conv pour agrandir et revenir `a la taille initiale de l’image. Si l’on fait passer juste une image dans U-Net on a directement l’image segment´ee a` la sortie. De plus, une extension appel´ee V-Net [60] de U-Net supporte les images 3D.
D´etection de concepts m´edicaux
Dans le cadre de la tˆache Image CLEF 2017, plusieurs m´ethodes ont et´ propos´ees pour identifier les concepts des images. Ce sont des m´ethodes `a base d’apprentissage profond qui ont et´ essentiellement propos´ees pour cette tˆache. Pour repr´esenter les informations visuelles des images, l’utilisation des CNN a et´ fr´equente [17, 56, 2, 83].
D’autres travaux utilisent des m´ethodes plus conventionnelles d’extraction d’infor-mation des images comme SIFT, ”bag of color” [2, 87]. Ils appliquent des m´ethodes de recherche de similarit´e pour identifier les images candidates et extraire les concepts `a partir de ces images candidates. Hassan et al. [28] a d´evelopp´ un mod`ele qui s’appuie sur la notion d’attention visuelle qui pr´esente une am´elioration consid´erable par rapport au simple transfert d’apprentissage de CNN Dans leur mod`ele les auteurs ont combin´e un CNN et un RNN . Le RNN sert `a g´en´erer les concepts un par un a` partir du CNN.
Le tableau 4.3 pr´esente les r´esultats obtenus sur l’ensemble de test de la collection Image CLEF 2017 lorsque la mesure de F1-Score est utilis´ee. Les mod`eles propos´es par des participants `a CLEF sont indiqu´es par une *.
G´en´eration automatique de l´egende des images
C’est apr`es l’apparition de la g´en´eration automatique de l´egende pour des images naturelles que l’on a commenc´ees a` en faire pour les images m´edicales.
Kilisev et al [48] utilise un CNN `a plusieurs erreurs pour d´etecter et d´ecrire une l´esion ou une zone suspecte. Les l´egendes g´en´er´ees sont sur la description visuelle comme la taille, la forme ou la position des l´esions.
Dans le cadre d’image CLEF 2017, les m´ethodes de g´en´eration automatique de l´egendes propos´ees par les participants sont les suivantes :
— Dans [71], les auteurs utilisent la g´en´eration de description par syst`eme d’extraction. Le syst`eme reprend les descriptions des images similaires a` l’image qui est en cours de traitement.
— Les m´ethodes propos´ees dans [70, 2, 28, 53] sont une combinaison d’un CNN et d’un
LSTM ou un SVM 5 pour le langage mod`ele. Leur m´ethode d’apprentissage est par pipeline (cf section 2.3 )
Entre 2015 et 2016 plus de 300 papiers dans le domaine de l’apprentissage profond et du bio-m´edical ont et´ publi´es, la plupart d’entre eux sont sur la segmentation et la d´etection [55] .
Tout au long de ce chapitre, nous avons introduit les concepts de base de l’appren-tissage automatique ainsi que ceux de l’apprentissage profond. Puis nous avons vu les applications de l’apprentissage profond dans le domaine de l’imagerie m´edicale comme les d´etections et segmentations des organes dans une image. En dernier, nous avons fait une ´etude approfondie sur les m´ethodes de g´en´eration automatique de l´egendes pour des images naturelles.
Dans le chapitre suivant, nous appliquons ces connaissances dans l’exp´erience de g´en´eration automatique de l´egende pour des images m´edicales et la d´etection de concepts pour les mˆemes images.
Exploration de la donn´ees
La collection de donn´ees qu’nous avons utilis´ee ´etait d´elivr´ee par l’image CLEF Lab en collaboration avec U.S. National Library of Medicine (NLM ) [40, 19]. La collection contient en total 184,614 images associ´e a` leur propre concept . La collection est s´epar´ee en 3 sous-ensembles :
— les donn´ees d’entraˆınement (training set) contiennent de 164 614 images est avec en tout, 20 463 concepts distincts
— les donn´ees de validation (validation set) contiennent 10 000 images et 7 070 concepts dont 309 de ces concepts ne sont pas inclue dans les concepts du training
— les donn´ees de tests (test set) contiennent 10 000 images ,les concepts sont a` pr´edire.
La table 3.1 pr´esente les caract`eres du training set. Nous avons trouv´e aussi que 3,9% des images du training set et 3,79% des images de la validation n’ont pas de concept.
Nous avons approximativement 10-20 % des images qui sont compos´ees [19] (voir par exemple la figure 3.1 ou ne sont pas des images m´edicales. Cela cr´e´ du bruit dans l’ensemble de donn´ees et rend la tˆache plus difficile, sans la rendre forc´ement plus r´ealiste. Nous avons toutefois conserv´ des images qui sont dans la collection de r´ef´erence pour permettre des comparaisons simples avec les autres ´etudes utilisant les mˆemes donn´ees.
Mod`ele 1 : Oxford VGG19 comme extracteur de variable
Dans ce premier mod`ele d´evelopp´e, nous avons utilis´e le principe d’encodeur-d´ecodeur qui est une strat´egie utilis´ee pour g´en´erer automatiquement les l´egendes des images [89]. Dans notre cas, cette strat´egie a et´ appliqu´e pour la classification multi-label des images. Nous avons d´evelopp´ et un transfert d’apprentissage avec Oxford VGG19 comme mod`ele de CNN de base [81] .
Nous avons choisi parce que l’Oxford VGG19 a d´ej`a fait ces preuves [81] avec 7.3% d’erreur pour la classification d’image sur 1000 cat´egorie ImageNet Large Scale Visual Recognition Challenge (ILVRC 2012 [74]). 4 Comme l’illustre la figure 3.2, le CNN VGG19 contient en total 19 couches, avec une succession de couches de convolution et de mise en commun ; il est facile a` impl´ementer sur caffe, et se finit avec une couche de sortie de 1000 classes. Le VGG19 est fait pour classifier des images dans 1000 classes mono-label. Nous avons donc adapt´e ce r´eseau au probl`eme de classification multi-label que nous souhaitons ici r´esoudre (nous avons 20463 labels).
La cr´eation de ce mod`ele se fait en 2 ´etapes.
La premi`ere ´etape, la phase d’encodage, est d’extraire les vecteurs de repr´esentation des variables pour chaque image. Cette extraction sera r´ealis´ee quelle que soit la prove-nance de l’image (ensemble d’apprentissage, de validation ou de test). Cette r´eduction de dimension permet de gagner beaucoup de temps et d’espace sur le disque. Ce vecteur de repr´esentation se trouve `a l’avant derni`ere couche du VGG19 (fully connected FC7 dans la Figure) ; la couche correspondante dans le r´eseau est compos´ee de 4096 neurones. Ce vecteur r´esume les caract´eristiques de l’image encod´ee, mais il est difficile d’interpr´eter ce vecteur comme le soulignent Sharif et al. [79]. De plus, d’apr`es Bengio et al., entraˆıner un nouveau mod`ele a` partir de ces vecteurs offre des grandes potentialit´es pour des probl`emes reconnaissance ou de classification [7, 14].
Par la suite, la deuxi`eme ´etape consiste a` utiliser ces vecteurs pr´ec´edemment extraits dans un nouveau r´eseau de neurones, phase de d´ecodage, o`u nous traitons le probl`eme de la classification multi-label proprement dite. L’architecture de ce second r´eseau est la suivante : L’architecture du r´eseau est comme suit :
— Couche d’entr´ee : c’est cette couche qui re¸coit les vecteurs de repr´esentation de taille 4096, sortie du pr´ec´edent r´eseau (´etape de codage) ;
— Couche cach´ee : cette couche de taille 20463 que nous avons nomm´ee multi-label layer permet de traiter l’aspect multi-label du probl`eme ;
— Couche d’erreur (sigmoidCrossEntropy loss) : il s’agit d’une couche visant a` opti-
miser le mod`ele. Avec la fonction d’activation sigmo¨ıde sur la couche de sortie, le r´eseau de neurones mod´elise la probabilit´e d’un label lj (voir ´equation 3.2).
Annotation automatique d’image
L’objectif principal de cette tˆache est de cr´eer un mod`ele qui g´en`ere automatiquement les l´egendes des images m´edicales. Bien que les recherche sur ce mˆeme sujet ont toujours et´ destin´ees pour des images naturelles. Grˆace `a la conf´erence imageclef, on a pu ´etendre cette possibilit´e pour des images m´edicales. Dans le but d’am´eliorer les assistances m´edicales en cr´eant un outil d’aide qui analyse/ d´ecrit le contenu des images.
Pour le faire, on a adapt´e une approche par g´en´eration avec l’architecture de base de Vinalys parce que cette m´ethode est plus flexible et adaptative. Dans la partie suivante nous pr´esenterons une br`eve exploration de la donn´ee que nous avons travaill´ee. Apr`es nous passerons en d´etail les pr´etraitements des l´egendes du donn´ee entraˆınement. Enfin, on passera sur une ´etude approfondie du le mod`ele qu’on a utilis´e.
Pr´etraitement des l´egendes
En se concentrant sur les l´egendes dans la donn´ee d’entraˆınement, en leurs ´etats actuels elles sont encore inutilisables car elles sous forme de texte alors on ne peut pas faire des op´erations math´ematiques avec elles. Elles doivent aussi nettoyer, il faut enlever certains contenus ind´esirables pour ne pas fausser les donn´ees d’apprentissages.
Pr´eparation des l´egendes
Dans cette partie, on pr´esente les nettoyages apport´es aux l´egendes. Les l´egendes auxquelles on avait travaill´e pr´esentaient beaucoup d’anomalie `a traiter et qui sont volon-tairement mises par les organisateurs d’images clef pour traiter le probl`eme.
D´etecter les phrases (tokenise) : avec NLTK tokeniser, on a s´epar´ les phrases des l´egendes.
Caract`ere sp´eciaux : telle que les ponctuation, symboles, smiley ont et´ enlev´es, car elles posent des probl`emes au niveau de l’encodage ascii de ces caract`eres. Et les chiffres aussi ont et´ enlev´es.
Etiquettes : on a ajout´e les ´etiquettes
U N K : unknown pour les images qui n’ont pas de l´egende
BOS (begin of sentence) et EOS (end of sentence), au d´ebut et `a la fin de chaque l´egende pour les d´elimiter.
A partir de l`a, on a construit notre dictionnaire de vocabulaire compos´e de vocabulaire anglais et des termes sp´ecifiques en biom´edical. Ce dictionnaire contient 162303 mots y compris les nouvelles ´etiquettes U N K , BOS , EOS .
Repr´esentation vectoriel de mot(word embedding)
Une fois les l´egendes compl`etement nettoy´ees, on transforme les mots en une valeur num´erique. La mani`ere la plus simple de faire cet encodage est d’utiliser un vecteur de sac de mots `a valeur binaire. C’est-a`-dire qu’on met un 1 a` l’indice du mot du vocabulaire dans un vecteur de taille V, la taille du dictionnaire. —V—ELEMENTS z }| { [0,0,…,1,…,0,0]
Cette approche pr´esente deux principaux probl`emes :
— sur la m´emoire : au fur et a` mesure qu’on a un dictionnaire de grande taille,
— sur la cooccurrence de mots : il n’y a pas de notion de cooccurrence, de contexte, de relation entre les mots dans ce syst`eme d’encodage.
Parce que si on prend par exemple la mesure de similarit´e cosinus. Il n’y aurait pas de similarit´e entre deux mots quelque que soit les mots.
mot1 = [0, 0, 0, 0, …, 1, …, 0, 0, 0, 0] le 1 se trouve a` la i-eme position. mot2 = [0, 0, 0, …, 1, …, 0, 0, 0, 0, 0] 1 en j-eme position.
cosine similarite(mot1, mot2) = (mot1.mot2)/||mot1||.||mot2|| donc on aurait 0 de similarit´e car i = j.
Pour r´esoudre ces deux probl`emes, on utilise le word embedding. C’est une technique pour repr´esenter les qualit´es contextuel et ”s´emantique ” des ”mots” dans un vecteur r´eel de dimension r´eduite.
W : mots Rn (3.3)
W : word embedding
Ainsi avec cette application, on peut utiliser des op´erateurs arithm´etiques vectoriels et la similarit´e s´emantique des mots seront gard´ees.
Par exemple : W (”king”) + W (”woman”) = W (”queen”) et similarit´e(W (”king”), W (”woman”)) = 0 Dans notre cas, on a utilis´e le word embedding de pytorch [69], C’est un mod`ele de r´eseaux de neurones a` une couche cach´ee qui prend en entr´ee la taille du dictionnaire vocabulaire 162303 et la sortie la dimension d´esirer, pour notre cas on a choisi n=256.
Mod`ele pour la g´en´eration automatique de l´egende
Notre mod`ele de g´en´eration de l´egende suit toujours l’architecture de base propos´e par Vinalys qui prend le probl`eme en deux modules : le module encodeur d’image avec un r´eseau de neurones et un mod`ele de langue avec une RNN. (Figure 2.9 et 3.7)
Pour le module encodeur d’image, j’ai utilis´e le mˆeme principe que dans la m´ethode deux de la d´etection de concept. Nous avons utilis´e le pr´ec´edent resNet50 comme convNet dont la d´efinition de la derni`ere couche a et´ chang´ee en 256 ; il s’agit de la taille du vecteur repr´esentant un mot sous sa forme vectorielle.
C’est pour dire intuitivement qu’`a chaque ´etape de l’apprentissage du langage-mod`ele, l’encodeur d’image encode l’image avec une repr´esentation d’un mot encore inconnu et c’est le travail du mod`ele de langue de trouver ce mot encore inconnu.
Le module mod`ele de langue est un LSTM a` 2 couche interne qui prend en entr´ee directement l’image pr´ec´edemment encod´ en vecteur de 256 et la sortie est une la repr´esentation vectorielle du mot. Cet LSTM avec multiple couche permet de r´ealiser un traitement hi´erarchique sur les tˆaches temporelles difficiles et de capturer plus natu-rellement la structure des s´equences (la structure des descriptions) [32].
Apr`es, on retransforme les repr´esentations vectorielles des mots pr´edits `a chaque ins-tant du LSTM en vrais mots ou du moins `a leur indice dans le dictionnaire de vocabu-laire. Pour pr´edire le mot suivant, le LSTM prend en param`etre l’image, et les mots d´ej`a pr´edites. (cf ´etat de l’art section 2.3.2 , ´equation 2.24)
Par cons´equent, on peut comparer si les l´egendes pr´edites par le mod`ele est ´egale aux l´egendes r´eelles de l’image (3.7).
L’architecture de mod`ele ´etant mis en place, la question qui se pose maintenant, c’est ”comment on va entraˆıner les deux modules ?”
Est-ce qu’on va entraˆıner seulement le langage-mod`ele et utiliser le module d’encodeur d’image comme simple‘encodeur ? (entraˆınement par pipeline) ou est-ce qu’on va entraˆıner en mˆeme temps les deux modules ensemble ?
Compte tenu des r´esultats des deux m´ethodes de d´etection de concepts o`u on a beau-coup travaill´e avec les r´eseaux de neurones convolutifs, ces derniers repr´esentent l’encodeur d’image dans un mod`ele g´en´eration de l´egende (cf r´esultats dans le tableau 4.3 ).
L’approche par extraction de variable n’a pas eu de tr`es bons r´esultats pour la d´etection de mˆeme si on a entraˆın´e le r´eseau tr`es longtemps Par contre avec la m´ethode de r´eglage fin, on a eu une petite am´elioration mˆeme si on ne l’a entraˆın´e qu’avec quelques it´erations.
Si on part de ces hypoth`eses, une approche par r´eglage fin dans la partie encodeur d’image est le mieux adapt´e pour notre donn´ee ( de plus les mod`eles de convNets qu’on a utilis´es ´etaient entraˆın´es `a partir d’images naturelles et non d’images biom´edicales.)
Donc si on revient `a notre mod`ele de g´en´eration automatique de l´egende, on a opt´e pour l’apprentissage de bout en bout. C’est-`a-dire qu’on fait a` la fois un r´eglage fin du r´eseau de neurones convolutif et un apprentissage du LSTM en mˆeme temps.
L’ensemble du mod`ele est alors entraˆın´e pour minimiser la fonction log de vrai-semblance (cf ´equation 3.4). Cela permet au mod`ele de langue de chercher a` chaque instant le mot suivant sachant l’image et les mots pr´ec´edemment pr´edits. X Lossi = log P (wt|I(i), wt−1…wt−j ) (3.4)
|
Table des matières
1 Introduction
1.1 Contribution
1.2 Organisation du document
2 Etat de l’art ´
2.1 Apprentissage automatique
2.1.1 Classification
2.1.2 Fonction d’erreur et optimisation des hyper-param`etres
2.1.3 Descente stochastique de gradient
2.2 Apprentissage profond
2.2.1 Historique des r´eseaux de neurones
2.2.2 Fonctionnement
2.2.3 Diff´erence par rapport au cerveau humain
2.2.4 R´eseaux de neurones convolutif
2.2.4.1 Couche de convolution
2.2.4.2 Couche de mise en commun
2.2.5 Transfert d’apprentissage
2.2.6 R´eseau de neurones r´ecurrents et ”long short-term memory”
2.3 G´en´eration automatique de l´egende
2.3.1 Approche par syst`eme d’extraction
2.3.2 Approche par g´en´eration
2.4 Apprentissage profond et imagerie m´edicale
2.4.1 Classification
2.4.2 D´etection et localisation
2.4.3 Segmentation
2.4.4 D´etection de concepts m´edicaux
2.4.5 G´en´eration automatique de l´egende des images
3 Nos propositions de mod`eles dans le domaine des images m´edicales
3.1 Pr´etraitement des images
3.2 D´etection de concepts
3.2.1 Exploration de la donn´ees
3.2.2 Pr´etraitement des concepts
3.2.3 Mod`ele 1 : Oxford VGG19 comme extracteur de variable
3.3 Annotation automatique d’image
3.3.1 Exploration de la donn´ee
3.3.2 Pr´etraitement des l´egendes
3.3.2.1 Pr´eparation des l´egendes
3.3.2.2 Repr´esentation vectoriel de mot(word embedding)
3.3.3 Mod`ele pour la g´en´eration automatique de l´egende
4 Impl´ementation ,r´esultat et ´evaluation
4.1 Langage, librairie et mat´eriels utilis´es
4.2 R´esultats et ´evaluations
4.2.1 D´etection de concepts
4.2.2 G´en´eration automatique de l´egende
5 Conclusion et persp
Télécharger le rapport complet