Apprentissage profond et imagerie médicale

Télécharger le fichier pdf d’un mémoire de fin d’études

Apprentissage automatique

L’apprentissage est un concept pour d´efinir l’acquisition de connaissance et r´eutiliser ces nouvelles connaissances. Pour nous les humains, notre apprentissage se fait tout au long de notre vie. Nous apprenons a` partir de perception de l’environnement avec les cinq sens, les exp´eriences de la vie, de r´ep´etition des ev´enements avec la m´emoire, et de notre jugement (libre arbitre ou intelligence). Pour les machines, comme elles ne sont pas dot´ees de sens ni de jugement dynamique, elles ob´eissent aux instructions dans un programme avec des donn´ees d’entr´ee et une donn´ee sortie ou r´eponse du programme.
Arthur Samuel a d´ecrit l’apprentissage automatique comme un domaine qui permet `a une machine d’avoir des connaissances sans ˆetre formellement programm´e ou sans inter-vention humaine [75]. [58] Tom Mitchell quant `a lui a d´efini l’apprentissage comme un programme informatique qui apprend ”`a partir d’une donn´ee d’exp´erience E une tˆache sp´ecifique T avec une mesure de performance P”. Par exemple dans une ´etude m´et´eo. E = sera l’historique m´et´eo de plusieurs jours, T = l’estimation de la m´et´eo du lendemain et P = la probabilit´e de la m´et´eo estim´ee par le programme.
L’apprentissage supervis´ peut ˆetre mis en parall`ele avec un enseignant qui utilise ses connaissances pour enseigner et corriger les erreurs d’un ´el`eve. Cette analogie est utilis´ee par les algorithmes d’apprentissage pour apprendre a` partir d’une donn´ee. Lorsque l’algorithme fait une pr´ediction sur un exemple, sa pr´ecision peut ˆetre calcul´ee car la r´eponse correspondant `a l’exemple est connue.

Classification

La classification supervis´ee est une variante de l’apprentissage supervis´. Elle consiste a` faire  correspondre `a une entr´ee X, un ensemble discret de y qui repr´esente sa cat´egorie. yb = f (X) avec yb est fini et repr´esente la cat´egorie de X.

Fonction d’erreur et optimisation des hyper-param`etres

Les fonctions d’erreur sont des fonctions math´ematiques qui servent `a p´enaliser le clas-sifieur (mod`ele, algorithme) en cas de mauvaise pr´ediction. C’est donc aussi une fonction objective car, pour avoir un bon classifieur il faut que les p´enalit´es re¸cues par le classifieur soient minimums.
Soit L la fonction d’erreur, on peut ´ecrire :
yb = model(X, W ) (2.1)
minW L(y,b y) (2.2)
W : hyper-param`etre qui va d´eterminer la pr´ediction du mod`ele. C’est toujours la valeur de cet hyper-param`etre que l’on cherche a` trouver dans les algorithmes d’apprentissage.
Le choix de la fonction d’erreur est primordial en apprentissage automatique.

Apprentissage profond

Le r´eseau 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].
Le d´eveloppement de l’apprentissage profond a et´ influenc´e par les ´echecs des autres algorithmes a` apprendre un niveau de repr´esentation ´elev´e et `a bien g´en´eraliser une forme d’intelligence artificielle [58, 38]. Par exemple les autres algorithmes d’apprentissage au-tomatique ne parvenaient pas `a avoir des r´esultats convenables dans le domaine de l’in-telligence artificielle comme la reconnaissance d’objets, la segmentation d’images ou la reconnaissance des voix. On peut qualifier un r´eseau de neurones de profond si le nombre de couches cach´ees est sup´erieure ou ´egale a` 2 (voir par exemple les figures 2.2 et 2.3). Dans la sous-section suivante nous citerons les points importants dans l’histoire de l’ap-prentissage profond et des r´eseaux de neurones, puis son fonctionnement et les autres types de r´eseaux de neurones que nous avons exploit´es pour cette recherche.

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”.
FIGURE 2.3 – Illustration du fonctionnement d’un r´eseau de neurones `a 3 couches cach´ees pour le probl`eme de la d´etection faciale. On voit que sur la premi`ere couche le r´eseau apprend les traits caract´eristiques, sur la deuxi`eme couche il combine les traits pour apprendre des formes plus concr`etes comme les yeux ou le nez et sur la troisi`eme couche il combine les formes pr´ec´edentes pour avoir un visage. Image prise de [51].
— 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 tmax = esy (2.4) P K j=1 esj
sof tmax loss = − log(sof tmax) (2.5) σ = 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)

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.

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 memory”

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
W : poids
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)
xt : entr´ee a` l’instant t
ht−1 : couche cach´ee pour l’instant t-1
ht : couche cach´ee pr´edite pour l’instant t
yt : sortie pr´edite pour l’instant t
f : la fonction d’activation dans le r´eseau de neurones connect´e.
La Figure 2.6 pr´esente l’illustration de l’´equation 2.14 sous la forme d’un graphe. D’apr`es cette figure et l’´equation 2.14, le probl`eme avec le RNN est le fait de garder
en m´emoire toutes les informations de chaque instant si l’on veut qu’il soit assez flexible. Par exemple (pris de [47]) dans le texte ”J’ai grandi en France …(2000mots)… Je parle couramment le xxxx”. On voudrait pr´edire le xxxx. Le plus logique est xxxx soit ´egal a` ”fran¸cais”. Mais pour qu’un RNN trouve que xxxx est ´egal a` fran¸cais, il doit m´emoriser 2000 instants, ce qui est cons´equent.
Tout cela va cr´eer un tr`es profond r´eseau de neurones au niveau de la r´ecurrence (voir figure 2.6) et cela p´enalise l’apprentissage en mati`ere de m´emoire (de l’ordinateur) et de temps d’apprentissage.
Comme solution, Hochreiter et Schmidhuber [34] ont invent´ le LSTM (Long-Short Term Memory Cell) en 1997. Le LSTM est juste une autre forme de RNN. Le LSTM est con¸cu dans le but de supporter les probl`emes aux longs termes de d´ependances parce que sa plus grande particularit´e est de m´emoriser beaucoup d’informations. Dans une couche LSTM, on a 4 neurones que l’on appelle porte alors que dans un RNN on a un seul neurone. Ces neurones de LSTM ont chacun leurs rˆoles et interagissent entre eux de mani`ere sp´ecifique. Le mod`ele math´ematique de LSTM est dans l’´equation 2.20 ft = σ(Wf [xt, ht−1] + bf ) it = σ(Wi[xt, ht−1] + bi) ˜ Ct = tanh(W ˜ [xt, ht−1] + b ˜ C C ˜ Ct = ft ∗ Ct − 1 + it ∗ Ct ot = σ(Wf [xo, ht−1] + bo) ht = ot ∗ tanh(Ct) (2.15).

Approche par g´en´eration

L’approche par g´en´eration consiste `a g´en´erer les l´egendes mot par mot. C’est une m´ethode plus flexible par rapport a` l’approche par syst`eme d’extraction car elle ne r´ep`ete pas les l´egendes d´ej`a existantes dans les donn´ees d’entraˆınement. Il s’agit de l’approche la plus utilis´ee depuis quelques ann´ees.
Vinalys et al. [89] ont cr´e´ le premier mod`ele de g´en´eration en 2014. Ce mod`ele est inspir´e des techniques en TALN pour les traductions automatiques de langue o`u on traduit une phrase d’une langue S vers une autre langue T avec un syst`eme d’encodeur-d´ecodeur et en cherchant la phrase traduite T telle que la probabilit´e P (T /S) soit maximale.
Le mod`ele de Vinalys et al. est divis´e en deux modules : l’encodeur d’image et le mod`ele de langue (Figure 2.9). L’image brute entre dans l’ encodeur d’image qui est g´en´eralement un ConvNet (le convNet nomm´e inceptionV3 2 ) pour faire un transfert d’apprentissage dans le but d’extraire un vecteur caract´eristique. Ce vecteur se trouve `a l’avant-derni`ere couche du CNN inception Puis l’image pr´ec´edemment encod´ee passe dans le mod`ele de langue (les auteurs utilisent LSTM) o`u le mod`ele de langue pr´edit mot par mot la l´egende 3. C’est dans la partie mod`ele de langue que l’on va faire l’apprentissage. D’une mani`ere plus math´ematique, voici l’expression de cette m´ethode.
x−1 = CN N (image) (2.21)
yˆt = LST M (x−1, yˆt−1 , …, yˆ0) (2.22)
P (ˆy|I) = X P (ˆyt|I, yˆt−1 , …, yˆ0) (2.23)
θ = argmaxθP (ˆy|I) (2.24)
x−1 : image encod´ee
yˆt : mot pr´edit pour l’instant t
C’est `a partir de ce mod`ele de base que des am´eliorations ont et´ apport´ees.
You et al. [93] ont ajout´e la classe des images comme information suppl´ementaire au mod`ele de langue. Ces classes sont associ´ees chacune a` un sous ensemble de mot dans le dictionnaire. Ainsi, le mod`ele de langue cherchera mieux dans un sous ensemble de mots plus pr´ecis. On parle ici d’attention s´emantique. Ensuite Nomena [33] a utilis´e des vecteurs de cat´egorie des images dans un r´eseau de neurones multimodaux.
Pour continuer, la notion d’attention visuelle est introduite par Li et al. [52], l’at-tention visuelle est un concept humain qui regarde une petite r´egion de l’image contenant l’´el´ement le plus attirant dans l’image. Li utilise deux ConvNet dans la partie encodeur d’image, un pour faire la d´etection d’objet et l’autre pour extraire la couche mise en commun (feature map, image extraite par le ConvNet) puis les r´esultats de ces ConvNet seront pass´es au mod`ele de langue. Pour Xu [91], `a partir de la couche de mise en commun extraite il prend une partie (r´egion) de la couche et pour chaque partie, il g´en`ere un mot qui correspond a` une partie de l’image initiale.
Tous ces mod`eles pr´ec´edemment cit´es sont appel´es architectures en pipeline parce qu’elles traitent s´epar´ement le mod`ele de langue et l’encodeur d’image.
Karpathy et al. [46] casse l’ind´ependance des deux modules en combinant les deux modules avec une approche entraˆınement de bout-en-bout. L’entraˆınement de bout-en-bout signifie qu’une seule fonction d’erreur est utilis´ee pour optimiser le mod`ele en entier mais pas seulement le mod`ele de langue. Cette m´ethode d’entraˆınement offre plus de relation dans le mod`ele de langue et l’encodeur d’image parce que ils sont interd´ependants. L’erreur est r´etro-propag´ee sur le mod`ele de langue puis dans l’encodeur d’image pour faire le r´eglage fin. Le mod`ele de Karpathy a comme objectif de g´en´erer des l´egendes par r´egion. Il y a `a d’abord une d´etection d’objets puis une g´en´eration de l´egendes pour les objets d´etect´es.

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ées

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´ est un transfert d’apprentissage avec Oxford VGG19 comme mod`ele de CNN de base [81] 3
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).
Nous avons minimis´e cette fonction d’erreur avec l’algorithme de descente de gradient stochastique momentum avec les param`etres suivants : la taille du traitement par lot est de 256 images, le pas d’apprentissage est fix´e `a 0,0001, nous avons gard´e la valeur par d´efaut du momentum (0,9).

Mod`ele 2 : réglage fin avec resNet50

Les r´esultats n’´etaient optimums. Nous pensons que soit les vecteurs caract´eristiques 4 096 n’apportent pas assez d’information pour le d´ecodage, soit que le r´eseau VGG19 n’est pas adapt´e pour des images m´edicales. Nous avons d´evelopp´e un autre mod`ele a` partir de Residual Network50 (resNet50) qui est aussi un CNN issu la collection ImageNet 5 avec seulement 3. 6% d’erreur [30]. De plus resNet50 est aussi utilis´e en imagerie m´edicale [23, 41, 49].
La particularit´e du resNet est l’apprentissage par bloc r´esiduel. C’est dire que la valeur de sortie d’un bloc est la somme de la valeur entr´ee du bloc avec celui des r´esultats des calculs des couches dans le bloc comme les couche de convolution, relu ( cf : 3.4 ). Ce qui rend son architecture difficile a` impl´ementer, mais cela permet de conserver les informations d’origine.
Ce second mod`ele est tr`es simple et ne n´ecessite qu’une seule ´etape. Dans la d´efinition de l’architecture du resNet50, nous avons modifi´e la d´efinition de la couche FC-1000 en multi-label layer comme pr´ec´edemment et la couche d’erreur softmax loss en sigmoid entropy loss.
Ce mod`ele utilise les param`etres suivants lors de l’apprentissage : la taille du lot est de 50 images, le pas d’apprentissage est diminu´e selon l’´equation 3.1 `a chaque tranche de 7 ´epoques 6.
Cette r´eduction du pas d’apprentissage est requise pour un r´eglage fin [45, 92].
lr = init curent epoch lr ∗ (0.1 ) (3.1)
lr : pas d’apprentissage
inti lr : pas d’apprentissage initial = 0,001
decay epoch : tranche d’´epoques pour la r´eduction du pas d’apprentissage = 7 curent epoch : num´ero de l’´epoque courante 6. Une ´epoque est termin´ee lorsque l’ensemble des donn´ees est trait´e dans l’algorithme d’apprentissage.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

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-parametres
2.1.3 Descente stochastique de gradient
2.2 Apprentissage profond
2.2.1 Historique des reseaux de neurones
2.2.2 Fonctionnement
2.2.3 Difference par rapport au cerveau humain
2.2.4 Reseaux 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 Reseau de neurones recurrents et ”long short-term memory”
2.3 Generation automatique de legende
2.3.1 Approche par syst`eme d’extraction
2.3.2 Approche par g´en´eration
2.4 Apprentissage profond et imagerie medicale
2.4.1 Classification
2.4.2 Detection et localisation
2.4.3 Segmentation
2.4.4 Detection de concepts medicaux
2.4.5 Generation automatique de legende des images
3 Nos propositions de modeles dans le domaine des images medicales 
3.1 Pr´etraitement des images
3.2 D´etection de concepts
3.2.1 Exploration de la données
3.2.2 Pretraitement des concepts
3.2.3 Mod`ele 1 : Oxford VGG19 comme extracteur de variable
3.2.4 Mod`ele 2 : r´eglage fin avec resNet50
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 Implementation ,resultat 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 Generation automatique de legende
5 Conclusion et perspective 

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *