Intelligence Artificielle

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Intelligence Artificielle

Message par Dorian »

Bonjour,

Après beaucoup de recherche, je n'ai toujours pas trouvé de site qui me fasse comprendre l'AI :? .

Es-ce que l'un de vous saurais m'expliquer ou me donner un bon site qui explique les réseaux de neurones et sa forme "informatique" ^^.

Merci d'avance.

PS : je n'ai pas d'application spécifique, je souhaite surtout comprendre son fonctionnement d'un point de vue général
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

pour les neurones sur le forum du dark basic quelqu'un avait fait quelque
chose de pas mal !

http://www.games-creator.com/forum3/vie ... ht=neurone

ou la

http://www.grappa.univ-lille3.fr/polys/ ... ie005.html



Image
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Si tu trouve, je suis preneur :) ! J'avais trouvé un magazine d'informatique là-dessus, il y a un certain temps. Si je retrouve ses infos, je te les transmet.
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

on a posté en meme temps ! :)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Il y a beaucoup d'articles un peu partout, mais souvent en anglais (dans DrDobbs notamment). En France, dans les pascalissimes il y avait pas mal d'exemples et d'explications.
Sinon, sur le net évidemment, il suffit de faire une recherche sur Réseaux neuronaux pour trouver mille pages qui en parlent. http://www.vieartificielle.com/article/index.php?id=54
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Merci pour vos liens, je les étudirais demain après mais cours ^^.

Sinon j'ai commencer à regarder le lien de DarkBasic mais l'exemple d'aprentissage que j'ai voulu transformer en Pure bug.

Code : Tout sélectionner

Structure TYPENEURONE
  Poid1.f
  Poid2.f
  Seuil.f
EndStructure 

Dim N.TYPENEURONE(0)


;Initialisation des valeurs
;randomize timer()
N(0).Poid1 = (Random(10)-10)*0.01
N(0).Poid2 = (Random(10)-10)*0.01
N(0).Seuil = (Random(10)-10)*0.01


OpenConsole()
Repeat
  v.l = Input()
  If v =1
    LEARN_AND()
    fonction$="AND"
  EndIf
  If v =2
    LEARN_NAND()
    fonction$="NAND"
  EndIf
  If v =3
    LEARN_OR()
    fonction$="OR"
  EndIf
  If v =4
    LEARN_NOR()
    fonction$="NOR"
  EndIf
  PrintN(fonction$)
  PrintN( "")
  PrintN( "E1   E2   Sortie")
  ;R=0 => pas d'apprentissage possible
  PrintN( "-1   -1   ",F_Neurone(-1,-1, 0)
  PrintN( "-1    1   ",F_Neurone(-1, 1, 0)
  PrintN( " 1   -1   ",F_Neurone( 1,-1, 0)
  PrintN( " 1    1   ",F_Neurone( 1, 1, 0)
  PrintN( ""
  PrintN( "Seuil : "+N(0).Seuil)
  PrintN("Poid1 : "+N(0).Poid1)
  PrintN( "Poid2 : "+N(0).Poid2)
ForEver


;Fonction pour apprendre le ET logique au neurone
Procedure LEARN_AND()
  Repeat
    cycle=cycle+1
    learn=0
    If F_Neurone(-1,-1, -1)=-1
      learn=learn+1
    EndIf
    If F_Neurone(-1, 1, -1)=-1
      learn=learn+1
    EndIf
    If F_Neurone( 1,-1, -1)=-1
      learn=learn+1
    EndIf
    If F_Neurone( 1, 1,  1)= 1
      learn=learn+1
    EndIf
    If cycle>10
      N(0).Seuil = -N(0).Seuil
      cycle=0
    EndIf
  Until learn=4
EndProcedure


;Fonction pour apprendre le NON-ET logique au neurone
Procedure LEARN_NAND()
  Repeat
    cycle=cycle+1
    learn=0
    If F_Neurone(-1,-1, -1)=1
      learn=learn+1
    EndIf
    If F_Neurone(-1, 1, -1)=1
      learn=learn+1
    EndIf
    If F_Neurone( 1,-1, -1)=1
      learn=learn+1
    EndIf
    If F_Neurone( 1, 1,  1)= -1
      learn=learn+1
    EndIf
    If cycle>10
      N(0).Seuil = -N(0).Seuil
      cycle=0
    EndIf
  Until learn=4
EndProcedure



Procedure LEARN_OR()
  Repeat
    cycle=cycle+1
    learn=0
    If F_Neurone(-1,-1, -1)=-1
      learn=learn+1
    EndIf
    If F_Neurone(-1, 1, -1)=1
      learn=learn+1
    EndIf
    If F_Neurone( 1,-1, -1)=1
      learn=learn+1
    EndIf
    If F_Neurone( 1, 1,  1)=1
      learn=learn+1
    EndIf
    If cycle>10
      N(0).Seuil = -N(0).Seuil
      cycle=0
    EndIf
  Until learn=4
EndProcedure
;`Fonction pour apprendre le OU logique au neurone

Procedure LEARN_NOR()
  Repeat
    cycle=cycle+1
    learn=0
    If F_Neurone(-1,-1, -1)=1
      learn=learn+1
    EndIf
    If F_Neurone(-1, 1, -1)=-1
      learn=learn+1
    EndIf
    If F_Neurone( 1,-1, -1)=-1
      learn=learn+1
    EndIf
    If F_Neurone( 1, 1,  1)=-1
      learn=learn+1
    EndIf
    If cycle>10
      N(0).Seuil = -N(0).Seuil
      cycle=0
    EndIf
  Until learn=4
EndProcedure

;Fonction pour apprendre le NON-OU logique au neurone



;Fonction qui représente le neurone
;E1 etc... = entrées
;R = résultat desiré
Procedure F_Neurone(E1,E2,R)
  Valeur.f = E1*N(0).Poid1 + E2*N(0).Poid2 - N(0).Seuil
  If Valeur>0 THEN Sortie=1 Else Sortie=-1
  If Sortie <> R
    Inc N(0).Poid1, E1*R*0.1
    Inc N(0).Poid2, E2*R*0.1
  EndIf
  ProcedureReturn Sortie
EndProcedure
Je gagne une erreur ligne 12 "garbage ...", surement une erreur de frappe mais laquelle ???

Allez bonne nuit tout le monde car demain j'ai philo et si je dors dans son cours elle va encore trouver une excuse pour me faire chi**
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

le voici tout corrigé !!
en purebasic les structures c'est le signe "\" pas le point !
j'ai corrigé d'autre erreur due a la difference des deux languages :D



Structure TYPENEURONE
  Poid1.f
  Poid2.f
  Seuil.f
EndStructure

Dim N.TYPENEURONE(0)

Declare LEARN_AND()
Declare LEARN_NAND()
Declare LEARN_OR()
Declare LEARN_NOR()
Declare F_Neurone(E1,E2,R)




;Initialisation des valeurs
;randomize timer()
N(0)\Poid1 = ( Random (10)-10)*0.01
N(0)\Poid2 = ( Random (10)-10)*0.01
N(0)\Seuil = ( Random (10)-10)*0.01


OpenConsole ()
Repeat
  v.l = Val ( Input ())
   If v =1
    LEARN_AND()
    fonction$= "AND"
   EndIf
   If v =2
    LEARN_NAND()
    fonction$= "NAND"
   EndIf
   If v =3
    LEARN_OR()
    fonction$= "OR"
   EndIf
   If v =4
    LEARN_NOR()
    fonction$= "NOR"
   EndIf
   PrintN (fonction$)
   PrintN ( "" )
   PrintN ( "E1 E2 Sortie" )
   ;R=0 => pas d'apprentissage possible
  
   PrintN ( "-1 -1 " + Str (F_Neurone(-1,-1, 0)))
   PrintN ( "-1 1 " + Str (F_Neurone(-1, 1, 0)))
   PrintN ( " 1 -1 " + Str (F_Neurone( 1,-1, 0)))
   PrintN ( " 1 1 " + Str (F_Neurone( 1, 1, 0)))
   PrintN ( "" )
   PrintN ( "Seuil : " + Str (N(0)\Seuil))
   PrintN ( "Poid1 : " + Str (N(0)\Poid1))
   PrintN ( "Poid2 : " + Str (N(0)\Poid2))
ForEver





;Fonction pour apprendre le ET logique au neurone
Procedure LEARN_AND()
   Repeat
    cycle=cycle+1
    learn=0
     If F_Neurone(-1,-1, -1)=-1
      learn=learn+1
     EndIf
     If F_Neurone(-1, 1, -1)=-1
      learn=learn+1
     EndIf
     If F_Neurone( 1,-1, -1)=-1
      learn=learn+1
     EndIf
     If F_Neurone( 1, 1, 1)= 1
      learn=learn+1
     EndIf
     If cycle>10
      N(0)\Seuil = -N(0)\Seuil
      cycle=0
     EndIf
   Until learn=4
EndProcedure


;Fonction pour apprendre le NON-ET logique au neurone
Procedure LEARN_NAND()
   Repeat
    cycle=cycle+1
    learn=0
     If F_Neurone(-1,-1, -1)=1
      learn=learn+1
     EndIf
     If F_Neurone(-1, 1, -1)=1
      learn=learn+1
     EndIf
     If F_Neurone( 1,-1, -1)=1
      learn=learn+1
     EndIf
     If F_Neurone( 1, 1, 1)= -1
      learn=learn+1
     EndIf
     If cycle>10
      N(0)\Seuil = -N(0)\Seuil
      cycle=0
     EndIf
   Until learn=4
EndProcedure



Procedure LEARN_OR()
   Repeat
    cycle=cycle+1
    learn=0
     If F_Neurone(-1,-1, -1)=-1
      learn=learn+1
     EndIf
     If F_Neurone(-1, 1, -1)=1
      learn=learn+1
     EndIf
     If F_Neurone( 1,-1, -1)=1
      learn=learn+1
     EndIf
     If F_Neurone( 1, 1, 1)=1
      learn=learn+1
     EndIf
     If cycle>10
      N(0)\Seuil = -N(0)\Seuil
      cycle=0
     EndIf
   Until learn=4
EndProcedure
;`Fonction pour apprendre le OU logique au neurone

Procedure LEARN_NOR()
   Repeat
    cycle=cycle+1
    learn=0
     If F_Neurone(-1,-1, -1)=1
      learn=learn+1
     EndIf
     If F_Neurone(-1, 1, -1)=-1
      learn=learn+1
     EndIf
     If F_Neurone( 1,-1, -1)=-1
      learn=learn+1
     EndIf
     If F_Neurone( 1, 1, 1)=-1
      learn=learn+1
     EndIf
     If cycle>10
      N(0)\Seuil = -N(0)\Seuil
      cycle=0
     EndIf
   Until learn=4
EndProcedure

;Fonction pour apprendre le NON-OU logique au neurone



;Fonction qui représente le neurone
;E1 etc... = entrées
;R = résultat desiré
Procedure F_Neurone(E1,E2,R)
  Valeur.f = E1*N(0)\Poid1 + E2*N(0)\Poid2 - N(0)\Seuil
   If Valeur>0
    Sortie=1
   Else
    Sortie=-1
   EndIf
   If Sortie <> R
    N(0)\Poid1+ E1*R*0.1
    N(0)\Poid2+ E2*R*0.1
   EndIf
   ProcedureReturn Sortie
EndProcedure
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Sinon ya deux langages de programmation développés spécailement pour l'IA :
* Lisp
* CLOS (un lisp avec une couche objet)

Peut-être ca va vous aider ... :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Est beau ce qui plaît sans concept :)
Speedy Galerie
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

Message par CameleonTH »

Moi aussi sa m'interesserai des tuto sur l'IA car j'essai de faire une chti fps avec des ennemi mais sans IA c'est moins marrant :D
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

bon effectivement j'avais fais beaucoup d'érreurs ^^. Néanmoins il ne parvient pas à "apprendre" la fonction NAND (en plus d'une 1/2 heure :?)

Je vais essayer de chercher une solution pour remédier à mon problème avec vos liens ^^.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Dorian a écrit :bon effectivement j'avais fais beaucoup d'érreurs ^^. Néanmoins il ne parvient pas à "apprendre" la fonction NAND (en plus d'une 1/2 heure :?)

Je vais essayer de chercher une solution pour remédier à mon problème avec vos liens ^^.
Moi, il m'a fallu beaucoup moins de temps pour apprendre le NON ET

- M'man, j'peux prendre un gateau?
- NON !
- M'man, j'peux prendre un gateau?
- NON !
- M'man, j'peux prendre un gateau?
- NON ET si t'insiste, tu va t'en prendre une !
- M'man, j'peux prendre un gateau?
- SCHLAAAAAAKKKK

J'avais compris ! :roll:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

si il t'a fallu autant de temps pour comprendre (4 questions)
je doute que l'on puisse parler d'intelligence (meme artificiel) :lol: :lol: :lol:
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Bon j'ai trouvé un site qui n'a pas l'air mal en complément des autres ^^.

Site de l'Université Info de Laval

EDIT :

Bon arrivé au chapitre 4, c'est la noyade, je comprend pas grand chose à leur cours sur l'algèbre linéaire et leur signe bizarre ^^. Et je doute sur le fait que ce soit au programme d'une Terminal STI électronique. Et j'ai pas envi d'attendre la Prepa (si jamais j'arrive à y rentrer) ou je sais pas quoi pour comprendre les réseaux de neurones :?
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Est beau ce qui plaît sans concept :)
Speedy Galerie
Répondre