Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Résumé Deep Learning (2)

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 17

Résumé Deep Learning

Programme
1. Introduction.
2. Infrastructure et outils pour le deep learning.
3. Gestion des données avec python. TP
4. Réseaux de neurones.
5. Réseaux de neurones à convolution.
6. Réseaux de neurones récurrents.
7. Le transfert learning et les transformations.
8. Production d'un algorithme de deep learning.
1

Chapitre 01: Introduction


Le deep learning est un domaine de l'IA qui s'appuie sur les réseaux de neurones.
Res domaines d'application du deep learning:
● Vision par ordinateur.
● Traitement de la voix.
● Traitement de texte.
● Reconnaissance manuscrite.

Chapitre 02 : Infrastructure et outils pour le deep learning


● Bibliothèques: Tensorflow, PyTorch, Keras.
● Frameworks: Tensorflow, PyTorch.
● Environnements: Jupiter, Google Colab.
2

Chapitre 2: Réseaux de neurones profonds

1. Introduction

Un réseau de neurones est un modèle informatique inspiré du fonctionnement du cerveau


humain, conçu pour traiter des données complexes en imitant les interconnexions entre
les neurones biologiques.

2. Neurone

Un neurone (ou nœud) est une unité de calcul qui reçoit des entrées, applique une fonction
sur ces entrées, et produit une sortie.

● 2.1. Entrées
○ Les signaux provenant d'autres neurones ou de la couche d'entrée sont
associés à des poids qui modifient leur importance.
● 2.2. Somme pondérée (pré-activation)
○ Le neurone calcule la somme des entrées multipliées par leurs poids
respectifs, avec un biais qui améliore la flexibilité du modèle.

● 2.3. Fonction d'activation


○ La fonction d'activation introduit de la non-linéarité et décide si le neurone
"s'active" ou non en fonction de la somme pondérée des entrées.
3

● 2.4. Types de fonctions d’activation


○ Les fonctions d’activation comme ReLU, Sigmoïde, tanh, et Softmax sont
utilisées pour différentes tâches selon les besoins du modèle.

● 2.5. Initialisation des poids


○ L'initialisation correcte des poids est cruciale pour éviter des problèmes
comme le gradient qui disparaît ou explose. Les méthodes courantes
incluent l'initialisation de Xavier et de He.
● 2.6. Choix de la fonction d’activation
○ ReLU et Leaky ReLU sont souvent utilisées dans les réseaux profonds, tandis
que Sigmoïde ou Softmax sont utiles pour certaines tâches de classification.

3. Structure d’un réseau de neurones


4

● Un réseau de neurones est composé de plusieurs couches :


○ Couche d’entrée : Reçoit les données brutes.
○ Couches cachées : Effectuent les calculs pour extraire des caractéristiques
complexes.
○ Couche de sortie : Génère la prédiction finale.
● 3.1. Couche d’entrée
○ Elle distribue les données aux couches suivantes sans effectuer de calculs.
● 3.2. Couches cachées
○ Les neurones des couches cachées effectuent des calculs, appliquent des
fonctions d'activation, et permettent au réseau de détecter des motifs
complexes.
● 3.3. Couche de sortie
○ Elle génère la prédiction finale en fonction du type de tâche (classification ou
régression).
● 3.4. Connexions entre les neurones
○ Les réseaux traditionnels sont entièrement connectés, chaque neurone
d'une couche étant connecté à chaque neurone de la couche suivante.
● 3.5. Nombre de couches et neurones
○ Le choix du nombre de couches et de neurones dépend du problème et de
l'expérience du praticien.

4. Entrainement

L'entraînement est l'étape où le modèle apprend à partir des données en ajustant ses
poids.

● 4.1. Initialisation
○ Les poids et biais sont initialisés avant le début de l'entraînement.
● 4.2. Propagation avant
○ Les données sont propagées à travers le réseau couche par couche pour
générer une prédiction.
● 4.3. Calcul de la perte
○ La fonction de perte mesure la différence entre la sortie prédite et la vérité
terrain. Elle varie selon le type de problème (régression, classification).
● 4.4. Propagation arrière
○ L'algorithme de rétropropagation ajuste les poids en fonction de l'erreur
calculée.
● 4.4.1. Ajustement des poids
○ Les algorithmes d'optimisation comme SGD, Adam, et RMSProp sont utilisés
pour ajuster les poids et minimiser la perte.
● 4.4.2. En résumé
5

○ Les algorithmes comme Adam sont souvent privilégiés pour leur stabilité
dans des réseaux profonds.
● 4.5. Mise à jour des poids
○ Les poids sont mis à jour en utilisant des méthodes d'optimisation comme la
descente de gradient.

❖ w est le poids.
❖ n est le taux d'apprentissage (learning rate).
❖ al/aw est le gradient de la fonction de perte par rapport à w.

● 4.6. Répétition (Epoch)


○ L'entraînement se déroule sur plusieurs epochs, chaque passage des
données permet de réduire l'erreur.
● 4.7. Validation
○ Un ensemble de validation est utilisé pour évaluer les performances du
modèle et éviter le surapprentissage.
● 4.8. Test
○ Le modèle est testé sur des données jamais vues auparavant pour évaluer sa
performance finale.
● 4.9. En résumé
○ L'entraînement est un processus itératif où les poids sont ajustés pour
améliorer la précision des prédictions du réseau. Ce cycle se répète pour
affiner les performances du modèle.
6

Chap 3: Réseaux de neurones convolutifs

● Analogie avec le système nerveux:


○ Le système nerveux est composé de milliards de cellules appelé réseau de
neurones biologiques.
○ Les neurones sont interconnectés entre eux et forment un réseau complexe.

Les neurones disposent d'un centre de contrôle fusionnant la Somme des informations
recueillies par les dendrites ensuite le centre de controle retourne un potentiel d' action on
suivant les règles suivantes :

● Si la somme en entrée ne dépasse pas le seuil d'excitation. pas de message nerveux


via l'axone. dem
● Si la somme on entrée dépasse le seuil d'excitation un message nerveux est omis via
l'axone.

Le formulaire de pré-activation et toujours la même:


7

Cette formule multiplie tous les xi par wi et additionné les résultats puis ajoute un biais b...

x1=3 w1=2 | x2=2 w2 = 1,5 | b=1 (b: Biais)

f(x) = [ (2 * 3) + (1,5 * 2)] + 1 = 10

Formule d'activation: Effet change en fonction du contexte. Les principales formules


utilisées :

● Réseau de neurones :
○ C'est un ensemble de neurones artificiels organisé de la manière suivante:

Exemple: Réseau de neurones qui permet de prédire à partir d'une image s' il s'agit d'un
chien ou d'un chat.
8

Chap 3: Réseaux de neurones convolutifs

1. Introduction
Les réseaux de neurones convolutifs (CNN) sont spécialement conçus pour traiter des
données ayant une structure spatiale ou temporelle, comme les images et les séries
temporelles. Ils sont efficaces pour la reconnaissance d’images, la vision par ordinateur et
les tâches de traitement du langage naturel. Les CNN se distinguent par leurs couches de
convolution, permettant d’extraire automatiquement des caractéristiques locales tout en
réduisant le nombre de paramètres.

2. Avantages par rapport aux réseaux de neurones profonds standards

● Réduction du nombre de paramètres : Les filtres partagent les poids, ce qui réduit
le nombre de paramètres à apprendre.
● Conservation des relations spatiales : Les couches de convolution préservent les
informations locales et détectent des motifs invariants aux déplacements.
● Robustesse aux transformations : Les CNN sont plus résistants aux
transformations comme la rotation ou le déplacement grâce aux couches de pooling
et aux filtres.
● Efficacité pour les images : Leur architecture optimisée pour les données visuelles
nécessite moins de puissance de calcul.

3. Utilisation des CNNs


Les CNN sont utilisés dans plusieurs domaines :

1. Vision par ordinateur (classification d’images, détection d’objets, segmentation).


2. Applications médicales (analyse d’images médicales, prévisions de maladies).
3. Reconnaissance de visage (vérification et identification, analyse d’expressions).
4. Traitement vidéo (détection d’actions, voitures autonomes).
5. Traitement du langage naturel (détection de spam, analyse de sentiments,
traduction).
6. Génération d’images, réalité augmentée et virtuelle.

4. Architecture des CNNs


Les CNN sont structurés autour de plusieurs couches :

1. Couches convolution
2. Couches de pooling
3. Couches entièrement connectées
9

4. Architecture des CNNs

4.1. Couche de Convolution


La couche de convolution extrait des caractéristiques importantes d'une image, comme
des bords et des textures, qui se combinent pour former des structures plus complexes.
Par exemple, elle peut être utilisée pour la détection de contours.

4.1. Couche de convolution


10

4.1.1. Padding
Le padding est une technique qui contrôle la taille de l’image en sortie des couches de
convolution. Il évite que les bords de l’image reçoivent moins d’attention lors de la
convolution, ce qui pourrait réduire la taille de l’image après chaque couche, un problème
dans les réseaux profonds.

Types de padding :

1. Padding "valid" : Aucun pixel n'est ajouté autour de l’image, ce qui réduit la taille de
l’image en sortie.
2. Padding "same" : Des pixels de valeur zéro sont ajoutés autour de l’image pour
maintenir la même taille en entrée et sortie. Cela permet de garder la taille de
l'image constante après chaque couche.
11

Chapitre 4: Réseaux de neurones récurrents

1. Introduction
Un réseau de neurones récurrents (RNN) est conçu pour traiter des données séquentielles.
Contrairement aux réseaux classiques, un RNN dispose de connexions récurrentes qui lui
permettent de mémoriser les informations des étapes précédentes et de les réutiliser. Cela
le rend particulièrement adapté aux tâches nécessitant un contexte temporel ou
séquentiel, comme la reconnaissance vocale et la traduction automatique.

2. Principles applications
Les RNN sont utilisés dans plusieurs domaines :

1. Traitement du langage naturel (NLP) : traduction automatique, génération de


texte, analyse de sentiments, reconnaissance d’entités nommées.
2. Reconnaissance vocale et audio : transcription de l’audio en texte et identification
de sons.
3. Prédiction de séries temporelles : prévision des prix d’actions, météo, gestion de
stock.
4. Classification de séquences : détection de fraudes et reconnaissance de gestes.
5. Génération de séquences : création de musique, texte ou images animées.

3. Neurone récurrent
Un neurone récurrent possède une connexion qui lui permet de mémoriser l’information
de l’état précédent et d’intégrer cette mémoire avec les nouvelles entrées. Il est donc
adapté aux données séquentielles où le contexte passé influe sur les valeurs futures.
12

3.1. Couche récurrente


Les couches récurrentes sont responsables de la mémorisation et du traitement des
informations temporelles dans les RNN.

4. Problèmes des RNN

1. Vanishing / exploding gradients : Les gradients deviennent trop petits ou trop


grands pendant l’entraînement, rendant l’apprentissage difficile sur de longues
séquences.
2. Difficultés à capturer les dépendances à long terme : Le problème de vanishing
gradient empêche les RNN classiques de se souvenir des informations sur de
longues périodes.
3. Problème de mémoire limitée : Les RNN de base ont une capacité de mémoire
limitée, ce qui pose problème pour des séquences complexes. Les variantes comme
les LSTM et GRU ont été introduites pour pallier cette limite.

5. Réseaux LSTM (Long Short-Term Memory)


Les réseaux LSTM possèdent une mémoire à court terme qui peut durer assez longtemps
pour être qualifiée de mémoire longue à court terme.
13

5.1. Architecture des LSTM


Une cellule LSTM se compose principalement d’un input gate, un output gate et un forget
gate.

5.2. Principe de base


L’architecture d’un LSTM divise le signal entre ce qui est pertinent à court terme (hidden
state) et ce qui l’est à long terme (cell state). Le fonctionnement global d’un LSTM se
résume en 3 étapes :

1. Détection des informations passées dans le cell state via le forget gate.
2. Choix des informations pertinentes à long terme avec l’input gate.
3. Ajout des informations au cell state.
4. Détection des informations importantes à court terme et génération du hidden
state via l’output gate.

La relation de récurrence d’un LSTM comprend donc une variable h pour le hidden state et
une variable c pour le cell state.
14

5.3. Architecture d’une cellule LSTM


La cellule LSTM contient les variables h (hidden state) et c (cell state) qui contrôlent
l’information à court et long terme.

6. Gated Recurrent Unit (GRU)


Le GRU, introduit en 2014, résout le problème du gradient en vanishing et offre une
architecture avec moins de paramètres à entraîner par rapport aux LSTM. Le GRU est
utilisé comme élément de base dans une architecture GRU.

7. Quand utiliser LSTM et GRU ?

● LSTM : Utilisé pour des dépendances à long terme complexes, adapté aux grands
ensembles de données mais plus complexe.
● GRU : Plus rapide et efficace, particulièrement sur des machines avec moins de
ressources, adapté aux petits ensembles de données ou lorsque la vitesse est une
priorité. Moins sujet au surentraînement.
15

Chapitre 5 - Le transfer learning

1. Introduction
Le transfer learning est une technique d'apprentissage automatique où un modèle
pré-entraîné sur une grande quantité de données est adapté pour une tâche différente
mais liée. Cette méthode permet de transférer les connaissances acquises sur une tâche de
base pour améliorer les performances sur une nouvelle tâche avec moins de données.

2. Comment ça fonctionne ?

1. Modèle pré-entraîné : Un modèle est d'abord entraîné sur un grand ensemble de


données génériques, apprenant des représentations générales.
2. Adaptation à une nouvelle tâche : Le modèle pré-entraîné est affiné sur un
ensemble de données spécifique à la nouvelle tâche, souvent plus petit. Certaines
parties du modèle peuvent être gelées pour conserver les représentations
génériques.

3. Avantages

● Réduction des besoins en données


● Gain de temps grâce à l'optimisation des poids
● Amélioration des performances, notamment avec peu de données sur la nouvelle
tâche

4. Applications

● Vision par ordinateur : classification d'images, détection d'objets


● Traitement du langage naturel (NLP) : traduction, analyse de sentiments
● Audio et reconnaissance vocale : identification et transcription audio

5. Exemple
16

1. Utiliser un modèle existant : Un modèle pré-entraîné sur des millions d'images


génériques est utilisé.
2. Adapter ce modèle à notre problème : Le modèle est utilisé pour classer des
images de chats et de chiens, bien qu'il ne soit pas spécifiquement conçu pour cela.
3. Garder ce que le modèle sait déjà : Les premières couches sont gelées pour
conserver les caractéristiques générales.
4. Ajouter un nouveau "cerveau" au modèle : De nouvelles couches sont ajoutées
pour la tâche spécifique (chat ou chien).
5. Entraîner uniquement la partie finale : Seules les nouvelles couches sont
entraînées, nécessitant peu de données.
6. Obtenir des résultats : Le modèle classifie avec précision des images, même avec
peu de données d'entraînement.

6. Modèles pré-entraînés populaires

● Vision par ordinateur : ResNet, MobileNet, VGG, EfficientNet


● NLP : BERT, GPT, RoBERTa, T5
● Audio : Wav2Vec, OpenL3

7. Types de transfer learning

1. Feature Extraction : Utilisation du modèle pré-entraîné pour extraire des


caractéristiques sans modifier ses poids.
2. Fine-Tuning : Réentraîner une partie ou la totalité du modèle sur les données de la
tâche cible.
3. Transfert partiel : Geler certaines couches et réentraîner d’autres.

8. Choix des couches à geler ou ajuster


Les premières couches détectent des caractéristiques générales, tandis que les couches
plus profondes détectent des éléments spécifiques.

● Si la tâche cible est similaire, seules les dernières couches peuvent être
réentraînées.
● Si les tâches sont très différentes, plusieurs couches intermédiaires doivent être
réentraînées.

8.1. Exemple

● Pour classer des chats et des chiens, un modèle pré-entraîné nécessite


probablement un ajustement des dernières couches.
● Pour analyser des IRM cérébrales, davantage de couches doivent être ajustées.

Vous aimerez peut-être aussi