Géographie de la pensée
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-50%
Le deal à ne pas rater :
Assassin’s Creed Valhalla PS4/PS5 et Xbox One /Series X
34.99 € 69.99 €
Voir le deal

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

4 participants

Page 1 sur 2 1, 2  Suivant

Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Bacrima 27.10.12 12:36

Ce sujet à pour but d'expliquer ce qu'est l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même. Very Happy

Doucement ...

Commençons par ce qu'est un neurone formel.
Je laisse la parole à Yo.

_____________________
"Ouvrez-moi une bucolique à perte de vue, le ventre à tout le monde si vous l'aviez vu quand on n'y aurait qu'une petite partie de la société mécanisée."
Bacrima
Bacrima

Humeur : Une pointe de joie et un soupçon d'amusement
Localisation : Dans ma chambre, rarement ailleur ...
Emploi/Loisirs : Japanimer, ça se dit ?

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 27.10.12 15:12

Ok. Je ne dirai qu'une chose : tagazok à toi. Razz

C'est si gentil de me laisser la parole ...

Voyons... en termes simples...

NEURONE FORMEL se compose de 2 mots. Neurone + formel.
ça va pour tout le monde ?

donc ce n'est pas une, mais au moins 2 définitions que je dois donner ici.

Qu'est-ce qu'un neurone ?
vous pouvez trouver pas mal de belles images sur ce qu'est un neurone.
Schématiquement, ça donne ça :
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neurone

D'après mon ami wiki :
Un neurone, ou cellule nerveuse, est une cellule excitable constituant l'unité fonctionnelle de base du système nerveux.
Tout ça pour dire que c'est la cellule de base du système nerveux.
Un nerf, un cerveau, la moelle épinière, c'est grosso modo un paquet de neurones, briques de la commande/prise de décision (mouvement des muscles, influence du rythme cardiaque ou respiratoire...) et de l'analyse de l'information (sensations de de toucher, écoute, plus réflexes et analyse de tous les capteurs sensoriels).
Tout comme le sable est un ensemble de grains, le corps un ensemble d'organes, le système nerveux est un ensemble de ces neurones.


Comment fonctionne un neurone ?


La question se pose à plusieurs échelles. Dans l'étude qui suit, je resterai à une étude globale du fonctionnement neuronal, mais si des détails chimiques/protéiniques vous intéressent, allez voir ceci
ou des équivalents...

reprenons le schéma plus haut:
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neurone
Mieux/pire encore, le schéma que j'avais préparé pour mon TIPE :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neuron10

Le fonctionnement du neurone se lis chronologiquement de gauche à droite.
Un neurone, en version pratique, c'est un système entrées/sortie.
Les influx nerveux (signaux électro-chimiques) entrent à gauche, par les petits filaments appelés dendrites, puis sont transmis (ou pas) à l'axone pour finir à droite, dans les terminaisons neuronales.

Voilà ce que fait un neurone, de façon simplifiée :
Il reçoit une information sous forme d'un signal, qu'il transmet ou non.
3 questions :
d'où reçoit-il ce signal ? - des autres neurones voisins, reliés à lui. ou, pour certains, de capteurs dans le corps...
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neuron11
où transmet-il ce signal ? - à d'autres neurones auxquels il a connecté ses terminaisons neuronales.
comment choisit-il de transmettre ou de ne pas transmettre ? - cela se fait selon les liens qu'il entretient avec les neurones qui lui ont transmis le signal, et selon la force du signal. Dans le cas du neurone biologique (par opposition à formel), la force d'un signal est sa fréquence. Ce qui signifie que plus on le presse souvent ("va-y transmet !! mais qu'est ce que t'attend !!" toutes les secondes...), plus il risque de transmettre.

chaque neurone reçoit des signaux de plusieurs autres neurones en même temps, et en transmet à plusieurs autres neurones...

Une analogie intéressante :

Imaginez que vous êtes dans un lieu avec une foule murmurante. Parmi ces gens, vous en connaissez certains, un peu, d'autres plus, et certains même sont vos plus grands amis. Et d'autres encore, vous les connaissez pas du tout.
Et à un moment, certaines de vos connaissances vous disent qu'il faut évacuer la salle...
D'autres s'y opposent formellement, affirmant savoir que c'est un canular.
Et certains vous préviennent avec des doutes... ou sans avis.
chacune partage avec vous son opinion, et avec chacune de ses connaissances.
Une fois que vous avez les infos de toutes vos connaissances qui sont au courant, vous décidez de prévenir tous vos amis qui ne seraient pas au courant de la situation.
Que leur dites vous ? D'évacuer, ou de rester, ou sans avis ?
Quoi que vous leur dites, il vous croiront peut-être un peu, peut-être beaucoup, peut-être pas du tout. TOUT DEPEND DE LEUR CONFIANCE EN VOUS.
De même, votre opinion dépendra de la confiance que vous accordez à ceux qui vous ont donné l'info.
Si la majorité de vos plus grands amis vous dit "évacue", cela risque fort d'être votre opinion.
Si vous n'avez qu'un grand amis qui vous dit "c'est un canular", et que tout le reste des gens avec qui vous avez des liens vous disent "évacue", même si ce ne sont pas vos plus grand amis, s'il s'agit de personnes que vous connaissez assez pour les estimer sérieuses, vous risquer peut-être de les écouter quand même.

Eh bien, le neurone, c'est vous.
Selon le nombre d'informations contradictoires ou différentes, les affinités avec ceux qui ont transmis les signaux, il transmet ou non le signal.


Voilà ce que fait un neurone biologique à chaque instant.

des questions ?
si l'analogie est comprise et/ou le fonctionnement d'un neurone biologique, celui du neurone formel est un jeu d'enfant.
Aussi j'attends un peu avant de reprendre...



Dernière édition par Yoendel le 28.10.12 15:23, édité 3 fois

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 27.10.12 15:25

PUB !!


Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neurone-318081
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neurone
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Cq1lxl
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Synapses_01
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Des-neurones-en-activite_11014_w250
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Photo-neuron345
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neurone_reseau
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Inserm_52313neuroneaxone1

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Bacrima 28.10.12 13:48

Merci beaucoup pour cette introduction Yoendel.
Je reprends.

Vous savez désormais ce qu'est un neurone biologique.
Passons maintenant à la définition du neurone formel.


Lorsque l'on a découvert les neurones biologiques, on s'est dit que l'on comprendrait ainsi le cerveau et ses secrets.
Et bien sûr on a tenté de reproduire ces neurones pour, à terme, reproduire l'intelligence humaine.
On a pris en compte les connaissances de l'époque sur les neurones biologique et l'on en a créé un modèle simplifié :

Le neurone formel est donc un modèle mathématique simplifié du neurone biologique.

Amusons-nous à dessiner un neurone formel.
Pour cela on reprendra la belle analogie de Yoendel.

1) Le neurone :
On vous dessine de la manière la plus simple possible, un cercle :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 121028121151638785


2) Les liens que vous entretenez avec les autres personnes (neurones) sont représentés par des flèches (ce sont toujours les mêmes qui vous donnent une information et vous donner toujours une information aux mêmes personnes : l'information ne circule que dans un sens sinon c'est trop compliqué).

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 121028121202212373


3) L’information qui vous est envoyée est inconnue, on la représentera donc comme toutes les autres inconnues en mathématiques : par la lettre x.
X1 pour l’information transmise par la personne 1, X2 pour l’information transmise par la personne 2, etc …

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 121028121216788520


4) Quant à vous, l’information que vous transmettez est soit celle de la personne 1, soit celle de la personne 2 …

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 121028121227499658
(« or » signifie « ou »)


5) Les poids.
Comment choisir quelle information vous allez transmettre à vos autres amis ?
Et bien vous le ferez en fonction de la confiance que vous accordez à l’avis de chacun.
Vous allez en quelque sorte notez l’amitié que vous entretenez avec chaque personne.
Vous quantifiez votre confiance.
Cette note est appelé POIDS.
On la note sur le schéma : w.

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 121028121235244631



Ainsi, pour résumer, vous recevez des informations comme :
_ Il faut évacuer (que l’on représente par 1 par exemple)
_ C’est un canular (Que l’on représente par -1)
Eh bien, en multipliant ces informations (1 et -1) par la valeur des liens de confiance (poids) et en sommant le tout, on obtient votre réponse.




