Logo Zéphyrnet

Maîtriser LeNet : connaissances architecturales et mise en œuvre pratique

Date :

Introduction

LeNet-5, un réseau neuronal convolutif (CNN) pionnier développé par Yann LeCun et son équipe dans les années 1990, a changé la donne dans le domaine de la vision par ordinateur et de l'apprentissage profond. Cette architecture révolutionnaire a été explicitement conçue pour révolutionner la reconnaissance des caractères manuscrits et imprimés à la machine. Contrairement aux méthodes traditionnelles, LeNet-5 a introduit une nouvelle approche qui élimine le besoin d'ingénierie manuelle des fonctionnalités, en traitant directement les images de pixels via des couches convolutives, un sous-échantillonnage et des couches entièrement connectées. Son succès s'est étendu au-delà de la reconnaissance de caractères, servant de pierre angulaire aux modèles modernes d'apprentissage profond et influençant les architectures ultérieures en matière de vision par ordinateur, de reconnaissance d'objets et de classification d'images.

Les premières applications par Yann LeCun des algorithmes de rétropropagation à des problèmes pratiques ont jeté les bases de LeNet-5, conçu pour lire des caractères manuscrits et exceller dans l'identification des numéros de code postal fournis par le service postal américain. Ses versions et applications successives, comme la possibilité de lire des millions de chèques quotidiennement, ont suscité un regain d’intérêt parmi les chercheurs, façonnant le paysage des réseaux de neurones et inspirant l’évolution du deep learning.

LeNet-5

Le succès de LeNet-5 et des applications ultérieures, telles que des systèmes capables de lire des millions de chèques par jour, ont suscité un intérêt généralisé parmi les chercheurs pour les réseaux neuronaux. Même si les architectures de réseaux neuronaux les plus performantes d'aujourd'hui ont évolué au-delà de LeNet-5, sa conception révolutionnaire et ses réalisations ont jeté les bases de nombreux modèles ultérieurs, façonnant et inspirant de manière significative l'apprentissage en profondeur. LeNet-5 reste un témoignage d'innovation et un symbole durable de l'évolution de l'apprentissage automatique et de la reconnaissance d'images.

Objectifs d'apprentissage

  • Explorez l'importance historique et l'impact de LeNet-5 sur l'évolution de l'apprentissage profond et de la vision par ordinateur.
  • Comparez LeNet-5 avec les architectures de réseaux neuronaux contemporaines, en examinant son influence fondamentale sur les modèles actuels d'apprentissage profond.
  • Comprenez l'architecture de LeNet-5, y compris ses couches convolutionnelles, de sous-échantillonnage et entièrement connectées.
  • Analysez des applications pratiques et des études de cas démontrant l'efficacité de LeNet-5 dans les tâches de reconnaissance d'images.

Cet article a été publié dans le cadre du Blogathon sur la science des données.

Table des matières

Comprendre LeNet

LeNet, également connu sous le nom de LeNet-5, est une architecture pionnière de réseau neuronal convolutif (CNN) développée par Yann LeCun et son équipe dans les années 1990. Il a été conçu explicitement pour les tâches de reconnaissance de caractères manuscrits et imprimés à la machine. L'importance de LeNet-5 réside dans sa démonstration réussie de l'apprentissage des caractéristiques hiérarchiques et de son efficacité dans la reconnaissance de caractères. Son impact s'étend au-delà de son objectif initial, influençant le développement de modèles modernes d'apprentissage profond et servant d'architecture fondamentale pour les progrès ultérieurs en matière de vision par ordinateur, de reconnaissance d'images et de diverses applications d'apprentissage automatique.

Comprendre LeNet

L'architecture de LeNet

LeNet-5 est un réseau neuronal convolutif (CNN) avec une architecture spécifique utilisée dans les tâches de reconnaissance de caractères. Il se compose de plusieurs couches, à l'exclusion de la couche d'entrée, contenant des paramètres pouvant être entraînés. Il traite notamment des images de 32×32 pixels, plus significatives que les caractères de sa base de données, en se concentrant sur le centrage des traits potentiellement distinctifs. Les valeurs des pixels d'entrée sont normalisées pour une meilleure efficacité d'apprentissage.

Architecture de LeNet

