François-René Rideau ([info]fare) wrote,
@ 2004-01-21 20:25:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Current music:Tommy Dorsey & Jo Stafford - Yes Indeed
Entry tags:algorithmic complexity, en, epistemology, induction, links, lisp, meta

Solomonoff Induction

When discussing epistemology, and particularly when disparaging Karl Popper as a half-wit (which still makes him waaaay ahead of the usual crowd of witless zeroes who are paraded as philosophers), I often like to tell about Solomonoff Induction, this compelling solution to the problem of induction. Popper believed such solution was impossible (and redefined "induction" so as to prove his point with Hume's argument), even though all humans (nay, mammals) had been showing him wrong for millenia, and though a formal solution had been hinted as Occam's Razor (tell me about Diogenes the Cynic's response to Zeno's Paradox).

Well, it so happens that Ray Solomonoff has written a nice historical account of his discovery (kudos to CiteSeer). Lots of reflective epistemological insight there -- and a lot of other great heroes who played a role in this story, including (surprise!?) a key contribution by the founders of LISP.

Of course, Solomonoff Induction is not meant to formalize exactly the way we either think or ought to think. Most importantly, it doesn't take into account the cost of thought, which limits the depth and precision of our probability computations. But that's not the point. The point is that we can formalize the way that induction is being done, and capture in an understandable way the essence of understanding -- and its limits, as Chaitin would no doubt remark.

PS: of course, there exist or can be invented infinitely many variants of Solomonoff Induction, that will take into account constraints on computation such as costs, reversibility, etc. These variants can help serve a variety of purposes, from modelling human learning processes to building machines that learn and otherwise mine data. But the details of these variants is secondary and comes naturally; the great discovery was in Solomonoff Induction.



(Post a new comment)


[info]gustavolacerda
2004-01-21 09:16 pm UTC (link)
There's this group at IDSIA in Switzerland, where Solomonoff used to work (works?), where Schmidhuber deals with Solomonoff induction and general learning theory INCLUDING the cost of computation as well. One of my LJ friends is even a PhD student there.
Schmidhuber has a really cool site. You should know it. http://www.idsia.ch/~juergen/

(Reply to this)

Solomonoff
(Anonymous)
2004-01-23 11:16 am UTC (link)
Aurais-tu un lien en fraçais qui résume la théorie de Solomonoff ?

Merci !

Mickaël Mithra

(Reply to this)(Thread)

Solomonoff en français...
[info]fare
2004-01-23 06:32 pm UTC (link)

La seule chose d'explicative que Google trouve sur l'induction de Solomonoff en français est le chapitre 9 de la thèse de Jérôme Segal. On pourra aussi lire cette interview de Gregory Chaitin.

Mais tout cela ne donne pas les détails pourtant relativement simples de cette belle théorie, alors qu'en anglais, il y a tout ce que l'on cherche, au point que la difficulté n'est pas de trouver une explication, mais d'en trouver une bonne selon ce que l'on sait déjà et ce que l'on veut faire de cette théorie.

Résumé rapide: on considère les programmes ayant une entrée une chaîne faite de zéros et de uns et une sortie une autre chaîne faite de zéros et de uns. On peut écrire tous ces programmes avec des zéros et des uns dans un langage universel (au sens de Turing). On appelle alors complexité de Kolmogorov d'une chaîne relativement à une autre la longueur du plus petit programme qui donne cette chaîne en sortie à partir de cette autre en entrée. La complexité de Kolmogorov tout court sera la complexité relativement à la chaîne vide. Par une définition appropriée de l'universalité (et on peut construire une machine universelle, en utilisant une construction à la Turing), on peut toujours écrire un interpréteur pour un autre langage (y compris universel) dans le langage universel choisi, et le combiner simplement avec une entrée, pour faire un calcul d'un langage dans l'autre. Aussi, la complexité de Kolmogorov dépend du langage universel choisi, mais en changeant de langage, le changement de cette quantité est uniformément borné par une constante additive qui dépend de la paire de langages considérés. La notion de complexité dépend donc du contexte de connaissance passée, mais pas trop. L'induction de Solomonoff formalise le fait de considérer pour toute séquence d'événements chaque explication comme exponentiellement moins problable qu'elle est plus complexe, une explication étant ici un programme permettant d'engendrer une telle séquence d'événements. Quand de nouveaux événements interviennent, on s'aperçoit que la distribution des explications probables pour les événements futurs est toujours une distribution algorithmique universelle, mais biaisée de façon bayesienne par le contexte des événements passés. S'il y a effectivement une explication même partielle aux phénomènes observés, cette méthode assure qu'elle sera trouvée dès que l'on aura observé assez d'événements (i.e. quantité d'information supérieure à la complexité de l'explication).

C'est une explication grossière, mais bon, vous trouverez votre bonheur dans tous ces bouquins en anglais...

(Reply to this)(Parent)

Solomonoff
(Anonymous)
2004-01-23 10:41 pm UTC (link)
Merci beaucoup pour cette explication. ça donne déjà une idée.

Mickaël

(Reply to this)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…