Par exemple (ceci est un exemple !!!) :

Bacrima reçoit l’information «Il faut évacuer » (1) de la part de Yoendel.
Bacrima reçoit l’information «C’est un canular» (-1) de la part de Benbox.
Bacrima accorde une confiance de 10.23 à Yoendel et de 8.12 à Benbox.
On a donc : (1) * 10.23 + (-1) * 8.12 = 2.11
2.11 est plus proche de 1, donc l’information que Bacrima va communiquer à son voisin est (1) : «Il faut évacuer ».



_____________________
"Ouvrez-moi une bucolique à perte de vue, le ventre à tout le monde si vous l'aviez vu quand on n'y aurait qu'une petite partie de la société mécanisée."
Bacrima
Bacrima

Humeur : Une pointe de joie et un soupçon d'amusement
Localisation : Dans ma chambre, rarement ailleur ...
Emploi/Loisirs : Japanimer, ça se dit ?

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Klev 28.10.12 18:04

Si ça peut vous rassurer, j'ai compris. Ça tombe bien, étant donné mes petites réflexions sur le sujet depuis Albert Jacquard et sa vidéo.

Le sujet est très bien vulgarisé… Merci.

_____________________
Dans la Nébuleuse, tout devient possible. Les rires se joignent aux larmes, l'émotion à l'instant, le temps à l'espace ; tous les fils noués en une toile de maître, surface interactive, simple résultante de l'activité des individus…

Klev
Admin

Emploi/Loisirs : Administrateur en torpeur.

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 28.10.12 18:18

Merci pour l'explication du neurone formel, Bacrima.
Je ne pensais pas autant réutiliser l'analogie, il me paraît clair désormais qu'elle sera un bon fil conducteur, au moins au début.

Avant de continuer cette explication, je veux faire quelques remarques sur le neurone formel :


1) la quantité/l'ensemble de réponses possible dépend du problème :

en l'occurrence, on a pris un signal binaire, très élémentaire. "évacuez", "n'évacuez pas". "1" ou "-1" en langage numérique.
On a donc admis que chacun dira l'une ou l'autre de ces réponses... ON A FORCE A TRANCHER !
Ce n'est pas obligatoire. c'est un choix.

On peut donc aussi non pas se restreindre à un signal binaire, mais admettre le juste milieu aussi.
On aura dans ce cas 3 réponses possibles :
"évacuez" : "1"
"je n'ai aucune idée sur la question" : "0"
"n'évacuez pas, c'est un canular" : "-1"

On peut pousser le raisonnement comme cela et admettre bien plus de réponses :
"évacuez" : 1
"je ne suis pas sûr mais évacuons quand même" : 0.5
"aucune idée" : 0
"je n'en suis pas sûr mais cela semble être un canular, dans le doute, attendons" : -0.5
"n'évacuez pas, c'est un canular" : "-1"

...
on peut continuer jusqu'à admettre l'ensemble des valeurs entre -1 et 1.
Le cas classique du perceptron que nous étudions, cependant, se restreint à 2 réponses possibles.
SAUF CAS PARTICULIER ET DANS CE CAS, IL FAUT PRECISER LES REGLES.


2) certains langages sont équivalents.
Déjà, on peut se restreindre à l'utilisation des nombres booléens, et carrément utiliser "0" ou "1".
C'est exactement la même chose que de prendre "-1" ou "1".
Sauf que dans le premier cas, le sans avis exprimera "0.5".
Dans le second cas, il exprimera "0".
On dit dans ce cas que les langages utilisés sont équivalents. On peut passer de l'un à l'autre par une formule simple, et donc si on préfère travailler avec l'un ou avec l'autre, on peut choisir, c'est la même chose...


3) la nature des informations que vous recevez/transmettez peut-être absolument n'importe quoi.

Dans le problème actuel, on voulait savoir comment réagirait le neurone Bacrima si Yoendel lui disait d'évacuer (1) et Ben pensais que c'était un canular(-1). On manipulait des chiffres.

Mais Bac ne fait pas que penser à des canulars ou à des dangers d'évacuation, il est aussi un étudiant confronté à la (dure) réalité quotidienne.
Notre neurone Bacrima va donc se mettre à la cuisine, tentant de faire des crêpes.
Dans ce cas :
- Yoendel peut lui dire "il faut 3 oeufs, 1L de lait, 300g de sucre".
- Et BenBox : "il faut 5 oeufs, 2L de lait, 100g de sucre".

Ce qui se traduirait en langage informatique/mathématique par la donnée de 3 nombre : (3,1,300) pour Yo et (5,2,100) pour Ben.
C'est ce que d'aucuns nommeraient les coordonnées d'un point, d'autres celles d'un vecteur.
C'est du pareil au même.

Reprenons l'exemple dans ce cas...

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neuron12

l'avis de Bacrima, donc la recette qu'il transmettra aux étudiants qui ont une soudaine envie de crêpes, sera un triplet (Qo,Ql,Qs) avec :
Qo : quantité d'oeufs
Ql : quantité de lait
Qs : quantité de sucre.

loi importante : quelque soit l'information qui circule, elle doit être du même type partout.
Si Yo et Ben transmettent une recette, Bac transmettra une recette.
S'ils transmettent un ordre, Bac transmettra un ordre.


4) ce qui se passe dans un neurone formel est un phénomène maîtrisé.


Ce qui se passe dans le neurone formel Bacrima, je l'ai noté Intense Réflexion.
Faisons appel à un informatico-psychologue pour le comprendre en détails.

4-1)
Comme l'a dit Bacrima (le vrai !!) dans le post précédent, la première chose que fait notre neurone est de rassembler des infos.
Pour ce faire, il multiplie l'information reçue de son informateur par le poids/la confiance correspondante, et il ajoute toutes les infos.
On connait alors la "tendance" du neurone.
C'est une info "moyenne" (pour un nombre), un "barycentre" (pour un point/vecteur). On peut l'appeler moyenne pondérée.
Pourquoi pondérée ? Parce que chaque info est "pondérée" par le poids, autrement dit modérée selon la confiance que l'on accorde à celui qui la donne.
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Somme10

4-2)
Ce qui a été dit implicitement est la 2e étape : une fois les informations rassemblées, le neurone les compare à des valeurs seuils.
exemple (vu précédemment) :

Bacrima reçoit l’information «Il faut évacuer » (1) de la part de Yoendel.
Bacrima reçoit l’information «C’est un canular» (-1) de la part de Benbox.
Bacrima accorde une confiance de 10.23 à Yoendel et de 8.12 à Benbox.
On a donc : (1) * 10.23 + (-1) * 8.12 = 2.11
2.11 est plus proche de 1, donc l’information que Bacrima va communiquer à son voisin est (1) : «Il faut évacuer ».


"Plus proche de 1" que de -1, c'est clair, dans ce cas.
Mais si Bacrima fait autant confiance à Yo qu'à Ben, on obtient le cas suivant :
Poids de confiance : les deux mêmes. Ex : W1=W2 = 100.
(1)*100+(-1)*100 = 0
La tendance de Bacrima est "sans avis".
Bacrima est tiraillé.
On doit alors définir une règle précise de ce que choisit le neurone Bacrima :

Règle possible 1 :
-Si la tendance moyenne des avis est strictement positive, alors la sortie est +1.
-Si la tendance moyenne des avis est strictement négative, alors la sortie est -1.
-Si la tendance moyenne des avis est nulle, alors Bacrima fait les 2 à la fois Bacrima tranche : il décide que la sécurité est primodiale et qu'il faut évacuer : la sortie est +1.

Cette règle est arbitraire. Il peut décider (règle possible 1bis) qu'avoir l'air con en se précipitant dehors est dangereux pour son image sociale, et donc il n'évacuera pas : la sortie est -1.

EN résumé, on obtient les règles suivantes :

1- règle du Bacrima prudent : si tendance moyenne<0, "c'est un canular". Si tendance moyenne >=0, "évacuons".
1bis- règle du Bacrima sceptique : si tendance moyenne <=0, "c'est un canular". Si tendance moyenne >0, "évacuons".

Il faudra nécessairement choisir l'une des règles. La prudence ou le scepticisme ?
Généralement, cette règle est choisie dès la construction et est la même pour tous les neurones.




Remarquons alors que ce Neurone Bacrima peut avoir encore un tout autre comportement.
création des règles 2 et 2 bis : Bacrima-raciste-prudent et Bacrima-raciste-sceptique.


