Vous êtes sur la page 1sur 50

Introduction à

profond
apprentissage
Cours 2
Fondements des réseaux de neurones
Aperçu du cours
1. Introduction (Cours 1) 3. Réglage des réseaux profonds (Cours 5)
Qu'est-ce que l'intelligence artificielle? Introduction
Concevoir une architecture réseau profond
2. Fondations Autres facteurs de conception réseau profond
2.1. Fondations de l'apprentissage automatique (Cours 1) Détecter les problèmes de formation
Qu'est-ce que l'apprentissage automatique?
Régression linéaire 4. Architectures d'apprentissage profond (Cours 5)
Régression logistique Modèles d'images
2.2. Fondations des réseaux neuronaux (Cours 2) Modèles de séquence
Le Perceptron Modèles génératifs
Réseaux neuronaux peu profonds Modèles de renforcement profond
2.3. Fondations de l'apprentissage profond (Cours 3,4) 5. Modèles d'image
Qu'est-ce que l'apprentissage profond? 5.1. Réseaux neuronaux convolutionnels (Cours 6)
Validation du modèle Éléments fondamentaux des blocs de construction
Normalisation des entrées Couches réseau
Surajustement et Sous-ajustement Réseaux célèbres
Régularisation Techniques de formation
Initialisation du poids
5.2. Applications CNN (Cours 7)
Fonctions d'activation
Détection d'objets
Fonctions de perte
Reconnaissance faciale
Algorithmes d'optimisation
Génération d'œuvres d'art
Normalisation des lots
Aperçu du cours
6. Modèles séquence 7. Modèles génératifs (Cours 10)
6.1. Neural récurrent Réseaux (Cours 8) Introduction
Réseaux neuronaux récurrents en avant AutoEncodeurs
Réseaux contradictoires génératifs
Unités récurrentes fermées
Applications de réseaux contradictoires génératifs
Mémoire à long terme
Réseaux neuronaux récurrents bidirectionnels 8. Modèles de renforcement profond (Cours 11)
Réseaux neuronaux récurrents profonds Principes fondamentaux de l'apprentissage par
renforcement
6.2. Incorporations de mots (Cours 9) Processus de décision Markov
Principes de base des incorporations de mots Q-Apprentissage
L'apprentissage de l’incorporations de mots Gradient de politique
Algorithme Word2Vec Applications d'apprentissage de renforcement profond
Algorithme GloVe
Applications de l’incorporations de mots 9. Limitations et de nouveaux Frontières (Cours 12)
6.3. Modèles séquence à séquence (Cours 9) Limitations de l'apprentissage en profondeur
Apprentissage profond Bayesian
Introduction
Apprendre à apprendre
Modèle de traduction automatique
Évaluation de la traduction automatique
Modèle d'attention pour la traduction
automatique

Ce cours comprend du matériel de :


• MIT "6.S191: Introduction à Deep Apprendre"
• Stanford "CS230: profond Apprendre"
Fondements des réseaux de
neurones
Le Perceptron
Comment les réseaux neuronaux ont-ils évolué ?
 Le Perceptron est un classificateur binaire à modèle linéaire. Il a été créé pour
tenter d'imiter le cerveau et constitue la forme la plus simple de réseaux de
neurones.

 Les réseaux de neurones sont un modèle informatique qui partage certaines


propriétés avec le cerveau de l'animal. Ils sont les successeurs du Perceptron
monocouche

 L’ apprentissage profond a évolué à partir de réseaux de neurones pour


inclure:
 Plus de neurones que les réseaux précédents
 Manières plus complexes de connecter des couches / neurones dans des réseaux de
neurones
 Explosion de la quantité de puissance de calcul disponible pour s'entraîner
 Extraction automatique des fonctionnalités
Le neurone biologique
 Le neurone biologique est une cellule nerveuse qui fournit le
fondamental fonctionnel unité pour le système nerveux de tous les
animaux.
 Les neurones communiquent par impulsions électriques
Fils d'entrée

corps

Fil de sortie
Le neurone biologique
 Synapses
 Les synapses sont la jonction de connexion entre l'axone et les dendrites. La majorité
