Croustiprog

IA

Computer Go – Modélisation : Mais par où commencer ?

par le mai.05, 2012, dans Jeu de Go

La seule réponse est que c’est très certainement une question de goût et d’expérience de ceux qui feront le projet. Mais toutefois on peut trouver des caractéristiques intéressante pour se décider en fonction de ce que fera le logiciel. Comme ce rapprochement entre la mécanique du jeu et celle du langage lisp :

FalkBruegmann observed that the GameOfGo is reminiscent of Smalltalk – I agree with him. Also Lisp, Postscript, and Forth. In Go, the game is in the play, instead of the rules – in the same way that in Lisp, Postscript, Forth, and Smalltalk, the semantics are in the environment, not the syntax. Thus, the rules of Go are easy to learn – readily accessible to young children. The implications of the rules have been explored for several thousand years now with no end in sight.

http://c2.com/cgi/wiki?GameOfGo -

Voyons voir ça, qui utilise lisp et quelles sont les mouvances actuelles en programmation du jeu de Go en lisp ? Il va nous falloir établir une liste des projets existant et faire une analyse des résultats obtenus pour savoir si ce langage s’est révélé à la hauteur dans ce domaine.

Commenter plus ...

Découverte : Perceptron facile / étape 2

par le avr.07, 2012, dans Connexionnisme

Avant d’aller plus loin, faisons une apparté et commençons par décrire, la correspondance entre un « vrai » neurone et un neurone en informatique dit « neurone formel ».

Rien de tel qu’un bon schéma pour bien comprendre :

  • première figure tirée de Wikipedia:
Perceptron avec 2 entrées et une fonction d'activation à seuil

Sert à illustrer la page sur le perceptron et les notations utilisées pour les calculs qui y sont expliqués.

  • ensuite sur la page de Gérard Weisbuch du Laboratoire de Physique Statistique de l’ENS (Paris)
Schéma d'un neurone (en haut) et de sa représentation formelle (en bas)

Figure tirée de http://www.lps.ens.fr/~weisbuch/livre/b0.jpg, livre de Gérard Weisbuch "Dynamique des systèmes complexes"..

Ce que l’on remarque de commun entre ces deux représentations, c’est le sens : de gauche à droite.
En revanche pour le reste, c’est un peu trompeur quand on à pas l’habitude, car les notations peuvent être très différentes d’un schéma à un autre.
Revenons donc sur le « sens », où l’on trouve à gauche les entrées et à droite la sortie.
On remarque que le parallèle entre le neurone et sa représentation formelle de la deuxième figure, ne permet pas le découpage plus précis de la première figure. Sur la première, les « trois boites jaunes » sont représentées alors qu’elles sont simplifiés en un seul cercle dans la seconde figure.
Voici une liste qui fait correspondre les notations sur les deux figures :
(figure wikipedia à gauche <=> figure ens/Weisbuch à droite)
  • Entrées : Xi <=> Sj
  • Les poids (« poids synaptiques ») <=> Tij
  • La sortie : Y <=> Si
  • Le corps cellulaire : La boite avec Σ <=> (n’est pas représenté / c’est le cercle noté i)
  • Le seuil : La boite avec θ <=> est représentée avec les entrée Sj (expliqué dans une autre étape)
Remarque : dans la 2e figure,  » i  » est le nom/le numéro du neurone.
Remarque : la boite jaune juste avant le Y (figure 1) avec un symbole en marche d’escalier c’est pour dire que la sortie sera « tout ou rien ». (zéro ou 1 par exemple)
Que représentent ces termes au regard d’un neurone « biologique » ?
La sortie représente l’axone de notre neurone, par lequel il transmet sont activation.
Les entrées représentent l’activation d’autres neurones dont les axones viennent au contact de notre neurone.
Les neurones sont en contact et se transmettent les impulsions électrique au niveau de la synapse (bien sur c’est une simplification).
La synapse est composé du bout d’un axone d’un premier neurone et du bout d’une dendrite d’un second neurone (simplification encore).
L’arbre dendritique par lequel se rejoignent les dendrites est représenté par deux choses : la première c’est la somme ( Σ ) qui est faite de chaque entrée ( Xi ). Mais pas n’importe quelle somme : une somme pondérée. Ce qui pondère chaque entrée, c’est le poids synaptique (ou « poids » tout court) noté Sj ou Wi selon la figure. Chaque entrée est multiplié par un poids, ce coefficient représente le poids/l’impact/l’importance de cette entrée c’est l’importance de la dendrite parmi les autres. Cette importance est lié à ce qui se passe au niveau de la synapse. (Là encore, une simplification)
Le seuil θ quand à lui représente le faite qu’à partir d’un certain niveau d’activation dans l’arbre dendritique, le neurone va « déclancher son activation » / produire un potentiel d’action. C’est donc le produit de l’accumulation des activations de toutes les synapses propagées dans l’arbre dendritique, qui permet ou non l’activation du neurone, c’est à dire un potentiel d’action.
Le potentiel d’action est un courant electrique (échange d’ion entre l’interieur et l’exterieur de l’axone).
Il parcours l’axone très rapidement jusqu’à sa terminaison dans une ou plusieurs autres synapses.
Voici ci dessous un dessin plus détaillé :
Schema d'un neurone : dendrite, corps axone et terminaisonsVoila, pour la correspondance entre le neurone (« biologique ») et le neurone formel, très court et donc très vulgarisé. On retiendra surtout pour la suite l’importance de la « somme ». La somme des entrées, chacune pondérée par un poids.
Il nous reste donc maintenant à expliquer pourquoi on va utiliser ce neurone formel pour réaliser l’objectif décrit à l’étape 1.
C’est ce que nous verrons à l’étape 3.
Commenter plus ...

Découverte : Perceptron facile / étape 1

par le déc.08, 2011, dans Connexionnisme

On va faire un mini tuto progressivement : dans le but de comprendre les bases. Cela grâce à une série de posts.

Pour bien comprendre « comment marche un neurone » on va réaliser un petit programme qui calcul un « Et » (Et-logique).
Puis on fera doucement mais sûrement des améliorations.

Donc un Et logique, on peut représenter cela par la « table de décision » suivante :

Input 1 Input 2 Output
0 0 0
0 1 0
1 0 0
1 1 1

Ou bien en plus clair, si les deux entrées de notre système sont activés alors la sortie l’est aussi. Dans les autres cas la sortie ne s’active pas.

Ca jusque là on a pas besoin de réseau de neurone pour le programmer, je suis d’accord. Mais si on ne commence pas par qqchose de simple on ne va pas s’en sortir ! …

Commenter plus ...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Blogroll

A few highly recommended websites...

Archives

All entries, chronologically...