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 :

Super débutant - RdN


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
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Par défaut Super débutant - RdN
    Bonsoir tout le monde !
    Voilà, je débute dans le monde de l'intelligence artificiel, et donc j'ai parcouru de long en large ce forum pour trouver de la documentation...
    J'ai donc été dirigé vers le tutoriel de Alp Mestan ( presque tous les threads en parlent alors ... ).
    Je me suis donc attelé à la représentation de la fonction bouleenne OU comme d'écrit dans le tuto, mais après lecture et relecture y'a toujours un truc qui me chagrine (certain vont surement trouver ça nul) :
    Comment se fait il que les informations (les entrées du neurones) peuvent prendre des valeurs réelles dans [0, 1] ???
    Naturellement pour moi les seules valeurs possibles en entrée seraient 1 ou 0....
    Auriez vous une réponse à m'apporter ??

    je vous remercie par avance!
    Et bonne soirée.


    Tye

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut
    Le plus simple est de ce mettre dans un espace 2D. Imagine que tu as un repère xy dans lequel tu as n donnée, chaque donnée étant représenté par sa coordonnée (xi, yi) (i.e x1, x2). Du coup tu peux facilement imaginer dans un repère continu. Ton but est alors de trouver la droite qui permet de séparer tes données en deux groupes (cas du perceptron "de base").



    Ton perceptron reçois alors un corpus (xi, yi, ci) ci étant la classe associé à ma donnée.

    Le cas 0 1 est un cas d'école peut être trop simple ...

    ce que tu cherche en n'est autre qu'un vecteur W = [w0 w1 w2] qui n'est autre qu'une équation de droite ...

    (w0+x1*w1+x2*w2) > 0 -> C1
    (w0+x1*w1+x2*w2) < 0 -> C2

    J'espère que cela pourra t'aider. Sachant que dans le cas du perceptron multi-couche tu est dans un repère nD, sinon le raisonnement est le même, tu as a trouver l'équation d'un hyperplan (ni plus ni moins )

    Toujours dans le cas du perceptron

    avec F(x) = sum i=1..N (xi*wi) + w0.

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Par défaut
    alors je te remercie pour ton explication très claire !
    J'ai bien compris ce que tu as écrit, mais du coup je suis perdu et j'arrive pas me représenter un cas concret ...
    Pourrais tu me montrer un exemple d'utilisation de la fonction OU ? genre, je sais pas... dans une phase du jeu de morpion ? un autre jeu ? un problème tout bête quoi...
    merci encore !

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut
    Je pense qu'il y a peut être une confusion dans l'utilisation des RN.

    Un RN est simplement une boite noir que l'on a entrainé à donner des sorties en fonction des entrés. Dans le cas de l'exemple de la fonction OU le RN à "apprit" la fonction Fou(x), ainsi quand tu lui demande 0 1, il te répond C1 (équivalent a =1); pour 0 0 -> C2 (eq =0) ...

    Dans le cas du jeux de morpion je ne vois pas d'application des RN intéressante. Si ton but est de faire une intelligence pour un jeu de ce type penche toi plutôt sur les méthodes type MINI-MAX, et coupe Alpha-beta.

    En réfléchissant, une application sur le jeu du morpion serait d'apprendre des configuration de jeu d'y associé des probabilité de gain, et à partir de ces probabilité déterminé des classes, ex proba < 0,6, configuration nul C0; 0,6 < proba 0,9 tente, C1; proba > 0,9 fonce, C2.
    En ayant un certain nombre (enorme) de configuration étiqueté (ex config1 = C2, config2 = C0, ..., confign=C1), tu peut apprendre à ton RN a reconnaitre une bonne configuration de jeu d'une mauvaise, ainsi en testant plusieurs config avant de joué, tu choisit une qui est dans la classe la plus prometteuse et tu joue.
    Problème 1 : L'espace d'apprentissage est énorme (9 pour un jeu de base)
    Problème 2 : Il n'est pas sur que sans apprendre toutes les possibilté ton RN reponde correctement, en effet je ne sais pas si il y a un moyen de discriminé une bonne solution d'une mauvaise ... à voir.

    Sinon le principe est là .

  5. #5
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Par défaut
    Merci encore pour ton aide, j'y vois de plus en plus clair

    Enfait le jeux du morpion était juste une exemple ... je ne souhaite pas programmer ce type de jeux (pour l'instant), je cherchais juste un exemple d'application pour utiliser la fonction OU avec mon neurone ...

    quand tu dis ca :
    Un RN est simplement une boite noir que l'on a entrainé à donner des sorties en fonction des entrés. Dans le cas de l'exemple de la fonction OU le RN à "apprit" la fonction Fou(x), ainsi quand tu lui demande 0 1, il te répond C1 (équivalent a =1); pour 0 0 -> C2 (eq =0) ...
    je comprends tout à fait avec des valeurs en entrée comme 0 ou 1 !
    mais avec des valeurs comme 0.4, 0.8 là je ne comprends pas ....
    comment peut on avoir des valeurs réelle pour une fonction OU ???

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Par défaut
    Je pense que le plus simple est que tu oublie la fonction OU qui n'est qu'un exemple d'application et non le fonctionnement interne de l'algorithme.

    En essayant de faire simple l'algorithme est le suivant :

    J'ai en entrée un corpus du type (x,y,classe)^n, dans le cas 2D classe = +1 ou -1.
    J'initialise W=[w0 w1 w2] les coordonné de ma droite séparatrice F(x) de façon aléatoire.

    1) Je choisie une donnée aleatoirement.
    2) ensuite je fais x*w2+y*w1+w0 = tmp et je regarde le signe de tmp,
    - si celui ci correspond au signe de la classe de ma donnée je passe a la donnée suivante 1).
    - sinon je met à jour W de la manière suivante :
    w2 = w2+sigma*x*classe avec sigma au pif d'environ 0.05,
    w1 = w1+sigma*x*classe
    w0 = w0+sigma*classe

    et je passe a la donnée suivante 1).

    Je boucle tant que l'erreur est supérieur à 0.001 par exemple.

    On voit bien qu'il n'y a pas de OU, ni de restriction au valeur 0 1, par contre cet algorithme permet d'apprendre la fonction OU.

Discussions similaires

  1. [Super Débutant] Compilation avec vc++ 2005 ed exp
    Par loupiloup dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 23/12/2006, 17h35
  2. super débutant en louze
    Par khoudj dans le forum Langage
    Réponses: 14
    Dernier message: 18/08/2006, 11h55
  3. Super Débutant => Image de fond
    Par andreditdd dans le forum Débuter
    Réponses: 20
    Dernier message: 22/02/2006, 20h01
  4. super débutant sql
    Par romdyane dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/12/2005, 11h38

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