de synapses envoyer des signaux de l'axone d'un neurone à la dendrite d'un autre
dendrite.
 Dendrites
 Les dendrites permettent à la cellule de recevoir le signal des neurones voisins
connectés et chaque dendrite peut effectuer une multiplication par la valeur de poids
de ce dendrite.
 Axones
 Les axones sont la seule fibre longue partant du corps de la cellule principale (soma).
Finalement, l'axone se branche et se connecte à d'autres dendrites. Les neurones sont
capables d’envoyer des signaux qui se déplacent le long de l’axone de la cellule et
activent les connexions synaptiques avec d’autres neurones.
Modélisation du neurone biologique
 Le Perceptron a été inventé en 1957 au Cornell Aeronautical
Laboratory par Frank Rosenblatt. Il est à l'origine comme une tentative
d'imiter le cerveau.
 Le précurseur au perceptron était l'unité logique de seuil (TLU)
développé par McCulloch et Pitts en 1943, qui pouvaient apprendre l'ET
et OU fonctions logiques.
 Le Perceptron à une seule couche est un classificateur binaire à
modèle linéaire avec une simple relation entrée-sortie. C'est la forme la
plus simple des réseaux neuronaux. Son principal inconvénient était
qu'elle ne pouvait pas résoudre les problèmes non linéaires
 Il a ensuite évolué vers des réseaux de neurones multicouches dotés
de capacités non linéaires
Modélisation du neurone biologique
 Le Mark I Perceptron a été conçu pour la reconnaissance d’images à des fins
militaires par la US Navy. Le Mark I Perceptron avait 400 photocellules
connectées à des neurones artificiels dans la machine et les poids étaient
appliqués par des potentiomètres. Les mises à jour du poids ont été
effectuées physiquement par des moteurs électriques.
 Le New York Times a cité: "L'embryon d'un ordinateur électronique qui,
selon la Marine, sera capable de marcher, de parler, de voir, d'écrire, de se
reproduire et de prendre conscience de son existence"
 L’hiver AI du 1974-1980: l'incompréhension des capacités de perceptron
multicouches a constitué un premier échec pour le public et a nui à l'intérêt
et au financement des réseaux de neurones pour la prochaine décennie. Ce
n’est que lors de la résurgence des réseaux de neurones au milieu des années
80 que la rétropropagation est devenue populaire et que les réseaux de
neurones ont suscité une deuxième vague d’intérêt.
Modélisation du neurone biologique

Mark I Perceptron Frank Rosenblatt


Le Perceptron à une seule couche
Poids w1j,...WNj pour Perceptron J

Fonction d'activation :
- Fonction d'étape heaviside avec Seuil 0,5

Image originale de 1957


Neurone artificiel d'un Perceptron multi-
couches

gr
Fonction d'activation :
- Une fonction plus généralisée g(z)

Image originale de 1957


Fondements des réseaux de
neurones
Réseaux neuronaux peu profonds
Réseaux de neurones multicouches
 Étaient très populaire dans les années 70 et 80, mais ont été
abandonnés dans les années 90 car ils étaient très coûteuses en calcul
et que le matériel existant n’était pas assez performant. Aujourd'hui, ils
ont retrouvé en popularité, depuis:
 Le matériel est maintenant suffisamment puissant
 Sont applicables dans une variété de problèmes
 L'algorithme d'apprentissage unique
Si le même cerveau peut apprendre à voir, touchez, alors peut-être qu'un seul algorithme
d'apprentissage peut être construit pour faire une variété de choses aussi
Pourquoi utiliser les réseaux neuronaux?
 Dans la vie réelle, l'hypothèse de classification est généralement de
nature non linéaire
 Hypothèse non linéaire de réseaux de neurones
 Une hypothèse non linéaire peut être réalisée avec des algorithmes tels que la
régression logistique, mais ceci n'est pratique que pour un petit nombre
d'entités
 Les réseaux de neurones ont une hypothèse non linéaire et fonctionnent
même pour un grand nombre de caractéristiques
Pourquoi utiliser les réseaux neuronaux?
 Exemple 1 :  En utilisant la régression logistique, l'hypothèse non
linéaire est réalisable si vous n'avez que deux
caractéristiques 𝑥𝑥1 , 𝑥𝑥2

 Impraticable avec beaucoup de caractéristiques 𝑥𝑥1 ,


𝑥𝑥2 ,... 𝑥𝑥100
2
Si vous utilisez l'ordre 2 2 (c.-à-d. 𝑥𝑥1 , 𝑥𝑥1 𝑥𝑥2 , … 𝑥𝑥99 𝑥𝑥100 ), nous
𝑛𝑛
avons besoin 𝑂𝑂 caractéristiques au total
2
Si2vous utilisez l'ordre 3 (c.-à-d.
𝑥𝑥1 𝑥𝑥2 , 𝑥𝑥1 𝑥𝑥2 𝑥𝑥3 , … 𝑥𝑥98 𝑥𝑥99 𝑥𝑥100 ), nous avons besoin 𝑂𝑂 𝑛𝑛3
caractéristiques au total
Pourquoi utiliser les réseaux neuronaux?
 Exemple 2 (détection de voiture) :  Même pour une petite fenêtre de
50x50 pixels, n=2500
2500 pixels à l'échelle grise
7500 en RGB
Neurone d'un réseau neuronal
 Représenter comme une unité logistique, en utilisant une fonction
1
d'activation sigmoïde (logistique) 𝑔𝑔 𝑧𝑧 = −𝑧𝑧
1+𝑒𝑒
 Dans les réseaux neuronaux, les paramètres 𝜃𝜃 sont appelés Poids
𝑔𝑔 𝑧𝑧
hypothèse: 0.99
𝑥𝑥0
𝜃𝜃

0.01

-4.6 4.6 𝑧𝑧
Un Réseau neuronal multi-couches
 Représenté à l'aide de plusieurs couches contenant des neurones
interconnectés

Couche d'entrée Couche cachée Couche de sortie


Architectures de réseau neuronal multi-
couches
 Peut avoir plusieurs couches cachées
Calculs Feed-Forward dans un réseau de neurones
Calcul de l'activation d'un neurone
𝑥𝑥0

1
Θ10
𝑥𝑥1
1
Θ11
𝑥𝑥2 1
Θ12 2
𝑎𝑎1

1
Θ13
𝑥𝑥3

Image originale de 1957


Calculs Feed-Forward dans un réseau de neurones
Calcul de l'activation d'un neurone
Combinaison
linéaire
𝜃𝜃0 bias 𝑚𝑚 d'entrées
sortie
𝜃𝜃1 𝑦𝑦� = 𝑔𝑔(𝜃𝜃0 + � 𝑥𝑥𝑖𝑖 𝜃𝜃𝑖𝑖 )
𝑖𝑖=1
𝜃𝜃2 activation
non
𝜃𝜃𝑚𝑚 linéaire

Entrées Poids somme activation sortie


non
linéaire
Calculs Feed-Forward dans un réseau neuronal
𝑥𝑥0 Θ(1)
Θ(2) (𝑗𝑗)
𝑎𝑎𝑖𝑖 « activation » de l'unité 𝑖𝑖 en couche 𝑗𝑗

(3) Θ(𝑗𝑗) matrice de poids contrôlant


𝑎𝑎1
mappage de fonction de la couche 𝑗𝑗
à la couche 𝑗𝑗+1

(2)
𝑧𝑧1
(2)
𝑧𝑧2
(2)
𝑧𝑧3
Calcul (approximant) des fonctions logiques
𝑔𝑔 𝑧𝑧
0.99
 Exemple 1 : calculer la function ET

0.01
-30
-4.6 4.6 𝑧𝑧
20
𝒙𝒙𝟏𝟏 𝒙𝒙𝟐𝟐 ℎΘ 𝑥𝑥
0 0 g(-30)≈ 0 ℎΘ 𝑥𝑥 = 𝑥𝑥1 𝐴𝐴𝐴𝐴𝐴𝐴 𝑥𝑥2
20
0 1 g(-10)≈ 0
1 0 g(-10)≈ 0
ℎΘ 𝑥𝑥 = 𝑔𝑔 −30 + 20𝑥𝑥1 + 20𝑥𝑥2 1 1 g(10)≈ 1
Calcul (approximant) des fonctions logiques
𝑔𝑔 𝑧𝑧
0.99
 Exemple 2 : calculer la function OU

0.01
-10
-4.6 4.6 𝑧𝑧
20
𝒙𝒙𝟏𝟏 𝒙𝒙𝟐𝟐 ℎΘ 𝑥𝑥
20 0 0 g(-10)≈ 0 ℎΘ 𝑥𝑥 = 𝑥𝑥1 𝑂𝑂𝑂𝑂 𝑥𝑥2
0 1 g(10)≈ 1
1 0 g(10)≈ 1
ℎΘ 𝑥𝑥 = 𝑔𝑔 −10 + 20𝑥𝑥1 + 20𝑥𝑥2 1 1 g(30)≈ 1
Calcul (approximant) des fonctions logiques
𝑔𝑔 𝑧𝑧
0.99
 Exemple 3 : calculer la function PAS

0.01
10
-4.6 4.6 𝑧𝑧
-20
𝒙𝒙𝟏𝟏 ℎΘ 𝑥𝑥
ℎΘ 𝑥𝑥 = 𝑁𝑁𝑁𝑁𝑁𝑁 𝑥𝑥1
0 g(10)≈ 1
ℎΘ 𝑥𝑥 = 𝑔𝑔 10 − 20𝑥𝑥1 0 g(-10)≈ 0
Calcul (approximant) des fonctions logiques
𝑔𝑔 𝑧𝑧
0.99
 Exemple 4 :

0.01
10
-4.6 4.6 𝑧𝑧
-20
𝒙𝒙𝟏𝟏 𝒙𝒙𝟐𝟐 ℎΘ 𝑥𝑥
0 0 g(10)≈ 1
-20
0 1 g(-10)≈ 0
1 0 g(-10)≈ 0
ℎΘ 𝑥𝑥 = 𝑔𝑔 10 − 20𝑥𝑥1 − 20𝑥𝑥2 1 1 g(-30)≈ 0
Calcul (approximant) des fonctions logiques
 Exemple 5 : construire un réseau pour calculer les éléments suivants :
𝒙𝒙𝟏𝟏 𝒙𝒙𝟐𝟐 ℎΘ 𝑥𝑥
0 0 1
0 1 0
1 0 0
1 1 1
Calcul (approximant) des fonctions logiques
 Exemple 5 : Mettre tout cela ensemble
Calcul (approximant) des fonctions logiques
 Exemple 5 : Construire les couches une par une

+1
-10 𝒙𝒙𝟏𝟏 𝒙𝒙𝟐𝟐 2
𝑎𝑎1
2
𝑎𝑎2 ℎΘ 𝑥𝑥
-30 0 0 0 1 1
20 20
𝑎𝑎1
2 3 0 1 0 0 0
𝑎𝑎1
20 10 1 0 0 0 0
-20 20
1 1 1 0 1
-20 2
𝑎𝑎2
Fonction de perte dans Réseaux neuronaux

 La perte de notre réseau mesure le coût des prévisions erronées


Fonction des coûts dans Réseaux neuronaux

 La fonction de coût mesure la perte totale sur l'ensemble de notre ensemble


de données
Perte d'entropie croisée binaire dans les
réseaux de neurones

 La perte d'entropie croisée peut être utilisée avec des modèles générant une
probabilité comprise entre 0 et 1
Perte d'erreur quadratique moyenne dans les
réseaux de neurones

 La perte d'erreur quadratique moyenne peut être utilisée avec des modèles
de régression qui produisent des nombres réels continus
Origines de la fonction de coût dans les
réseaux de neurones
 Commencer par la fonction coût pour la régression logistique :

 Fonction de coût pour les réseaux neuronaux :

 où
Optimisation des pertes en utilisant la descente de
gradient dans les réseaux de neurones
 Minimiser la fonction de coût :

 Afin de minimiser, nous devons calculer les dérivés:


(𝑙𝑙) 𝜕𝜕𝐽𝐽 Θ
𝑑𝑑Θ𝑖𝑖𝑖𝑖 = (𝑙𝑙)
𝜕𝜕Θ𝑖𝑖𝑖𝑖
Optimisation des pertes en utilisant la descente de
gradient dans les réseaux de neurones

 Nous voulons trouver les poids du réseau qui atteignent le plus bas
perte:
Optimisation des pertes en utilisant la descente de
gradient dans les réseaux de neurones

 Choisissez au hasard une initiale (𝑤𝑤0 , 𝑤𝑤1 )


Optimisation des pertes en utilisant la descente de
gradient dans les réseaux de neurones

𝜕𝜕𝐽𝐽(𝑾𝑾)
 Calculer le gradient
𝜕𝜕𝑾𝑾
Optimisation des pertes en utilisant la descente de
gradient dans les réseaux de neurones

 Faites un petit pas dans la direction opposée du gradient


Optimisation des pertes en utilisant la descente de
gradient dans les réseaux de neurones

 Répéter jusqu'à la convergence


Descente de gradient dans les réseaux neuronaux

 Contrairement à la régression linéaire, dans les réseaux de neurones, la


fonction de coût peut ne pas toujours être convexe, elle peut donc avoir des
minima locaux.
 La descente de gradient est un algorithme glouton, de sorte qu'il ne trouve
pas toujours les minima globaux.
Descente de gradient dans les réseaux neuronaux
 Algorithme:

 Initialiser les poids au hasard


 Boucle jusqu'à la convergence
𝜕𝜕𝜕𝜕(𝑾𝑾)
 Calculer le Gradient
𝜕𝜕𝑾𝑾
𝜕𝜕𝜕𝜕(𝑾𝑾)
 Mise à jour des poids 𝑾𝑾 ← 𝑾𝑾 − 𝛼𝛼 (𝛼𝛼 est le taux
𝜕𝜕𝑾𝑾
d'apprentissage)
 Retourner les poids
Initialisation des paramètres dans les réseaux
de neurones
(𝑙𝑙)
 Ne pas initialiser les paramètres Θ𝑖𝑖𝑖𝑖 avec zéro
Si vous le faites, après chaque mise à jour, les paramètres correspondant aux
entrées entrant dans chacune des deux unités cachées sont identiques

(𝑙𝑙)
Au lieu de cela, initialiser Θ𝑖𝑖𝑖𝑖 ∈ −𝜖𝜖, 𝜖𝜖
Formation des réseaux neuronaux
 Intuition:
 Nous voulons calculer la sortie de l’exemple d’entrée avec un transfert en avant sur le
réseau.
 Si la sortie correspond à l'étiquette, nous ne faisons rien.
 Si la sortie ne correspond pas à l'étiquette, nous devons alors ajuster les poids sur les
connexions du réseau de neurones.

 La formation d'un réseau se fait en deux étapes:


 Propagation en avant
Calcule les calculs feed-forward
 Propagation en arrière
 Calcule le gradient de la fonction de coût par rapport aux poids du réseau de neurones.
 Abréviation de "propagation arrière des erreurs"
𝑧𝑧 (𝑙𝑙) = 𝜃𝜃 (𝑙𝑙) 𝑎𝑎(𝑙𝑙−1)
Formation des réseaux neuronaux
𝑎𝑎(𝑙𝑙) = 𝑔𝑔 𝑙𝑙 (𝑧𝑧 (𝑙𝑙) )
Propagation vers l'avant
𝑎𝑎(0) 𝑎𝑎(1) 𝑎𝑎(2) 𝑎𝑎(𝐿𝐿)
𝜃𝜃 (1) 𝜃𝜃 (2) 𝜃𝜃 (3) 𝜃𝜃 (𝐿𝐿)
𝑥𝑥 𝑦𝑦� perte
𝐽𝐽(𝜃𝜃)
𝑧𝑧 (1)
𝑧𝑧 (2) 𝑧𝑧 (3) 𝑧𝑧 (𝐿𝐿)

𝜃𝜃 (1) 𝑑𝑑𝑎𝑎(1) 𝜃𝜃 (2) 𝑑𝑑𝑎𝑎(2) 𝜃𝜃 (3) 𝜃𝜃 (𝐿𝐿) 𝑑𝑑𝑎𝑎(𝐿𝐿)


𝑑𝑑𝑑𝑑 (1) 𝑑𝑑𝑑𝑑 (2) 𝑑𝑑𝑑𝑑 (3) 𝑑𝑑𝑑𝑑 (𝐿𝐿)

𝑑𝑑𝜃𝜃 (1) 𝑑𝑑𝜃𝜃 (2)
𝑑𝑑𝜃𝜃 (3) 𝑑𝑑𝜃𝜃 (𝐿𝐿) 𝑑𝑑𝑧𝑧 (𝑙𝑙) = 𝑑𝑑𝑎𝑎(𝑙𝑙) * 𝑔𝑔 𝑙𝑙 (𝑙𝑙)
(𝑧𝑧 )

Propagation vers l'arrière 𝑑𝑑𝜃𝜃 (𝑙𝑙) = 𝑑𝑑𝑑𝑑 (𝑙𝑙) 𝑎𝑎(𝑙𝑙−1)


𝑇𝑇
𝑑𝑑𝑎𝑎(𝑙𝑙−1) = 𝜃𝜃 (𝑙𝑙)
𝑑𝑑𝑑𝑑 (𝑙𝑙)
Algorithme pour s'entraîner un réseau
neuronal
 Former l'architecture du réseau
(𝑙𝑙)
1. Initialiser au hasard les poids Θ𝑖𝑖𝑖𝑖 ∈ −𝜖𝜖, 𝜖𝜖
2. Exécuter la propagation vers l'avant pour obtenir ℎΘ (𝑥𝑥 (𝑖𝑖) ) pour toute 𝑥𝑥 (𝑖𝑖)
3. Calculer la fonction de coût 𝐽𝐽 Θ
(𝑙𝑙) 𝜕𝜕𝐽𝐽 Θ
4. Exécuter la propagation vers l'arrière pour calculer les dérivés partiels 𝑑𝑑Θ𝑖𝑖𝑖𝑖 = (𝑙𝑙)
𝜕𝜕Θ𝑖𝑖𝑖𝑖
Architectures de réseau neuronal
 Choisissez une architecture réseau

 Nombre d'unités d'entrée et dimension des entités 𝑥𝑥 (𝑖𝑖)


 Nombre d'unités de sortie et nombre de classes
Nombre de couches cachées
Défaut raisonnable : 1 couche cachée
Si plus de 1 couche cachée:
• avoir le même nombre d'unités cachées dans chaque couche
• avoir un nombre d'unités cachées comparable au nombre d'entrées, ou jusqu'à 4 fois plus grand
Sous-adaptation et sur-adaptation dans un
Réseau neuronal

 Un petit réseau avec peu de paramètres est sujet au sous-ajustement


mais est peu coûteux en calcul
 Un grand réseau de neurones avec de nombreux paramètres est sujet
à des sur-adaptation et coûte plus cher en calcul
 Utilisez la régularisation pour éviter les sur-adaptations
 Diviser en ensembles de formation, de validation croisée et de test et calculer
l'erreur de validation croisée 𝐽𝐽𝐶𝐶𝐶𝐶 Θ
Classification multiclasse avec réseaux de neurones
 Construisez un réseau qui classe l'un des éléments suivants :

 Encodage à un chaud
piéton
1 0
voiture ℎΘ 𝑥𝑥 ≈ 0 ℎΘ 𝑥𝑥 ≈ 0
0 1
0 0
moto
0 0
camion ℎΘ 𝑥𝑥 ≈ 1 ℎΘ 𝑥𝑥 ≈ 0
0 0
0 1

Vous aimerez peut-être aussi