Qu'est-ce qu'un réseau neuronal ? Guide du développeur

Qu'est-ce qu'un réseau neuronal ? Guide du développeur
Qu'est-ce qu'un réseau neuronal ?
Les réseaux neuronaux sont des modèles informatiques inspirés de la structure du cerveau humain. Ils sont constitués de neurones disposés en couches. Les neurones sont des fonctions de données d'entrée, x, et de variables tensorielles apprenables (poids et biais). Un réseau neuronal est un grand F(x) ou modèle. C'est-à-dire une fonction complexe et non linéaire entraînée pour s'adapter aux données d'entrée. Cette technologie qui change de paradigme permet aux machines de comprendre des modèles et de résoudre des problèmes complexes.
Architecture des réseaux neuronaux
Un réseau neuronal est organisé en couches : entrée, cachée et sortie.
Couche d'entrée : C'est là que les données sont introduites dans le réseau.
- Couches cachées : Ces couches intermédiaires traitent les données par le biais de multiples transformations séquentielles. Chaque couche cachée extrait des données d'entrée des caractéristiques de plus en plus abstraites et complexes. Couche de sortie : La couche finale produit le résultat sur la base des informations traitées par les couches cachées.
Importance des réseaux neuronaux
Les réseaux neuronaux sont essentiels pour plusieurs raisons.
Reconnaissance des modèles : Les réseaux neuronaux excellent dans la reconnaissance de modèles complexes dans les données, ce qui les rend très efficaces pour des tâches telles que la reconnaissance d'images et de la parole. Adaptabilité : En s'entraînant sur de grands ensembles de données, les réseaux neuronaux peuvent s'adapter et améliorer leurs performances au fil du temps. Non-linéarité : Les réseaux neuronaux peuvent modéliser des relations complexes entre les entrées et les sorties, y compris des relations non linéaires. Traitement parallèle : Les réseaux neuronaux peuvent traiter les données en parallèle, ce qui accélère les calculs pour les tâches à grande échelle.
Principe de fonctionnement des réseaux neuronaux
Les réseaux neuronaux peuvent être utilisés selon deux modes : la formation et l'inférence. Au cours de la formation, le réseau ajuste ses poids de connexion en traitant les données d'entrée et en comparant ses prédictions aux résultats attendus. Ce processus minimise les différences entre les prédictions et les résultats réels à l'aide d'algorithmes d'optimisation tels que la descente de gradient. Une fois formé, le réseau est prêt à faire des prédictions à partir de nouvelles données. L'utilisation d'un réseau neuronal entraîné de cette manière s'appelle l'inférence.
Types de réseaux neuronaux
Réseaux neuronaux artificiels (RNA)
Les réseaux neuronaux artificiels (RNA), également connus sous le nom de réseaux neuronaux d'anticipation, constituent un type fondamental de technologie de réseau neuronal. Ils se composent de neurones d'entrée, de neurones cachés et de neurones de sortie, reflétant la structure interconnectée du cerveau humain. Les RNA excellent dans la reconnaissance des formes en ajustant les poids entre les neurones.
Lorsqu'un RNA comporte plusieurs couches cachées, on parle de réseau neuronal profond (DNN). Ces réseaux excellent dans l'apprentissage de hiérarchies complexes de caractéristiques à partir de vastes ensembles de données.
Comment fonctionnent les réseaux neuronaux artificiels ?
Les réseaux neuronaux artificiels utilisent le traitement en amont et la rétropropagation. Ils se composent de neurones interconnectés dont les poids et les biais ont été initialisés à l'aide de méthodes telles que initialisation zéro ou constante, initialisation aléatoire, initialisation Xavier ou Glorot. Les données d'entrée sont introduites dans la couche d'entrée et transmises aux couches cachées par l'intermédiaire des arêtes. Les neurones des couches cachées appliquent des fonctions d'activation, introduisant une non-linéarité, et la couche de sortie génère des prédictions ou des résultats basés sur les données traitées.
Ces prédictions sont comparées aux résultats réels pour [le calcul de l'erreur] (https://saturncloud.io/blog/how-to-calculate-error-for-a-neural-network/). Au cours de la formation, les signaux d'erreur sont propagés vers l'arrière, en ajustant les poids par le biais d'algorithmes d'optimisation afin de minimiser les différences entre les prédictions et les résultats réels.
Pour en savoir plus, vous pouvez consulter ce blog sur les [ANN] (https://machinelearningmastery.com/tutorial-first-neural-network-python-keras/).
Applications
Les ANNs jouent un rôle important dans une variété de tâches de régression et de classification qui incluent l'analyse des sentiments, la prédiction du prix des actions, l'évaluation du risque de crédit, la détection de la fraude, le commerce algorithmique, la détection des anomalies, la maintenance prédictive, etc. En outre, les ANN sont également à la base d'une variété d'autres réseaux neuronaux tels que les CNN et les RNN.
Réseaux neuronaux convolutifs (CNN)
Les réseaux neuronaux traditionnels comportent des couches entièrement connectées qui traitent chaque unité d'entrée de manière indépendante. Cette architecture n'est pas adaptée au traitement de données en grille telles que les images. Les réseaux neuronaux convolutifs (CNN) sont spécialisés dans le traitement des données en grille, principalement les images et les vidéos, car ils sont conçus pour tirer parti de la structure spatiale des images. Ils utilisent la connectivité locale, le partage des paramètres, l'apprentissage hiérarchique des caractéristiques, les couches convolutives et les couches de mise en commun pour extraire automatiquement des caractéristiques hiérarchiques à partir des données d'entrée.
Architecture et fonctionnement
Couche d'entrée : L'entrée pour les données d'image.
- Couches convolutives : Ces couches détectent les caractéristiques spatiales, créant des modèles structurés dans les images. Pour identifier les différentes caractéristiques, un ensemble de filtres pouvant être appris (noyaux) est appliqué aux images d'entrée. Un CNN se compose généralement de plusieurs couches convolutives superposées. Les couches les plus profondes apprennent les aspects les plus abstraits et les plus complexes, tandis que les couches les plus anciennes captent des informations simples telles que les bords et les textures. Les résultats produits par les couches de convolution sont appelés "cartes de caractéristiques". Couches de mise en commun : Ces couches effectuent des étapes de réduction dans lesquelles les dimensions des données sont réduites tout en conservant les informations essentielles. Bien qu'il soit possible de réduire l'échantillonnage des données en contrôlant le pas de la convolution, l'utilisation des couches de mise en commun est un moyen efficace d'y parvenir. Les opérations de pooling les plus courantes sont le pooling max et le pooling average.
- Couches entièrement connectées** : Une fois que vous disposez des caractéristiques essentielles des images, les couches entièrement connectées sont chargées d'effectuer la prédiction finale. Chaque couche entièrement connectée est densément connectée à la couche précédente et immédiate et est souvent utilisée pour produire les scores et les probabilités pour la tâche de classification.
Pour en savoir plus, vous pouvez consulter ce guide complet sur le [CNN] (https://saturncloud.io/blog/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way/).
Applications
Les CNN révolutionnent la classification d'images, la reconnaissance d'images, la détection d'objets, la segmentation d'images, l'analyse d'images médicales, la reconnaissance d'écriture manuscrite, etc. Toutes ces tâches impliquent des données d'images dans lesquelles les CNN excellent. Mais ce n'est pas tout. En raison de leur capacité à traiter des données de type grille, les CNN sont également utilisés dans de nombreuses tâches liées à la parole, telles que la reconnaissance vocale, la traduction, etc.
Réseaux neuronaux récurrents (RNN)
Bien que les ANN et les CNN conviennent à de nombreuses tâches, ils ne sont pas capables de traiter les dépendances temporelles et les séquences de données. Les réseaux neuronaux récurrents (RNN) excellent dans l'analyse des données séquentielles, ce qui est vital pour les tâches impliquant des données de séries temporelles et le traitement des langues. Les RNN conservent la mémoire grâce à des boucles de rétroaction. Les RNN fonctionnent selon un schéma de mémoire inhérente, qui leur permet de traiter l'entrée actuelle tout en se souvenant de l'entrée précédente. Cette mémoire est obtenue grâce à un état caché qui évolue au fur et à mesure que le réseau traite chaque élément de la séquence.
Parfois, les RNN peuvent souffrir d'un problème appelé [vanishing gradient] (https://www.engati.com/glossary/vanishing-gradient-problem), qui limite leur capacité à capturer les dépendances à longue portée. Pour cette raison, certaines variations ont été proposées pour l'architecture des RNN, ce qui a donné naissance aux architectures LSTM et GRU, qui, en conservant et en mettant à jour de manière sélective les informations sur des contextes étendus, fournissent des capacités améliorées pour la modélisation de séquences compliquées.
Architecture et fonctionnement
Couche d'entrée : Cette couche reçoit des données séquentielles en entrée, qui peuvent être une séquence de mots dans une phrase, des données de séries temporelles, etc. Chaque point de données dans ces données séquentielles est représenté par un vecteur souvent appelé vecteur d'entrée. Couche récurrente : Cette couche traite et mémorise les données séquentielles. À chaque pas de temps (t), cette couche traite le vecteur d'entrée actuel et l'état caché précédent (sortie) du pas de temps précédent (t-1) pour produire un nouvel état ou la sortie de l'état actuel. Couche de sortie : Cette couche produit les résultats de l'analyse séquentielle. L'architecture de cette couche de sortie dépend de la tâche spécifique. Par exemple, dans les tâches de séquence à séquence (p. ex. la traduction linguistique), un autre RNN ou un réseau neuronal feedforward peut être utilisé pour la couche de sortie.
Pour en savoir plus, vous pouvez consulter ce blog sur les [RNN] (https://zilliz.com/blog/ANN-machine-learning).
Applications
Les RNN permettent d'effectuer des tâches où la séquence ou la dépendance temporelle est importante, comme la traduction linguistique, la génération de la parole, la reconnaissance vocale, la génération de musique, les prévisions météorologiques, la prédiction des tendances financières, etc.
Transformateurs
Les RNN sont sujets au problème du gradient qui s'évanouit, ce qui limite leur capacité à apprendre et à propager des informations sur de longues séquences. Ils sont également incapables de comprendre l'ordre des séquences. C'est là qu'une architecture de transformateur peut s'avérer utile. Les transformateurs utilisent des mécanismes d'auto-attention qui leur permettent d'évaluer l'importance des différentes parties de la séquence d'entrée.
Ce mécanisme est capable de capturer les dépendances entre les éléments d'une séquence indépendamment de leur position, ce qui le rend très efficace pour des tâches telles que la traduction linguistique, l'analyse des sentiments et la génération de texte. Il offre également des capacités de traitement parallèle, ce qui signifie qu'il peut traiter les données en parallèle pour gérer efficacement les longues séquences et les grands ensembles de données.
Architecture et fonctionnement
Intégration des données d'entrée : La séquence d'entrée, par exemple une séquence de texte, est convertie en données d'intégration. Ces encastrements sont la représentation numérique vectorielle du texte, qui peut être générée à l'aide d'un modèle pré-entraîné tel que Word2vec ou GloVe.
Codage positionnel : Les modèles de transformateurs ne comprennent pas intrinsèquement l'ordre des éléments dans une séquence. C'est pourquoi un codage positionnel est ajouté aux encastrements d'entrée, qui fournit des informations sur la position de chaque élément dans la séquence, à l'aide d'une combinaison de fonctions trigonométriques.
- Couches de codage et de décodage du transformateur** : Les couches de codage et de décodage sont les éléments constitutifs des transformateurs, répétés plusieurs fois dans le réseau. Chacune d'entre elles est composée de trois éléments principaux : Attention multi-têtes : Elle calcule les scores d'attention pour chaque paire de positions dans la séquence d'entrée. Il saisit les dépendances entre les éléments indépendamment de leur position. Le résultat de l'auto-attention multi-têtes est un ensemble de représentations conscientes du contexte pour chaque position d'entrée. Réseau d'anticipation : Les représentations obtenues à partir de l'attention multi-têtes sont transmises à un réseau d'activation qui applique une série de transformations linéaires et de fonctions d'activation non linéaires à chaque position de manière indépendante. Connexions résiduelles et normalisation des couches : Des connexions résiduelles (skip connections) sont ajoutées autour des couches d'auto-attention multi-têtes et d'anticipation, suivies d'une [normalisation des couches] (https://zilliz.com/learn/layer-vs-batch-normalization-unlocking-efficiency-in-neural-networks). Ces composants aident à stabiliser l'apprentissage et permettent au gradient de circuler plus efficacement. Couche de sortie : Le sommet du décodeur est une couche de sortie qui génère des prédictions ou des classifications.
Pour en savoir plus, consultez ce blog sur le [modèle de transformateur] (https://machinelearningmastery.com/the-transformer-model/).
Applications
Les réseaux neuronaux, en particulier les transformateurs, ont considérablement amélioré le traitement des langues, permettant une traduction précise, un résumé et une analyse des sentiments.
Conclusion
Après avoir lu cet article, vous connaissez maintenant les réseaux neuronaux, leur architecture et leur fonctionnement. Vous avez vu les différents types de réseaux neuronaux et les raisons pour lesquelles ils constituent le bon choix pour un cas d'utilisation spécifique. Cet article n'étant qu'un point de départ, n'hésitez pas à explorer chaque type en détail pour mieux le comprendre.
- Qu'est-ce qu'un réseau neuronal ?
- Architecture des réseaux neuronaux
- Importance des réseaux neuronaux
- Principe de fonctionnement des réseaux neuronaux
- Réseaux neuronaux convolutifs (CNN)
- Réseaux neuronaux récurrents (RNN)
- Conclusion
Contenu
Commencez gratuitement, évoluez facilement
Essayez la base de données vectorielle entièrement managée conçue pour vos applications GenAI.
Essayer Zilliz Cloud gratuitement