44
Intelligence artificielle RAPPORT THEORIQUE ET PRATIQUE

Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

  • Upload
    others

  • View
    14

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

Intelligence artificielle

RAPPORT THEORIQUE ET PRATIQUE

Page 2: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 1

Jeremy Donadio | IA | 1er janvier 2018

Introduction Ce livre est une initiation au machine Learning. A travers plusieurs exemples et diverses

présentations scientifiques théoriques, le lecteur est plongé dans un sujet passionnant et actuel :

l’intelligence artificielle.

Je dédie ce livre à charlotte A.

Bonne lecture à vous.

Page 3: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 2

SOMMAIRE

DE LA THEORIE

1. Pourquoi apprendre le machine Learning ?

2. De la biologie aux mathématiques

− Le neurone

− Le potentiel d’action

3. Représentation mathématique du neurone

− Le neurone formel (perceptron)

− La classification des données (classifier)

4. Représentations mathématiques de systèmes complexes

− Multi layer perceptron (MLP)

− Les convolutions (CNN)

− Réseaux de neurones récurrents (RNN) :

− 1) LSTM (Long Short-Term Memory networks)

− 2) GRU (Gated Recurrent Unit)

5. L’art et l’intelligence artificielle

− Le style transfer

− Le GAN

6. Reinforcement learning

− Deep Q network (DQN)

Page 4: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 3

7. Mes sources

Pourquoi apprendre le machine Learning ?

Le machine Learning et l’intelligence artificielle deviendront bientôt des enjeux majeurs de notre

société.

-Comment prédire un évènement ? (Réseau MLP)

-Comment faire une reconnaissance d’objet ou d’image ? (CNN et VGG)

-Comment un programme peut écrire des phrases avec des mots dans le bon ordre avec un vrai sens

? (RNN/LSTM/GRU)

-Comment styliser des images ? (Style Transfer)

-Comment une intelligence artificielle fait elle pour créer des images qui n’existent pas, ou pour

dépixéliser une image, combler des vides ? (GAN)

-Comment une intelligence artificielle peut vous battre à n’importe quel jeu vidéo ?

Voici les questions auquel je vous garantis une réponse dans ce livre.

Vous comprendrez les mécanismes de ces algorithmes et le nombre d’application qu’il peut exister

grâce à cette nouvelle technologie.

Si après cette lecture vous avez encore des questions et/ou des incompréhensions vous pouvez me

contacter à l’adresse mail suivante :

[email protected]

Page 5: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 4

1. De la biologie aux mathématiques

Le neurone

Le neurone est une cellule assez spéciale du corps humain. En effet cette cellule (ou ces cellules

étant donné que nous en possédons entre 86 et 100 milliards) consomme presque 10 fois plus qu’une

cellule normale.

Ce trouvant principalement dans le cerveau (mais aussi dans d’autres membres ou organes), le

neurone a pour but de communiquer et de traiter plusieurs informations.

Il est composé d’un corps cellulaire ayant à son centre un noyau et à ses extrémités des dendrites,

ayant pour but de faire passer l’information.

L’axone est en fait un prolongement du neurone présent pour permettre à l’information d’avancer.

La synapse permet le passage du signal entre deux neurones.

Page 6: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 5

Il existe les synapses électriques et les synapses chimiques.

La première fait passer l’information à l’aide d’une dépolarisation permettant une modification du

Potentiel d’action, l’autre fait intervenir des neurotransmetteurs pour exciter ou inhiber le neurone.

Le potentiel d’action

Le potentiel d’action est un signal électrique parcourant l’axone et provoquant la libération de

neurotransmetteurs au niveau des synapses. On appelle potentiel d’action l’inversion de la

polarisation d’un neurone (car comme vu précédemment un neurone est chargé électriquement).

Ce potentiel d’action possède deux lois assez intéressantes. La première est qu’il se propage le long

du corps sans s’atténuer, le second est qu’il agit de manière binaire : ou le seuil de dépolarisation est

atteint et il apparait, ou il n’est pas atteint et il n’apparait pas.

Nous pouvons donc reconnaitre quelques phases principales :

Une fois la stimulation arrivée la membrane subit une dépolarisation et atteint (en haut du pic) une

valeur seuil qui est la valeur maximale du potentiel d’action. Le seuil de dépolarisation minimum est

de 60mV.

Cela ce suivant par la phase de repolarisation pour retrouver son état initial.

Avant d’atteindre son potentiel initial la membrane atteint une valeur plus négative (c’est ce que l’on

appelle une hyperpolarisation).

Page 7: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 6

Il faudra maintenant attendre encore quelques millisecondes avant de retrouver notre potentiel

initial.

Représentation mathématique du neurone

Le neurone formel

L’équivalent mathématique d’un neurone biologique est ce que l’on appelle un neurone formel (ou

perceptron).

Il est composé de quatre élément différents :

− Les entrées (x1 ; x2 ; x3 ; xn)

− Les poids (w1 ; w2 w3 ; wn)

− Le seuil (que nous appellerons U)

− Et la fonction d’activation

Voici le mécanisme plutôt simple d’un neurone formel :

Page 8: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 7

Le neurone reçoit des valeurs d’entrées xn. Le premier travail du neurone est de faire une somme

pondérée avec les poids c’est-à-dire x1*w1 +x2*w2 + xn*wn.

Une fois que cela est fait le neurone soustrait à ce résultat ce que l’on appelle la valeur de seuil.

(On pourra pour simplifier dire que le seuil est un poids et prendre les valeurs x0=-1 et w0=U (valeur

du seuil)).

C’est à ce moment précis qu’intervient la fonction d’activation. Une fonction d’activation est une

formule mathématique (tel que y=f(x)).

Les deux principales fonctions d’activations sont la sigmoïde :

Et la fonction « pas unitaire » (aussi nommée fonction de Heaviside) :

Cette fonction renvoi 0 si le seuil demandé n’est pas atteint et 1 si le seuil est atteint ou dépassé.

Il existe bien sur des dizaines d’autres fonctions tel qu’on peut le voir ici (cf.

https://fr.wikipedia.org/wiki/Fonction_d%27activation )

(Les fonctions les plus utilisées dans les réseaux complexes sont la ReLU , la tanh et la sigmoide)

Page 9: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 8

Pour résumer un neurone formel peut être exprimé sous cette forme :

Avec wi le poids, xi la valeur d’entrée et U la valeur de seuil. La fonction d’activation correspond à la

fonction f(X)=y (avec donc X égale à la somme pondérée moins le seuil).

Page 10: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 9

Prenons un exemple. Essayons de coder avec un neurone formel la table de vérité du « ou »

:

Nous prendrons ici comme poids w1=w2=1 et nous prendrons comme seuil U=0.5

La fonction d’activation que nous utiliserons sera la fonction de Heaviside qui pour x>0 sortira la

valeur 1 et qui pour x<=0 associera la valeur 0.

Les valeurs possibles de xi avec i allant de 1 à 2 seront l’ensemble « 0 ; 1 »

Nous avons donc :

− Soit x1=0 et x2=0 x1*w1+x2*w2-U=-0.5 et f(-0.5)=0 .

− Soit x1=0 et x2=1 w1*x1+w2*x2-U=0.5 et f(0.5)=1.

− Soit x1=1 et x2=0 w1*x1+w2*x2-U=0.5 et f(0.5)=1 −

Soit x1=x2=1 w1*x1+w2*x2-U= 1.5 et f(1.5)=1.

Les résultats sont conformes avec la table de vérité.

Page 11: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 10

Page 12: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 11

La classification des données (Classifier)

Un Classifier est un algorithme qui classifie ses données à l’aide de droites, de plans ou d’hyperplans

selon le nombres de données.

Par exemple pour une porte logique OU le classifier représenterait ça ainsi :

Les valeurs renvoyant un 1 sont séparées de celles renvoyant un 0 par une droite, on dit que les

données sont classifiées. On dit dans cet exemple que nous avons deux classes [{(0,0)} et

{(1,0),(0,1),(1,1)}].

(Nous avons ici pris un exemple simple avec des données pouvant être représentées dans un espace

en deux dimensions, ce qui explique que les données soient séparées par une droite/ fonction).

Remarque : dans un espace à trois dimensions cette séparation sera un plan, et dans un espace à n

dimensions avec n>3 la séparation sera un hyperplan.

Page 13: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

12

PAGE

Représentations mathématiques de systèmes complexes

Multilayer perceptron (MLP)

Etant donné que l’on ne peut tout représenter avec un seul perceptron, on a inventé les multiplayers

perceptrons. Il s’agit ici d’un ensemble de perceptrons réparties sur plusieurs couches.

Nous avons la première couche représentée par l’input layer. C’est ici que les données sont rentrées.

Ces données vont ensuite être modifiées par plusieurs autres couches de perceptrons, ils sont

représentés dans la couche hidden layer. L’output layer correspond à la sortie des données après

analyse et modifications de celles-ci par les neurones formels.

Voyons les caractéristiques de ce réseau d’apprentissage.

Imaginons que nous avons collecté et classifié des données tel qu’on peut le voir sur le dessin

cidessous :

Maintenant ce que nous voulons est de reproduire un circuit pouvant prédire les données ci-dessus.

Page 14: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 13

Le système est simple. Comme vu précédemment des valeurs xn vont être rentrées dans les n entrées

(les input layers). Le but ici est d’ajuster les poids de tel manière à ce que si nous rentrons une

certaine valeur il nous prédise une valeur réelle que l’on peut retrouver dans le tableau ci-dessus.

Le but de l’algorithme est donc de modifier les poids de tel manière à ce que le résultat soit le plus

proche possible de la réalité.

Pour faire simple si on avait un seul perceptron avec une fonction d’activation f(X)=X et avec un

poids W1 à 5 et que l’on voulait pour X=2 que le perceptron nous renvoi la valeur 6, Le but du réseau

serait de faire passer son poids de 5 à 3 pour qu’on retombe sur le bon résultat (f(2*3)=6).

Mais comment fonctionne cet apprentissage ?

L’algorithme commence avec des poids aléatoires.

Une valeur x va être rentrée et donner une valeur y (imaginons que nous rentrons 0.5 dans l’input

layer, la valeur à la sortie de l’hidden layer sera par exemple 0.7).

Mais il se trouve que la valeur réelle que l’on voit dans le graphe est Z=0.9.

Nous allons donc utiliser une loss function pour rééquilibrer les poids :

L (Z ;y) = -Zi*log(yi)-(1-Zi)*log(1-yi)

Avec Zi la valeur réel Z affectée pour x=i et yi la valeur y définie par notre circuit pour x=i.

Cette fonction « cross entropy » a pour but de voir si nos prédictions sont bonnes ou pas, elle

s’appelle aussi loss fuction ou fonction de perte, et calcule donc la perte de précision de notre réseau.

Par exemple si on prend Z=1 et y=0.9 L (Z ; y) =0.105 donc les prédictions sont bonnes, mais si on

avait y=0.1 on aurait L(Z ;y)=2.3

(Il s‘agit ici de faire un calcul de l’erreur, c’est-à-dire de quantifier de combien notre valeur prédite

est loin de la réalité).

Le but ici est que le résultat de la loss fonction tende vers 0.

J’ai utilisé plus haut une fonction appelée « cross entropy » mais il existe pleins d’autres loss

fonctions.

Une fois que nous avons comparé l’écart entre notre valeur et la valeur réel nous devons réajuster les

poids.

Nous allons donc utiliser l’algorithme du gradient stochastique (Stochastic Gradient Descent (SGD))

:

Avec

PAGE

Page 15: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

14

Et

En injectant nous tombons sur

La dérivée partielle de la fonction loss par le poids est donc égale à (Zi-yi) *xi1.

Nous avons donc le lien entre notre fonction loss et notre poids.

La valeur du poids sera donc :

(Avec pi la valeur prédite par le système, yi la valeur réelle du data set (tableau de donné) et xi1 la

valeur d’entrée. W est bien sur le poids. N est le taux d’apprentissage (learning rate) et correspond à

la valeur d’un réel, c’est une constante.)

Une fois le poids modifié le circuit refait rentrer un x pour vérifier si cette fois ci le poids est bon. Le

système tourne en boucle jusqu’à obtenir une fonction loss égale à 0.

Remarque : les défauts de ce système est qu’au bout d’un moment il risque de « sur-apprendre »

c’est-à-dire donner un bon résultat pour des valeurs ressemblant à son data set mais de donner de

fausses valeurs dès qu’on s’éloigne trop des valeurs de son data set.

Pour résumer :

− Le perceptron (neurone formel) reçoit une valeur d’entrée qu’il va modifier grâce à son

poids et sa fonction d’activation.

− Un réseau avec plusieurs couches de perceptron est appelé MLP (multilayer perceptron) et

est composé d’un input layer (la ou les valeurs d’entrées sont mises), d’un hidden layer (là

ou sont mises plusieurs couches de perceptrons qui vont altérer et modifier le résultat) et un

output layer qui nous renvoie la valeur une fois qu’elle est modifiée.

− Le but de ce type de système est de modéliser un comportement type à partie de données

que l’on appelle data set.

− Pour modéliser ce type de comportement le système va modifier et ajuster ses poids grâce

aux fonctions loss et à la méthode du SGD (par exemple).

− L’algorithme modifie donc ses valeurs de poids au fur et à mesure jusqu’à arriver à L(Z ;y)=0

et donc w(t)=w(t+1) (donc une fonction loss nulle).

Page 16: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 15

Convolutional Neural Network (CNN)

1) Le principe

Le but ici est de créer un algorithme qui peut reconnaitre un objet (cela marche aussi avec le son par

exemple).

L’objet (qui est en fait une image) est rempli de pixels.

Ces pixels ne sont en fait que des points d’une certaine couleur et sont définis par des valeurs (par

exemple une valeur rouge, vert, bleu et une pour la transparence). Cet ensemble de petits points de

couleurs forment donc une image.

Cet ensemble de pixels peut donc être défini avec des matrices. Nous pouvons donc

exprimer mathématiquement une image.

Le fonctionnement est simple. Nous mettons dans notre data set un grand nombre d’images d’un

objet précis (par exemple une voiture). Le but de notre système sera de détecter quels doivent être

les valeurs des matrices de pixel pour envoyer un signal positif disant « c’est bien une voiture ».

Etant donné que les matrices sont bien trop grandes (à cause du grand nombre de pixel) le système va

devoir perdre le plus d’information et de ne garder que les données utiles.

Il fera avec ces données des classes, et c’est la reconnaissance de plusieurs de ces classes qui fera qu’il

détecte ou pas l’objet.

Prenons un exemple. Nous voulons créer un système qui reconnaisse si le chiffre qu’on lui donne est

un 8 ou pas.

Nous avons notre 8 :

Notre système décomposera donc cet image en plusieurs classes comme par exemple :

; etc..

;

Page 17: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 16

Chacun de ces classes sont définis par des matrices on pourrait représenter ça ainsi :

La reconnaissance de l’ensemble des classes sert donc au système de reconnaitre un objet.

(Un exemple pour le chiffre 0)

Donnent un zéro.

(Ici l’ensemble des quatre classes permets la reconnaissance du zéro).

On appelle ces classes des caractéristiques. L’action effectué pour avoir ces caractéristiques est

appelé convolution.

Voilà donc comment un ordinateur peut reconnaitre une image assez facilement.

Seulement notre exemple ici est simple car n’est constitué que de matrices 3*3 (donc avec seulement

9 pixels et aucunes couleurs ou transparence !!!!)

Comment ferait-il s’il devait faire cette reconnaissance sur du 1080 p (donc 2 073 600 pixels multiplié

par les 4 valeurs nécessaires pour définir un pixel en RGB (avec transparence) ce qui nous donnerais

une matrice avec 8 294 400 valeurs !!!!)

C’est à ce moment que vient le principe de pooling.

2)En détail

Un CNN (réseau neuronal de convolution) est très similaire aux réseaux neuronaux basiques. Il est lui

aussi composé de neurones avec des poids et des biais.

Page 18: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 17

Tout comme le multiplayer perpetron le CNN est composé de plusieurs couches :

− La couche du layers input (là où on rentre l’image originale)

− La feature extraction (qui correspondrait aux hidden layers). C’est cette couche qui est sensé

diminuer la taille de l’image (comme sur le schéma ci-dessous où l’image passe de 32*32 à

5*5 pixels) et crée les caractéristiques (points verts sur le schéma ci-dessous).

− C’est dans la couche des outputs que sont stockés et classifiés les caractéristiques.

La convolution :

Une fois que la grande matrice (correspondant à l’image) est rentrée dans le système nous

appliquons une convolution pour en retirer les valeurs(caractéristiques) importantes.

Voici son fonctionnement :

Nous multiplions notre grande matrice de taille m*m par une matrice appelée filtre de taille n*n avec

n<m.

Dans l’exemple ci-dessus nous multiplions le bout de matrice encadré par une matrice diagonale 3*3.

Pour une matrice entière on pourrait avoir :

Page 19: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 18

Dans cet exemple là nous multiplions la matrice 5*5 par une matrice 3*3. La matrice va se déplacer de

case par case puis une fois arrivée au bout descendra d’une colonne et ainsi de suite. (Donc faire

0*22+0*15+1*1 etc. puis pour la deuxième case 15*0+1*0+3*1 etc. puis pour la troisième case

1*0+3*0+60*1 etc. et pour la dernière case 4*0+66*0+79*1+45*0+12*0+17*0+72*0+51*0+3*0).

Je vous laisse faire les calculs tranquillement pour voir si vous réussissez à tomber sur le bon résultat.

La matrice obtenue est appelée « feature map ».

Pour rendre ça plus claire voici un exemple concret :

L’input (image de gauche) est l’image originale, le filtre est le carré rouge et le résultat de la

convolution (appelé feature map) est l’image de droite. (Ici le filtre est passé sur toute la matrice, il

se retrouve donc en bas à droite de la matrice).

La ReLU :

La ReLU est une fonction d’activation qui (dans ce type de réseau) remplace toutes les valeurs de

pixel négatifs par 0. Voici le graphe de cette fonction :

Page 20: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 19

Voici le résultat de la feature map avant et après être passé par la fonction d’activation « ReLU » :

La ReLU est avant tout utilisée pour simplifier les calculs de gradient (identique à ceux des MLP) et

donc à accélérer la formation de notre modèle. Son autre grand avantage est de transformer des

données linéaires en données non linéaire.

Si on avait pris une fonction linéaire alors notre système serait uniquement un grand classificateur

linéaire, et pourrait être simplifié en multipliant simplement les matrices de pondération ensemble

(en tenant compte du biais).

Il ne serait pas capable de faire quelque chose d'intéressant, comme (justement) la classification

d'image ou la prédiction de texte.

On aurait aussi pu utiliser d’autres fonctions non linéaires comme la sigmoïde ou la tanh mais la

ReLU est celle qui offre les meilleurs résultats dans la pratique.

Page 21: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 20

Le pooling :

Le pooling est là pour réduire la taille de l’image.

Voici son fonctionnement.

Comme on peut le voir sur l’image le pooling réduit la taille de la matrice en ne prenant que les

valeurs caractéristiques (les plus grandes valeurs de chaque n*n cases). (On pourra trouver d’autres

méthodes pour réduire la taille d’une matrice comme par exemple calculer uniquement les

déterminants de la matrices 4*4 (par exemples) pour les mettre dans une matrice 2*2). On peut aussi

faire du pooling en faisant un calcul de moyenne etc.

Un pooling divise toujours la taille de la matrice en deux.

Remarque : on utilise aussi souvent du padding dans ce type de réseaux.

Le padding est une opération qui consiste à rajouter des 0 autours d’une matrice pour que toutes les

valeurs de la matrice soient traitées. En effet si la taille du filtre du pooling n’est pas un multiple de

la taille de la grande matrice certaines données risquent de ne pas être prisent.

Pour résumer :

Nous venons de voir :

− La convolution (qui tire d’une image ses caractéristiques principales)

Page 22: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 21

− La fonction ReLU (qui créer des modèles non linéaires et augmente la vitesse de formations

du modèle)

− Le pooling (qui permet de réduire la taille de l’image et donc le nombre d’informations pour

ne garder que le plus important).

C’est avec ces trois méthodes que notre système arrive à reconnaitre des objets sur une image.

Voici (image ci-dessous) l’ordre dans lequel nous implémentons ces méthodes pour faire un

programme qui doit reconnaitre un objet :

Remarque : Fully connected est un type de réseau où tous les neurones sont liés entre eux comme

ceci :

Ici le Fully connected est en fait un simple circuit MLP avec une fonction d’activation softmax().

Son but est donc de classifier les données.

A noter que cette disposition (fully connected) permet de classer des données non linéaires et

permet de les lier très facilement.

Pour conclure :

Le fonctionnement étape par étape pourra donc être résumer ainsi :

Page 23: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 22

Le système prend une image en entrée et lui fait faire les convolutions/ReLU/pooling et en sort des

probabilités que l’objet se trouve dans l’image. Les poids sont ajustés au fur et à mesure grâce au

calcul d’erreur et à la méthode de descente de gradient. Une fois que les poids sont bons on passe à

l’image suivante et on fait ça pour toutes nos images de tel manière à ce qu’a la fin il arrive à retirer

les caractéristiques importantes pour trouver un certain objet dans une certaine image.

Pour finir avec les CNN deux images d’exemples de cas concrets :

Réseaux de neurones récurrents (RNN)

Page 24: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 23

« exemple vous je j’aimais par Si disais l’informatique que » .Normalement vous ne devriez pas

comprendre cette phrase, mais « si par exemple je vous disais que j’aimais l’informatique » (phrase

dans le bon sens) la vous comprendrez ce que j’essaye de dire. Un réseau neuronal traditionnel (tel

que le MLP) pourra créer une phrase mais ne pourra pas mettre les mots dans le bon ordre, car il n’a

aucun souvenir du mot qu’il a dit juste avant, et c’est pour ça que nous avons inventé les RNN.

La particularité des réseaux neuronaux récurrents est que ses neurones sont connectés à tous les

autres neurones, eux compris. (Comme nous pouvons le voir plus bas le neurone reçoit sa valeur de

sortie mais l’envoi aussi (avec Ht) aux autres neurones). Cela lui permet d’avoir à un instant t

l’information (t-1) qu’il venait de traiter.

Un RNN basique est uniquement composé d’un neurone avec une fonction d’activation tanh.

Voici le fonctionnement simplifié d’un RNN

Page 25: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 24

Voici le fonctionnement pour prédire un mot avec ce type de réseau de neurone :

L’utilisateur va rentrer des lettres et le réseau mettra une probabilité qu’une lettre apparaisse en

fonction des lettres précédentes, les poids sont réglés grâce à la descente par gradient (vu

précédemment).

Exemple :

(Les valeurs sous les lettres correspondent à la probabilité /1 que la lettre suivante apparaisse et les

lettres sont les lettres pouvant suivre la lettre précédente).

LSTM

Page 26: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 25

Voici la structure du LSTM :

Analysons cela de plus près.

Le secret de l’efficacité du LSTM est la ‘cell state’, la barre du haut (voir graphique ci-dessous). C’est

cette barre qui transportera les données importantes.

Les données qui rentrent sont filtrés par les quatre réseaux de neurones et seul les données

importantes passent dans la cell state.

Vous pouvez imaginer la cell state comme un cours d’eau qui transporterait des bouts de bois plus

ou moins grands, et selon la taille des bouts de bois, le bout de bois pourrait rester plus longtemps

dans le cours d’eau et serait donc accessible plus longtemps. (Les bouts de bois sont en fait les

données stockées, et leur taille dépendra des opérations qu’elles subiront (addition, multiplication

(les pointwise opertations) et selon les fonctions d’activations qui les traitera (sigmoide, tanh)).

Page 27: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 26

Analysons maintenant les trois composantes principales du LSTM : la porte d’oubli (forget gate), la

porte d’entrée (input gate) et la porte de sortie(outpout gate) :

La forget gate

Cette porte contient une sigmoïde (qui prend généralement des valeurs comprises entre

0 et 1) et une multiplication avec un filtre.

Si le neurone décide qu’une information n’est pas importante, la valeur de cette information sera

minimisée grâce à la sigmoïde (qui lui donnera une valeur proche de 0) et l’écrasera par la

multiplication avec le filtre. Une donnée importante sera proche de 1 et une donnée pas importante

se rapprochera de 0.

Le but de cette porte est (évidemment) d’effacer les informations qui ne sont pas ou plus

importantes.

Il est cependant important de comprendre qu’ici l’information n’est pas un simple chiffre mais une

matrice ou un vecteur (comme pour les autres réseaux).

La forget gate est donc un premier outil qui efface les premières valeurs inutiles (efface les valeurs de

mémoire).

L’input gate

Page 28: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 27

Maintenant imaginons que notre LSTM reçoit en entrée une phrase « je suis allé faire les courses

dans un magasin »

Notre réseau préfèrera garder l’information « aller aux courses » et si possible diminuer (oublier) la

partie « dans un magasin » qui n’est pas d’une grande utilité.

Les données inutiles seront supprimées par une deuxièmes forget gate (sigmoïde + multiplication)

qui filtrera les informations et les données devant être ajouté à la cell state passeront par la tanh.

Ces données seront ensuite additionnées à un filtre.

L’input gate est donc l’outil qui sélectionne les données dont il a besoin (ajoute des valeurs à la

mémoire).

L’output gate

L’ouput gate est la porte qui choisit quels valeurs (vecteurs) envoyer au neurone suivant.

Il reçoit en entrée tous les vecteurs de la cell state ainsi que toutes les autres valeurs (venant de la

ligne H(t-1) du bas) et grâce à un filtre X et une fonction d’activation tanh il choisit quels sont les

valeurs de sortie.

GRU

Le GRU (Gated Recurrent Unit) est d’une certaine manière un LSTM sans porte de sortie. IL est

avant tout utile pour tout travail demandant une mémoire à moyen terme (le LSTM étant à long

terme).

Page 29: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 28

Pour le reste, le type d’apprentissage reste le même que les autres réseaux neuronaux (type MLP ou

CNN avec une loss function ,une descente par gradient, et des ajustements des poids etc.)

L’art et l’intelligence artificielle

Style transfer

Le style transfer permet grâce à un réseau de neurone de récupérer le style d’une photo et de

l’appliquer à une image au choix.

Page 30: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 29

Voici l’architecture de ce réseau :

Il s’agit comme vous pouvez le voir d’un réseau de convolution (nos fameux CNN, même si pour être

exacte il s’agit d’un VGG, un autre type de réseau de convolution).

Tout l’intérêt de ce système repose sur deux choses, la loss content et la loss style.

La loss Content

Voici la formule de la loss content

Voici son fonctionnement :

Page 31: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 30

On va entrainer un CNN avec notre image histoire d’ajuster les poids. Une fois que notre réseau peut

reconnaitre notre propre image nous faisons une copie de nos poids dans une matrice (la matrice

bleue sur le schéma) et nous la comparons avec une image bruitée.

(Ceci est une image bruitée).

Nous comparons donc notre feature map avec une image bruitée, le but est d’ajuster les valeurs de

l’image bruitée pour qu’elle soit identique à la feature map.

Cette comparaison se fait grâce à notre loss content (on a donc F qui correspond à la matrice de

l’image bruitée et P à la feature map) le but est (à aide d’une descente par gradient) de faire

apparaitre le contenu de la feature map sur l’image bruité) Voici un exemple pour éclaircir

votre compréhension :

Page 32: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 31

On compare la matrice de la feature map avec une image bruitée. Le but est que l’image bruitée (en

haut à gauche) ressemble à l’image de droite en haut. (L’image d’origine est l’image en bas à gauche).

On essaye donc de faire apparaitre sur une image bruitée les traits principaux de notre image (ce que

l’on appel contenu).

D’un point de vue mathématique, on modifie les valeurs de la matrice bruitée pour qu’elles soient

identique à celle de la feature map. Quand elles sont identiques L_content=0.

La loss style

La loss Style est assez similaire à la loss content.

Il est important de comprendre que les premières feature map d’un réseau CNN représentent le

contenu (car elles contiennent peu de détail, on ne voit que les contours) et que les dernières

features map correspondent en fait au style de la photo (car beaucoup plus de détail et de

dépendance entre chaque pixels).

On s’intéresse donc ici non pas aux premières features map comme pour le contenu mais aux

dernières.

Voici la formule de la L_Style :

(Avec G notre image de style et A notre image

bruitée).

Ici nous allons extraire les poids correspondant au poids des dernières convolutions cette fois ci

(pour avoir une matrice du style de la photo et non du contenu !!!) et en faire une matrice de gram

(voir formule ci-dessous)

Page 33: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 32

Une fois que nous avons notre formule de gram nous allons tout simplement (grâce à la fonction loss

style) la comparer avec notre image bruitée et grâce à une descente par gradient nous allons faire

apparaitre le style sur cette image bruitée. (Encore une fois on veut que notre matrice bruitée ait des

valeurs similaires à celle de la matrice de gram (correspondant au style).

POUR RESUMER :

Nous prenons notre image A de loup (par exemple).

Nous prenons notre image B de Van Gogh (par exemple).

Nous faisons passer l’image A dans un CNN (VGG pour être exact) et nous récupérons une des

premières features map pour avoir notre contenu (le contenu sont les lignes principales qui fait que

cette photo est une photo de loup).

On applique la loss Content (comparaison) entre la matrice de la feature map et notre image C qui

est bruitée. Grace à la descente par gradient nous faisons petit à petit apparaitre le contenu sur

l’image bruitée.

Nous faisons ensuite passer notre image B dans le VGG et nous récupérons les poids des dernières

convolutions (correspondant donc au style de notre image B et non au contenu) puis nous en faisons

une matrice de gram. Une fois cela fait nous comparons cette matrice avec la matrice C bruitée et

grâce à la descente par gradient nous modifions notre image C pour y faire apparaitre le style de

notre image B.

Notre image C possède donc le contenu de l’image A (le loup) et le style de l’image B (Van Gogh) !!!!

GAN

Les Generative adversarial networks (GANs) sont des architectures de réseaux neuronaux capable de

créer une image unique à partir d’une librairie d’image. Il permet aussi la reconstitution d’image (s’il

en manque des bouts).

Un GAN a donc la capacité d’imiter des données.

Un GAN est composé de deux réseaux de neurones qui s’opposeront.

Le premier est là pour générer une image et le second pour reconnaitre une vraie image d’une fausse.

Le premier est appelé « generator » (générateur) et le second « discriminator » (discriminateur).

Page 34: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 33

Le principe est assez simple, le discriminateur va recevoir de vrai images et de fausses images (crées

par le generateur ) son but sera d’etablir une probabilité entre 0 et 1 de la veracité de la photo.

En general le discriminateur est un CNN et le générateur aussi un type de CNN assez particulier ( voir

plus bas). Sinon on peut aussi tomber sur un MLP en tant que discriminateur et generateur.

Le générateur et le discriminateur s’exercent en même temps.

Au fur et à mesure de l’apprentissage, le générateur génèrera des images de plus en plus convaincantes et le discriminateur sera de mieux en mieux repérer les vrai et les fausses images.

Le générateur

Le générateur fait en fait exactement l’inverse d’un réseau de convolution. En effet il part de bruits

pour faire des déconvolutions et du unpooling pour créer une image.

Page 35: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 34

Figure 2.a

Soit F(n) la nième feature map, K(n) le nième filtre nous avons

Le but ici est de multiplier notre image petite et bruitée avec des filtres puis de faire un brassage

périodique des features map obtenus pour l’agrandir et rajouter du contenu et des détails.

Ici le bruit est l’image bleu, à l’aide de cette image nous alors grâce a des filtres construire plusieurs

features map (voir photo 2.a) puis les assembler en faisant un brassage entre elles en utilisant des

combinaisons periodiques (voir figure ci-dessus), nous voyons que nous avons un pixel rouge puis

vers puis rouge etc. c’est un brassage car on mélange des matrices et il est periodique car il s’agit

d’une combinaison qui se répète de manière régulière.

Le gradient (dérivé de notre fonction loss pour ajuster ses poids) est défini ainsi :

Avec G notre fonction différentiel correspondant au

Page 36: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 35

résultat des déconvolutions et D notre discriminateur qui délivre une probabilité entre 0 et 1 pour la

véracité de l’image. (Basiquement à 1 l’image est réelle et a 0 l’image est fausse).

Etant donné que est une probabilité comprise entre 0 et 1 on voit bien

mathématiquement que plus la fonction tend vers 1 plus l’écart est petit et plus elle tend vers 0 plus

elle est grande.

Le discriminateur

Le discriminateur est soit (au choix) un CNN ou un MLP (dans les cas généraux).

Je ne reviendrais donc pas sur les explications de son fonctionnement, mais regardons quand même

le gradient (dérivé de notre fonction loss) :

Nous avons x(i) correspondant à une vraie image, donc D(x(i)) la probabilité qu’une vraie image soit

une vraie image.

Z(i) une image bruitée donc G(z(i)) une image fausse généré par le générateur et donc pour finir

D(G(z(i))) la probabilité que la fausse image soit une vraie image.

Ici il est important que le discriminateur sache reconnaitre une vraie photo (d’où l’importance du

) mais aussi repérer une fausse image d’où l’apparition du

dans la formule.

Si la vrai image est reconnue comme fausse on aura log D(x(i)) qui tendra vers -n avec n є {1 ;+∞}(on

aura donc une grosse erreur).La même analyse pourra être faite pour l’autre terme.

Vous l’avez surement compris, au fur et à mesure de la DSG les poids du discriminateur vont

s’ajuster, la loss fonction finira par tendre vers 0 et sera de plus en plus capable de reconnaitre une

vrai image d’une fausse.

Pour résumer

Notre générateur va créer des images à partir de bruit. Ce phénomène est appelé déconvolution.

Notre discriminateur va recevoir des images venant du générateur et venant d’un data set avec de

vrai images et il devra déduire quelle image est réel ou ne l’est pas.

Page 37: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 36

Les deux réseaux apprendront donc à mieux faire de la « contrefaçon » et a mieux détecter une

contrefaçon » au fils du temps.

Nous pouvons résumer ça avec l’image ci-dessous.

Les poids de nos deux réseaux seront ajustés grâce aux fonctions loss vu précédemment et grâce à la

descente par gradient.

Voici le résultat impressionnant de ces réseaux neuronaux :

(Ici le data set était des photos d’Arnold Schwarzenegger et le générateur avait en entrée la photo

avec le visage d’Arnold Schwarzenegger masqué par le carré noir !!!)

Reinforcement learning

Reinforcement learning et deep Q learning (DQN)

Pour votre dernière leçon nous allons aborder la notion de DQN (Deep Q-Network).

Page 38: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 37

Il s’agit d’un type de réseau rentrant dans la branche du reinforcement Learning (RL).

Le reinforcement Learning est une classe de problème d’apprentissage où le réseau apprend à partir

de ses expériences, il a ce qu’on peut appeler un comportement décisionnel.

Pour faire simple c’est ce type de réseau qui est utilisé pour jouer à des jeu vidéo (par exemple).

Nous voyons sur l’image ci-dessous une intelligence artificielle utilisant du reinforcement Learning

pour jouer à Mario (il ne s’agit pas exactement de RL mais plutôt de neuro-évolution (ici du NEAT),

mais leur utilité est similaire, je me permets donc de faire cette comparaison erronée pour permettre

une meilleure compréhension de l’utilité d’un tel réseau).

La force de ce type de réseau est qu’ils sont capables de prendre des décision (sauter plutôt que

courir par exemple).

Voici leurs architectures :

Page 39: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 38

Découpons cette architecture.

L’environnement

L’environnement correspond à notre jeu (ou plutôt à l’image du jeu).

Pour décomposer l’image nous pouvons utiliser les coordonnées et les données connu et les traiter à

l’aide d’un réseau MLP mais ici le but du DQN est de proposer un algorithme capable de jouer à

n’importe quel jeu, nous allons donc utiliser un CNN pour décomposer l’image.

Le but ici est que le réseau utilise sa « vue » tout comme un être humain (ce qui lui permettra une

meilleure adaptation entre plusieurs jeux).

Nous avons donc en entrée du CNN l’image du jeu et autant de sorti qu’il y a d’action possible

(sauter avancer se baisser etc.)

Le Q network et target Q network

C’est dans cette partie de l’architecture que les décisions seront prises.

Nous utilisons pour ça la formule de BELLMAN qui est écrit ci-dessous :

Page 40: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 39

Soit :

Le but ici pour ce network est d’acquérir le plus grand gain grâce à cette formule. Le gain est l’action

qui lui donnera les meilleurs résultats (ramasser tel item, rester en vie le plus longtemps possible, le

plus vite etc.).

Nous avons ici R(t) qui correspond à la récompense, Y qui correspond à un simple coefficient

linéaire, S qui correspond à une observation et A(t) à une action et Q est tout simplement la valeur

d’action (c’est-à-dire la valeur de l’exécution comme sauter, avancer, reculer etc. c’est-à-dire le gain

R que la machine peut récupérer si elle exécute une action a).

Mais que nous dis cette formule exactement ?

Tout d’abord le network va chercher les récompenses qu’il peut avoir en faisant tel ou tel action (par

exemple s’il court il a un gain de 200, s’il saute un gain de 180 etc.) Puis il va faire la même simulation

pour l’action d’après etc. (voir schéma ci-dessous) :

Ici il regarde le gain qu’il peut avoir pour R(1) puis R2) …. R(t)…. Par rapport à l’exécution d’une

action précise. Voici comment comprendre cette équation

Ici l’action qu’il va privilégier (le Q qui dépend donc de ses observations (s) et ses actions (a)) est

celle qui lui donne le plus grand gain r(t) jusqu’à t=t+n.

Littéralement, la formule de Bellman dit « l’action que vais faire (le Q) est l’action qui me permet

d’avoir le plus de gain (R) pour cette action (A) et les n actions d’après par rapport à mes

observations S .

Cette équation se généralise ainsi :

Page 41: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 40

Voici comment l’interpréter :

L’action qui va être exécuter est l’action donnant le plus grand gain immédiat (R) et le meilleur gain

après n action (qui correspond au Max(Q(s’,a’)).

C’est donc cette partie du réseau qui après avoir fait toutes sortes de simulations de ses actions

réalisables, va choisir d’en faire une Plutôt qu’une autre.

La partie Q network fais une prédiction sur l’action qu’il va faire (notre Q(s,a)) et la partie Q network

fait en fait une simulation de sa potentiel trajectoire (le maxQ(s’,a’,ф)).

DQN LOSS

Que serait un réseau neuronal sans fonction loss ?

Vous l’aurez compris, le réseau doit à terme apprendre à faire les meilleures décisions possibles.

Ses premiers mouvements seront aléatoires et/ou mal calculé, mais il apprendra à terme grâce à

cette fonction loss à faire les meilleurs choix possibles.

Voici sa formule :

Soit en généralisant

Ici la seule chose à retenir est qu’il calcule l’erreur quadratique entre son estimation «

r+y*maxQ(s’,a’;ф) » et le gain qu’il aurait voulu/du obtenir ( -Q(s,a ; ф) ).

Gradient de la fonction loss

En effectuant une descente par gradient (algorithme de gradient stochastique) nous tombons avec

une dérivée partielle de la fonction loss égale à

Je vous rappelle que la dérivée partielle de la fonction loss (notre V) correspond à la formule

d’ajustement des poids.

Page 42: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 41

Replay memory

Le replay memory a un rôle vraiment important dans ce réseau.

Au fur et à mesure que la machine joue elle va enregistrer ses « states » (actions, conséquences etc.)

et c’est sur ces states que se base notre partie « Q network » et « Q target network ».

C’est pour cette raison qu’au bout de la sauvegarde de N states (nombres de states que vous voulez

garder) la mémoire va décider de toutes les effacer pour les remplacer sur de nouvelles. Les « Q

network » et « Q target network » se baseront du coup sur des states de plus en plus évoluées et

pourront à leurs tours s’améliorer de mieux en mieux.

Pour résumer

Le réseau reçoit de son environnement les images du jeu, grâce à la partie « Q network » et « Q

target network » et à l’utilisation de la formule de Bellman la machine choisit quelle action est la

plus optimal, La fonction DQN Loss calcul les erreurs de « simulation » de nos « Q network » et « Q

target network » et corrige leurs poids grâce à une descente par gradient.

Pendant ce temps la machine enregistre les states du jeu (sur lesquelles elle se base pour établir sa

stratégie) et les renouvelles toutes les N states.

Voici pour finir le résumé de l’algorithme tel qu’il est présenté sur le papier original (que vous

pouvez retrouver en source).

Page 43: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 42

Mes sources

https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf

https://beamandrew.github.io/deeplearning/2017/02/23/deep_learning_101_part2.html

http://cs231n.github.io/convolutional-networks/

https://becominghuman.ai/how-should-i-start-with-cnn-c62a3a89493b

https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/

https://translate.google.fr/translate?hl=fr&sl=en&u=https://www.analyticsvidhya.com/blog/2017/12/f

undamentals-of-deep-learning-introduction-to-lstm/&prev=search http://colah.github.io/posts/2015-08-

Understanding-LSTMs/

http://pages.cs.wisc.edu/~shavlik/cs638/lectureNotes/Long%20ShortTerm%20Memory%20Networks.pdf

https://isaacchanghau.github.io/2017/07/22/LSTM-and-GRU-Formula-Summary/

https://translate.googleusercontent.com/translate_c?depth=1&hl=fr&prev=search&rurl=translate.go

ogle.fr&sl=en&sp=nmt4&u=http://colah.github.io/posts/2015-08-Understanding-

LSTMs/&xid=17259,15700022,15700105,15700124,15700149,15700168,15700173,15700201&usg=ALkJrhhLo

kDdqHEK2fuomlIT7LDexWYywg https://www.cv-

Page 44: Intelligence artificielle - robot innovationrobot-innovation.com/_media/le-machine-learning-j.-donadio1.pdf · Ce livre est une initiation au machine Learning. A travers plusieurs

PAGE 43

foundation.org/openaccess/content_cvpr_2016/papers/Gatys_Image_Style_Transfer_CVPR_2016_pa

per.pdf

https://translate.googleusercontent.com/translate_c?depth=1&hl=fr&prev=search&rurl=translate.go

ogle.fr&sl=en&sp=nmt4&u=http://ml4a.github.io/guides/&xid=17259,15700022,15700105,15700124,157

00149,15700168,15700173,15700201&usg=ALkJrhgGMMyzdwcyqnhvNvHf1SPslDa3Yw

https://translate.googleusercontent.com/translate_c?depth=1&hl=fr&prev=search&rurl=translate.go

ogle.fr&sl=en&sp=nmt4&u=http://www.robots.ox.ac.uk/~vgg/research/very_deep/&xid=17259,15700

022,15700105,15700124,15700149,15700168,15700173,15700201&usg=ALkJrhheU3zhsFTW02Zft7GKqYA6

5QnbEQ

https://fr.coursera.org/learn/convolutional-neural-networks/lecture/jOnEU/cost-function

https://medium.com/artists-and-machine-intelligence/neural-artistic-style-transfer-acomprehensive-

look-f54d8649c199

Ainsi que tous les papiers officiels sortis sur ces sujets, mes cours sur l’intelligence artificielle réalisés

par « Medhi Sam, Ylies Hati et grégor jouet » Et d’autres sites web/forums.