IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Méthodes prédictives Discussion :

Questions sur les réseaux de neurones


Sujet :

Méthodes prédictives

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Par défaut Questions sur les réseaux de neurones
    Je me suis mis en tête de programmer un réseau de neurones (sous Procesing.org). J'ai envie de me mettre à l'IA et je pense donc que c'est un passage obligé. J'étais plein de théories dans ma tête et le fait de réaliser l'existence de ces neurones formels me montrent deux choses :

    -Mes théories se vérifient
    -La compréhension que l'on a du fonctionnement du cerveau est bien plus avancée que je ne le pensais (tellement d'ailleurs, que je me demande si la l'aboutissement à une vraie IA voire d'une Vie Artificielle, n'est pas qu'un question de capacité de calcul).

    Et du coup je lis des articles de Wikipédia, et chaque fois que je tombe sur une notion que je ne connais pas, je me met à lire l'article correspondant et je me perd... Mais j'ai déjà des questions précises. Je m'en vais les poser, et si toi, ou une autre âme charitable de ce forum veut bien y répondre je serai le plus heureux .

    La première de mes questions m'est venue après la lecture d'un post sur les réseaux de neurones sur un autre forum.
    Un étudiant y demande des infos sur un TP qu'il doit réaliser. La courbe d'erreur d'apprentissage en fonction du nombre de neurones (donc certaines cachées? ) est à réaliser. J'imagine donc que cette courbe est croissante. C'est logique, c'est le principe de l'induction.
    Sauf que quelqu'un répond que cette courbe est croissante dans un premier temps, puis DECROISSANTE ! Il parle de sur-apprentissage... Qu'est-ce que c'est ?

    La deuxième question est en fait un blob de questions, parsemé de conclusions que j'ai tiré afin que quelqu'un puisse m'indiquer si je suis ou pas la bonne voie (Pourquoi est-ce qu'on doit choisir entre un Bac L et un Bac S ).

    Dans l'article Wikipédia sur le neurone formel, l'auteur explique que la fonction qui "décrit" le neurone commence par faire la somme de toutes les entrées.




    Ce que je comprend : On ajoute les valeurs (x) en leur appliquant un coefficient (w). Ces valeurs entrent par un nombre (m) de dendrites virtuels.
    Ce que je ne comprend pas : C'est quoi ce coéf. (w) ?
    Est-ce que (m) est répartit entre les neurones genre de 1 à 10 pour le neurone 1 puis de 11 à 20 pour le deuxième etc. ?

    Ensuite, on explique qu'il faut ajouter une valeur w0, et que cette valeur est le seuil de la fonction et que si on utilise la fonction d'activation de base (en escalier), il vaut mieux, en fait retirer cette valeur.

    Elle sort d'où cette valeur ? C'est 1 ou 0 ? C'est le résultat de la fonction d'activation ?

    Je me suis arrêté là à la lecture de l'article. Après ça je suis vraiment trop largué... Mais je pense que les réponses à ces quelques questions seraient déjà un grand pas en avant vers le savoir

  2. #2
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Citation Envoyé par robmayol
    J'ai envie de me mettre à l'IA et je pense donc que c'est un passage obligé.
    C'est une idée préconçue, ça n'est qu'une technique parmi d'autres, avec ses mérites (partition d'un problème linéaire), et surtout ses limitations (tout le reste qui n'est pas linéaire y compris tout le domaine du raisonnement).
    Ça n'est pas du tout un passage obligé, il y a des tas d'autres techniques, tu peux très bien faire de l'IA en ignorant les réseaux de neurones.
    Citation Envoyé par robmayo
    -Mes théories se vérifient
    C'est toujours rassurant.
    Citation Envoyé par robmayo
    -La compréhension que l'on a du fonctionnement du cerveau est bien plus avancée que je ne le pensais (tellement d'ailleurs, que je me demande si l'aboutissement à une vraie IA voire d'une Vie Artificielle, n'est pas qu'un question de capacité de calcul).
    Les réseaux de neurones formels c'est quand même plus de l'algèbre linéaire que de la biologie.
    Heureusement les progrès de l'IA ne dépendent pas des avancées (timides) en neuro-biologie.
    Malheureusement ils ne dépendent pas non plus de la (plus spectaculaire) puissance de calcul.
    Il n'y aura d'ailleurs rien à attendre du parallélisme matériel, qui affichera la même progression qu'avec les architectures centralisées, le changement étant que cette progression deviendra de plus en plus difficile à exploiter.

    Citation Envoyé par robmayol
    Ce que je ne comprend pas : C'est quoi ce coéf. (w) ?
    Un neurone calcule le barycentre des entrées selon ces coefficients w.
    Si le résultat est supérieur au seuil le neurone bascule dans l'état activé.
    Sinon il bascule dans l'état repos.
    Ces coéf. w représentent le poids relatif de tel ou tel entrée (argument) dans la sortie (décision) du neurone.
    Ils sont calculés par un algorithme de type essais-erreur-corrections.
    Citation Envoyé par robmayol
    Il parle de sur-apprentissage... Qu'est-ce que c'est ?
    C'est quand les nouvelles corrections qui tentent d'améliorer la réponse locale ont pour effet négatif de détériorer la réponse globale.

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Par défaut
    Merci pour ces détails Spice. On sent dans le ton, une prise de position vis-à-vis des problématiques que pose le domaine de l'IA. Ça fait partie de ton boulot ?

    Citation Envoyé par SpiceGuid Voir le message
    C'est une idée préconçue, ça n'est qu'une technique parmi d'autres, avec ses mérites (partition d'un problème linéaire), et surtout ses limitations (tout le reste qui n'est pas linéaire y compris tout le domaine du raisonnement).
    Qu'est-ce que la partition d'un problème linéaire ?

    Citation Envoyé par SpiceGuid Voir le message
    Ça n'est pas du tout un passage obligé, il y a des tas d'autres techniques, tu peux très bien faire de l'IA en ignorant les réseaux de neurones.
    J'ai cru comprendre, qu'il y avait deux types d'approche :
    - Le Cognitivisme, qui aboutit en gros, a une liste exhautive d'automatisations
    - Le Connexionisme, qui tente plutôt de semer une "graine" primaire d'intelligence qui évoluera dans le temps.

    La deuxième approche me paraît la plus intéressante et la plus réalisable. Il reste juste à savoir si la conscience n'est réellement que le fruit de l'assemblage de ces milliards de neurones.

    Citation Envoyé par SpiceGuid Voir le message
    Les réseaux de neurones formels c'est quand même plus de l'algèbre linéaire que de la biologie.
    Oui mais le neurone ressemble quand même étrangement à un transistor, le cerveau pourrait n'être qu'un machine de Turing non ?

    Citation Envoyé par SpiceGuid Voir le message
    Il n'y aura d'ailleurs rien à attendre du parallélisme matériel, qui affichera la même progression qu'avec les architectures centralisées, le changement étant que cette progression deviendra de plus en plus difficile à exploiter.
    Quand tu parles de parallélisme matériel ça désigne les systèmes de calcul en cluster ? Genre les supercalculateurs ?

    Citation Envoyé par SpiceGuid Voir le message
    C'est quand les nouvelles corrections qui tentent d'améliorer la réponse locale ont pour effet négatif de détériorer la réponse globale.
    Un peu comme ce qui arrive aux "surdoués" ou aux autistes asperger, le cerveau excelle dans un domaine très précis mais peine à se diversifier...

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut
    Citation Envoyé par SpiceGuid Voir le message
    [...] surtout ses limitations (tout le reste qui n'est pas linéaire y compris tout le domaine du raisonnement).
    En ce qui concerne le raisonnement je suis d'accord, par contre un réseaux de neurones, a ne pas confondre avec le perceptron "simple" est largement utilise pour l'apprentissage de fonction non linéaire.

    Citation Envoyé par SpiceGuid Voir le message
    Ça n'est pas du tout un passage obligé, il y a des tas d'autres techniques, tu peux très bien faire de l'IA en ignorant les réseaux de neurones.
    C'est tout de même l'une des techniques les plus puissante (fouille de donnée, apprentissage de fonction non linéaire ...). Apres tout dépend de ce que l'on veut faire en IA, le domaine est très vaste.

    Citation Envoyé par SpiceGuid Voir le message
    Les réseaux de neurones formels c'est quand même plus de l'algèbre linéaire que de la biologie.
    Tout a fait d'accord, pour des réseaux de neurones plus "bio-inspirée", tu peux te référer aux Spiking Neural Network .

    Citation Envoyé par SpiceGuid Voir le message
    [...] surtout ses limitations (tout le reste qui n'est pas linéaire y compris tout le domaine du raisonnement).
    En ce qui concerne le raisonnement je suis d'accord, par contre un réseaux de neurones, a ne pas confondre avec le perceptron "simple" est largement utilise pour l'apprentissage de fonction non linéaire.

    Citation Envoyé par SpiceGuid Voir le message
    Malheureusement ils ne dépendent pas non plus de la (plus spectaculaire) puissance de calcul.
    Il n'y aura d'ailleurs rien à attendre du parallélisme matériel, qui affichera la même progression qu'avec les architectures centralisées, le changement étant que cette progression deviendra de plus en plus difficile à exploiter.
    Encore une fois tout dépend dans quelle partie de l'IA nous faisons référence. La décision est une partie de l'IA qui, quand on maitrisera réellement le parallélisme, y verra un grand allie .
    De plus il existe des publications sur des réseaux de neurones parallélisés...

    Citation Envoyé par SpiceGuid Voir le message
    Un neurone calcule le barycentre des entrées selon ces coefficients w.
    Si le résultat est supérieur au seuil le neurone bascule dans l'état activé.
    Sinon il bascule dans l'état repos.
    Ces coéf. w représentent le poids relatif de tel ou tel entrée (argument) dans la sortie (décision) du neurone.
    Ils sont calculés par un algorithme de type essais-erreur-corrections.
    Les coefficients w sont justement ce que le reseaux de neurones permet d'apprendre. Ce sont les coefficient de l'équation w_0 + w_1 * x_1 + ... + w_n * x_n, qui dans le cas le plus simple, cas lineaire dans un espace 2D est w_0 + w_1 * x_1, qui revient a l'equation de droite bien connue b + a*x.

    Sur-apprentissage:
    Citation Envoyé par SpiceGuid Voir le message
    C'est quand les nouvelles corrections qui tentent d'améliorer la réponse locale ont pour effet négatif de détériorer la réponse globale.
    Je ne suis pas d'accord sur ce point. Ce que tu ennonce est l'interférence.
    Le sur-apprentissage est le fait de ... sur apprendre ! C'est a dire d'apprendre bêtement ces leçon, et le jour de l'examen etre incapable de résoudre un problème parce que celui-ci est légèrement diffèrent de ce que l'on avait pu faire jusqu'ici ...
    En fait en apprentissage on parle du compromis biais-variance. Ce compromis rentre dans le cadre de la généralisation.
    Je m'explique : Un réseaux de neurones est "entrainé" (apprentissage des coefficients W) grâce a une base dite d'apprentissage, et testé par une base dite de teste .
    Si j'apprends parfaitement sur ma base d'apprentissage (erreur quasi nulle -> biais très faible), ça ne veut pas dire que l'erreur sur la base de teste sera nulle ! Il peut se produire l'effet de sur-apprentissage : On connait parfaitement les donnés sur lesquelles on s'est entrainées mais on ne sait pas généraliser, du coup si des données dans la base de teste sortent un peu du lot et bien "on ne sais pas" comment les classer. Le taux de bonne classification dépend alors fortement des donnés a classer -> la variance est forte.
    Ce que l'on voudrait, c'est un classifieur qui ne fasse pas trop d'erreur , biais faible, mais aussi qui ne dépende pas trop des nouvelles donnés, capacité de généralisation -> variance faible ...

    Clercq.

  5. #5
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Par défaut
    Alors toutes vos réponses m'ont pousser à (re)assimiler certaines notions mathématiques :

    - Les fonctions affines, puisque comme le dit Clercq, si on a w_0 + w_1 * x_1, on a deux dentrites et la possibilité de ne représenter qu'une droite. Que représentent elles en tant que "bit d'information" dans le neurone ? Je veux dire, si je prend des vrais bits, je sais qu'ils sont une partie d'un code RVB par exemple. Mais une droite ça code quoi ?

    - Le barycentre, et ça m'amène à me demander pourquoi au lieu de faire

    on ne fait pas la véritable équation du barycentre / une moyenne pondérée :

    Parce que du coup, avec la première équation, si une seule des entrées est supérieure au seuil, on bascule en 1, alors qu'avec une moyenne pondérée on "tempère" l'information et on filtre les irrégularités perçues par le neurone.

    Voilà pour l'instant , je vous rappelle que je pars de zéro dans le domaine... J'affirme des choses mais c'est juste un raisonnement tout haut pour que vous puissiez me guider un peu en sachant où j'en suis !

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut
    Dans w_0 + w_1 * x_1 + w_2 * x_2 (il manquait un coefficient dans mon précèdent post) w_1 et w_2 représentent le poids des dendrites, si on veut le voir de manière "bio-inspiré". Le terme w_0 permet d'éviter d'être obligé de passer par l'origine. On le voit bien dans le cas d'une simple équation de droite.

    Dans le cas a deux classes on a :
    si W*[1:X]' > 0 -> Classe A.
    si W*[1:X]' <= 0 -> Classe B.

    Les réseaux de neurones permettent le calcul des coefficients de l'hyper-plan qui sépare des données dans un espace a n dimension, ou bien a apprendre une fonction linéaire ou non.

    Dans le cas de la classification on donnera au réseaux un ensemble de donnés étiquetées, c'est a dire associées a leur classe respective. Dans le cas d'apprentissage de fonction on donnera le résultat de l'équation pour un vecteur X donné.

    Je ne vois pas l'utilité de voir le perceptron au niveau des bits ... De la même façon qu'une image RGB est codée avec des bits, les coefficients W sont code en mémoires par des bits, ces bits seront utilisés par le proc pour prédire la classe de la donnée écrite en mémoires par des bits, ou bien le résultat de mon équation codé lui aussi par des bits ...

    On ne calcul pas de barycentre ... Mais un hyper-plan.
    - Dans un cas en 2 dimensions : une droite.
    - Dans un cas en 3 dimensions : un plan.
    - Dans un cas en n dimensions : un ... hyper-plan.

    Dans d'autre techniques on utilise la distance (Euclidienne, de Mahalanobis ...), mais le barycentre ... Je ne vois pas ...

    Clercq.

    PS: Si l'aspect matériel t'intéresse, il existe des papiers sur les réseaux de neurones sur FPGA ...

  7. #7
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Citation Envoyé par Clercq
    Les réseaux de neurones permettent le calcul des coefficients de l'hyper-plan qui sépare des données dans un espace à n dimensions
    C'est pourquoi la sortie du neurone est binaire, elle dit dans lequel des demi-espace (séparés par cet hyper-plan) se situe son entrée.
    Citation Envoyé par Clercq
    Je ne suis pas d'accord sur ce point. Ce que tu énonce est l'interférence.
    Autant pour moi.
    Citation Envoyé par robmayol
    On sent dans le ton, une prise de position vis-à-vis des problématiques que pose le domaine de l'IA.
    C'est parce que la mauvaise vulgarisation des réseaux de neurones véhicule un certain nombre de fantasmes et de clichés "algorithmophobes" :
    • il y aurait tout à espérer de l'étude du support biologique humain
    • les choix matériels en général auraient une importance capitale
    • en particulier le parallélisme serait plus important que l'algorithmique
    • et le matériel analogique ferait son grand come-back
    • l'algorithmique ne serait pas assez intuitive pour être digne d'intérêt

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Par défaut donnes d entrees > 1
    Bonjour,
    Dans un but d apprentissage pour ensuite classification,
    J'ai des données d entrees qui vont de 1 a 8 (issues du code de freeman). Tous les exemples que j ai vu prenaient en entrees des donnees 0 ou 1 , comment fait on pour ce cas de figure ??
    steph

  9. #9
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Par défaut
    rien de particulier...
    en général on normalise les entrées (mais pas obligatoire)... donc tu peux faire x = (x-1)/7 (donc x compris entre 0 et 1).

    ensuite faut prendre une fonction seuil qui soit dérivable (pas un escalier)

Discussions similaires

  1. question (simple) sur les réseaux
    Par guy777 dans le forum Développement
    Réponses: 4
    Dernier message: 26/02/2010, 12h08
  2. question sur les réseaux
    Par benoit.gourcuff dans le forum Administration
    Réponses: 2
    Dernier message: 06/01/2010, 17h47
  3. [IPv4] Une question sur les IPs, les sous-réseaux et les masques
    Par Bahan_auboulot dans le forum Développement
    Réponses: 2
    Dernier message: 27/11/2008, 14h21
  4. question sur les sous réseaux
    Par Balbuzard dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 17/11/2008, 21h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo