Journal Le besoin d'open source en apprentissage artificiel

Posté par  (site web personnel) .
Étiquettes : aucune
0
5
nov.
2007
Dans le journal de recherche en apprentissage artificiel (Journal of Machine Learning Research), une publication récente sort de l'ordinaire.

D'habitude le journal publie des papiers de recherche en apprentissage artificiel mais un document publié mercredi parle d'open source: The Need for Open Source Software in Machine Learning [http://www.jmlr.org/papers/volume8/sonnenburg07a/sonnenburg0(...)].

Le document explique les principes logiciels libre, leurs rapport avec les sciences, les licences et pourquoi les chercheurs aurait intérêt à se tourner vers eux. Cette publication est signée par de nombreux chercheurs d'universités différentes.

Si vous connaissez des logiciels libre concernant l'apprentissage artificiel, faite le savoir dans les commentaires.
  • # il est bien ce papier

    Posté par  (site web personnel) . Évalué à 4.

    c'est dommage qu'il ne pousse pas le raisonnement jusqu'à être publié sous une licence libre ;-)

    En tout cas, bonne introduction au libre (j'ai lu en diagonal...) et visiblement une argumentation déclinée pour ce domaine.

    Sinon pour ton terme apprentissage artificiel, je ne connaissais pas... google m'a trouvé http://forum.mathematex.net/logiciels-maths-f7/discussions-l(...)

    Je connaissais Apprentissage_automatique et Intelligence_artificielle.
    Et tes recherches, que t'avaient-elles donné jusque maintenant ? (hormis ce doc' que je mets de côté).
    • [^] # Re: il est bien ce papier

      Posté par  . Évalué à 6.

      Le terme équivalent en français pour "machine learning" serait "apprentissage statistique".

      Deux communautés s'affrontent sur l'apprentissage automatique :
      1) L'intelligence artificielle (ou IA) qui s'occupe de raisonnement logique , de résolution de jeux ... Prolog est un bon exemple du domaine.
      2) L'apprentissage statistique avec comme sous-domaine la reconnaissance de forme (ou RF) qui s'occupe d'inférer des règles de décision à partir de données stats. Un modèle typique est les réseaux de neurones. Une application typique est l'OCR.

      Bref çà donne des confs comme RFIA (sic.) où sa bastonne dans tous les sens.

      Pour revenir au sujet, les auteurs de l'article sont des scientifiques importants du domaine. Ce qui augmente sont impacts.

      Parmis les outils libres du domaine on peut citer Torch que j'utilise tous les jours. http://www.torch.ch/ .

      L'optimisation est un domaine proche du machine learning, j'utilise aussi la bibliothèque python cvxopt (http://abel.ee.ucla.edu/cvxopt) qui regroupe les algos du célèbre bouquin "Convex optimization" de Stephen Boyd et Lieven Vandenberghe.

      Il y a tout un tas de libs comme libsvm (http://www.csie.ntu.edu.tw/~cjlin/libsvm/).

      J'ai plus ou moins assisté au début de réflexion de l'article lors d'un workshop à la conf NIPS2006 (http://nips.cc/Conferences/2006/Program/event.php?ID=541), le problème qui se posait à l'époque c'était comment mettre en place une licence libre tout en "obligeant" à citer les auteurs des programmes dans les articles. Les réflexions étaient du genre est-ce qu'un soft peut être cité dans la biblio comme un article ? Il faut faire accepter cette pratique aux éditeurs de journaux (ce qui n'est pas joué)...

      Vlal,
      • [^] # Re: il est bien ce papier

        Posté par  (site web personnel) . Évalué à 4.

        De plus en plus le terme AI inclut aussi le machine learning. En gros tout algorithme qui execute un raisonnement inductif releve de l'IA. La distinction entre approche logique et approche statistique est de plus en plus floue notamment les approches bayesienne se sont naturellement positionnées entre les deux communautés.

        Sinon concernant les citations, je vois pas pourquoi la license devrait s'en occuper. Est ce qu'on est *obligé* de citer un papier systematiquement ? Non on le fait par honnêteté intellectuelle et par respect pour le travail de ses pairs.

        Et pour le coté pratique, en générale on cite la documentation officielle du projet dans la bibliographie (comme ca ca incite a ecrire de la vraie doc et c'est pas plus mal) et on presente le logiciel utilisé comme outil dans le flot de l'article.
      • [^] # Re: il est bien ce papier

        Posté par  (site web personnel) . Évalué à 5.

        Pour l'apprentissage par renforcement, on peut citer par exemple PIQLE
        (http://sourceforge.net/projects/piqle) distribué sous licence GPL.

        Pour les citations, les auteurs de libsvm par exemple donnent la manière de citer leur outils dans les articles. Il faudrait que ca soit généralisé pour savoir quoi citer exactement,

        De mon coté, j'espère bien pouvoir mettre le code source de mes algorithmes d'apprentissage multiagent sous licence GPL prochainement, je suis juste en discussion avec les autres auteurs (et en documentation de code aussi :S )

        Ce qui me fait remarquer que, comme il est dit dans l'article, il existe une "peur" à etre critiqué sur des détails de parametres que l'on a pu passer sous silence lors de l'ecriture de l'article.

        Un beau débat en perspective en tout cas...

        Julien
        • [^] # Re: il est bien ce papier

          Posté par  . Évalué à 3.

          Cette histoire d'algo multi-agent m'interesse pas mal.

          Peux-tu en dire plus ? Ils marchent avec Piqle ?
          • [^] # Re: il est bien ce papier

            Posté par  (site web personnel) . Évalué à 3.

            Heu.. non, ils ne marchent pas avec Piqle parce que Piqle n'est pas prevu pour plus de 2 agents. Tout le problème vient des structures de donnée qui ne sont pas adaptées pour plus de deux agents.

            J'ai utilisé PIQLE pour développer les bases de mes algos avec un agent puis j'ai redeveloppé une architecture très (trop ?) générale pour résoudre des problèmes multiagent avec un nombre quelconque d'agents. Bon en pratique, si tu veux pas que ca prenne des siècles à résoudre, le nombre maximal d'agents tourne autour d'une vingtaine. Ca semble pas beaucoup mais pour les problèmes que je tente de résoudre c'est pas mal.

            A part les structures de donnée non adaptées, j'avais besoin de lier mon programme avec gambit (outil de théorie des jeux en GPL) ecrit en C++. Et puis moi, le lien Java<->C++ (Piqle est en Java), ben c'est pas ce que je préfère programmer.....

            Mais le problème, c'est que je pense que j'ai encore en partie réinventé la roue. Alors que j'aurais pu juste étendre une architecture existante... mais bon, l'égo du programmeur est parfois trop forte...

            J'espère que j'ai répondu à ta question.

            Julien
            • [^] # Re: il est bien ce papier

              Posté par  . Évalué à 3.

              En partie :)

              Tu as un exemple concret d'utilisation de ton truc ?

              Tu fais des trucs du genre enchère + apprentissage automatisé peut-être (je dis ça à cause de la théorie des jeux :)

              Et quand tu le mettras en GPL, on le trouvera où ? :)

              Merci
              • [^] # Re: il est bien ce papier

                Posté par  (site web personnel) . Évalué à 1.

                La plupart des exemples sur lesquel je travaille sont plutot des problèmes jouets pour démontrer la performance des algorithmes. L'exemple le plus simple est de considérer plusieurs agents dans une grille qui doivent pousser une boite de manière coordonner : http://maia.loria.fr/demos/demos_olivier/

                Bon, en pratique, je ne travaille pas sur ce problème assez simple mais plutot sur un problème de coordination de véhicules automatiques sur l'autoroute.

                Je n'utilise pas les encheres dans mes algos, mais plutot des calculs d'équilibre (de Nash par exemple) pour coordonner des agents qui ont des buts différents.

                Pour ce qui est de l'emplacement, ca sera surement sur mon site web de mon labo de recherche (http://www.damas.ift.ulaval.ca/~jlaumoni/recherche.php4 pour ceux que ca intéresse). Mais avant, il faut que mette des garde-fou dans mon code, parce qu'on peut se prendre facilement des segfaults si les parametres des algos ne sont pas bons....

                Julien
                • [^] # Re: il est bien ce papier

                  Posté par  . Évalué à 1.

                  Ok, je te remercie pour toutes ces infos ;)

                  Ça m'intéresse beaucoup étant étudiant en M2 recherche en IA et SMA :)
            • [^] # Re: il est bien ce papier

              Posté par  (site web personnel) . Évalué à 1.

              Je me répond à moi même pour corriger ce que j'ai dit : Piqle permet la gestion des problèmes multiagents avec un nombre quelconque d'agents. Je n'avais pas assez regardé la doc. Mea Culpa.

              Julien
  • # il y a un peu plus, je vous le mets ?

    Posté par  (site web personnel) . Évalué à 1.

    Dans le menu du site du journal :
    http://jmlr.csail.mit.edu/
    On peut aussi voir l'entrée « Open Source Software ».

    En fait, le comité de programme invite explicitement à publier des articles sur des logiciels libres du domaine en donnant ses critères dont :
    « The freedom of the code (lack of dependence on proprietary software). »
    Je note aussi les autres critères qui sont de bon goûts :-)

    Ils terminent en disant qu'il référenceront ces logiciels sur cette page.

    Elles est pas belle la vie ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.