La base de la règle :
Bacrima accorde le même poids à l'information de Yoendel et de BenBox. Il les connait tous les deux aussi bien et leur accorde la même confiance. (Le problème n'est pas un problème de confiance, mais un problème de préjugés.)
CEPENDANT, Bacrima, au fond de lui, est profondément raciste. Et sexiste avec ça !
Or l'avis donné=1, "évacuons", est l'avis des faibles, de étrangers, des lâches, des femmes.
Yoendel, dans les exemples plus hauts, exprime cet avis là.Sans doute parce que c'est un elfe. ("tous des tapettes").
Donc par pur racisme, même si la confiance qu'il a en Yoendel est la même que celle en Benbox, pour ne pas paraître en accord avec "l'étranger", même si la tendance se rapproche de l'avis =1, il rechigne à mettre sa fierté de côté et à évacuer.

Comprenons-nous bien : il n'a rien contre Yo. Si Yoendel change d'avis et donne un avis "viril", celui de rester et de ne pas fuir comme un lâche, il n'aura rien contre cet avis. C'est juste l'avis "évacuons"(=1) qui lui déplait profondément.

ce qui donne la règle suivante :

-Si la tendance moyenne est vraiment beaucoup plus proche de l'avis =1 que des autres avis exprimés, il ravalera sa fierté et la réponse sera la même.
-Si la tendance moyenne est plus proche de l'avis =1 mais pas de beaucoup, il se range à l'avis le plus proche qui ne soit pas celui-là.
-Si elle est proche d'autres avis, il se range à ces autres avis.

versions quantifiées :
Bacrima-raciste-sceptique:
-Si la tendance moyenne des avis est strictement plus grande que 0.5, alors la sortie est +1.
-Si la tendance moyenne des avis est inférieure ou égale à 0.5, alors la sortie est -1.

Bacrima-raciste-prudent :
-Si la tendance moyenne des avis est supérieure ou égale à 0.5, alors la sortie est +1.
-Si la tendance moyenne des avis est strictement inférieure 0.5, alors la sortie est -1.


donc ce qu'a fait Bacrima, c'est comparer la tendance moyenne à une valeur seuil, que j'aime à nommer Thêta.

Dans l'exemple au début, n'étant pas raciste, il la comparait à 0.

En résumé, dans le cas plus général ou il y a plusieurs personnes ( avec un poids nommé lambda1 au lieu de W1), avec la valeur générale thêta, la réflexion intense d'un neurone, son fonctionnement interne, est le suivant :


Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f10


Dernière édition par Yoendel le 04.11.12 15:42, édité 1 fois

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 28.10.12 18:30

:mrgreen:
De rien, Ben.
ça m'amuse, cette description.
Je pense que ça vaut le coup de la continuer parce que j'en ai vu très peu qui vulgarisaient ce sujet.
Pourtant, c'est un concept intéressant et avec des applications !!

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Bacrima 28.10.12 18:33

Oui, des applications ... mais je préfère en parler à la fin Smile
On se complète bien, continuons comme ça.


Dernière édition par Bacrima le 28.10.12 19:19, édité 1 fois

_____________________
"Ouvrez-moi une bucolique à perte de vue, le ventre à tout le monde si vous l'aviez vu quand on n'y aurait qu'une petite partie de la société mécanisée."
Bacrima
Bacrima

Humeur : Une pointe de joie et un soupçon d'amusement
Localisation : Dans ma chambre, rarement ailleur ...
Emploi/Loisirs : Japanimer, ça se dit ?

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 28.10.12 18:41

Moi, aussi... je ne comptais pas détailler tout de suite...

après, à toi l'honneur, Bac. Very Happy

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Bacrima 28.10.12 19:15

Très bien, je continue :

Nous avons maintenant définie un neurone formel même si en l'état, ils ne servent pas à grand chose.
Si l'on voulait recopier le cerveau, notre réseau de neurones formels ressemblerait à ceci :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? SpaghettiPizza_1_1

Pas pratique et surtout pas SIMPLE !
Or en temps que mathématicien, j'aime les choses simples et ordonnées.
Donc ... je vais couper mes spaghettis !!!!

Je vais créer des couches, non je ne souffre pas de fuites urinaires, il s'agit là de couches de neurones.
(Non, les neurones non-plus ne souffre pas de fuites urinaires !!!!)
Une couche de neurones, c'est un ensemble de neurones qui ne sont pas connectés entre eux.
Néanmoins, les neurones faisant partis de couches qui se suivent peuvent se connecter.
Exemple :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Neurone_couches


Comme vous pouvez le voir sur le dessin plus haut, il y a trois types de couches :

_Les couches d'entrées, qui reçoivent leurs informations de puis l'extérieur du réseau de neurones.
_Les couches intermédiaires, qui opèrent à l'intérieur du réseau.
_Les couches de sorties, qui envoient des informations à l'extérieur du réseau.

Un réseau est composé d'une couche d'entré, d'une couche de sortie ainsi que de zéro ou plusieurs couches intermédiaires.
Les couches d'entrées et de sorties peuvent être confondues.

Voilà, vous savez maintenant grosso modo à quoi ressemble un réseau de neurones.
Mais vous vous demandez sûrement pourquoi est-ce qu'on le simplifie à ce point, non ?
La réponse est simple : Car le plus grand intérêt du réseau de neurones réside dans le fait qu'il est capable d'apprendre et que l'on ne sait pas comment lui faire apprendre quelque chose lorsque la configuration est différente de celle-ci.
Very Happy

On va donc dans le prochain chapitre/post vous montrer ce qu'un simple petit réseau d'une seule couche peut faire !

_____________________
"Ouvrez-moi une bucolique à perte de vue, le ventre à tout le monde si vous l'aviez vu quand on n'y aurait qu'une petite partie de la société mécanisée."
Bacrima
Bacrima

Humeur : Une pointe de joie et un soupçon d'amusement
Localisation : Dans ma chambre, rarement ailleur ...
Emploi/Loisirs : Japanimer, ça se dit ?

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Bacrima 01.11.12 19:00

À toi Yoendel Smile

_____________________
"Ouvrez-moi une bucolique à perte de vue, le ventre à tout le monde si vous l'aviez vu quand on n'y aurait qu'une petite partie de la société mécanisée."
Bacrima
Bacrima

Humeur : Une pointe de joie et un soupçon d'amusement
Localisation : Dans ma chambre, rarement ailleur ...
Emploi/Loisirs : Japanimer, ça se dit ?

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 01.11.12 19:14

Je veux bien, mais j'hésite... quel exemple à une couche donner ?
Non pas qu'il n'y en ait pas, tu le sais bien.
Juste que je cherche un intéressant... la fonction OR ? Les booléens ? ou autre chose ?

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Bacrima 01.11.12 20:45

Je pensais à la fonction 'ou' Smile

_____________________
"Ouvrez-moi une bucolique à perte de vue, le ventre à tout le monde si vous l'aviez vu quand on n'y aurait qu'une petite partie de la société mécanisée."
Bacrima
Bacrima

Humeur : Une pointe de joie et un soupçon d'amusement
Localisation : Dans ma chambre, rarement ailleur ...
Emploi/Loisirs : Japanimer, ça se dit ?

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 02.11.12 15:54

Ok...
travail en cours...

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 03.11.12 19:47

Très bien.

Donc après ce court interlude, nous reprenons avec une application simple d'un réseau de neurones à une couche.

Voilà la tête d'un tel réseau dans le cas général :


Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 1_couc10

en notation simplifiée :
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 1_couc11


Une remarque est alors fondamentale.
AUCUN NEURONE, DANS LE CAS D'UN RESEAU à 1 COUCHE, NE COMMUNIQUE AVEC LES AUTRES.
Puisque des neurones d'une même couche ne communiquent pas entre eux.
Ils se contentent juste de prendre les mêmes informations, les entrées {ei,i=1..n}.
Et de donner chacun sa sortie.


Conséquence immédiate : on peut les étudier séparément.
Le schéma devient donc :



Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? A_part10

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? A_part11

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? A_part12


Donc il est inutile d'étudier un réseau à une couche dans son ensemble.
Il suffit d'étudier un par un chacun de ses neurones.

Nous revenons donc au cas de base :
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? A_part13

on veut étudier un exemple concret, celui de la fonction OU.
cette fonction a deux entrées.

On retrouve l'exemple donné par Bacrima, plus haut.


Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 12102810

Qu'est ce que la fonction OU ?

C'est la fonction du froussard.
Il a deux amis.
Il suffit qu'un seul de ses amis lui dise de fuir, et il fuit.

En informatique, voici sa table de vérité :
X1= X2= X1 OU X2=
0 0 0
1 0 1
0 1 1
1 1 1

Comment lire le tableau :
dans le sens de lecture :
"Si X1=0 et X2 = 0 alors X1ouX2=0"
(si X1 ne dit rien et X2 ne dit rien, alors l'avis de notre neurone est : ne fait rien=0)
"si X1=1 et X2=0 alors X1ouX2= 1
(si X1 dit de fuir et X2 ne dit rien alors l'avis de notre neurone est : fuyons ! =1)
Pareil pour les deux dernières lignes.

Cela s'appelle en informatique : une fonction booléenne, et plus précisément ici la fonction OU.
En électronique, cela s'appelle une porte logique.(ici la porte OU)
On veut un tel neurone.
La question est alors : quels propriétés du neurone prendre ? Poids (Wi) ? seuil (thêta)?

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 12102811

Spoiler:
La réponse, dans un cas comme celui-ci, est simple. Je pourrais vous la donner directement...
cependant, cela semblerait tomber du ciel...

Réfléchissons donc un peu plus.

*Quelle est l'importance de chacune des entrée ? Y en a t-il une à favoriser plus qu'une autre entre X1 et X2 ?
a priori, puisque la réponse donnée est "symétrique" ( la même si on échange X1 et X2), non.
Donc il ne faut ni favoriser ni X1, ni X2.

On prendra donc des poids égaux.

----->W1=W2

*dans ce cas, pour un test, fixons W=W1=W2= 1.(hypothèse 1)

c'est toujours pratique de tout initialiser à 1.

Quel seuil thêta choisir ?
là, on étudie.
Si X1 = 0 et X2=0, on a la tendance/somme pondérée = W1*0+W2*0 = 0.
si X1 = 0 et X2 =1, somme pondérée = W1*0 + W2*1 = W*1 =1.
si X1 = 1 et X2 =0, somme pondérée = W2*0 + W1*1 = W*1 =1.
si X1 = 1 et X2 =1, somme pondérée = W1*1 + W2*1 = 1*1 + 1*1 =2.

Or on veut : si l'un des X vaut 1, la sortie vaut 1.
On a : si l'un des X au moins vaut 1, la somme pondérée est >0 . sinon (si aucun X vaut 1), elle est nulle.

donc on a besoin : si la somme pondérée est >0, on veut sortie =1.
0 sinon.

là se pose la question du neurone que l'on a pris.

Si notre neurone est sceptique (cf plus haut : règle du bacrima prudent/règle du sceptique), alors il suffit de prendre thêta = 0. Mais thêta = 0.5 convient aussi, thêta=0.7 aussi... mais thêta = 1 pose problème.
Si notre neurone est prudent, prendre thêta = 0 pose souci. Mais on peut prendre thêta = 0.5, 0.7... voire 1 pour que ça marche.

donc on a trouvé des valeurs qui nous intéressent, puisque elles sont simples :

On prend W1=W2=1, et thêta = 0 si sceptique, 1 si prudent.
Voire dans le doute, thêta = 0.5 -->marche pour les 2 types.


Voici donc un neurone possible qui réalise la fonction OU :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Ou11

De même, on peut réaliser pas mal de fonctions logiques avec un réseau à une couche :

Fonction & (ET) :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Et11

(remarquez que c'est juste le seuil thêta qui a changé... parce que la fonction est toujours symétrique : pas de favoris entre X1 et X2)


Dernière édition par Yoendel le 09.11.12 22:42, édité 1 fois

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 03.11.12 20:18

NB : j'ai un souci pour corriger mes posts, tout disparait...
Donc je précise une incohérence que j'ai relevée dans l'un de mes posts, et que je corrigerai dès que possible :

La règle du Bacrima raciste est mal expliquée.

Ce n'est pas envers Yoendel que Bac est xénophobe.
C'est envers les propos xénophiles et/ou prônant l'égalité de la femme.
Or ces derniers (tous des froussard, pense le neurone Bac, les femmes comme les étrangers) proposent d'évacuer.

Donc, en terme de règle :
il est xénophobe envers la réponse =1, pas envers Yo lui-même.
En l'occurrence, c'était la proposition de Yoendel (qui est un elfe, donc froussard?) qui posait problème à Bac. D'où ma confusion dans l'explication.
J'espère que vous l'aurez compris.

Ce qui veut dire que si Yo change d'avis, Bac accueillera son avis à bras ouverts... :mrgreen:


CETTE REMARQUE EST DEVENUE OBSOLÈTE. LA CORRECTION VIENT D'ÊTRE EFFECTUÉE.


Dernière édition par Yoendel le 04.11.12 15:46, édité 1 fois

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 03.11.12 20:26

NB 2 : certains livres, tels que ceux que j'ai, ne nomment pas les choses de la même façon que moi.

Ce que j'appelle seuil, il l'appellent de la même façon, mais travaillent avec -thêta au lieu de travailler avec thêta !
Donc si vous voyez des fonction OU, ET etc... avec marqué thêta =-1, thêta =-2... c'est probablement parce que ce qu'ils appellent thêta, je l'appelle -thêta et vice versa.

Pourquoi cette confusion ?

Spoiler:
Parce que mon but est que ce soit intuitif :
le neurone compare la "tendance"/somme pondérée avec une valeur seuil Thêta :
si "somme pondérée >= thêta" alors...
ce qui donne, si on veut travailler avec des nombre positifs/négatifs :
si "somme pondérée - thêta >=0" alors...
Si je veux donc tout mettre du même côté, j'ai un signe moins qui apparait.

Eux veulent travailler avec tout du même côté, et avec des signes plus partout. C'est plus facile, mais bien moins compréhensible pour celui qui découvre...

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Klev 04.11.12 16:50

C'est très intéressant. Il faut juste que je relise depuis le début a chaque fois, mais ne changez rien. (Mon cerveau oublie les notions mathématiques aussi rapidement qu'il retient une conversation…)

_____________________
Dans la Nébuleuse, tout devient possible. Les rires se joignent aux larmes, l'émotion à l'instant, le temps à l'espace ; tous les fils noués en une toile de maître, surface interactive, simple résultante de l'activité des individus…

Klev
Admin

Emploi/Loisirs : Administrateur en torpeur.

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 09.11.12 23:25

Pour étudier plus facilement les propriétés du perceptron à une couche, on va devoir faire un joli dessin.

En effet, comme en physique et en math, il se trouve que l'espace dans lequel nous nous représentons les choses est compliqué... voire parfois incompréhensible.
Jusque là, on fait des sommes, et si elles dépassent un seuil,elles s'activent, sinon pas...
Tout est simple...
Mais pas tant que ça.

On va donc faire comme en math, comme en physique : changer d'espace... ou, comme dit le jargon, de représentation.

Je vous présente l'espace des configurations (TADAAAAM !) :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Espace10


Qu'est ce que c'est que ce truc ?!?

En fait, il s'agit de l'espace des CONFIGURATIONS, qui tire son nom de l'ensemble des configurations possibles.

En abscisse, on met l'entrée 2. En ordonnée, l'entrée 1.(ou vice versa)

Et les points correspondent au valeurs que peuvent prendre les entrées :

-Le point (0,0) est le point représentant le cas X1=0 et X2 =0.

-Le point (1,0) est le point représentant le cas X2=1 et X1=0.

Cet espace, vide, ne sert à rien tout seul.
Cependant, dans cet espace, voici la représentation de la fonction OU que nous venons de voir :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Espace11

La ligne rouge est la limite à laquelle le neurone s'active.
Si un point est au dessus, la sortie vaut 1.
Si un point est au dessous, la sortie vaut 0.
Si un point est sur la courbe...
2 solutions :
règle du Bacrima prudent : sortie =1
ou
règle du Bacrima sceptique : sortie = 0

Cette droite qui délimite les deux cas, c'est la droite associée à thêta = 0.5.
(rappelez-vous, c'est ce thêta que j'ai choisi pour la fonction OU)

Cependant, (voir posts précédents) je pouvais prendre d'autres seuils thêta qui marchaient aussi !
Voyez plutôt dans l'espace des configurations :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Espace12


Dans l'espace des configurations, mon perceptron à une couche ne fait qu'une seule chose : trier entre ce qui est d'un côté de la droite, et ce qui est de l'autre.
Nous découvrons alors une chose intéressante : un neurone formel- et a fortiori un perceptron- est un classifieur.


_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 22.11.13 16:12

Bac, quelle prochaine étape penses-tu bonne à partager, après ça ?
Je suis intrigué...

(je veux bien m'en charger, c'est juste que je sais pas quoi faire après)

J'hésite entre :

-2 et plusieurs couches. (puis algorithme de rétropropagation du gradient)
- rétropropagation de gradient ç-a-d aprentissage sur une couche, puis généralisation à plusieurs couches.

en gros, vaut-il mieux commencer à vulgariser l'apprentissage ou généraliser avant ?

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Bacrima 28.11.13 1:48

Mieux vaut parler de l'apprentissage de manière simple maintenant Wink.

_____________________
"Ouvrez-moi une bucolique à perte de vue, le ventre à tout le monde si vous l'aviez vu quand on n'y aurait qu'une petite partie de la société mécanisée."
Bacrima
Bacrima

Humeur : Une pointe de joie et un soupçon d'amusement
Localisation : Dans ma chambre, rarement ailleur ...
Emploi/Loisirs : Japanimer, ça se dit ?

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 23.10.16 0:06

Vulgarisons donc l'apprentissage, puisque c'est la seconde partie de ce sujet, et qu'elle n'a jusqu'ici jamais été abordée.



Introduction :

Résumons : on étudie pour le moment un réseau de neurones à une seule couche.
On a vu que l'on peut se contenter d'étudier un par un chacun de ses neurones, puisqu'ils ne sont pas connectés entre eux.

On reprend donc notre neurone solitaire étudié plus tôt (mettons désormais que sa sortie sera binaire : 0 ou 1 - et qu'il sera de type prudent) :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? A_part12

Notre objectif est maintenant que ce neurone apprenne quelque chose. Apprendre quelque chose, cela présuppose beaucoup de conditions auxquelles on ne pense pas habituellement, et pire encore, il y a beaucoup de manières différentes possibles d'apprendre quelque chose.

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 3005096553_1_5_ylcgNM5X

Pour le moment, la première question propre à tout apprentissage est de savoir où en est notre neurone.
On ne travaillera pas de la même façon avec un élève qui sait des choses qu'avec un élève qui ne sait rien.
Pire encore, on ne travaillera pas du tout avec un neurone qui a déjà appris, et ça, ça nécessite de savoir ce qu'il a appris.
Part-il de zéro ? N'a-t-il aucune connaissance ?
Bref. Toutes ces questions que tout professeur se pose avant d'aborder un élève sont des questions que l'on se pose lorsque l'on aborde un neurone.

Il y a aussi beaucoup de manières de contrôler si l'on a appris quelque chose (presque autant qu'il n'y a de profs, en fait).
La méthode d'apprentissage la plus connue en ce qui concerne les réseaux de neurone est la méthode d'apprentissage essai/erreur que l'on verra plus tard, qui consiste grosso modo à donner un max d'exercices à notre "élève" (le réseau) en lui pointant à chaque fois ses erreurs (et en lui donnant une note). On testera enfin ce cher petit en lui donnant un contrôle final qu'il devra réussir.
Nous y reviendrons.

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 69903432

On peut dors et déjà remarquer que l'apprentissage dont nous parlons est un apprentissage dit "supervisé". Le réseau/neurone n'apprend rien en autodidacte, il a besoin d'une intelligence  (un dieu ou un prof, bref, le type qui SAIT) pour apprendre. Cette "intelligence" aura pour rôle de confronter le neurone à assez d'exercices tout en lui disant à quel point il se trompe, et c'est avec cette "note d'erreur" que le neurone pourra savoir ce qu'il doit changer.

Ainsi, commençons par le commencement :

I Notre neurone au départ : idiot, inculte, ou quoi d'autre ?

Dans l'éducation, il y a eu pas mal de théories qui ont existé, évolué et ont tenté de modéliser ce qui pouvait se passer dans le cerveau d'un enfant qui apprend.
Soyons clairs : Nous n'essaierons pas de défendre l'une ou l'autre de ces idées, et il ne s'agit même pas de dire si elles sont la vérité ou pas. Il s'agit d'ailleurs juste généralement de trouver celle qui fonctionne le mieux pour un élève (ou un groupe d'élèves) donné(s), et là elles ne serviront que de prétexte pour vous donner deux bases de départ possible.
Il y en a deux qui nous intéressent plus particulièrement ici.

a) le neurone/apprenant ne sait rien du tout au départ

La première idée consiste à considérer que quelqu'un qui apprend tout part de rien. En gros, son cerveau est vide, et on va le remplir.

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 93109695_o

Dans notre monde de neurones, cela consisterait à partir avec un neurone vide. En gros, un neurone vide, c'est un peu comme un chronomètre remis à zéro. Tout ce qui le caractérise, toutes les données qui le régissent sont nulles. Il ne sait rien et ne peut rien faire.

Voici, représenté, un neurone vide :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f10

Voyons un peu ce qu'il fait. Si je lui donne un signal quelconque dans chacune de ses entrées, il la pondère par 0, autrement dit, il la multiplie par 0. Autant dire qu'il pourrait la jeter à la poubelle ou la passer à la moulinette que ça ne changerait rien du tout, puisque  multiplier par 0 consiste à remplacer par 0 (on dit que le 0 est un élément absorbant, mais ça, c'est du vocabulaire de matheux).
Il somme donc ses entrées pondérées, donc il additionne une série de zéros.
À la fin de l'étape du calcul de la tendance, il obtient 0 (quel que soit le signal de départ).

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Index

On passe alors à l'étape de comparaison : il va comparer 0 (la tendance) avec 0 (le seuil thêta).
On retombe sur le problème que l'on avait vu bien plus tôt : le cas de la limite. Que donne-t-il en sortie ?

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f18

La réponse est encore une fois celle du verre à moitié vide, ou à moitié plein :

Le neurone représenté ici est écrit avec un "⩾", donc il va accepter, car 0 est bien supérieur ou égal à 0. Il va donc répondre "1".
C'est le cas du neurone "prudent", rappelez-vous, celui qui acceptait le cas limite !
Si l'on avait mis le symbole ">", on aurait vérifié si "0>0", ce qui est une inégalité fausse. Il aurait donc répondu 0. Ça aurait été le cas du neurone sceptique (oui, rappelez-vous, quand il s'agissait d'évacuer une salle).

Conclusion : on a un neurone qui passe notre signal à la moulinette et se contente de répondre 1 sans broncher (0 s'il est sceptique/strict dans son étape de comparaison).
Bref, c'est un peu le cas de l'élève qui se contente de vous regarder béatement, qui n'a rien compris et qui répond "oui" à tout ce que vous dites (respectivement "non").

Peut-on partir de ce neurone pour lui faire apprendre quelque chose ? Clairement, la réponse est oui.

b) le neurone/apprenant commence avec un savoir random

Par opposition à la première idée, la seconde idée est de croire que l'élève sait déjà des choses, mais des choses complètement fausses et que l'on ne maîtrise pas vraiment. En fait, on pourrait tirer au hasard ses capacités que cela donnerait la même chose.
Dans le monde de notre réseau, cela consiste à prendre un neurone non pas vide, mais avec des caractéristiques aléatoires :

On va tirer son seuil au dé, ainsi que chacune de ses autres caractéristiques (poids pour chaque entrées).
Perso, comme on va travailler avec des nombres booléens (0 ou 1), je préfère nettement tirer au hasard des nombres compris entre 0 et 1. Mais cela est mon avis. On pourrait en fait :

--> les tirer à pile ou face (0 ou 1 et rien d'autres) :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Pilefa10

--> les tirer sur le segment [0;1] : C'est un peu comme jouer aux fléchettes.

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Pilefa11

--> Les tirer sur le segment [-10,10], etc.

Bref, pour ce neurone là, vous ne savez pas trop ce qu'il a dans le crâne. Si ça se trouve il est super-intelligent et sait déjà tout faire ! (mais dans ce cas vous avez été hyper-chanceux en tirant ses caractéristiques).
Mais bien souvent, les réponses qu'il donnent sont en fait exactement les mêmes que celles que donnerait un élève qui se contente de répondre grosso modo au hasard.
Précision:
En fait, il s'agit plus d'un élève à qui vous donneriez le contrôle avant de lui avoir donné le cours associé. Il sait sans doute faire des trucs, mais pas ce qu'il faut; et il répond avec ce qu'il sait déjà (c'est à dire rien de ce qui lui est nécessaire pour réellement répondre au problème). La réalité de ses réponses n'est donc pas vraiment un hasard, au sens là où on pourrait presque la deviner si l'on voyait ce qu'il sait déjà, mais on est en fait pas vraiment plus avancés et il pourrait tout autant répondre au hasard que l'on ne ferait pas la différence

La question est : qui est le meilleur élève entre celui qui vous regarde béatement en donnant toujours la même réponse, et celui qui ne sait pas trop comment répondre et donc qui tire ses réponses un peu au hasard ?
Réponse : aucun des deux. Et en fait, on peut faire de l'apprentissage avec n'importe lequel de ces neurones possibles.
(Je vous passe la démonstration sur le sujet)

Conclusion : Notre neurone au départ peut être un peu comme il veut, ce n'est pas grave. On peut l'initialiser vide ou au hasard, qu'importe.

II le neurone savant : le but ultime

Revenons-en au but : notre neurone doit évoluer de rien (ou de n'importe quoi) pour devenir un neurone "savant", celui qui répond au problème posé, c'est-à-dire le neurone qui correspond à ce que l'on veut lui faire faire.

Rappelons-nous : avant, on souhaitait avoir un neurone à deux entrées capable de réaliser la fonction booléenne "OU".
Je vous redonne ici le résultat, si jamais vous l'avez oublié :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Ou11

Pour cette fonction, on a par nous-même trouvé comment faire, c'est-à-dire quels poids et seuils mettre pour que cela fonctionne. Pourtant, s'il fallait faire pareil dans un réseau contenant 30000 neurones, on n'aurait pas assez de plusieurs mois pour faire cela.
Trouver les seuils et poids possibles consiste à résoudre des équations et inéquations à la pelle, choses que l'on sait plutôt bien faire dans certaines conditions, mais qui deviennent vites très complexes et très lourdes.
Si l'on pouvait automatiser ça, ce serait cool.

Partont donc de notre neurone vide, que je vous redonne encore :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f10

Notre objectif est de passer de ça à celui que je viens de vous présenter, celui de la fonction OU.
La fonction OU contient deux entrées, donc il n'est pas sorcier d'imaginer la première étape : élaguer de notre neurone vide toutes les entrées inutiles. Ce sont des entrées dont les poids resteront toujours, quoiqu'il arrive, nuls.

Cela devient donc ce neurone (vide toujours) là :
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f11

Seuls les deux entrées en bleues seront utilisées. Donc seuls les deux poids (lambda 1 et 2) seront amenés à évoluer. Tous les autres resteront constamment à zéro, d'où la troisième barre du égal pour dire qu'ils sont constants.

Pour être plus clair, on va vite s'en débarrasser et conserver uniquement les deux entrées qui nous intéressent, comme ceci :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f12

Bien !
Nous avons donc notre neurone prêt à apprendre !
Il va donc devoir faire tout seul le chemin initiatique qui va le modifier peu à peu, pour l'amener à devenir ... quoi, au juste ?!

HAHA.
Pour devenir le neurone capable de faire une fonction OU.
Mais soyons fair-play.

III Le neurone que l'on cherche est, dans presque tous les cas, inconnu

Techniquement, on a résolu le cas de la fonction OU, et que l'on sait donc en réalité exactement quels poids et quel seuil lui donner. Alors, pourquoi ne pas les lui donner directement, ces poids ?
En gros, si on pouvait directement mettre en place le cerveau d'un élève pour qu'il sache faire des maths, pourquoi ne le ferait-on pas ?
(Questions éthiques exceptées, puisqu'ici notre élève est un neurone artificiel qui ne pose aucun problème éthique)

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Cerveau

Eh bien, dans le cas d'un neurone artificiel, si l'on pouvait lui donner directement les bonnes caractéristiques, on le ferait. Il n'aurait pas besoin d'apprendre. Il saurait.
On a pu (nous-même, humains et professeurs pour ce neurone) résoudre le cas de la fonction OU, et il nous suffit donc de modifier les deux poids de ce neurone et leur seuil pour le transformer immédiatement en fonction OU. On ne s'en privera pas si on le peut.

C'est un peu comme si l'on refusait de regarder le centre de la cible pour jouer aux fléchettes. Ce serait stupide.

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? 35960761-cibler-avec-des-fl-chettes-3d-art-vector-illustration

Sauf que l'on a résolu le cas de la fonction OU. Pas les autres.
Il existe des fonctions que l'on n'a pas résolu. Des neurones pour lesquels, en clair, on ne sait pas quels poids mettre. Pour lesquels on ne peut pas facilement dire "tiens, remplace le premier poids par 1 et le second par 0,5, et ça devrait marcher".
En clair, ici, le professeur connait certes les réponses que l'élève doit lui donner, mais il ignore complètement comment il faut toucher au cerveau de l'élève pour y arriver.

C'est un peu comme jouer aux fléchettes dans un jeux où l'on vous cacherait la cible, ou bien si vous aviez les yeux bandés en jouant.
Vous avez juste quelqu'un (le prof) qui vous dit "raté", "réussi" ou "presque !".

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Confused-blindfold-businessman-try-to-hit-a-target-with-dart_184399556

Et là le jeu devient plus dur.

Alors soyons fair play, vraiment.
On va dire que l'on n'a jamais su résoudre le cas de la fonction OU. Imaginons que l'on ait jamais trouvé les poids ou le seuil qui lui sont associés, puisqu'il en est ainsi la plupart du temps.

Tout ce que l'on sait, c'est donc que l'on veut qu'il redonne la table de vérité que l'on n'avait déjà vu, à savoir les réponses suivantes lorsque l'on donne les questions suivantes :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Table_de_verite_du_circuit_ou

On arrive donc à la prochaine partie, celle de l'apprentissage.


IV L'apprentissage d'un neurone

Reprenons.
Notre neurone de départ a le bon nombre d'entrées (ici, 2) et ses poids comme son seuil de départ sont fixés et connus (ici, tous à 0).
Pour être fairplay, on ignore en réalité quels sont les poids que l'on aimerait avoir à la fin, et le seuil aussi. On sait juste que l'on souhaite que ce neurone réagisse de manière adaptée si on lui donne les entrées typiques de la fonction OU.

Qu'à cela ne tienne.

On va commencer par amasser un max d'exercices possibles sur la fonction OU, et les donner à l'apprenant, un par un.
C'est ce que l'on appelle, dans le jargon des profs, une évaluation diagnostic. Elle permet pour le prof de voir si en début de cours, l'élève sait déjà, ou à quel point il est loin de connaitre ce qui s'apprête à lui être enseigné.

Prêt pour votre premier cours avec le neurone ?
C'est parti.

a) Premier exercice

Notre neurone est ainsi. C'est comme ça que je l'avais laissé la dernière fois :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f12

On va lui donner un premier exercice.
"Cher neurone, exercice de calcul mental. Si je vous dis "première entrée vaut 0" et "seconde entrée vaut 0", que me répondez-vous ?"

Allons, vous connaissez le neurone, je viens de vous montrer son scanner IRM à l'instant. Vous savez comme moi ce qui se passe dans sa tête.

ses pensées:
"Alors, je fais 0*0 (premier poids), auquel j'ajoute 0*0, ce qui fait 0. La tendance est donc de 0. Je compare cette tendance à mon seuil, c'est à dire 0. 0⩾0, ce qui est vrai. Je dois donc répondre 1".
"1", réponds le neurone.

"Non non non !", répondons-nous alors. "La vraie réponse est 0, donc plus basse de 1."

Voilà.
Qu'a-t-on fait concrètement ?
On vient de faire tester au neurone un premier exemple, celui des deux entrées nulles, dont on sait que la sortie par la fonction OU est voulue nulle aussi.
Il nous a ressorti ce qu'il pensait être, en l'état de ses connaissances, la bonne réponse.
Et nous, professeurs, nous lui donnons la correction.

Il va pouvoir comparer sa réponse à la correction.

b) Réapprentissage du neurone - Premier pas vers le Gradient de l'erreur

La vraie question que vous vous posez est alors : comment utiliser à bon escient le corrigé ?
Savoir que la réponse de notre neurone n'est pas la bonne, OK. Mais comment l'améliorer !?

La réponse est à la fois simple et complexe. Il va falloir remonter le calcul de notre neurone, et regarder ce qui dans ses calculs a le plus contribué à l'éloigner de la bonne réponse.

Si vous avez l'habitude de ce genre de jargon, vous devez sentir venir le terme qui va suivre : la fameuse "rétropropagation du gradient de l'erreur".

Concrètement ?
Notre neurone répond 1 au premier exercice, il devait répondre 0.
Son erreur est obtenue en soustrayant la bonne réponse à la sienne : 1 - 0 = +1
Il y a donc une erreur de +1.
Le nombre est un nombre relatif : la partie chiffrée nous dit à quel point l'on s'est trompé.
Le signe nous dit dans quel sens on s'est trompé (s'il faudrait ajouter ou retirer).

Cette différence erreur/vraie réponse, pour des raisons pratiques, on la nommera "erreur relative".
On verra plus tard pourquoi.

Que faire avec ce +1 ?
En l'état , pas grand chose.
On remonte le calcul.
La sortie était 1 et non 0 parce que ? Parce que la tendance moyenne (somme pondérée des signaux de départ) de notre neurone était effectivement supérieure ou égale à 0. Elle était même de 0 pile. Si seulement elle avait été à peine en dessous de 0, la réponse aurait été la bonne !
Il faut donc que l'on diminue à peine cette tendance, ou alors que l'on augmente à peine le seuil d'activation !

Attention : Pour des raisons de grand-n'importe quoi, et parce que si on touche aux deux, ça pourrait parfois se contredire, il est nécessaire de ne pas toucher au seuil en même temps qu'on touche aux poids. En conséquence, souvent, on ne touche jamais aux seuils et on ne fait changer que les poids pour les adapter aux seuils correspondants.

Objectif donc : se débrouiller pour que la tendance moyenne soit cette fois de -0,05 (on aurait pu choisir 0,01 ou -10, c'était pareil). Ce sera suffisant !
Mais pour cela, il faut regarder comment modifier les poids, seules choses auxquelles on peut toucher désormais ?

On remonte donc avant.

Notre neurone a fait entrée_1 * 0 + entrée_2 * 0 = 0 + 0 = 0.
Là, comme l'entrée_1 = l'entrée_2 = 0, on a un gros problème.
Quelque soit la façon de changer les poids, on n'arrivera pas à obtenir -0,05.

Vous voyez à quel point le fait que 0 soit absorbant pose problème ?
Résumé du souci :
On peut juste changer les poids, chose qui va être galère, car comme on l'a dit avant, changer les poids & les seuils, ça peut parfois voire souvent se contredire (même quand on dirait pas).
Donc on évite de changer les seuils (les poids, eux, on en a bien plus besoin, puisque ce sont eux qui permettent de faire la différence entre les différentes entrées, de leur donner des confiances différentes !). Mais ce fichu double 0 en entrée nous empêche de changer efficacement les poids !
On ne peut donc concrètement rien faire... (ça commence mal !)

Rien...

... Hormis deux choses.

1) Changer quand même le seuil. L'entrée (0;0) est finalement la seule qui force à changer le seuil. Il n'y en a pas d'autres.
OU
2) Abandonner ce système complètement binaire pour un autre qui ne favorisera pas autant le 0.

Là, nous allons explorer la méthode 1. (La 2 est très intéressante aussi, mais patience)

Changeons le seuil : mettons-le à +0,05 (ce serait comme mettre la tendance à -0,05).

c) Exercice 1 : le retour

On reprend la chanson avec notre nouveau neurone :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f13

"Neurone. e1 = 0 et e2 = 0. Réponse ?"

Pensées du neurone:
"Alors... 0*0 + 0*0 = 0. La tendance moyenne est de 0. Je dois donc comparer cette sortie à mon seuil, qui est de 0,05. 0 n'est pas supérieur ou égal, donc la réponse binaire sera non.
"0", nous répond-il de sa petite voix, un peu moins assuré que la première fois.

"Parfait. C'est un sans faute."

Notre neurone a donc su répondre à la première étape.
Mais le professeur est retord. L'apprentissage continue.

d) Le second exercice

"Continuons", reprend le prof. "si je vous dis e1=1 & e2=1, votre réponse ?"

Pensées du neurone:
"Alors... 1*0 + 1*0 = 0. La tendance moyenne est de 0. Je dois donc comparer cette sortie à mon seuil, qui est de 0,05. 0 n'est pas supérieur ou égal, donc la réponse binaire sera non.

"0", nous répond-il de sa petite voix, rasséréné.

"Pas du tout ! La réponse est 1, voyons."

Notre neurone va donc cogiter.
Rétropropageons son erreur :
Il a répondu 0, il devait répondre 1. Il aurait fallu qu'il passe de l'autre côté de la barrière de son seuil !
Son erreur relative est : 0 - 1 =  -1
Sa tendance moyenne étant de 0, il aurait fallu qu'elle soit plus grande (oui, le signe de l'erreur relative pointe toujours dans la direction opposée au sens dans lequel il faudrait aller, c'est normal) pour pouvoir répondre juste.
Il faut donc augmenter cette tendance moyenne.
Mettons que l'on l'augmente jusqu'à 0,10 : ce sera gagné !

Bien. On souhaite e1*poids1 + e2*poids2 = 0,10, pour e1=e2=1.
On veut donc poids1+poids2 = 0,10.
Les deux poids étant initialement de 0, et les entrées étant de 1 chacune, il n'est pas sorcier de voir que l'on peut augmenter les deux poids pour augmenter la tendance. On voit déjà ici de combien augmenter chacun. Au pire, si l'on ne voyait pas de combien, on pourrait toujours augmenter peu à peu puis recommencer, on partirait toujours dans la bonne direction !
On verra plus tard comment déduire ce sens directement de l'erreur.

Donc le premier poids va évoluer de +0,05 et le second de +0,05.

Note:
on pourrait les évoluer tous les deux de 0,5 ou de 1 que ça marcherait encore.

e) Exercice 2, le réveil de la force

Rebelote. Voilà notre tout nouveau neurone après apprentissage :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f14

Cette fois-ci, on peut vérifier que notre neurone sait répondre parfaitement à l'exercice 2 !
En effet, 1*0,05+1*0,05 = 0,10. la phrase "0,10 est supérieur ou égal à 1" est vraie, donc bingo, la réponse est 1.

Mais pour faire cela, il a du changer ses caractéristiques. Vous sentez le danger ?
Si ça se trouve, le neurone a désappris la réponse à l'exercice 1 !

Vérifions !
*intense suspense*
"Si je donne e1=0 et e2=0, je fais 0*0,05+0*0,05=0. 0 est strictement plus petit que 0,05 donc ce n'est pas supérieur ou égal. La réponse est non, je ressors 0."
OUF !

Vous riez peut-être, mais il existe vraiment des cas où apprendre l'exercice 2 signifie désapprendre l'exercice 1.
Il en existe un classique, d'ailleurs.
Vous avez vu que les 4 possibilités de la fonction OU donnent lieu à 4 exercices sur lesquels travail notre neurone qui apprend. On vient tout juste d'en donner 2 à apprendre (e1=0 & e2=0, puis e1=1 & e2=1).

Voyons maintenant le cas de la fonction qui donne des exercices incompatibles :  La fonction OU EXCLUSIF.

f)La fonction qu'un neurone seul ne pourra jamais apprendre

Je m'apprête à vous démontrer que l'on ne peut pas faire la fonction OU EXCLUSIF avec un seul neurone.
Ça semble compliqué à démontrer, n'est-ce pas ?

Mais en fait, il n'en est rien. la démonstration est très simple... si l'on a compris et retenu que le neurone était un classifieur.

Revenons à l'espace des représentations. Vous vous rappelez celui de la fonction OU ? Le revoilà !

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Espace10

Pour rappel, l'abscisse donnait la première entrée et l'ordonnée la valeur de la seconde. Le trait vert sépare les réponses de la fonction (0 ou 1).

Dans la foulée, voici celui de la fonction ET :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Espace11

La couleur vous donne la "zone des possibles" où la réponse de la fonction devra être 1.

Bien. Maintenant, à vous de trouver la représentation de la fonction OU EXCLUSIF.
Rappelons ce qu'elle est : c'est la fonction qui dit "c'est l'un ou l'autre, mais pas les deux !"
Celle que les parents utilisent quand ils disent "Tu manges ta soupe ou tu vas dans ta chambre !"
Ce de votre petit(e) ami(e) qui vous dirait (je ne vous le souhaite pas) : "ce sera lui/elle ou moi !"

Cette fonction retourne "1" si on a bien l'une des entrées à 1, mais PAS LES DEUX.

Voici sa table de vérité :

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Table-verite-ou-exclusif

Vous sauriez retrouver sa représentation ?

Indice : voici le début, il manque juste le trait de séparation entre oui et non, entre 1 et 0 en sortie !

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Espace12

Réponse:
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Espace13

Vous pouvez remarquer une chose : Peut-on, en un seul tracé, en une seule droite, séparer les zones de "réponse 0" et celles de "réponse 1" ?
Non. On ne peut pas.
Un neurone seul ne peut faire qu'une et une seule droite, qu'une seule séparation. Or là on en a besoin minimum de 2.


Corollaire : Si on apprend à un neurone seul à répondre juste aux quatre exercices donnés par cette fonction, alors plus la réponse sera juste pour l'un des exercices donnés, plus elle sera fausse pour au moins un autre.

Vous voyez maintenant pourquoi je craignais pour mon exercice 1 tout à l'heure ?
Rien ne garantit pour le moment que le neurone ne désapprend pas à chaque fois qu'il apprend autre chose.
Ce qui peut faire peur et décourager le programmeur qui s'y mettrait.

Mais hauts les cœurs ! On pourra s'en sortir !

g) Les deux autres exercices de la fonction OU

Revenons maintenant à notre fonction OU et à notre neurone qui apprenait à répondre comme elle.

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f14

