Youpi ! Enfin quelqu'un d'intelligent !
Youpi ! Enfin quelqu'un d'intelligent !
Salut tous le monde,
AMHA, je pense que le problème de fond est que la machine n'a pas conscience de ce qu'elle sait faire. Il n'y a pas que la phase d'apprentissage qui me semble être le point clé en IA, mais plutôt
savoir ce que je sais faire. Donc si je suis la machine virtuelle et que j'ai appris plein de choses mais que je ne sais pas ce que je sais faire, tous ce que j'ai appris ne servira à rien.
Toujours AMHA, je ne suis pas sur que les techniques de programmation classiques permettent d'aborder cette affaire de façon efficace.
Je suis en ce moment en train de faire des travaux ou j'utilise un vieux schéma connu depuis plus de 50 ans (Programmation par les données) et je dois dire que ça marche.
On passe les données à la machine en mode interactif puis la machine construit le codage en mode compilé, puis elle l'exécute en mode Debug. Quand c'est au point elle enregistre. Elle
a alors élargi son champ de connaissance. La machine ayant une structure neuronale, tous se passe comme si on avait rajouté un neurone nouveau qui est capable de résoudre une tâche donnée. Toutes les tâches (Neurones sont interconnectés)
UN EXEMPLE:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 : Variable.Set S( adr,len --- ) \ Création d'une variable de type Flotant \ PROTOTYPE: ( a = 12.35 )Variable.Set Adressage direct \ PROTOTYPE: Var$ Variable.Set Adressage indirect les données sont dans la chaine \ de caractères de nom Var$ 2DUP 1 Item (FIND) \ On teste si la variable existe déja IF DROP EXIT THEN \ Si oui on sort 2DUP 1 Item 2DUP \ On duplique la chaine pointée par adr,len on y récupère le premier mot et on le duplique. GET-CURRENT (WID-CREATE) \ On se conecte sur le dictionnaire courant et on cré une entrée de dictionnaire dont le non sera #0.0E DF, \ le premier mot de la chaine pointée par adr,len on compile un flotant de valeur 0. Une variable (FIND) NOT \ de type Float est crée. Conaissant son nom on cherche son xt dans le dictionnaire. Abort" Set DATAS_CREATOR_ERROR" \ Si on ne le trouve pas erreur. Execute >R \ On trouve, alors on execute l'xt ce qui fait qu'on récupère l'adresse du champ ou est rangé [CHAR] = Scan 1 /STRING \ le flotant nul. On Scan la chaine adr,len, sur le char =, on diminue la chaine >Float NOT \ réduite d'une position, on fait la conversion chaine de caractère vers flotant Abort" Set DATAS_CONVERSION_ERROR" \ si pas un flotant erreur R> F! \ si pas d'erreur on range le flotant dans la variable que l'on vient de créer. ;
Des découvertes toutes récentes en neurosciences, viennent confirmer que le cerveau fonctionnerai de cette façon. Les chercheurs pensent qu'on devrai développer les techniques de programmation dans cette direction.
Ici on peu leurs répondre "pas la peine, ça fait plus de 50 ans que ça existe".
Si on décompile le " Neurone" Variable.Set on obtient ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 see Variable.Set 4EACBF C # EBP SUB 83ED0C 4EACC2 C [EBP] EAX MOV 8B450C 4EACC5 EBX 0 [EBP] MOV 895D00 4EACC8 EBX 8 [EBP] MOV 895D08 4EACCB EAX 4 [EBP] MOV 894504 4EACCE 1 # EBX MOV BB01000000 4EACD3 4124DF ( ITEM ) CALL E80778F2FF 4EACD8 8 # EBP SUB 83ED08 4EACDB EBX 4 [EBP] MOV 895D04 4EACDE 8 [EBP] EAX MOV 8B4508 4EACE1 EAX 0 [EBP] MOV 894500 4EACE4 40898F ( GET-CURRENT ) CALL E8A6DCF1FF 4EACE9 40AE8F ( (WID-CREATE) ) CALL E8A101F2FF 4EACEE 47394F ( #0.0E ) CALL E85C8CF8FF 4EACF3 4740FF ( DF, ) CALL E80794F8FF 4EACF8 40A77F ( (FIND) ) CALL E882FAF1FF 4EACFD EBX NEG F7DB 4EACFF EBX EBX SBC 19DB 4EAD01 EBX NOT F7D3 4EAD03 404FAF ( (S") ) CALL E8A7A2F1FF 4EAD08 "Set DATAS_CREATOR_ERROR" 4EAD21 40573F ( ?ABORT ) CALL E819AAF1FF 4EAD26 40248F ( EXECUTE ) CALL E86477F1FF 4EAD2B EBX PUSH 53 4EAD2C 3D # EBX MOV BB3D000000 4EAD31 404D7F ( SCAN ) CALL E849A0F1FF 4EAD36 1 # 0 [EBP] ADD 83450001 4EAD3A 1 # EBX SUB 83EB01 4EAD3D 474F0F ( >FLOAT ) CALL E8CDA1F8FF 4EAD42 EBX NEG F7DB 4EAD44 EBX EBX SBC 19DB 4EAD46 EBX NOT F7D3 4EAD48 404FAF ( (S") ) CALL E862A2F1FF 4EAD4D "Set DATAS_CONVERSION_ERROR" 4EAD69 40573F ( ?ABORT ) CALL E8D1A9F1FF 4EAD6E 4 # EBP SUB 83ED04 4EAD71 EBX 0 [EBP] MOV 895D00 4EAD74 EBX POP 5B 4EAD75 47418F ( F! ) JMP E91594F8FF
Désolé une erreur de Manip à fait partir le message de tout à l'heure.
Donc tous les CALL qu'on voit apparaître sont des connexions sur d'autres (Neurones) qui se connectent qui se connectent .... nous avons donc bel et bien une organisation de type neuronal.
On pourra constater que nous n'avons pas écris de programme au sens strict du terme, nous avons
appris à la machine à construire des variables de type flotant.
Les découvertes récentes (Quelques mois) dans le domaine des neuros sciences montrent que l'apprentissage se fait
par la mise au point d'un algorithme suplémentaire, lequel est stocké dans le réseau neuronal.
Il se trouve que le hasard fait bien les choses, la structure interne du mot Variable.Set correspond strictement
à une telle organisation neuronale.
Nous pouvons continuer sur cette lancée,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 ( a = 12.35 )Set ( b = 3.1416 )Set ( c = 2.25 )Set ( P1(x) = ax^2 + bx + c )Polynome.Solve Adressage direct \ ou encore P(x)$ Polynome.Solve ( Pour x [ -5.20 +5.20 ] et I = 0.1 )Polynome.Eval \ Adessage direct \ OU ENCORE ( Pour x [ -5.20 +5.20 ] et I = 0.1 ) Param$ $! \ Adessage indirect \ PUIS Source$ Polynome.Eval P(x)$ Graph.Show ceci est un script et donc s'exécute en mode interprété Mais on peut aussi compiler un script, rien de plus simple : Graph.Show S( adr,len --- ) \ Affiche le graphe dont les données on été construite par Graph.Build \ PROTOTYPE: ( a = 12.35 b = 3.1416 c = 2.25 )Polynome.Show adressage direct \ PROTOTYPE: Polynome$ Polynome.Show adressage indirect, \ les données sont regroupées dans la chaine de nom Polynome$ \ ceci permet de construire les liste de données par programme Variables.Set \ On récupère les données P(x)$ Polynome.Solve \ On récupère l'équation du Polynôme qui est dans P(x)$ Param$ P(x)$ Polynome.Eval \ On évalue P(x)$ selon les paramètres qui sont dans Param$ P(x)$ Graph.Build \ On construit la courbe et on l'affiche. ; \ Usage \ ( P1(x) = ax^2 + bx + c )P(x)$ $! on initialise la chaine P(x)$ \ ( Pour x [ -5.20 +5.20 ] et I = 0.1 ) Param$ $! on initialise la chaine Param$ \ ( a = 12.35 b = 3.1416 c = 2.25 )Graph.Show \ TOUJOURS LA MEME TECHNIQUE \ On prépare les données puis ont dit ce qu'il faut faire avec
On peut remarquer que ceci est très proche de la façon naturelle de procéder.
Si on pose la question ? Solve la machine répond par la liste de tout ce qu'elle résoudre.
Ou encore à la question Polynôme Résoudre ? la réponse sera oui
On peut passer n'importe quel Polynome à la machine, puisqu'elle à appris à résoudre ceux-ci.
( P1(z) = Z^5 + 1 )Polynome.Solve va cracher les racines cinquièmes de l'unité
A la fin on obtient ceci:
Pièce jointe 447092
On peut aussi écrire:
File$ ( Patrice )Mail.Send
COMMENT PROCEDE LA MACHINE,
Supposons qu'on veuille écrire un texte dans une liste. (Base de données)
Les mots qui nous viennent à l'esprit sont Liste et Write par exemple,
alors on demande à la machine si elle connais le mot Liste
WORDS Liste
Et Bingo elle en connais toute une tapée, elle nous sort tous les mots qui contiennent la racine Liste
Page4.Liste InitBoxZliste Lister OpenZliste SetListEX ToZliste ListEX GetZlisteName #Zliste #DirListe Read-Liste StoreZliste
LoadZliste (LoadZliste) FromXliste ReadZliste WriteZliste GetLabelListe OpenListe Reset-MListe MListe (MLISTE) ResetListe
GetListeName $GetOpenListeName $CreateNewListEX CreateNewListe (CreateListe) ZlisteName$ Zliste$ HWNB_LAST_ZLISTE
Puis on lui demande si elle connais le mot WRITE
Words Write et rebelote elle crache encore une liste
DgWriteDataToTmpFile DgWriteDataToServer WriteEditBox WriteComboBox WriteBox WriteSystemStack WriteDlist WriteZstack Wri
teMsg WriteZliste WriteZline WriteMsgEx WRITE-REG WRITE-LOADER WRITE-LINE WRITE-FILE WriteFile
Puis on lui demande de faire une synthèse
( LISTE WRITE )SYNTHETISE et Bingo ça marche
Elle sort le "Neurone" WriteZliste et cerise sur le gâteaux elle affiche son code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 : WriteZliste S( adr,len --- ) \ Dans la chaine pointée par adr,len, prend le premier mot en tant que label, \ dans la lsite (Base de données) active cherche la ligne qui commence par le label précité. \ Si la ligne n'exite pas, le contenu de Zline$ est mis à la suite de la liste. Si elle existe, \ L'ancienne ligne est retiré de la liste et est remplacée par le contenu de Zline$. \ Adressage Direct \ PROTOTYPE: ( #Discriminant \frac { -b \pm \sqrt { b^2 -4ac } } { 2a } )WriteZliste \ Adressage Indirect \ PROTOTYPE: MyString$ WriteZliste le contenu de MyString$ est rajoutée à la liste active Zline$ $! Zline$ 1 ITEM Getlabel DUP 0= IF DROP Zline$ AppendLine ELSE Zline$ ReplaceLine THEN ;
La machine actuelle contient environ 10000 (Neurones) dans son Kernel, sans compter tous ceux qui sont dans les bibliothèques.
Il est évident que je ne suis pas capable de retenir tous ça donc je dois donc faire en sorte que je puisse dialoguer avec la machine qui elle
à la connaissance de ce qu'elle sait faire. De ce fait elle est en mesure de m'aider pour la construction de nouveaux " Neurones"
Je ne sais pas si on peut appeler ceci de l' IA, mais ça y ressemble beaucoup. Toujours est 'il que ça fait plus de 50 ans que cela existe.
AMHA je dirais que le monde de l'informatique n'a peut 'être pas tout à fait vu le Puck.
Cordialement
Lidwig
Nous n'avons pas encore atteint l'Intelligence Générale Artificielle (qui puisse passer avec succès le Test de Turing), et la possibilité de conscience pour des machines non biologiques n'est pas clairement expliquée (maîtrisée), on ne sait exactement comment ils pourraient atteindre cet état de conscience pour ensuite dominer sur l'homme.
Practice makes perfect !
C'est par la pratique que l'on parvient à la perfection !
--------------------------------------------------------------
Artificial Intelligence Ph.D. Student, Bircham International University (BIU) - Madrid
Civilian in Côte d'Ivoire, Developer, Network Engineer & Machine Learning Engineer
Ludwig1 discours très intéressant .
Le test de Turing a bel et bien été passé : https://www.developpez.com/actu/7201...con-de-13-ans/
On disait qu'il etait impossible d'aller sur la Lune et aujourd'hui on parle d'aller sur Mars.
C'est pas le meme domaine d'accord mais ce qui est vrais aujourd'hui ne le sera pas demain.
Quant a une voiture autonome, partir du principe qu'un conducteur est inteligent est un gros postulat (voir la conduite subconciente) et de plus on parle de 98% contre 2% ce qui signifie que :
-Des ameioration infrastruture pourraient permettre une conduite autonome d'une voiture.
-Meme sans ces amelioration avec seulement 2% non realisable par la machine ca ferai deja beaucoup moins d'accident (oui le fameux postulat du conducteur inteligent avec des conducteur ivres ou sous drogues ou sous traitement lourds ou encore tout simplement inconcients).
Je trouve ce constat tres pessimiste et ma fois vrais aujourd'hui mais surement faux demain (il suffira d'une decouverte en science cognitive, en biotechnologie ou ailleurs, tout est lie)
oui Luc JULIA ! Et la Terre est plate !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager