Réseau de neurones artificiels

Un réseau neuronal (également appelé ANN ou réseau neuronal artificiel) est une sorte de logiciel informatique, inspiré par les neurones biologiques. Les cerveaux biologiques sont capables de résoudre des problèmes difficiles, mais chaque neurone n'est responsable que d'une très petite partie du problème. De même, un réseau neuronal est constitué de cellules qui travaillent ensemble pour produire un résultat souhaité, bien que chaque cellule individuelle ne soit responsable que de la résolution d'une petite partie du problème. C'est une méthode pour créer des programmes artificiellement intelligents.

Les réseaux neuronaux sont un exemple d'apprentissage machine, où un programme peut changer au fur et à mesure qu'il apprend à résoudre un problème. Un réseau de neurones peut être formé et amélioré à chaque exemple, mais plus le réseau de neurones est grand, plus il a besoin d'exemples pour bien fonctionner - souvent des millions ou des milliards d'exemples dans le cas de l'apprentissage profond.

Vue d'ensemble

Il y a deux façons de concevoir un réseau de neurones. La première est comme un cerveau humain. La seconde est comme une équation mathématique.

Un réseau commence par une entrée, un peu comme un organe sensoriel. L'information circule ensuite à travers des couches de neurones, où chaque neurone est connecté à de nombreux autres neurones. Si un neurone particulier reçoit suffisamment de stimuli, il envoie un message à n'importe quel autre neurone auquel il est connecté par son axone. De même, un réseau neuronal artificiel possède une couche d'entrée de données, une ou plusieurs couches cachées de classificateurs, et une couche de sortie. Chaque nœud de chaque couche cachée est connecté à un nœud de la couche suivante. Lorsqu'un nœud reçoit des informations, il en envoie une certaine quantité aux nœuds auxquels il est connecté. Cette quantité est déterminée par une fonction mathématique appelée fonction d'activation, telle que sigmoïde ou tanh.

Si l'on considère un réseau de neurones comme une équation mathématique, un réseau de neurones est simplement une liste d'opérations mathématiques à appliquer à une entrée. L'entrée et la sortie de chaque opération est un tenseur (ou plus précisément un vecteur ou une matrice). Chaque paire de couches est reliée par une liste de poids. Plusieurs tenseurs sont stockés dans chaque couche. Un tenseur individuel dans une couche est appelé un nœud. Chaque nœud est relié à certains ou à tous les nœuds de la couche suivante par un poids. Chaque nœud possède également une liste de valeurs appelées biais. La valeur de chaque couche est alors le résultat de la fonction d'activation des valeurs de la couche actuelle (appelée X) multipliée par les poids.

A c t i v a t i o n ( W ( e i g h t s ) X + b ( i a s ) ) Activation du style d'affichage(W(eights)*X+b(ias))}{\displaystyle Activation(W(eights)*X+b(ias))}

Une fonction de coût est définie pour le réseau. La fonction de perte tente d'estimer la performance du réseau de neurones à la tâche qui lui est assignée. Enfin, une technique d'optimisation est appliquée pour minimiser la production de la fonction de coût en modifiant les poids et les biais du réseau. Ce processus s'appelle la formation. L'entraînement se fait petit à petit. Après des milliers d'étapes, le réseau est généralement capable d'accomplir la tâche qui lui a été assignée.

Exemple

Envisagez un programme qui vérifie si une personne est vivante. Si une personne a un pouls ou respire, le programme indique "vivant", sinon, il indique "mort". Dans un programme qui n'apprend pas avec le temps, cela s'écrirait comme suit

function isAlive(pulse, breathing) { if(pulse || breathing) { return true ; } else { return false ; } }

Un réseau de neurones très simple, constitué d'un seul neurone qui résout le même problème, ressemblera à ceci :

Single neuron which takes the values of pulse (true/false) and breathing (true/false), and outputs value of alive (true/false).

