Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

Comment utiliser un exemple simple de réseau neuronal Perceptron pour classer des données

Cet article présente les fonctionnalités de base d'un réseau de neurones Perceptron et explique le but de la formation.

Cet article fait partie d'une série sur les réseaux de neurones Perceptron.

Si vous souhaitez recommencer depuis le début ou aller de l'avant, vous pouvez consulter les autres articles ici :

  1. Comment effectuer une classification à l'aide d'un réseau de neurones :qu'est-ce que le perceptron ?
  2. Comment utiliser un exemple simple de réseau neuronal Perceptron pour classer des données
  3. Comment former un réseau de neurones Perceptron de base
  4. Comprendre la formation simple sur les réseaux neuronaux
  5. Une introduction à la théorie de la formation pour les réseaux de neurones
  6. Comprendre le taux d'apprentissage dans les réseaux de neurones
  7. Apprentissage automatique avancé avec le Perceptron multicouche
  8. La fonction d'activation sigmoïde :activation dans les réseaux de neurones Perceptron multicouches
  9. Comment former un réseau de neurones Perceptron multicouches
  10. Comprendre les formules d'entraînement et la rétropropagation pour les perceptrons multicouches
  11. Architecture de réseau neuronal pour une implémentation Python
  12. Comment créer un réseau de neurones Perceptron multicouche en Python
  13. Traitement du signal à l'aide de réseaux de neurones :validation dans la conception de réseaux de neurones
  14. Entraînement d'ensembles de données pour les réseaux de neurones :comment entraîner et valider un réseau de neurones Python

Qu'est-ce qu'un perceptron monocouche ?

Dans l'article précédent, nous avons vu qu'un réseau de neurones est constitué de nœuds interconnectés disposés en couches. Les nœuds de la couche d'entrée distribuent les données et les nœuds des autres couches effectuent la sommation puis appliquent une fonction d'activation. Les connexions entre ces nœuds sont pondérées, ce qui signifie que chaque connexion multiplie la donnée transférée par une valeur scalaire.


Notez que cette configuration est appelée un Perceptron monocouche. Oui, je sais, il a deux couches (entrée et sortie), mais il n'a qu'une seule couche qui contient des nœuds de calcul.

Classer avec un Perceptron

Dans cet article, nous allons explorer les fonctionnalités de Perceptron à l'aide du réseau de neurones suivant.


Comme vous pouvez le voir, notre dimensionnalité d'entrée est de trois. On peut considérer ce Perceptron comme un outil de résolution de problèmes dans l'espace tridimensionnel. Par exemple, proposons le problème suivant :Si un point dans l'espace à trois dimensions est situé en dessous de l'axe des abscisses, il correspond à une donnée invalide. Si le point est sur ou au-dessus de l'axe des x, il correspond à une donnée valide qui doit être conservée pour une analyse ultérieure. Nous avons besoin de ce réseau neutre pour catégoriser nos données, avec une valeur de sortie de 1 indiquant une donnée valide et une valeur de 0 indiquant une donnée invalide.

Tout d'abord, nous devons mapper nos coordonnées tridimensionnelles au vecteur d'entrée. Dans cet exemple, saisissez 0 est la composante x, input1 est la composante y, et l'entrée2 est la composante z. Ensuite, nous devons déterminer les poids. Cet exemple est si simple que nous n'avons pas besoin de former le réseau. Nous pouvons simplement penser aux poids requis et les attribuer :

Il ne nous reste plus qu'à préciser que la fonction d'activation du nœud de sortie est un pas unitaire exprimé comme suit :

\[f(x)=\begin{cases}0 &x <0\\1 &x \geq 0\end{cases}\]

Le Perceptron fonctionne comme ceci :Depuis w1 =0 et w2 =0, les composantes y et z ne contribuent pas à la sommation générée par le nœud de sortie. La seule donnée d'entrée qui affecte la sommation est la composante x, qui est livrée au nœud de sortie sans modification car w0 =1. Si le point dans l'espace tridimensionnel est en dessous de l'axe des x, la somme du nœud de sortie sera négative et la fonction d'activation convertira cette valeur négative en sortie0 =0. Si le point dans l'espace tridimensionnel est sur ou au-dessus de l'axe des x, la somme sera égale ou supérieure à zéro, et la fonction d'activation le convertira en sortie0 =1.

Résoudre des problèmes avec un Perceptron

Dans la section précédente, j'ai décrit notre Perceptron comme un outil pour résoudre des problèmes. Vous avez peut-être remarqué, cependant, que le Perceptron ne résolvait pas beaucoup de problèmes—Je a résolu le problème et a donné la solution au Perceptron en attribuant les poids requis.

À ce stade, nous avons atteint un concept crucial de réseau de neurones :j'ai pu résoudre rapidement le problème de classification valide/invalide car la relation entre les données d'entrée et les valeurs de sortie souhaitées est très simple. Cependant, dans de nombreuses situations de la vie réelle, il serait extrêmement difficile pour un être humain de formuler une relation mathématique entre les données d'entrée et les valeurs de sortie. Nous pouvons acquérir des données d'entrée et nous pouvons enregistrer ou produire des valeurs de sortie correspondantes, mais nous n'avons pas de route mathématique de l'entrée à la sortie.

Un exemple utile est la reconnaissance de l'écriture manuscrite. Disons que nous avons des images de caractères manuscrits et que nous voulons catégoriser ces images comme « a », « b », « c », etc., afin de pouvoir convertir l'écriture manuscrite en texte informatique normal. Quiconque sait écrire et lire sera capable de générer des images d'entrée, puis d'attribuer des catégories correctes à chaque image. Ainsi, la collecte des données d'entrée et des données de sortie correspondantes n'est pas difficile. D'un autre côté, il serait extrêmement difficile de regarder les paires d'entrée-sortie et de formuler une expression mathématique ou un algorithme qui convertirait correctement les images d'entrée en une catégorie de sortie.

Ainsi, la reconnaissance de l'écriture manuscrite et de nombreuses autres tâches de traitement du signal posent des problèmes mathématiques que les êtres humains ne peuvent résoudre sans l'aide d'outils sophistiqués. Malgré le fait que les réseaux de neurones ne peuvent pas penser, analyser et innover, ils nous permettent de résoudre ces problèmes difficiles car ils peuvent faire quelque chose que les êtres humains ne peuvent pas faire, c'est-à-dire effectuer rapidement et de manière répétée des calculs impliquant des quantités potentiellement immenses de données numériques. .

Former le réseau

Le processus qui permet à un réseau de neurones de créer un chemin mathématique de l'entrée à la sortie est appelé entraînement. Nous donnons au réseau des données d'apprentissage constituées de valeurs d'entrée et de valeurs de sortie correspondantes, et il applique une procédure mathématique fixe à ces valeurs. Le but de cette procédure est de modifier progressivement les poids du réseau de telle sorte que le réseau puisse calculer des valeurs de sortie correctes même avec des données d'entrée qu'il n'a jamais vues auparavant. Il s'agit essentiellement de trouver des modèles dans les données d'entraînement et de générer des poids qui produiront des résultats utiles en appliquant ces modèles à de nouvelles données.

Le diagramme suivant montre le classificateur valide/invalide discuté ci-dessus, mais les poids sont différents. Ce sont des poids que j'ai générés en entraînant le Perceptron avec 1000 points de données. Comme vous pouvez le voir, le processus de formation a permis au Perceptron de se rapprocher automatiquement de la relation mathématique que j'ai identifiée grâce à la pensée critique de style humain.


Dans le prochain article…

Je vous ai montré les résultats de l'entraînement de ce Perceptron, mais je n'ai rien dit sur la façon dont j'ai obtenu ces résultats. Le prochain article décrira un court programme Python qui implémente un réseau de neurones Perceptron à couche unique, et j'expliquerai également ma procédure de formation.


Embarqué

  1. Comment sécuriser la technologie cloud ?
  2. Comment utiliser efficacement Azure DevOps ?
  3. Protocoles réseau
  4. Comment l'écosystème du réseau change l'avenir de la ferme
  5. Fonction realloc() dans la bibliothèque C :comment l'utiliser ? Syntaxe et exemple
  6. Fonction free() dans la bibliothèque C :comment l'utiliser ? Apprendre avec l'exemple
  7. Comment les fabricants peuvent utiliser l'analytique pour une meilleure expérience client
  8. Récupération de données :le modèle de réseau neuronal du NIST trouve de petits objets dans des images denses
  9. Comment utiliser une meuleuse de coupe