Il lui reste deux exercices à faire pour savoir faire la fonction OU.
Le premier (exercice 3) : "Si e1=0 et e2=1, il faut répondre 1"
Le second (exercice 4) : "Si e1=1 et e2=0, il faut répondre 1"

Ces deux exercices ont une particularité intéressante : contrairement à l'exercice 1 et au 2, ils introduisent chacun une différence fondamentale entre les deux sorties.

Voyons avec l'exercice 3.

Donnons-là à notre neurone-élève favori :

"Si e1=0 et e2=1", nous répond-il, "alors je fais 0*0,05 + 1* 0,05 = 0,05. Je compare 0,05 à mon seuil, qui est de 0,05. C'est bien supérieur ou égal, donc ma réponse est 1".
"Parfait !"

On est chanceux. Notre neurone sait répondre parfaitement à l'exercice 3, et en fait, au 4 aussi. Bingo, on a réussi !

MAIS. Il y a un mais. Tout-à-l'heure, j'avais mis mon seuil à 0,05... arbitrairement. Très arbitrairement, même. J'aurais pu le mettre à 0,07 ou 0,01 et ça aurait quand même fonctionné tout à l'heure.


Prenons donc ce cas de figure là, pour voir ce qu'on aurait dû faire alors !

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f15

==>avec un seuil de 0,07, remarquez que mon neurone se tromperait à l'exercice 3, car 0,05 est strictement plus petit que 0,07.

Réponse du neurone à 0,07 (qui, rappelons-le, aurait eu sans faute jusque là lui aussi !) : "si e1=0 et e2=1, alors j'ai 0*0,05 + 1*0,05 = 0,05. Ce résultat est strictement inférieur à 0,07. Réponse : 0.

Corrigé du prof : "Non, la réponse est 1".

Rétro-propagation de l'erreur par le neurone : J'ai une erreur de 0 - 1 = -1.
Il faudrait donc que j'augmente ma réponse finale, donc que j'augmente quelques-uns de mes poids, judicieusement !
Le 0 de e1 m'empêche d'augmenter le poids associé, puisque même si je le faisais ça ne changerait rien au résultat.
Donc, c'est le 1 de e2 qui va m'aider. Si j'augmente son poids associé, mettons de 0,05 à 0,10, ça pourrait peut-être le faire ?

Conclusion : on ne touchera pas dans la correction de l'exercice 3 au poids de e2, c'est inutile. Par contre, augmenter le poids de e1 semble utile !

Voici donc le nouveau neurone, et vous pourrez vite vérifier qu'il passera avec brio l'exercice 3 !

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f17

Par contre, à l'exercice 4, il échouera lamentablement.
Mais en recommençant la même méthode, on arrivera à l'issue de l'exercice 4 à ce neurone-ci, qui est lui aussi celui que l'on voulait !

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Tipe_f16

Et on a enfin un neurone capable de faire la fonction OU !!

Conclusion générale :
Méthode à retenir : globalement, faire une rétropropagation, c'est regarder quels sont les poids dont l'entrée a une incidence forte sur la réponse voulue.
On tendra à diminuer (en valeur absolue, car attention au signe) les poids des entrées qui voudraient contredire la réponse, et augmenter (en valeur absolue) ceux des entrées qui vont dans le sens de la réponse, en faisant bien attention à tout un tas de choses, comme les signes.
On ne touchera pas ou peu au poids qui n'ont aucune incidence sur la réponse.






Note de fin de partie : on sait donc maintenant faire "à la louche" une rétropropagation d'erreur dans un seul neurone.
Quelle sera donc le moyen de ne plus le faire à la louche ? (Pour pouvoir concrètement le programmer ?)

Comment fera-t-on avec plusieurs neurones ensuite ?

Pour répondre, on verra la disparition de la binarité des réponses de notre neurone et son pourquoi, l'apparition d'une fonction sigmoïde, le choix d'un pas de correction, et pourquoi diable on a besoin d'un "gradient" pour tout ça.

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  System 23.10.16 2:03

Ce cours est très intéressant et très bien expliqué. Je n'ai jamais pris autant de notes de ma vie.
Merci mille fois d'exister.

_____________________
Quand le monde tournera rond, réveillez moi.
System
System

Humeur : Dubitatif

Feuille de personnage
Nom, classe et niveau:
PA:
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Left_bar_bleue26/26Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty_bar_bleue  (26/26)
PV:
Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Left_bar_bleue30/30Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty_bar_bleue  (30/30)

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Yoendel 23.10.16 13:31

Content que ça te plaise ! Merci pour le retour positif, ça fait plaisir. ^^

Je craignais que cette partie ne soit moins claire qu'avant.

_____________________
"On ne voit bien qu'avec le cœur: l'essentiel est invisible pour les yeux." le renard, A de St Exupéry.
"Qu'est-ce que signifie «apprivoiser»? dit le Petit prince.
-C'est une chose trop oubliée, dit le renard. Ca signifie «créer des liens...»"
http://www3.sympatico.ca/gaston.ringuelet/lepetitprince/chapitre21.html
"eux veulent me forcer à parler pour ne rien dire, alors je ne dis rien pour parler."
"Il ne faut pas mettre les gens dans des petites cases ; c'est un signe de confusion mentale, mon chou !" les Chants de la Mallorée
"Point de monde sans hasard... point de hasard sans monde... la boucle est bouclée" Alexandra.
"et si notre monde avait 3 coordonnées temporelles pour une spatiale ?"
Yoendel
Yoendel

Humeur : variable... dérivable... et même C-infinie

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Klev 25.10.16 13:50

J'ai lu, et je pense avoir compris l'essentiel. C'est toujours aussi intéressant. Il faudrait que je relise tout depuis le départ (pour changer :) ) pour être certain d'une partie. Encore une fois c'est superbement mené, puisque aussi longtemps après je comprends toujours l'essentiel de ce que tu veux-dire.

:D

_____________________
Dans la Nébuleuse, tout devient possible. Les rires se joignent aux larmes, l'émotion à l'instant, le temps à l'espace ; tous les fils noués en une toile de maître, surface interactive, simple résultante de l'activité des individus…

Klev
Admin

Emploi/Loisirs : Administrateur en torpeur.

Revenir en haut Aller en bas

Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ? Empty Re: Qu'est-ce que l'algorithme de rétro-propagation du gradient de l'erreur dans un perceptron multi-couche rebouclé sur lui-même ?

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum