Vous êtes sur la page 1sur 7

Trame de recherche sur le projet IA Santé

I – Introduction et contexte
L’objectif du projet IA Santé est l’implémentation d’un cas d’usage d’application des algorithmes
d’apprentissage automatique à destination des professionnels de la santé.

Si les cas d’usages imaginables sont infinis, en pratique il est difficile d’avoir accès à un jeu de donnée
nous permettant d’aboutir à une réalisation concrète dont la performance est mesurable.

Ainsi, le cas d’usage qui sera présenté ici portera sur le diagnostic des troubles musculosquelettiques
et la solution que nous proposons sera d’offrir la capacité à l’ordinateur de détecter une anomalie
sur une image en radiologie.

Les objectifs que nous nous fixons sont d’une part, reproduire les travaux des chercheurs1 avec un
niveau de performance se rapprochant de ce qui a pu être réalisé au niveau de l’état de l’art et
d’autre part, de construire une application permettant de soumettre un diagnostic tout en stockant
les données soumises à l’application en vue d’améliorer le modèle qui sera implémenté.

II – La donnée
Le jeu de donnée sur lequel nous travaillons provient de l’université de Stanford, est fournis sous
licence libre et nous permet un accès et une modification sans restriction.

Celui-ci est composé d’imageries radio sur différentes parties du corps avec une segmentation
effectué selon les parties du corps suivant :
• Mains
• Doigts
• Avant-bras
• Coude
• Humérus
• Epaule
• Poignet

L’ensemble des imageries récoltés comportent diagnostic associé à chaque radio (normal ou
anomaly).

L’objectif pour l’algorithme est de diagnostiquer lui-même de manière autonome les radios qui lui
seront soumis avec une précision acceptable.

Chaque image est considérée comme un tenseur. Un tenseur est un objet mathématique englobant
les applications définis dans un espace vectoriel tels que les vecteurs ou les matrices.
Les tenseurs sont définis en fonction de leur rang.

1
Papier de recherche : https://arxiv.org/abs/1712.06957
Ainsi, un tenseur de rang 0 est un scalaire,
Un tenseur de rang 1 est un vecteur,
Un tenseur de rang 2 est une matrice
Pour les rangs supérieurs, on se limite à les décrire comme un tenseur d’ordre k.

Les tenseurs d’ordre k nous offrent plus d’information ainsi qu’un potentiel de prédiction plus précis
pour nos modèles. La contrepartie venant du délai pour traiter ces objets mathématiques
représentant une masse de donnée importante.

Le modèle que nous utiliserons est un CNN (Convolutional Neural Network) qui est une variante de
réseaux de neurones. Nous détaillerons plus en détail l’architecture sélectionnée.

III – Techniques classiques de traitement d’images

Avant d’entrer plus en détail au sein de l’architecture sélectionnée, nous allons justifier notre choix
en passant en revue les possibilités en termes de traitement de l’image.

III – 1 – Traitement statistique des images

L’une des techniques pour étudier les imageries radio sont les techniques de traitement d’image où
chacune est représentée par un vecteur d’intensité de teinte en fonction du format de l’image :

Figure 1: Image et son histogramme d'intensité

Cette technique classique nous permet d’identifier des paramètres éventuels sur des images afin
d’en déduire des informations d’ordre statistique. Cette technique peut être utile en particulier si
nous travaillons avec le métier.
Cependant, l’examen d’imageries osseuse nécessite souvent l’œil d’un radiologue afin d’y voir des
symptômes qui mèneront à un diagnostic du médecin. C’est pourquoi cette technique ne nous
permet pas dans l’immédiat de tirer des informations par rapport à notre jeu de donnée à l’heure
actuel.

Dans un autre cas, la modification des niveaux d’intensités nous permettrait aussi de mettre en avant
les parties d’image qui peuvent sembler plus pertinents à l’œil du radiologue. Encore une fois, cette
possibilité sera reportée à une période où nous pourrons échanger avec des professionnels de la
santé en radiologie.

III – 2 – Traitement du signal appliqué aux images

L’objet du traitement statistique du signal et des images est d’utiliser des modèles graphiques
probabilistes dans l’étude des images. Ces modèles peuvent être séquentiels, non paramétriques, ou
autre… L’utilisation principale est axée sur les chaines de Markov et plus particulièrement sur les
simulations stochastiques plus connus comme des simulations de Monte-Carlo par Chaine de
Markov.

Pour rappel, une chaine de Markov est une suite d’états indexé dans un espace discret ou continue
où chacun des états suivants ne peut être prédit qu’à partir de l’état qui le précède directement. On
appelle aussi ces derniers des processus « sans mémoire » car à chaque changement d’état, il n’y a
pas de dépendance de l’état « t » avec les états autre que l’état « t-1 ».
Plus formellement, la probabilité d’un état à 𝑋𝑡 n’est condition que de l’état à 𝑋𝑡−1 soit dans un
espace d’état E :

∀𝑛 ≥ 0, ∀(𝑖0 , … , 𝑖𝑡−1 , 𝑖, 𝑗) ∈ 𝐸 𝑛+2 ,

𝑃(𝑋𝑡+1 = 𝑗 | 𝑋0 = 𝑖0 , … , 𝑋𝑡−1 = 𝑖𝑡−1 , 𝑋𝑡 = 𝑖) = 𝑃(𝑋𝑡+1 = 𝑗 | 𝑋𝑡 = 𝑖)

La prédiction de transition d’un état « i » à un état « j » se fait au travers de probabilité de transitions


qui constituent ensemble une matrice de probabilité de transition entre les états.
Formellement, la probabilité de transition de « i » à « j » s’écrit :

𝑝𝑖,𝑗 = 𝑃(𝑋𝑡+1 = 𝑗 | 𝑋𝑡 = 𝑖)

Et (𝑝𝑖,𝑗 )(𝑖,𝑗)∈𝐸2 la matrice de probabilité de transition de l’état « i » à l’état « j ».

La méthode des simulations de monte carlo par chaine de markov consiste à générer un vecteur
d’état 𝑋𝑡 à partir du vecteur d’état 𝑋𝑡−1 . Par conséquent l’utilité est ici de pouvoir échantillonner des
variables aléatoires en construisant des chaines de markov.

Enfin, l’autre méthode qui serait utilisé se base sur une technique d’inférence Bayésienne connu sous
le nom ABC (Approximate Bayesian Computation) qui se base sur le paradigme « bayésien » lui-
même issu de la formule des probabilités conditionnelles :
𝑃(𝑦 |𝜃)𝑃(𝜃)
𝑃(𝜃 | 𝑦) =
𝑃(𝑦)

Ces techniques intéressantes d’un point de vue conceptuel n’ont pas trouvé d’applications
permettant de classifier des images comme nous le souhaitions, cependant, ces techniques se
révèlent utile une nouvelle fois dès lors que l’on souhaite identifier des caractéristiques sur certains
pixels et non sur la globalité de l’image en elle-même.

L’une des applications de la simulation de monte carlo par chaine de Markov est d’identifier des
caractéristiques dans une image bruité afin de reconstituer une information à partir d’une image
bruitée. Dans notre problématique, le manque d’informations sur notre donnée rend l’usage de la
technique peut pertinente sans rencontre avec le métier.

III – 3 – Théorie de l’information

La théorie de l’information cherche à quantifier le potentiel relatif qu’offre un jeu de donnée


particulier par rapport à d’autres données.
Sans entrer dans les détails des outils qui sont utilisés, nous donnerons ici une intuition de l’utilité
des techniques employés dans ce domaine pour nos recherches et nos analyses en termes de
traitement d’images.
L’un des critères les plus utilisés en théorie de l’information est la notion d’entropie de Shannon H :
𝐻 = − ∑ 𝑝𝑖 log 𝑝𝑖
𝑖
𝑁𝑖
Avec 𝑝𝑖 = , avec 𝑁𝑖 étant le nombre de pixel d’intensité i sur une image de N pixels.
𝑁

Les outils utilisés en théorie de l’informations ne constituent pas un outil d’analyse d’image en eux-
mêmes mais seront utiles pour quantifier le gain d’information généré par l’utilisation de certains
paramètres en apprentissage automatique.

Dans le cadre de la classification d’imageries médicales, plutôt que des paramètres, il s’agira de
quantifier la quantité d’information potentielle de chaque pixel par rapport à la prédiction effectuée.

D’autres techniques peuvent être employés pour le traitement de l’image mais nous nous limiterons
volontairement dans un souci de résultat tout en conservant un niveau de rigueur élevé dans nos
analyses.

IV – Analyse de données et apprentissage automatique pour le


traitement des images
Les techniques d’analyses de données nous seront utiles dans le cadre de notre problématique pour
étudier les patterns entre les différentes images et classifier en fonction des classes de diagnostiques
à prédire.

Il existe plusieurs catégories de modèles d’apprentissage statistiques. On y retrouve principalement


des modèles :
- D’apprentissage supervisé
- D’apprentissage non supervisé

Nous omettrons volontairement de parler des modèles d’apprentissage semi-supervisé et par


renforcement. Ces derniers ne seront abordés que s’il y en a besoin le cas échéant.

Dans le cadre de l’apprentissage supervisé, l’objectif d’un algorithme d’analyse de donnée ou


d’apprentissage automatique (« machine learning ») est d’associer un ensemble de variables
explicatives (𝑋𝑖 )𝑖∈𝐸 à une ou plusieurs variables à prédire « y ».
Aussi, au sein des modèles d’apprentissage supervisé, nous pouvons y trouver 2 types de modèles :
o Modèles de classification.
o Modèles de régression.

Les modèles de classification permettent de définir des classes de données basés sur les valeurs de la
variable à prédire en fonction des variables explicatives.

Les modèles de régression permettent de prédire une valeur réelle continue à partir des variables
explicatives du jeu de donnée.

Les exemples d’algorithme d’apprentissage supervisés sont :


- Les arbres de décision/Forêts aléatoires
- Réseaux de neurones
- Machines à vecteur de support/Support Vector Machine (SVM)
- Les K plus proches voisins/K-Nearest Neighbors (KNN)
- Les modèles de type « Gradient boosting »

Ex : Arbres de décisions

Un arbre de décision est un modèle d’apprentissage statistique permettant d’inférer la valeur de la


variable à prédire à partir des variables explicatives.

Figure 2: Arbre de décision pour prédire la survie des passagers du titanic


L’algorithme parcours l’ensemble des variables explicatives et segmente les instances à partir d’un
index sélectionné par une métrique de « pureté » de la donnée.

Une de ces métriques est la métrique de « gain d’information » qui se calcule comme la différence
entre l’entropie de Shannon associé à une variable explicative et l’entropie de Shannon conditionnée
aux valeurs attributaires précédentes soit :

𝐼𝐺(𝑇, 𝑎) = 𝐻(𝑇) − 𝐻(𝑇 | 𝑎)

Avec 𝐻(𝑇 | 𝑎) l’entropie conditionnelle de T sachant a.

D’autres méthodes existent en se basant sur la moyenne pondérée des valeurs d’instance pour
chaque variable explicative ou d’autres plus connus comme le coefficient « d’impureté de Gini ».
Les arbres de décisions sont le plus souvent utilisés dans un modèle plus élaboré : les forêts
aléatoires. Ce modèle utilise le résultat des prédictions calculés par un ensemble d’arbres de
décisions et choisi le résultat sur la base d’un critère de décision basé sur un vote ou sur un critère
des « plus proches voisins ».

L’utilisation des forêts aléatoires peut être appliqué sur des matrices (images) pour prédire à quelle
classe appartient l’input à prédire sur la base des colonnes de pixels qui seront considérés ici comme
nos variables explicatives pour définir la classe de diagnostique auquel appartient l’image en input.

L’efficacité de l’algorithme de forêt aléatoires est limitée par sa lenteur de prédiction en fonction de
la taille de l’image qui lui est soumis en input. Ainsi, il nous fut nécessaire de nous tourner vers un
modèle d’apprentissage statistique possédant les qualités d’efficacité sur le ratio rapidité/précision.

Au vu de la masse de donnée que représente le jeu de donnée d’images médicales, nous nous
sommes naturellement tournés vers les réseaux de neurones qui sont adaptés à être utilisés pour
inférer sur la classification de notre input à partir d’une certaine volumétrie.

IV – 1 – Les réseaux de neurones

L’approche utilisée pour le projet se base sur une architecture de réseau de neurones, nous allons
donc ainsi rappeler les principes pour développer jusqu’à la solution que nous avons choisi pour
l’implémentation de la solution à ce projet.

Le réseau de neurones représente le fondement de notre approche, nous allons donc rappeler ici
quelques notions de manière à situer le contexte de notre recherche et appuyer ainsi nos choix dans
notre démarche de recherche.

IV – 1 – a – le mode « Feed forward »

Un réseau de neurone est un modèle d’apprentissage statistique qui fonctionne comme une
combinaison d’une fonction linéaire avec une fonction non-linéaire.

Ce modèle possède un potentiel d’utilisation intéressant dans la mesure où d’après le théorème


d’approximation universelle, tout réseau de neuronne de propagation « Feed forward » à 1 seule
couche cachée peut approcher uniformément toute fonction régulière avec une précision arbitraire
et dans un domaine défini par l’espace de ses variables.
Le potentiel théorique est cependant à modérer ne serait-ce qu’avec les performances de calculs que
peuvent nous offrir les ordinateurs.

Plus formellement, un réseau de neurones est une fonction de la forme : 𝑦 = 𝑓𝑁𝑁 (𝒙) avec :
- 𝑓𝑁𝑁 une fonction composée ou « fonction imbriquée »
- 𝒙 un vecteur de donnée d’entrée
- 𝑦 la valeur calculée par notre réseau de neurones.

Un réseau de neurones peut se composer de plusieurs couches, par exemple pour un réseau de
neurones composée de 4 couches qui renvoi un scalaire en valeur de sortie, celui-ci se formaliserait
de la façon suivante :
𝑦 = 𝑓𝑁𝑁 (𝒙) = 𝑓4 (𝑓3 (𝑓2 (𝑓1 (𝑥))))

Avec les fonctions 𝑓1 , 𝑓2 et 𝑓3 des fonctions définies de la manière suivante :

𝑓𝑙 (𝑧) ≜ 𝑔𝑙 (𝑾𝑙 𝑧 + 𝑏𝑙 )

Ici, 𝑙 représente le numéro entier d’indice de la couche (layer en anglais).


La fonction 𝑔𝑙 est appelée « fonction d’activation ».
Avec les paramètres :
- 𝑊𝑙 la matrice des « poids »
- 𝑏𝑙 le vecteur de « biais »
Ces paramètres sont entrainés par un processus d’optimisation (ex : par descente de gradient) et la
performance de l’optimisation est calculée via une métrique (ex : « Mean Square Error » - MSE)

La représentation concrète d’un réseau de neurones avec plusieurs couches cachés >= 1 couche
cachée est appelé « Perceptron multicouche » ou réseau de neurones « vanille ».

Vous aimerez peut-être aussi