Les valeurs du pouls, de la respiration et de la vie seront soit 0 soit 1, ce qui représente le faux et le vrai. Ainsi, si ce neurone reçoit les valeurs (0,1), (1,0) ou (1,1), il devrait produire 1, et si on lui donne (0,0), il devrait produire 0. Le neurone fait cela en appliquant une simple opération mathématique à l'entrée - il ajoute toutes les valeurs qui lui ont été données ensemble, puis ajoute sa propre valeur cachée, ce qu'on appelle un "biais". Pour commencer, cette valeur cachée est aléatoire, et nous l'ajustons au fil du temps si le neurone ne nous donne pas le résultat souhaité.

Si nous additionnons des valeurs telles que (1,1), nous pourrions nous retrouver avec des chiffres supérieurs à 1, mais nous voulons que notre résultat soit compris entre 0 et 1 ! Pour résoudre ce problème, nous pouvons appliquer une fonction qui limite notre sortie réelle à 0 ou 1, même si le résultat des mathématiques du neurone n'était pas dans la fourchette. Dans les réseaux neuronaux plus complexes, nous appliquons une fonction (comme le sigmoïde) au neurone, de sorte que sa valeur soit comprise entre 0 ou 1 (comme 0,66), puis nous transmettons cette valeur au neurone suivant jusqu'à ce que nous ayons besoin de notre sortie.

Méthodes d'apprentissage

Un réseau neuronal peut apprendre de trois manières : apprentissage supervisé, apprentissage non supervisé et apprentissage par renforcement. Ces méthodes fonctionnent toutes en minimisant ou en maximisant une fonction de coût, mais chacune est meilleure pour certaines tâches.

Récemment, une équipe de recherche de l'université du Hertfordshire, au Royaume-Uni, a utilisé l'apprentissage par renforcement pour faire en sorte qu'un robot humanoïde iCub apprenne à dire des mots simples en babillant.

Questions et réponses

Q : Qu'est-ce qu'un réseau neuronal ?


R : Un réseau neuronal (également appelé ANN ou réseau neuronal artificiel) est une sorte de logiciel informatique, inspiré des neurones biologiques. Il est composé de cellules qui travaillent ensemble pour produire un résultat souhaité, bien que chaque cellule individuelle ne soit responsable que de la résolution d'une petite partie du problème.

Q : Comment un réseau neuronal se compare-t-il aux cerveaux biologiques ?


R : Les cerveaux biologiques sont capables de résoudre des problèmes difficiles, mais chaque neurone n'est responsable que de la résolution d'une toute petite partie du problème. De même, un réseau neuronal est composé de cellules qui travaillent ensemble pour produire un résultat souhaité, bien que chaque cellule individuelle ne soit responsable que de la résolution d'une petite partie du problème.

Q : Quel type de programme peut créer des programmes artificiellement intelligents ?


R : Les réseaux neuronaux sont un exemple d'apprentissage automatique, où un programme peut changer à mesure qu'il apprend à résoudre un problème.

Q : Comment peut-on s'entraîner et s'améliorer avec chaque exemple afin d'utiliser l'apprentissage profond ?


R : Un réseau neuronal peut être formé et amélioré avec chaque exemple, mais plus le réseau neuronal est grand, plus il a besoin d'exemples pour être performant - il faut souvent des millions ou des milliards d'exemples dans le cas de l'apprentissage profond.

Q : De quoi avez-vous besoin pour que l'apprentissage profond soit efficace ?


R : Pour que l'apprentissage profond soit efficace, vous avez besoin de millions ou de milliards d'exemples, selon la taille de votre réseau neuronal.

Q : Quel est le lien entre l'apprentissage automatique et la création de programmes artificiellement intelligents ?



R : L'apprentissage automatique est lié à la création de programmes artificiellement intelligents, car il permet aux programmes de changer à mesure qu'ils apprennent à résoudre des problèmes.

AlegsaOnline.com - 2020 / 2023 - License CC3