Discussions autour du machine learning

L'avis de la communauté

a marqué ce sujet comme résolu.

Bonjour les agrumes,

J'ai pu découvrir une technologie prometteuse, le machine learning, je suis très impressionné par sa puissance et ses applications futures (et actuelles).

Pour ceux qui l'ignorent le machine learning est un domaine de l'intelligence artificielle plus ou moins récent qui permet à un programme d'apprendre en lui soumettant des données, le résultat de ces apprentissages servira à classifier ou prédire d'autres données. Le machine learning a permis de nombreuse avancés dans le domaine de l'intelligence artificielle comme l'amélioration considérable de la reconnaissance vocale, mais la détection de spams, ou le traitement automatique du langage naturel.

J'aimerais donc savoir, si d'autres agrumes sont intéressés par cette technologie, ce que vous en faites, si vous l'utilisez dans des projets personnels ou non. Si vous avez des ressources, documents, connaissances à partager, allez-y !

Je pense qu'il pourrait être intéressant d'échanger sur ce sujet. ;)


J'ajoute quelques liens résultant des discussions ci-dessous.

Livres sur l'intelligence artificielle

Projet de tutoriel sur le machine learning

Tutoriel sur les arbres de décisions

+4 -0

Je n'ai pas grand chose à dire, je dois avouer que je n'y connais absolument rien.. !

Mais je voulais juste poster pour signaler qu'il y a (ou avait, car je ne sais pas où ça en est), un tutoriel sur le sujet qui se préparait : https://zestedesavoir.com/forums/sujet/2147/tutoriel-sur-le-machine-learning/

Peut-être que ce sujet, aura vocation à le relancer. ^^

Bermudes et moi-même sommes assez occupés en ce moment donc pas pour tout de suite. Mais je pense qu'il s'y remettra dès que possible, pas forcément évident avec les études, etc. ;)

PS : le machine learning n'est pas une technologie, mais un champ d'étude, une sous-discipline de la recherche en intelligence artificielle (et ce n'est pas limité à ce domaine en soi)

+3 -0

PS : le machine learning n'est pas une technologie, mais un champ d'étude, une sous-discipline de la recherche en intelligence artificielle (et ce n'est pas limité à ce domaine en soi)

Pour rebondir là-dessus, j'ai justement vu une étude qui utilisait le machine learning pour inverser des données sur la condensation des corps planétaires (je ne me souviens malheureusement pas des détails…). Donc ce n'est effectivement pas limité à l'IA.

PS : le machine learning n'est pas une technologie, mais un champ d'étude, une sous-discipline de la recherche en intelligence artificielle (et ce n'est pas limité à ce domaine en soi)

Arius

J'ai modifié mon sujet au niveau de la définition (assez simpliste) du machine learning ;)

Sinon, il est clair qu'il manque des ressources simples sur le machine learning, n'étant pas un très grand matheux j'ai un peu de mal.

Je ne sais pas si le tutoriel en cours traitera le sujet de manière abordable mais si oui, cela peut devenir très intéressant.

D'ailleurs, avez-vous des ressources pour ceux qui souhaitent commencer ?

+0 -0

Ce sujet l'aborde : https://zestedesavoir.com/forums/sujet/2216/livre-sur-lintelligence-artificielle/?page=2

Aussi, faudrait demander à nohar s'il a toujours son article sur l'implémentation d'un perceptron. Me semble que c'était toi nohar ? Publié sur progmod sauf erreur il y a quelques années ?

+0 -0

D'ailleurs, avez-vous des ressources pour ceux qui souhaitent commencer ?

Cela dépend de ton niveau d'études, honnêtement. Mais c'est un domaine où les prérequis mathématiques sont assez importants.

+1 -0

@Arius, c'est marrant, l'histoire se répète. ^^

Sinon, je fais un passage éclair pour préciser que des tutoriels sur le ML me tiennent fort à cœur et que je ne perds pas du tout ça de vue. Mais comme le dit Arius, mes études me bouffent énormément de temps et en plus, là je suis en examens jusque fin janvier.

De plus, effectivement, le niveau requis en math peut être conséquent pour les bases et peut très vite monter jusqu'à un niveau de fin de BA3 en math pour certains algorithmes.

Cependant, si quelqu'un veut se lance, je suivrai avec grand plaisir, et je conseille dans ce cas de retourner sur le sujet de discussion déjà mentionné sur ce topic. :)

+1 -0

Coucou,

Ne connaissant le machine learning que de manière très partielle, je serais heureux de pouvoir m'initier sérieusement au sujet sur de bonnes bases. Malheureusement il n'y a pas vraiment de tutoriel simple (en tout cas j'en ai pas encore trouvé) pour démarrer. ET devant les gros pavés mathématiques flanqués d'entrée, c'est dur d'apprendre de manière autodidacte; même si je suis censé avoir le niveau.

A mon avis commencer par la grosse téhorie et assomer d'emblée le lecteur comme quasiment tous les cours académiques est une erreur.

Pour être captivant et pas trop compliqué d'accès, je pense qu'il faudrait plutôt essayer de partir directement sur une application concrète. Un petit jeu de stratégie, un mini anti-spam… un exemple avec lequel on peut rapidement faire joujou, où on ne présente d'abord que la base théorique minimum, pour ensuite en venir aux véritables explications d'algorithmes classiques. La théorie et les démonstrations/preuves mathématiques, ça doit pouvoir être optionel pour celui qui est intéressé.

J'ai beau avoir terminé mes études en informatique avec succès dans une école qui fait la part belle à la théorie avant la pratique, je me rends compte que c'est quand même vachement plus cool et plus immersif (en plus d'être plus facile d'accès pour le néophyte) quand on peut rapidement jouer avec des exemples, et qu'après avoir joué un moment on en arrive à eh bien voilà, ce truc marche parce que derrière il y a cet algorithme; et voilà, la lumière s'allume, à partir de maintenant c'est plus de la magie.

Bizarrement, partir d'exemples progressifs marche assez bien pour la crypto: on commence par le chiffre de César, on t'expique que c'est super simple à casser, on fait un petit détour théorique en expliquant la distribution/fréquences des lettres pour t'expliquer pourquoi c'est simple à casser, puis on enchaîne: comment on fait pour contrer cette analyse ? chiffre de vigenaire, et on continue comme ça. IL faudrait pouvoir faire le même genre de truc pour le machine learning, même si à priori ça a l'air plus compliqué, et peut-être que prendre le fil rouge chronologique ne marche pas aussi bien.

Question idiote, est-ce qu'on considère que les algorithmes comme alpha/beta permettant de jouer intelligemment à des jeux comme Puissance4 font partie du machine learning ou pas encore ? Faut peut-être aussi savoir où on pose le début: à partir de quand ne fait-on plus seulement de l'IA ? est-ce qu'on est en présence de machine learning seulement à partir du moment où le système est vraiment capable de modifier son comportement au fur et à mesure des expériences passées, ou bien avant déjà ?

Merci. En tout cas je serai le premier à lire avec plaisir un tuto là-dessus.

+1 -1

@QuentinC

Non, l'algorithme alpha/Beta de Puissance 4 n'est pas du ML. Le principe du ML est avant tout d'avoir un jeu de données d'apprentissage, sur lequel on cherche un maximum de règles et/ou de similitudes. Puis d'étendre ces règles pour classifier plein d'autres individus.

Ce que tu soulèves sur le partie 'mathématique' est très pertinent. Veut-on un tutoriel pour que les lecteurs sachent créer de nouveaux outils de ML, ou veut-on un tutoriel pour que les lecteurs sachent utiliser/choisir/apprécier les outils de ML existants.

Quand on fait un tutoriel sur Excel, on vise les utilisateurs, on n'explique pas comment le programme fait pour recalculer les différentes cellules, dans le bon ordre et sans se prendre les pieds dans le tapis.

Le ML est une science encore trop jeune, les personnes qui sont aptes à faire des tutoriels sont 'quasiment' les concepteurs de ces outils, ou en tout cas, ce sont des gens avec un profil très pointu. Un jour, ce sera un outil plus répandu, et il y aura des tutoriels orientés utilisateurs.

Le principe du ML est avant tout d'avoir un jeu de données d'apprentissage, sur lequel on cherche un maximum de règles et/ou de similitudes. Puis d'étendre ces règles pour classifier plein d'autres individus.

C'est une toute petite partie du machine learning ceci, et qui rentre elle meme dans la grande famille de l'apprentissage supervise pour faire de la classification.

Le ML c'est surtout un terme marketing datant des annees soixantes, remis au gout du jour par quelques marketeux habiles et qui comme pour le BigData, recouvrent tellement de choses qu'il est impossible de pleinement le definir.

Le terme a ete utilise par la premiere fois par Arthur Samuel en 1959, lorsqu'il travaillait chez IBM. Ce dernier le definissait comme 'le champs d'etude qui donnent aux machines une capacite a apprendre sans que celle-ci n'ait ete explicitement programmee'.

On voit donc a quel point la definition est vague, surtout aujourd'hui avec la multiplication des approches, methodes, et concepts.

Par contre, je suis complemente de l'avis opposes a tous ceux qui trouvent que le ML demande un gros niveau en mathematiques. Je dirais que c'est un domaine de l'informatique theorique qui en demande le moins ou plutot, il demande des notions dans plein de domaines mais pas vraiment poussees.

Ce que tu soulèves sur le partie 'mathématique' est très pertinent. Veut-on un tutoriel pour que les lecteurs sachent créer de nouveaux outils de ML, ou veut-on un tutoriel pour que les lecteurs sachent utiliser/choisir/apprécier les outils de ML existants.

Ca c'est un mythe. On n'aura jamais d'outil qui permettront de faire du ML cote utilisateur lambda tout comme on aura jamais d'outil permettant de faire de l'analyse de donnees cote utilisateur lamda. L'expert en statistique est toujours requis et le sera encore de nombreuses decenies probablement.

Le ML est une science encore trop jeune, […]

elegance

Les annees 60 donc. Trop jeune pour avoir des applications concretes et grand public ? La reponse est surtout un peu plus haut dans mon message : l'incapacite a se passer d'expert pour l'analyse de donnees.

+3 -0

Non, l'algorithme alpha/Beta de Puissance 4 n'est pas du ML. Le principe du ML est avant tout d'avoir un jeu de données d'apprentissage, sur lequel on cherche un maximum de règles et/ou de similitudes. Puis d'étendre ces règles pour classifier plein d'autres individus.

OK alors on est bien d'accord. IL faudra donc faire attention de ne pas partir de trop loin en arrière. L'IA reste de l'IA et la ML en est une partie bien spécifique. D'où la difficulté de trouver un exemple pratique, qui soit asssez complexe pour que la ML soit suffisament utile/pertinente, mais assez simple pour ne pas être obligé de rentrer trop dans les détails théoriques dans un premier temps.

Puisqu'on parle de classification, l'anti-spam pourrait être un bon exemple pour démarrer alors. Tout le monde sait ce que c'est, et on peut commencer très simple avec des bêtes regex.

Ce que tu soulèves sur le partie 'mathématique' est très pertinent. Veut-on un tutoriel pour que les lecteurs sachent créer de nouveaux outils de ML, ou veut-on un tutoriel pour que les lecteurs sachent utiliser/choisir/apprécier les outils de ML existants.

Je dirais en premier lieu d'abord la 2 puis ensuite seulement la 1. LE souci, c'est qu'on veut quand même un tutoriel qui explique les principes de base de la ML en général et qui ne se focalise pas sur un logiciel/framework particulier; parce que sinon on fait un tutoriel sur le logiciel/framework en question et pas sur la ML.

Le ML est une science encore trop jeune, les personnes qui sont aptes à faire des tutoriels sont 'quasiment' les concepteurs de ces outils, ou en tout cas, ce sont des gens avec un profil très pointu.

C'est justement le genre de mythe qu'il faut essayer de faire tomber; je suis sûr que ce n'est pas vrai, ou que ce n'est plus vrai.

@KFC: problème, tous les accents semblent avoir sauté dans ton message.

Remarque vu que tu mentionnes le big data, on pourrait ouvrir exactement le même topic à son sujet. Un bon tutoriel présentant quelques exemples puis des algoritmes classiques liés au big data pourrait aussi être très intéressant.

Après c'est sûr, c'est pas trop newby-friendly adapté pour le gars de 14 ans qui débute le PHP; il faut quand même un certain niveau.

+0 -0

La question est, est-ce qu'il est possible d'utiliser des outils de machine learning sans forcément en connaître les algorithmes côté mathématiques ?

Je pense que oui, il existe quelques librairies dans la plupart des langages implémentant divers algorithmes, il est donc possible de s'amuser assez simplement, mais on est évidemment limité.

J'ai par-exemple pu faire un détecteur de langue utilisant des classifieurs naïfs bayesiens.

Mais, les outils proposé ne sont pas complets, et aucun tutoriel n'est capable d'expliquer simplement les différences entre les algorithmes.

+0 -0

La question est, est-ce qu'il est possible d'utiliser des outils de machine learning sans forcément en connaître les algorithmes côté mathématiques ?

Ce n'est pas la question à laquelle je répondais. La question à laquelle je répondais était : peut-on utiliser aveuglement des outils de machine learning ou d'analyse de données sans un minimum d'expertise et en tirer des conclusions ?

Par aveuglement j'entends sans avoir l'expertise pour l'analyse des résultats ou de la pertinence des résultats.

Parmi les deux grands problèmes que cela pose on a:

  • L'erreur détectable uniquement par l'expert du domaine utilisant ces outils (comme des facteurs d'influences cachés amenant à un paradoxe de Simpson par exemple).
  • Les erreurs détectables uniquement par l'expert sur les outils (comme le fait que les hypothèses sur les données pour appliquer telle ou telle méthode ne sont pas respectées).

Et je ne parle pas de la signification des résultats (si tu savais le nombre de personnes qui ne savent pas ce que veut réellement dire un intervale de confiance, un p-value, etc. même chez des gens avec un cursus universitaire) ou de l'interprétation des résultats par rapport à une situation réelle (du vu et revu : un type qui fait une régression linéaire pour voir s'il y a correlation entre la taille d'une mousse phonique et le différentiel de volume entre l'intérieur et l'extérieur d'une pièce ; il modélise $\alpha x + \beta$ fait sa régression manuellement, trouve un $\beta$ non nul mais petit et statistiquement insignifiant. Il recommence avec un algorithme de ML. Même résultat. Il conclut que le modèle c'est $\alpha x$ et que l'on peut négliger $\beta$. Autrement dit le type pose de la mousse sur un mur d'épaisseur nulle sans que cela ne l'emmerde, tout ça parce qu'il n'a pas réfléchit à la signification de son modèle et ses implications).

+3 -0

Le principe du ML est avant tout d'avoir un jeu de données d'apprentissage, sur lequel on cherche un maximum de règles et/ou de similitudes. Puis d'étendre ces règles pour classifier plein d'autres individus.

C'est une toute petite partie du machine learning ceci, et qui rentre elle meme dans la grande famille de l'apprentissage supervise pour faire de la classification.

KFC

J'ai l'impression qu'on dit la même chose avec des mots différents, non ?

Salut tout le monde, je viens apporter mon avis rapidement :)

Comme dit précédemment, le domaine de l'apprentissage automatique est très vaste. Lui-même appartient au domaine encore plus vaste qu'est l'IA, et il est notamment constitué de 2 gros sous-domaines (mais pas que, loin de là) : l'apprentissage supervisé et non-supervisé.

Alors tout d'abord, même si la recherche est très active, je ne sais pas si on doit encore considérer ce domaine comme étant "très jeune", d'autant qu'il repose sur des fondements mathématiques découvert il a pas mal de temps. Mais effectivement dans le monde scientifique, en comparaison avec d'autres, ce domaine reste tout de même relativement récent.

En ce qui concerne les maths, tout dépend de ce que l'on cherche a faire. Évidemment, il est toujours possible de se débrouiller d'une manière ou d'une autre. En revanche, à partir du moment ou on cherche à savoir ce que l'on fait et/ou que l'on souhaite développer une méthode pour un problème donné, un minimum de bagage sera nécessaire effectivement.

Autant certaines méthodes peuvent être assez simple à aborder, tels que les arbres de décision. Autant d'autres méthodes trouve leurs explications dans des mathématiques assez poussée. Et, sans même parler de leur applications et des interprétations catastrophiques qui en découlerait ( voir la réponse plus haut ), ces explications sont nécessaires à la compréhension de la méthode et de ces avantages/inconvénients ( et donc répondre à la question : pourquoi une méthode plutôt qu'une autre ? ).

+2 -0

@Arius, c'est marrant, l'histoire se répète. ^^

Sinon, je fais un passage éclair pour préciser que des tutoriels sur le ML me tiennent fort à cœur et que je ne perds pas du tout ça de vue. Mais comme le dit Arius, mes études me bouffent énormément de temps et en plus, là je suis en examens jusque fin janvier.

De plus, effectivement, le niveau requis en math peut être conséquent pour les bases et peut très vite monter jusqu'à un niveau de fin de BA3 en math pour certains algorithmes.

Cependant, si quelqu'un veut se lance, je suivrai avec grand plaisir, et je conseille dans ce cas de retourner sur le sujet de discussion déjà mentionné sur ce topic. :)

Bermudes

En effet, parler de ça 2x en moins de 24h :D

Faudrait aussi les avis de nohar et Kje mais ils sont assez occupés. En tous cas, si il ne m'est pas possible de rédiger ou collaborer sur un tutoriel là maintenant, à terme ça me botte bien mais je pense qu'il faudrait au préalable s'organiser avec d'autres membres et se répartir le travail : une équipe sur le ML, une autre sur un tutoriel se concentrant sur les prérequis, histoire de fournir un minimum les bases mathématiques. Ton article brossant large, on aurait de quoi bien introduire sans tuer trop de lecteurs :P

+4 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte