Jeudi 11 octobre 2007

Edmond Couchot, auteur bien connu et membre de notre association, vient de publier chez Jacqueline Chanbon/Actes Sud :

 

Des images, du temps et des machiens dans les arts et la communication. Au sommaire :

- La dimension temporelle de l'image
- De l'intercession à l'intersection
- L'image automatique et le temps
- L'image en temps réel.

Du plaisir autant que de l'utile. Edmond présentera son ouvrage aux membres de l'association à une prochaine réunion.

 

 

Par Pierre Berger - Publié dans : Les-algoristes
Ecrire un commentaire - Voir les commentaires - Recommander
Mardi 22 mai 2007

Création artificielle

Michel BRET Professeur émérite, ATI Université Paris

 

 

Article à paraître dans : La convivialité des interfaces à vocation ludique et / ou pédagogique Ludovia 5-6 juillet 2007.

 

 

 

 

 

Mots-clés :

 

 

Algorithmes génétiques, art, autonomie, connexionnisme, création, évolutionnisme, réseaux neuronaux

 

 

 

Résumé :

La relation homme-machine a toujours été définie de façon asymétrique en postulant la supériorité du premier sur la seconde, la convivialité ne visant que le confort de celui-là. Nous pensons que cette position auto centrée est préjudiciable à la créativité elle-même qui ne saurait se réduire à la simple expression démiurgique d’un auteur, fut-il génial, mais implique la nécessaire prise en compte de son environnement et donc, en ce qui concerne les arts numériques, des machines,  des logiciels et de leurs évolutions.

Je propose, sous le vocable de « connecvolution », une méthode basée sur le connexionnisme, sur le concept d’autonomie et sur l’évolutionnisme, permettant de concevoir des systèmes capables de créer artificiellement. Avec cette nouvelle forme de création artificielle se trouve reposée la question de la créativité naturelle.

 

 

 

Introduction

La création, aussi bien artistique que scientifique, suppose que le créateur soit doté d’une autonomie suffisante lui permettant de dépasser ses acquis culturels, la création artificielle exige donc des systèmes autonomes agissant indépendamment de leurs concepteurs.

Le vocable « connecvolution » est un néologisme construit sur les deux termes de « connexionnisme » et d’« évolutionnisme », le premier permettant, grâce aux réseaux neuronaux,  une adaptation ontogénétique des phénotypes, et le second produisant, à l’aide des algorithmes génétiques, les conditions de l’évolution phylogénétique d’une population de génotypes.

En faisant évoluer génétiquement des populations (de réseaux neuronaux ou de robots) il est possible de sélectionner ceux répondant le mieux possible à certaines conditions.

Plus généralement la théorie du darwinisme neuronal rend compte de l’organisation et de l’évolution des réseaux neuronaux eux-mêmes.

En m’appuyant sur ces réflexions je propose de développer un système de création artificielle qui catégoriserait et mémoriserait ses perceptions du monde pour ensuite reconnaître ses propres actions.  Plus précisément, il s’agirait de construire un système prenant en entrée de très nombreuses réalisations artistiques, les catégoriserait, serait capable d’agir sur le monde en créant lui-même d’autres œuvres, qu’il percevrait. Des structures de réseaux neuronaux réentrants pourraient modéliser adéquatement un tel processus en boucle, tandis que des processus de sélection darwinienne devraient pouvoir assurer une évolution non dirigée et donc potentiellement innovatrice. Des notions aussi importantes que celles de création, d’émotion et de conscience artificielles se trouvent ainsi posées, conduisant à requestionner leurs pendants naturels.

Résumé de l’article

La théorie de la sélection de groupes neuronaux a été développée par Gérard Edelman  depuis les années 80, pour rendre compte de l’organisation des réseaux neuronaux selon une sélection darwinienne : au stade embryonnaire les neurones sont d’abord connectés au hasard, puis, progressivement, des circuits se stabilisent, et des groupes de circuits se connectent à leur tour pour former des cartes. Edelman pose le problème de la catégorisation en ces termes : « Comment se fait-il qu’un animal, qui au départ n’a été confronté qu’à un petit nombre d’événements, ou d’objets nouveaux, puisse reconnaître un objet sans l’aide d’un professeur ? Et comment peut-il ensuite généraliser et construire des universaux en l’absence de ces objets ? ». Avec la conscience primaire le cerveau construit des auto-catégories en ajustant les catégories perceptives passées aux signaux provenant des systèmes de valeurs, ce qui revient à découper le monde en catégories utiles. La conscience d’ordre supérieur revient à la reconnaissance, par le sujet, de ses propres actes et affects. La scène mentale ne dépend pas seulement de la catégorisation perceptive de stimuli actuels, mais surtout de leur interaction avec des souvenirs catégoriels, c'est-à-dire avec le passé, ce qui suppose la mémoire.

En m’inspirant des réflexions précédentes, je propose une méthode de construction d’un système de création artificielle qui observe son environnement en catégorisant ses perceptions à l’aide d’apprentissages non supervisés. Ainsi à chaque perception  correspond un certain état d’une mémoire associative. Si l’on code ces états comme une population de génomes, il est possible de leur appliquer une évolution Darwinienne (par des algorithmes génétiques) visant à favoriser ceux qui répondent le mieux à une certaine fonction d’évaluation. Une façon de les noter serait de noter l’image (qui n’existe pas) lui correspondant, ce qui suppose que soit trouvée une méthode de « remontée » du réseau. Pour cela on peut utiliser un apprentissage supervisé sur le réseau inverse (obtenu en permutant les entrées et les sorties), les couples d’apprentissage étant les couples inverses (état, expérience) du premier apprentissage. Ainsi à tout nouvel état obtenu par croisement de deux états correspond une nouvelle image qu’il suffit alors d’évaluer.

J’ai réalisé une application artistique en proposant en entrée du réseau de très nombreuses images, lesquelles génèrent une population d’états dont les enfants donnent, en remontant le réseau, une infinité de nouvelles images. Une expérimentation analogue pourrait être tentée avec de la musique.

L’organe de perception est une rétine artificielle sur laquelle on inscrit des images qui se projettent sur la couche d’entrée d’un réseau neuronal. Pour une analyse en niveaux de gris un seul réseau est nécessaire, mais pour traiter la couleur j’ai employé trois réseaux, un pour chaque composante rouge, verte et bleue. La (ou les) couche(s) cachée(s) tiennent lieu de « cortex » et la couche de sortie est connectée à un éditeur de codes que nous appellerons génomes pour des raisons qui apparaîtront plus loin.

Un tel réseau entraîné par la méthode de la "rétropropagation de l'erreur " présente une propriété très remarquable qui est celle dite de « généralisation » : Il sera capable non seulement de fournir la sortie souhaitée pour une entrée apprise,  mais il le fera aussi pour une entrée proche, et il fournira une sortie non arbitraire pour une entrée non apprise. Nous dirons qu’il est capable d’improviser (tout comme un musicien improvise sur des thèmes connus).

Il s’agit là d’une autonomie que nous qualifierons de faible, car elle nécessite qu’un professeur guide le réseau dans son apprentissage.

Ces réseaux permettent de construire des codes à partir d’images. cherchons à inverser le processus, c’est à dire à construire des images à partir de codes. Pour cela inversons les réseaux. Remarquons qu’il ne suffit pas  d’échanger les rôles des entrées et des sorties mais qu’il faut aussi redéfinir la topologie des connexions (les nombres des neurones sur les couches ayant changés).

Si on considère les codes cibles du premier apprentissage comme représentatifs des souvenirs des images perçues, on peut envisager de les combiner génétiquement pour obtenir de nouveaux codes qui, sources dans le deuxième apprentissage, produiront des images inédites. C’est cette méthode que j’ai implémentée en appliquant les algorithmes génétiques à la population des codes .

La population des génomes à l'instant t+1 est générée en fonction de celle à l'instant t. À chaque génération les individus sont évalués et si leurs adaptations sont satisfaisantes le processus est stoppé.
         Sinon les individus sont sélectionnés aléatoirement avec une probabilité proportionnelle à leur adaptation.
         Les individus sélectionnés sont alors appariés et croisés. Pour cela un point de croisement est choisi aléatoirement entre 0 et L-1 (où L est la longueur de la chaîne) produisant deux autres génotypes par mélange des matériels génétiques .

Des mutations de faible probabilité (de l'ordre de 1/1000) sont appliquées lors du croisement afin de préserver une diversification évitant une dérive élitiste.

Parmi les fonctions d’adaptation possibles on a choisi celles qui optimisent certaines propriétés des images (distributions des variations de paramètres comme la luminance).

Le projet PAP

 Le thème "Art et autonomie" est l'un des principaux axes de travail de l'association « Les Algoristes » qui appelle ses membres à participer au projet  PAP (Projet artistique Primeval/Primeval Art Project). Il s’agit de réaliser un réseau de site web autonomes mais communiquants. Chaque site est de type "soupe primordiale", répondant aux caractéristiques suivantes :

- Il contient un grand nombre d’œuvres, objets artistiques au sens traditionnel, ou algorithmes (réseaux neuronaux, algorithmes génétiques, systèmes d’agents intelligents...).

- La population d’œuvres se développe de façon autonome, à la façon de la "soupe primale" d'où émergea la vie, et évolue sans intervention humaine directe.

- Tous les sites du réseaux échangent librement des oeuvres. Des conditions particulières seront fixées pour les sites adhérents au projet mais non membres de l’association.

- L'association elle-même pourrait assumer la responsabilité d'un site évaluatif,  descriptif, gérant la diffusion des œuvres et les droits d’auteur.

L'expérimentation a débuté avec le site  Roxame-Pap (de Pierre Berger président de l’association) contenant deux types d'entités :

- N'importe quelle production digitale (objets fixes ou animés, interactifs ou non, systèmes produisant ces objets) ; dans un premier temps on se limitera aux images en deux dimensions.

- des "artistes" artificiels (systèmes autonomes adaptatifs).

Chaque artiste humain, soit à partir de son propre code, soit à partir des œuvres existant sur tous les sites, produirait des œuvres nouvelles, dans un processus permanent de génération.

Des processus de sélection darwinienne artificielle favoriseront la reproduction des œuvres répondant à certains critères (à définir) et maintiendront les tailles des populations d’œuvres dans des limites raisonnables. Des processus de co-évolution pourront être envisagés entre plusieurs sites ou groupes de sites.

 

  Conclusion           

Si la création naturelle ne saurait se concevoir sans l’autonomie du créateur, la création artificielle ne saurait exister en dehors de l’autonomie du système. Le créateur du système est donc amené à abandonner toute velléité de contrôle sur son œuvre. Il m’a semblé que les techniques connexionnistes (réseaux neuronaux) et évolutionnistes (algorithmes génétiques) étaient à même de répondre à cette exigence. En m’inspirant du fonctionnement des organismes naturels j’ai construit un système de création artificielle qui observe son environnement (premier apprentissage construisant des codes à partir d’images), réfléchit en utilisant la connaissance acquise (évolution génétique) et agit sur le monde réel en produisant des images inventées qu’il peut percevoir et ré alimenter ainsi une perception qui devient informée. La méthode devient encore plus intéressante lorsque co-évoluent plusieurs systèmes dans lesquels interviennent des humains (c’est le projet artistique Primeval).

Par Michel Bret - Publié dans : L 'autonomie ?
Ecrire un commentaire - Voir les commentaires - Recommander
Lundi 19 mars 2007
 
Fonctionnement général de Roxame
 
Pierre Berger 3/2007
 
Roxame interprète dans son code C++ spécifique les termes figurant dans son dictionnaire (actuellement 1400 termes environ) donnant pour chaque terme sa catégorie et sa définition. Ce dictionnaire est constamment évolutif, de nouveaux termes étant construits soit à partir d'autres termes (macro), soit par l'écriture d'une routine en C++.
 
Actuellement, l'exécution se fait terme par terme. Il n'y a pas à proprement parler de structure de contrôle, sinon la boucle obtenue par récursion.
 
En revanche, une bonne partie des termes s'exécutent en tenant compte d'un contexte préalablement initialisé ou modifié, notamment :
- pour certains termes, un paramètre numérique explicitement indiqué avant le terme (par exemple 10 ranfuzz applique un "flou aléatoire" sur une matrice de 10.10,
- le plus souvent, par fixation d'autres paramètres par des termes, par exemple one large blue house créera une grande maison aux murs bleus en position centrale ; cela peut s'appliquer à tout un processus par exemple sad abstract construit (à partir de rien) une image abstraite aux couleurs grises ;
- ce paramétrage s'applique en particulier pour le dessin des formes, dont on précise au préalable la position, la dimension, les proportions, la couleur, l'épaisseur, le style plus ou moins rigide.
 
L'essentiel du fonctionnement consiste à exécuter la boucle work.
 
Selon la catégorie :
- (macro) Roxame exécute successivement les termes donnés dans la définition
- (synonym) Roxame exécute le terme donné dans la définition
- (cinematics, et plusieurs autres catégories) Roxame exécute la routine donnée par le numéro.
 
Séquence de la session globale
 
a_day              macro              awakening palettes nw question work closure
awakening     cinematics       1
palettes           macro             colors tubess pals       
nw                    cinematics        6         
question         cinematics       7         
work                macro             nw logw zzzgen fnd work (noter que le terme work , in fine, s'appelle lui-même, entraînant le fonctionnement en boucle)
closure            macro             br        
 
Exécution d'une oeuvre
 
zzzgen            synonym          gen65 gen01 recsu rec_subject
 
Décomposition de la macro quand elle est trop longue
 
gen65              macro             gen65_1 gen65_2 gen65_3 gen65_4           
gen65_1          macro             load maxcuth segment segapla0 sat+ tres    
gen65_2          macro             load maxcutv segment segapla0 sat+ reload7          
gen65_3          macro             tres gradient1 reload3           
gen65_4          macro             lighten lighten tres load gradient reload3     
 
Appel d'une fonction C++
(d'abord une fonction d'aiguillage selon la catégorie, puis la fonction proprement dite)
 
load                cinematics       926     
 
void Cinematics (int nummdop)
{
int minhuetube, maxhuetube ,lochuetube ; bool resf ;
....
switch (nummdop){
case 1 :   //=======awakening
... break;
...
 
case 926 : Load(); break ;
...
}
 
La fonction proprement dite (extrait)   
 
void Load()
{
int loaddeb ;
loadeddoc = true;
 
...
 
Xammaq = new Graphics::TBitmap();
 
Xammaq->LoadFromFile(chained); (fonction fournie par le compilateur)
locwidth = Xammaq->Width,Xammaq->Width;
locheigth = Xammaq->Height, Xammaq->Height;
 
...
delete (Xammaq);
if (rotated_doc == true) Log("Rotated document") ;
Affich();
}
 
 
Extraits du dictionnaire, classé par catégories
 
augment                   action
average                    action
rotate                        action
 
:                                 cinematics
??                             cinematics
//                                cinematics
$                               cinematics
**                              cinematics
<                               cinematics
=                               cinematics
µ                               cinematics
affcolormode          cinematics
affcolorsetname    cinematics
cgeom                     cinematics
cgeomrd                 cinematics
load                         cinematics
reload                     cinematics
 
base_yellow                    color
black                                 color
bladder_green               color
 
class_to_region        evaluation
classify                        evaluation
critic                             evaluation
declass                      evaluation
densciel                     evaluation
histo_brights            evaluation
rec_e                         evaluation
rec_f                          evaluation
rec_greenery           evaluation
 
absolute_BW             filter
contours                     filter
contours10                filter
dark+sat                     filter
gradation                    filter
gradation10               filter
gradation11               filter
ranfuzz                        filter
x                                  filter
X                                 filter
 
arrow_left                    form
ellipse                         form
pixel                             form
triangle_down            form
 
frame_difg          geometry
strech                  geometry
sym45                 geometry
sym48                geometry
 
a_day               macro
academy         macro
additive           macro
fnd                   macro
forest              macro
gen01            macro
gen1               macro
gen10              macro
...
gen65_1          macro
gen65_2          macro
gen65_3          macro
gen65_4          macro
gen66 macro
geom10           macro
geom11           macro
mod1               macro
mod10            macro
rend1              macro
rend10            macro
rend11           macro
 
bermuda           model
board                model
boat                  model
dish_washer   model
door                  model
factory              model
milk                 model
mini_jupe        model
side-barb         model
woman_body model
woman_face   model
 
colormoderef  parameter
colorref             parameter
densblue         parameter
RGBblue         parameter
RGBgreen      parameter
 
A                      position
centre            position
coin                position
Par Pierre Berger - Publié dans : Coopération
Ecrire un commentaire - Voir les commentaires - Recommander
Lundi 19 mars 2007

Exemple d'une oeuvre de Roxame.

 

Par Pierre Berger - Publié dans : Coopération
Ecrire un commentaire - Voir les commentaires - Recommander
Lundi 19 mars 2007

Après chaque oeuvre exécutée, Roxame l'évalue et rédige une fiche descriptive/critique. Voici un exemple On a en haut l'image d'origine à gauche et l'oeuvre à droite.

Les quatre colonnes en dessous s'écrivent à la file en fonction de données recueillies au cours de la réalisation ou de la critique.

 

 

Par les-algoristes - Publié dans : Coopération
Ecrire un commentaire - Voir les commentaires - Recommander

Calendrier

Novembre 2009
L M M J V S D
            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            
<< < > >>

Recherche

Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus