IREN - suite

Index du cours

Rétropropagation du gradient

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Fonction logistique

Calculons l’influence du poids

w2,22 sur l'erreur quadratique
E:δEδw2,22

La derivee partielle de

y par rapport a
z
est
y(1y)

On note t (truth) la vraie valeur avec l'erreur quadratique

Correction

Que vaut le gradient de
E:E
?

Qu'est-ce qu'on modifie pour arriver au bon resultat ?
Les poids, on a 18 poids donc

E est a dimension 18.

 layer l,WlWlηE(Wl)

Pourquoi ce titre ?

On fait une propagation a l'envers, "retropropagation" pour remonter l'erreur

La methode du gradient

Le but est de trouver le vecteur

w qui minimise notre erreur
E

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Avec un

w0 choisi, l'algorithme de descente du gradient est:

wt+1=wtηE(Wt)

jusuq'a atteindre un seuil choisi

Representation graphique

Cas simple: l'erreur est une fonction convexe.

Si on modifie les cas apres chaque donnees, on risque d'osciller

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

travailler par paquet de données.

Notion de batch

Lorsque l’elliptiques est allongée, son gradient est quasiment orthogonal à son axe long ce qui n’est pas du tout la bonne direction vers le minimum.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

la convergence sera longue

Travail sur les donnees

Jouer sur l'echelle

y=w0i0+w1i1E=(yt)2

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Soit comme jeux de donnees:

0,11020,1102112112

La fonction d’erreur correspondante a la forme suivante:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

normaliser les données pour éviter des fonctions d’erreur écrasées

Translation

y=w0i0+w1i1E=(yt)2

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Soit comme jeux de donnees:

1011012101990112110

L’erreur correspondante aux jeux de données a la forme suivante:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

centrer les données pour éviter des fonctions d’erreur écrasées.

Les minimums locaux

Une fonction d'erreur n'est pas forcement elliptique, il faut s'attendre a avoir des minimums locaux.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Le point de convergence dépend du point de départ d’où le risque de finir
dans un minimum local.

Si on lance une bille, en fonction de la ou elle se trouve elle fini dans un minimum local

Comment sortir d’un minimum local pour rejoindre un minimum global ?

Les solveurs

Pour contrer ces differents problemes, on a differents solveurs

Moment et Nesterov

On donne une inertie

α a la methode:
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

On ne calcule pas le gradient au poids des poids, mais aux poids modifies.
Nesterov propose de travailler sur les données mise à jour:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Ca peut aider a "sortir" des trous et reduire les oscillations

Si notre bille s'approche d'un trou, on lui dira "Non va pas par la, fait demi-tour"

RMSprop

Le coef d'apprentissage

η influence beaucoup la convergence.

On peux choisir autant de

ηi que de parametres existants:
ηi=εμiδEδωi

Avec:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Ca marche mal avec les "mini-batches"

  • 9δEδωi
    de
    0,1
    suivi d'une de
    0,9
    devrait faire du surplace, mais pas avec cette methode

On prefere moyenner les gradients dans le temps, l'algorithme est:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Adagrad

On cherche le w aui minimise

E, donc
E(w)=0

Au pas de temps

t, on est au point
wt
, on cherche
δw
tel que
E(wt+δw)=0
donc avec un developpement limite:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Avec

2E la matrice hessienne de
E
.
L'algorithme iteratif est:
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Calculer l'inverse de la matrice essienne est trop couteux, on va chercher quelque chose qui lui ressemble,

Vt pour Adagrad:
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Exemple de convergence

Regardons à quelle vitesse convergent différentes méthodes suivant la forme
de la fonction d’erreur.

An overview of gradient descent optimization algorithms

Trois types de reseaux neuronaux

Quelques exemples de reseaux neuronaux:

  • reseau simple pour separer des donnees
    • Qui a le cancer, qui ne l'a pas
  • reseau recursif pour faire des additions
  • reseau de convolution pour comprendre une image

Une idée pour séparer les données sur deux cercles?

Separation

Relu defini un demi-plan, on va utiliser 6 Relu

() pour faire un cercle grossier et une sigmoide
()
pour separer les 2 cercles

Recursif

On veut calculer

0101011+1001110, on fait comme un addition a la main

On a besoin d'avoir des retenues (si on a

1+1 par exemple), c'est un reseau a memoire.

Les cellules grises sont la memoire, cad les retenues, des operations precedentes.

Ces reseau sont compliques a faire converger, il faut que la memoire fonctionne correctement.

Convolution

Les Convolution Neural network sont la grande reussite du deep learning.

Le but est de travailler sur des images pour en extraire ses caracteristiques

En entrée nous avons une image

N×N×3 (en RGB) dont nous diminuonsla surface à chaque couche du réseau pour augmenter sa profondeur.

À la fin on peut voir l’image comme un vecteur de caractéristiques.

Ensuite (pas sur le dessin) on peut utiliser un réseau neuronal classique pour classer l’image.

Les convolutions

Un filtre est un masque d'une certaine taille dont on a donné une valeur pour chacune des couches

On fait la somme de tous les poids

× toutes les valeurs et on travaille un pixel sur 2.

La taille des filtres est le nombre de canaux de l'image de depart.

Chacun des 5 filtres aura combien de canal ?
2 car l'image d'arrivee a 2 canaux

Diminuer la surface

L'exemple précédent saute un pas (travailler un pixel sur 2), qui réduit la surface. Si on a pas de saut de plus de filtre

le nombre de données EXPLOSE.

pooling: On réduit la surface de l'image au fur et a mesure qu'on augmente sa profondeur.

Le choix du maximum est le plus utilisé. On pourrait faire une moyenne mais cela risque de réduire le contraste de l’image.

Le Net 5

Le premier CNN, qui a bien fonctionné, pour lire les codes postaux sur les enveloppes, développé en 90 par Yann Le Cun

Evolution des CNN

Les reseaux augmentent en précision, taille et nombre d'opérations.

De plus en plus compliqué:

On rajoute des trucs pour améliorer les résultats (ou converger).

L'idée est de reprendre des données antérieures pour ne pas trop oublier. Le saut correspond à l’opération:

y=F(x,w)+x

Kaggle

Le Kaggle d'Olivier Ricou