vendredi 12 octobre 2012

Premier article sur trois publiés sur le site d'analyse financière Margin Call le 17 septembre 2012
http://www.margincall.fr/


Les algorithmes vont-ils vous tuer ? - Episode I



Ce n'est pas le titre d'une mauvaise série B de science fiction des années 60, mais bien une question essentielle que la communauté du trading doit considérer :

Un algorithme peut-il remplacer efficacement un trader ?


HFT
Cette interrogation s'illustre aujourd'hui dans la pratique du HFT ( High Freqency Trading ou algo-trading) et dans les réactions nombreuses, parfois irrationnelles, souvent justifiées, qu'elle suscite :
Faut-il encadrer HFT en incluant des bornes artificielles de vitesses au sein des algorithmes ?
Faut-il intégrer une dose de « viscosité » programmée qui lissera les épiphénomènes inévitables dans ce type de dynamique ?
HFT déforme-t-il le marché et l'économie ?
Toujours est-il que sa progression est constante (9% des volumes quotidiens sur les marchés actions européens en 2007 contre 40% en 2011) cette progression est encore plus forte sur les marchés non européens!
On retrouve invariablement ce type de questions, dès lors qu'une nouvelle technologie investit un domaine: les accidents , dérapages, effets collatéraux accompagnent toujours son déploiement.
(voir l'affaire Sergei Alaynikov VS Goldman Sachs).
HFT ne fait que préfigurer ce que seront les outils numériques de demain.
C'est en quelque sorte l'éclaireur devant la longue marche des machines engagée il y a un demi-siècle maintenant.
Il est inutile de craindre ou de lutter contre cette évolution, il faut l'accompagner en anticipant les changements à venir : « ressentir » au sens physique du terme les nouveaux algorithmes.

Dressons un panorama non exhaustif des orientations et évolutions algorithmiques qui risquent de modifier en profondeur l'informatique appliquée à la finance dans un proche avenir.
Je remercie d'avance le lecteur de ce billet d'accepter de m'accompagner pour une balade sur les chemins escarpés de la logique et de l'IA - intelligence artificielle.


Intelligence – Test de Turing
On peut avantageusement reformuler la question du titre en se demandant si un programme ou une machine est en mesure de réussir le test de Turing face à un trader humain.
En 1950, le mathématicien britanique Alan Turing a proposé le jeu de l'imitation appelé depuis « test de Turing »
La règle de ce jeu est la suivante :
Un juge dialogue par écrit avec un interlocuteur , à l'issu de ce dialogue, il doit reconnaître si celui-ci est une machine ou un être humain.
Le juge ne voit pas son interlocuteur qui doit quant à lui toujours répondre aux questions du juge.
La machine (lorsque c'est elle !) essaie de se faire passer pour un être humain et l'être humain tente de se faire reconnaitre comme humain.
Lorsque le juge se trompe dans 50% des cas ou plus, alors on considère que la machine présente une forme d' intelligence, qu'elle pense , à sa façon, et que le test de Turing est réussi.
En 1990, Hugh Loebner a créé un concours visant à passer le test de Turing; une récompense de 100.000 USD est prévue pour le premier code passant avec succès ce test.
Beaucoup de chercheurs en informatique théorique pensent que l'on est proche en terme d'années d'un succès à ce test.
En restreignant l'environnement de ce test et en le spécialisant à un domaine (le trading par exemple), on simplifie grandement l'épreuve et l'on s'approche encore plus d'une réussite.
Concrètement, il faut envisager un programme capable de fournir des réponses de niveau équivalent à celles d'un opérateur humain; le code doit donc comporter un niveau d'IA suffisant pour passer inaperçu dans l'ensemble des réactions humaines.
A titre d'illustration, on pourra aller discuter avec Alice (à l'adresse suivante) :
http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1
et ici : http://alicebot.blogspot.fr/
Alice est une adolescente dont le code évolue depuis plus de 16 ans.
Son père Richard S Wallace a remporté trois fois le prix Loebner, il a utilisé au niveau algorithmique certaines méthodes de « langue de bois » que l'on retrouve en politique.

Explorons à présent quelques ingrédients de l'IA


Complexité Algorithmique
Il existe aux limites des mathématiques et de l'informatique une théorie dite théorie de la complexité , initiée par le mathématicien russe Andrei Kolmogorov (1903-1987).
Celle-ci embrasse quasiment toutes les disciplines modernes , elle permet notamment de formaliser efficacement l'aléatoire et l'organisé. L'idée est la suivante :
Toute information finie ( un mot, un texte , une image, une vidéo, l'ensemble de tous les livres écrits sur cette planète, ou encore le code ADN de nos cellules...) peut se représenter, via un certain codage,sous forme d'une chaîne binaire , c'est-à-dire une suite finie de 0 et de 1.
La complexité de Kolmogorov notée K(C) de cette chaine C est définie comme la longueur du plus court programme , fonctionnant sur une machine de Turing donnée (un ordinateur ou un langage classique par exemple), et produisant cette chaine C en sortie.
Si l'on considère ensuite le temps d'éxécution de ce plus court programme, on définit alors la profondeur logique de Bennet de cette chaîne C.
Ces deux mesures sont simples à définir (cela nous a pris quelques lignes !).
Les résultats qu'elles induisent sont quant à eux d'une grande profondeur.
Elles permettent en particulier de formaliser le degré d'aléatoire ou d'organisation d'une chaîne :
une chaîne issue par exemple d'un pile ou face répété 1000 fois (O pour Pile et 1 pour face) aura une complexité maximale (en d'autres termes, le hasard ne se résume pas !)
Une chaîne régulière du genre C = 010101.....0101 aura une complexité faible : je peux la coder en écrivant le programme très court : «  répéter 500 fois le motif 01 , puis afficher le résultat»
Pour la chaîne issue de mon pile ou face , par exemple C = 0001011001...., je suis obligé de décrire chaque bit dans mon programme produisant C, donc sa complexité est grande, proche de sa longueur , on dit que la chaîne C est incompressible.

Les deux oeuvres suivantes présentent des complexités différentes :
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Mondrian – complexité C1

    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Tehos – complexité C2
 
Je peux donner une description courte et complète du tableau de Mondrian, alors que celle de l'oeuvre de Tehos sera beaucoup plus longue , d'où C1 < C2.

Un même objet peut voir sa complexité augmenter rapidement : au repos, une flute à champagne possède une complexité propre, celle ci va augmenter brusquement lorsque j'aurai laissé tomber cette flute sur le sol!
Un des ingrédients de l'intelligence humaine réside dans notre capacité à reconnaître des similarités entre objets pourtant très différents.
La complexité nous permet de transmettre cette faculté à une machine :
Si l'on cherche à mesurer l'information partagée entre deux objets A et B , on peut considérer le plus court programme qui permet de transformer l'objet A en l'objet B, puis le plus court programme effectuant la transformation inverse (de B vers A), on additionne ces deux longueurs de code et l'on obtient une mesure très efficace d'information partagée qui a donné récemment de beaux succès en classement intelligent automatisé de grosses bases de données génétiques.

Enfin, la complexité engendre des démonstrations courtes de résultats extrèmement profonds :
Le célèbre théorème de Gödel (en simplifiant, il dit qu'il existe dans tout système logique des vérités -théorèmes qui sont indémontrables dans ce système ) admet lui-même une démonstration très courte en utilisant la complexité de Kolmogorov.
Cette approche « complexité » est en train de fournir une gamme d'outils IA tres prometteuse.
L'informatique ,quant à elle, tente de canaliser cette complexité; elle le fait à une vitesse qui double tous les 18 mois (loi de Gordon Moore) ; on parle ici de l'informatique conventionnelle et pas encore de l'informatique quantique qui nous réserve de belles surprises !

Si le lecteur le souhaite, il poursuivra avec moi cette balade du coté de la simulation multi-agents, de l'Emergence ,des big datas et des capacités de calcul , ceci lors d' un prochain article.
Peut-être qu'après la lecture de ce premier billet, vous ne regarderez plus votre machine avec le même oeil.
Au fait, qui a rédigé ce billet ? Un humain ? Une guenon ? Une machine ?


Aucun commentaire:

Enregistrer un commentaire