L'architecture de LeNet combine des couches convolutionnelles, de sous-échantillonnage et entièrement connectées avec des modèles de connectivité spécifiques. Il utilise la normalisation des pixels d'entrée et une série de couches pour extraire les caractéristiques distinctives des données pour un apprentissage efficace. De plus, il met en œuvre des stratégies uniques pour éviter la saturation des fonctions d'activation et utilise des fonctions de perte spécifiques pour un entraînement efficace.

"
"

Stratégies uniques pour éviter la saturation

  • Couche d'entrée: LeNet traite des images de 32×32 pixels, plus significatives que les caractères de la base de données, dans le but de capturer d'éventuelles particularités au centre de l'image.
  • Couches convolutives et de sous-échantillonnage : Couches convolutives extraire principalement des fonctionnalités des données d'entrée à l'aide de filtres ou de noyaux apprenables. Chaque couche comprend plusieurs filtres qui glissent sur les données d'entrée (image) et effectuent des multiplications par éléments pour produire des cartes de caractéristiques. La couche initiale contient 6 filtres de taille 5×5, activables avec la fonction tanh, conduisant à des cartes de fonctionnalités de taille 28x28x6. Les couches suivantes utilisent 16 filtres de même taille, générant des cartes de caractéristiques 10x10x16.
  • Couches de sous-échantillonnage, également appelés couches de pooling, se concentrent sur la réduction de la dimensionnalité des cartes de caractéristiques obtenues à partir des couches convolutives. La mise en pool implique la fusion ou le sous-échantillonnage des cartes de caractéristiques, généralement en prenant la valeur maximale (MaxPooling) ou la valeur moyenne (AveragePooling) dans les régions définies. Avec des tailles de filtre de 2 × 2 et des variations de foulée, ces couches donnent lieu à des tailles de carte de caractéristiques de 14 x 14 x 6 et 5 x 5 x 16 successivement.
  • Couches entièrement connectées: L'architecture comprend des couches entièrement connectées étiquetées Fx, qui traitent la classification finale basée sur les fonctionnalités extraites. Une couche entièrement connectée avec 84 neurones et une couche de sortie finale avec 10 neurones, utilisant la fonction d'activation tanh dans la première et Softmax dans la seconde. La fonction Softmax attribue des probabilités à chaque classe, la probabilité la plus élevée déterminant la prédiction.
  • Couche de sortie: LeNet utilise des unités de fonction de base radiale pour la classification, avec des représentations distinctes de caractères pour la reconnaissance et la correction.
"

Flux de travail étape par étape

[Input: 28x28x1]
    |
[Conv2D: 6 filters, 5x5, tanh]
    |
[Average Pooling: 2x2, stride 2]
    |
[Conv2D: 16 filters, 5x5, tanh]
    |
[Average Pooling: 2x2, stride 2]
    |
[Flatten]
    |
[Dense: 120, tanh]
    |
[Dense: 84, tanh]
    |
[Dense: 10, softmax (output)]

Couche convolutive 1 :

  • Nombre de filtres : 6
  • Taille du noyau : 5×5
  • Fonction d'activation : Tanh
  • Forme d'entrée : 28x28x1

Couche de pooling moyenne 1 :

  • Taille de la piscine : 2×2
  • Foulées : 2

Couche convolutive 2 :

  • Nombre de filtres : 16
  • Taille du noyau : 5×5
  • Fonction d'activation : Tanh

Couche de pooling moyenne 2 :

  • Taille de la piscine : 2×2
  • Foulées : 2

Couches entièrement connectées :

  • Couche dense avec 120 unités et activation Tanh.
  • Couche épaisse avec 84 unités et activation Tanh.
  • Couche de sortie avec 10 unités et activation Softmax pour la classification multi-classe (ensemble de données MNIST).
Couches entièrement connectées | LeNet

Principales caractéristiques de LeNet

  1. Architecture CNN : LeNet-5 était un réseau neuronal convolutif pionnier doté d'une architecture structurée avec des couches convolutives et de pooling.
  2. Reconnaissance de formes dans les chiffres manuscrits: Développé initialement pour la reconnaissance de chiffres manuscrits, démontrant une grande précision dans l'identification et la classification des caractères manuscrits.
  3. Couches convolutives et de pooling: Introduction de couches convolutives pour l'extraction de fonctionnalités et de couches de pooling pour le sous-échantillonnage, permettant au réseau d'apprendre progressivement les représentations hiérarchiques.
  4. Activation de la non-linéarité: Utilisation de fonctions d'activation de tangente hyperbolique (tanh), fournissant au réseau des capacités non linéaires essentielles pour capturer des relations complexes au sein des données.
  5. Influence sur l'apprentissage profond: Le succès de LeNet-5 a jeté les bases des modèles contemporains d'apprentissage profond et a considérablement influencé le développement de réseaux neuronaux pour la reconnaissance et la classification d'images.

Implémentation pratique de LeNet :

Importer la bibliothèque

Commencez par le code pour implémenter LeNet-5 dans TensorFlow à l'aide de l'API Keras. C'est un bon début pour travailler avec l'ensemble de données MNIST.

import tensorflow as tf
from tensorflow import keras
from keras.datasets import mnist
from keras.layers import Dense, Flatten, Conv2D, AveragePooling2D
from keras.models import Sequential
from tensorflow.keras.utils import plot_model

Charger l'ensemble de données

Chargez l'ensemble de données MNIST pour entraîner et tester les images. Cette fonction charge l'ensemble de données, composé d'images de chiffres manuscrites et de leurs étiquettes respectives. Les données sont divisées en ensembles de formation et de test.

(X_train, y_train), (X_test,y_test) = mnist.load_data()

Sortie :

"

Reshape

La fonction de remodelage dans ce contexte consiste à ajuster la forme des images pour les rendre adaptées au traitement dans un CNN. La forme (28, 28, 1) signifie que les images font 28×28 pixels et ont un seul canal (images en niveaux de gris). Cette transformation est nécessaire car la plupart des CNN s'attendent à ce que les images aient une forme spécifique, souvent représentée par (largeur, hauteur, canaux).

#perfoming reshape
X_train = X_train.reshape(X_train.shape[0],28,28,1)
X_test = X_test.reshape(X_test.shape[0],28,28,1)
# Check the shape of data 
X_train.shape

Normalisation

L'extrait de code que vous avez fourni normalise les valeurs des pixels de l'image dans les ensembles de données d'entraînement et de test. Diviser chaque valeur de pixel par 255 garantit que les valeurs de pixel vont de 0 à 1.

# Normalization ---> convert 0 to 1
X_train = X_train/255
X_test = X_test/255

Un encodage à chaud

Les classes de l'ensemble de données MNIST sont transformées en données catégorielles avec 10 classes. Chaque étiquette est convertie en vecteur où chaque élément représente une classe, avec 1 dans l'index correspondant à la classe et 0 ailleurs.

# One hot encoding
y_train = keras.utils.to_categorical(y_train,10)
y_test = keras.utils.to_categorical(y_test,10)

Construction de modèles

Cet extrait de code montre la construction du modèle LeNet-5 à l'aide de l'API Keras Sequential dans TensorFlow. Il définit les couches et leurs configurations et compile le modèle avec un optimiseur, une fonction de perte et des métriques pour l'évaluation.

model = Sequential()
# first layer
model.add(Conv2D(6, kernel_size=(5,5), padding="valid", activation="tanh", input_shape =(28,28,1)))
model.add(AveragePooling2D(pool_size=(2,2),strides=2, padding='valid'))

#second layer
model.add(Conv2D(16, kernel_size=(5,5), padding="valid", activation="tanh"))
model.add(AveragePooling2D(pool_size=(2,2),strides=2, padding='valid'))

# flatten layer
model.add(Flatten())

# ANN
model.add(Dense(120, activation='tanh'))
model.add(Dense(84, activation='tanh'))
model.add(Dense(10, activation='softmax'))

model.summary()

Sortie:

Le Net

Compilation de modèles

La "compiler" La méthode prépare le modèle à la formation en définissant sa méthode d'optimisation, sa fonction de perte et les métriques à surveiller.

model.compile(loss= keras.metrics.categorical_crossentropy, optimizer =keras.optimizers.Adam(),
metrics= ['accuracy'])

Formation modèle : le "s'adapter " La fonction entraîne le modèle à l'aide des données d'entraînement fournies et le valide à l'aide des données de test.

model.fit(X_train,y_train, batch_size=128,epochs=10 , verbose=1, validation_data=(X_test,y_test))

sortie:

Sortie | LeNet

Évaluation du modèle

Le modèle "évaluer()" La fonction est utilisée pour évaluer les performances du modèle sur un ensemble de données de test. Le résultat fournit la perte de test et la précision du test.

score = model.evaluate(X_test,y_test)

print('Test loss', score[0])
print('Test Accuracy', score[1])
évaluation du modèle | LeNet

Visualisation:

# Create a bar chart to visualize the comparison
import matplotlib.pyplot as plt
predicted_labels = np.argmax(predictions, axis=1)

# Compare predicted labels with true labels
correct_predictions = np.equal(predicted_labels, np.argmax(y_test, axis=1))

plt.figure(figsize=(12, 6))
plt.bar(range(len(y_test)), correct_predictions, 
color=['green' if c else 'red' for c in correct_predictions])
plt.title('Comparison of Predicted vs. True Labels')
plt.xlabel('Sample Index')
plt.ylabel('Correct Prediction (Green: Correct, Red: Incorrect)')
plt.show()

Sortie :

Sortie | LeNet

Impact et importance de LeNet

L'influence de LeNet s'étend bien au-delà de sa mission initiale. Son succès a ouvert la voie à une exploration plus approfondie des réseaux de neurones convolutifs (CNN). Sa conception efficace et ses performances dans les tâches de reconnaissance de chiffres ouvrent la voie à des progrès dans diverses applications de vision par ordinateur, notamment la classification d'images, la détection d'objets et la reconnaissance faciale.

Impact et importance de LeNet
  • Révolution dans la reconnaissance de caractères manuscrits: Le succès de LeNet-5 dans la reconnaissance des chiffres et des caractères manuscrits a conduit à une transformation dans diverses applications pratiques, notamment dans la reconnaissance des codes postaux et des chèques. Sa capacité à reconnaître les caractères avec précision a contribué à l'adoption généralisée des réseaux de neurones par ces applications.
  • Influence sur les architectures futures : Les principes de conception architecturale de LeNet ont jeté les bases de nombreux modèles CNN ultérieurs. Son utilisation innovante de la convolution, du sous-échantillonnage et des couches entièrement connectées a inspiré le développement d'architectures de réseaux neuronaux plus complexes et sophistiquées pour diverses tâches basées sur des images.
  • Promouvoir l'apprentissage profond : Le succès de LeNet-5 a démontré le potentiel des réseaux d'apprentissage profond dans la reconnaissance d'images, inspirant davantage de recherche et de développement dans ce domaine. Son impact sur la communauté des chercheurs a conduit à un changement de paradigme vers l’utilisation de réseaux neuronaux profonds pour diverses tâches basées sur la vision et a jeté les bases des avancées ultérieures dans le domaine.

Application de LeNet

L'impact de LeNet s'étend à de nombreuses applications du monde réel. De la reconnaissance des chiffres manuscrits dans les services postaux à la révolution des soins de santé en facilitant l'analyse des images médicales, les concepts fondamentaux de LeNet ont influencé une myriade de domaines.

  • Traitement des documents : Les capacités de LeNet ont été utilisées pour numériser et analyser des documents, analyser et traiter différents types d'informations, extraire des données de documents et automatiser les tâches de saisie de données dans diverses industries.
  • Reconnaissance de l'écriture manuscrite : Le succès de LeNet dans la reconnaissance des caractères et des chiffres manuscrits reste fondamental dans les systèmes de reconnaissance optique de caractères (OCR) utilisés dans le traitement du texte manuscrit dans les chèques bancaires, les services postaux et les formulaires. Il est applicable à la numérisation de documents historiques et à la reconnaissance d'informations manuscrites dans divers formats.
  • Authentification biométrique : Les capacités de reconnaissance d'écriture manuscrite de LeNet ont été appliquées à l'analyse des signatures et des empreintes digitales, permettant des méthodes d'authentification biométrique et améliorant les systèmes de sécurité.
  • Analyse vidéo en temps réel: Les concepts fondamentaux de LeNet servent de base à l'analyse vidéo en temps réel, tels que le suivi d'objets, les systèmes de surveillance, la reconnaissance faciale et les véhicules autonomes.
  • Classification des images : Les principes de LeNet influencent les systèmes modernes de classification d'images. Les applications incluent la classification et la catégorisation d'objets dans des images pour de nombreux domaines, tels que l'identification d'objets sur des photographies, le contrôle qualité dans la fabrication, l'analyse d'imagerie médicale et les systèmes de sécurité pour l'identification d'objets.

Défis et limites de LeNet

  • Efficacité d’extraction des fonctionnalités : Avec l'évolution des architectures de réseaux neuronaux, les modèles plus récents disposent de moyens d'extraction de fonctionnalités plus efficaces, ce qui rend LeNet comparativement moins efficace pour identifier des modèles et des fonctionnalités complexes.
  • Adaptabilité limitée : Son architecture, conçue pour des tâches spécifiques telles que la reconnaissance de caractères manuscrits, pourrait ne pas être directement transférable à d'autres domaines sans modifications substantielles.
  • Évolutivité: Bien qu'il s'agisse d'un modèle pionnier, LeNet pourrait manquer d'évolutivité pour s'adapter aux demandes modernes de traitement des données et d'apprentissage en profondeur.
  • Sur-ajustement : LeNet peut souffrir d'un surajustement lorsqu'il traite des ensembles de données plus complexes, ce qui nécessite des techniques de régularisation supplémentaires pour atténuer ce problème.

Les chercheurs ont développé des architectures CNN plus complexes pour surmonter ces limitations, en intégrant des techniques sophistiquées pour relever ces défis tout en améliorant les performances sur diverses tâches.

Conclusion

LeNet, en tant que premier réseau neuronal convolutif, constitue une étape cruciale dans l’apprentissage profond. Sa création par Yann LeCun et son équipe a marqué une avancée majeure, notamment dans la reconnaissance de caractères manuscrits et l'analyse d'images. LeNet est confronté à des défis d'adaptation aux tâches complexes modernes et aux divers ensembles de données en raison de la simplicité architecturale et du surajustement potentiel. Son héritage reste vital, inspirant des architectures plus avancées et jouant un rôle crucial dans le développement de modèles d’apprentissage profond.

La création de LeNet a marqué un moment charnière dans l'histoire de l'apprentissage profond. Son succès dans les tâches de reconnaissance d'images et ses principes ont ouvert la voie à l'évolution des réseaux de neurones convolutifs modernes. Son héritage durable continue de façonner le paysage de la vision par ordinateur et de l’intelligence artificielle.

Faits marquants

  • Il a introduit le concept de couches convolutives et de sous-échantillonnage, jetant les bases des architectures modernes d'apprentissage en profondeur.
  • Bien que LeNet ait réalisé des progrès significatifs à son époque, ses limites dans la gestion d’ensembles de données divers et complexes sont devenues évidentes.
  • Introduction de couches convolutionnelles et de sous-échantillonnage, révolutionnant l’apprentissage profond.

Foire aux Questions

Q1 : Qu’est-ce que LeNet ?

R : LeNet est un réseau de neurones convolutifs (CNN) conçu par Yann LeCun et son équipe dans les années 1990. Il a été développé pour la reconnaissance de caractères manuscrits et l'analyse d'images.

Q2 : Quelles sont les applications de LeNet dans le monde d’aujourd’hui ?

R : Les applications de LeNet concernent la reconnaissance optique de caractères, la reconnaissance de chiffres et de lettres et les tâches de classification d'images dans les systèmes de santé et de sécurité.

Q3 : Pourquoi LeNet est-il important dans l’histoire des réseaux de neurones ?

R : LeNet a joué un rôle crucial en tant que l'une des premières applications réussies des CNN. Il a servi de pierre angulaire dans le développement de réseaux neuronaux pour les tâches de reconnaissance d’images.

Q4 : Quel a été l'impact de LeNet sur le développement des modèles d'IA ?

R : Le succès de LeNet a suscité une vague d'intérêt pour les réseaux de neurones, ainsi que les progrès ultérieurs en matière de vision par ordinateur et d'apprentissage profond. Ses principes de conception et son architecture ont influencé le développement de nombreux modèles d’IA modernes.

Q5 : Quels enseignements pouvons-nous tirer de l’architecture de LeNet ?

R : L'architecture de LeNet a introduit le concept d'extraction hiérarchique de caractéristiques via des couches convolutives. Permettre une reconnaissance efficace des formes, qui est devenue une norme dans les modèles modernes d’apprentissage profond.

Les médias présentés dans cet article n'appartiennent pas à Analytics Vidhya et sont utilisés à la discrétion de l'auteur.

spot_img

Dernières informations

spot_img