Lectures en "machine learning"

Bonjour,

Le champ appelé "Machine Learning" est hétéroclite et en expansion rapide.
Je vous propose de commenter les livres et cours, que vous avez lu sur le sujet.

Introduction to statistical learning - C’est un livre souvent cité, qui permet d'avoir un premier aperçu sans plus.

Elements of statistical learning - Il est souvent conseillé,
il est censé être le manuel de référence pour tous les étudiants américains, et je le trouve peu maniable.

Pattern Recognition and Machine Learning- Je préfère nettement ce livre, aux deux précédents, il est davantage détaillé et progressif.

Probabilistic Machine Learning - Tubingen - Il y a quelques passages trop élémentaires, niveau "undergraduate", et cela permet d'avoir une première approche sur des sujets à la mode comme les processus gaussiens.

Réponses

  • Le livre Reinforcement learning : an introduction de Sutton et Barto était vraiment plaisant en plus d'être disponible en pdf sur le site des auteurs.

    En deep learning je n'ai pas fait grand chose de l'année. Ça m'avait fait rire puisque les profs nous recommandaient un livre "approuvé par Elon Musk". Si je le retrouve je dis toujours mais je ne l'avais pas trouvé terrible.

    J'avais aussi un livre sur les "kernel methods" pour être de mon époque qui était pas mal.

    Je pense que commencer directement par les livres de code informatique sur les sujets peut être une bonne idée. Après tout on sait quelles sont les motivations de ceux qui s'intéressent à ça la plupart du temps (ce n'est pas un reproche, si j'étais moins fainéant je me serais mis à ces petits jeux aussi l'année dernière).
    Ceux de la collection "... avec Python" ont bonne réputation (Machine learning avec Python, Deep learning avec Python, On a marché sur la lune avec Python...). Il faut évidemment des bases sur le langage quand même.
  • Bonjour,

    Je ne sais pas du tout quelles sont les motivations de ceux qui s'intéressent à ça mais je pense au contraire qu'il est plus intéressant de commencer par des ouvrages à caractère plus mathématique pour appréhender le sujet, par exemple The nature of statistical learning theory de Vapnik, puis le livre de probas de Massart, Lugosi, et Boucheron dont je ne me rappelle plus nom.
  • Je confirme, le livre Concentration Inequalities: A Nonasymptotic Theory of Independence de Massart, Lugosi et Boucheron est franchement bien fait.
    Dans la même veine : High-Dimensional Probability de Roman Vershynin est pas mal non plus.
  • La recherche évolue très vite dans ce domaine. Bien sûr, il faut implémenter, il ne suffit pas de regarder des vidéos de cours en ligne.
    Je rejoins @Purple et @Ramafusa, pour avancer, il faut des bases mathématiques.
  • Parce que tu es expert en machine learning ?

    Sinon, puisque purple a ouvert le sujet des grandes dimensions, j'ai deux livres qui m'ont servi l'année dernière tant, soyons honnêtes, le cours du prof était nul (son livre Introduction to high-dimensional statistics qui risque de tomber en premier en cherchant sur Google est aussi cher que peu clair).

    Le premier : Foundations of machine learning
    Encore une fois mis à disposition en ligne par les auteurs !

    Le second : Statistical learning with sparsity : the lasso and généralisations
    Il m'a bien servi à comprendre le principe de la pénalité $L^{1}$ pour un projet sur lequel ma ressource première était un article sur un sujet délicat et très moderne.

    Pour répondre à Ramufasa : disons que sur ce forum où on aime les maths évidemment qu'on préfèrera pour la plupart attaquer par la partie mathématique.
    Pour ceux qui ont la détermination d'apprendre à coder le ML est assez souvent vu comme un complément de revenu potentiel, en utilisant les algorithmes de référence évidemment. Sans avoir vraiment lu les livres d'informatique les retours et commentaires sont assez convaincants pour penser que ledit public a su y trouver son compte.

    En tous cas le sujet est intéressant sous ses aspects mathématiques, informatiques et culturels.
    Rien que pour comprendre un peu comment fonctionnent tous ces miracles je suis évidemment adepte moi aussi de l'approche mathématique.
  • @Riemann_lapins_crétins : si l'on parle du même prof, je ne le connais pas, mais tu es cruel : il a l'air très gentil sur Youtube ^^.

    Sinon, oui effectivement, d'un point de vue opérationnel et "professionnel", il peut être intéressant de commencer par des livres de code. Le risque à mes yeux est simplement de ne plus savoir quoi faire dès lors que la "recette" n'est pas dans son livre.

    Sinon, pour revenir au sujet initial et partager quelques lectures et avis personnels, après avoir lu Vapnik et Massart qui permettent de poser le cadre probabiliste de l'apprentissage (supervisé) et de comprendre certains algos au moyen de la complexité (de Rademacher, ou de Vapnik-Chervonenkis par exemple) de la classe d'hypothèses correspondante, je me suis intéressé à l'apprentissage profond, et je ne peux que conseiller la lecture du chapitre "The Modern Mathematics of Deep Learning" de Kutyniok, qui passe en revue les différentes problématiques théoriques liées aux réseaux de neurones, avec un accent particulier sur leurs propriétés de généralisation (qui ne peuvent être obtenues par des approches de contrôle de processus empiriques et déviation uniforme) et d'optimisation (aspects non-convexe et grande dimension de l'apprentissage).
  • Peut-être qu'il est gentil mais le livre c'est pas vraiment ça.
    Je ne saurais pas dire puisque je n'avais pas pris son cours pour celui de Reinforcement learning justement. Sauf qu'il se trouve que j'avais besoin d'un cours sur les stats en grande dimension et que je suis naturellement allé vers lui. Erreur classique.

    En tous cas voilà une bonne liste de livres pour commencer il me semble !
  • J'ai feuilleté le livre High-Dimensional Probability. Il a l'air consistant et donne des points de repères.
    Je suis encore en train lire le manuel élémentaire de Bishop : Pattern Recognition and Machine learning.
    La présentation de l'algorithme EM ( Expectation-maximisation) est claire.

    Il y a quelques cours formateurs :
    - Machine Learning for natural language processing
    - Deep Learning


    Learning for text and graph data
    Optimisation
    Computationnal statistics
    Toplological data analysis
    Theorie des matrices aléatoires
    Algorithms for speech and natural language processing
    Astrophysique
    représentations parsimonieuses
  • @Ramafusa

    Quels cours faut-il travailler pour devenir bon en "Machine Learning" ?

    - d'un côté, il y ales étudiants qui ont un bagage minimaliste en mathématiques, ceux qui font des petites écoles d'informatique. ce sont les équivalents des étudiants anglo-saxons sur les réseaux sociaux qui disent "on peut être data scientist sans diplôme, il suffit de lire un cours avec toutes les maths pour le Machine Learning et d'aller sur Coursera."
    - à l'opposé, il y a les normaliens agrégés avec un super rang qui font le master MVA, et tous les X.

    Il y a un bagage minimal requis en probabilités / statistiques, en dehors de cela, qu'est-ce qu'il faut connaître ?

    Il me semble qu'il faut au moins avoir suivi des cours de niveau M1.
    Dans la liste de tous cours de M1 de l'UPMC, qu'est-ce qui est utile ?
  • J'ai tendance à dire statistiques de base, peut-être probas approfondies pour Markov, et probas numériques et statistiques computationnelles pour voir rapidement le gradient stochastique.
    Je ne dirais quand même pas que c'est vital. Le MVA forme surtout des gens qui vont créer de nouveaux résultats, donc de la théorie, ou du moins des mathématiques puisque le contexte peut être très appliqué. Si tu veux faire des sous il te faut surtout la main sûre en programmation.
  • Parmi les cours du 1er semestre :

    Je suis à l'aise avec les cours de probabilité et de statistique.
    Je suis en train de travailler l'analyse fonctionnelle.

    Il me manque :
    - la géométrie différentielle
    - l'analyse complexe

    Il faut savoir coder et le reste ne me semble pas indispensable.128158
  • Pour le second semestre, je suis à l'aise avec :
    - le cours de convexité
    - les cours de probabilité, de statistique et de calcul stochastique


    Il me manque :
    - les distributions
    - les EDP

    Il y a le cours :
    Optimisation numérique et science des données128160
  • La géométrie différentielle ne me semble pas essentielle. Il y a des cours réduits pour les intégrales puisque j'imagine que c'est le pourquoi. Une définition simple d'un domaine régulier sous la forme {f < 0} permet déjà de faire bien des choses.

    Mais j'aimerais bien que tu avoues ton objectif. Il n'y a pas de honte et tu pourras être vraiment aidé.
  • Pourquoi est-ce que j'aurai honte de quelque chose ?
    Je suis dans une phase de mise à niveau.

    Il y a un Workshop à Neurips sur l'utilisation de la géométrie en Machine Learning.

    C'est pourquoi avoir suivi uniquement des cours de probabilité / statistiques basiques ne suffit plus. Il faut en plus avoir des connaissances dans des domaines plus traditionnels des mathématiques comme la géométrie différentielle, la topologie algébrique.

    Même chose, pour suivre un cours sur les matrices aléatoires, il faut des bases en analyse complexe.
  • On dirait que tu as l'espoir secret de devenir un genre de trader on ne sait comment en apprenant les maths concernant des sujets très précis et réputés ramener de l'argent.
    Veux-tu apprendre à coder quelque chose en ML pour te faire un complément de revenu ? Faire un nouveau Master ? On ne sait rien de toi si ce n'est ton année de stage et juste après cet échec on voit plein de topics sur ce sous-forum pour demander des références sur des domaines précis des mathématiques appliquées.
    On dirait que tu n'assumes pas d'avoir soit un espoir secret qui évidemment n'a aucune chance de survenir si tu ne fais rien d'autre que lire des cours, soit que tu envisages une reconversion professionnelle en pensant à reprendre des études, ce qui n'est évidemment pas une mauvaise chose du tout, mais tu le caches. Et comme il est impossible de faire semblant de ne pas te connaître on a tout ça en tête en lisant ces demandes, si bien que la question est "mais il veut quoi ?".
    Réponds simplement à la dernière question si tu préfères. Je ne comprends juste pas si à terme tu veux apprendre des résultats pointus pour faire des recherches personnelles, rentabiliser ces connaissances en codant des trucs pour avoir de l'argent ou réaliser un projet, reprendre des études, ou postuler directement quelque part.
    Le volume et l'orientation des connaissances ne sont pas les mêmes dans tous ces cas, c'est simplement ça.
  • Bonsoir,

    Pour être tout à fait honnête, je ne peux pas te répondre sans savoir quel est ton objectif.

    Si tu souhaites "pratiquer" le machine learning, alors je pense qu'il peut être bon de :
    - pour le côté machine learning/deep learning, lire un livre à la Vapnik pour comprendre le problème de l'apprentissage supervisé et avoir un minimum d'intuition et de maîtrise sur ce qu'est le sur-apprentissage par exemple. Ensuite, pas besoin de beaucoup plus de théorie : tu peux t'intéresser aux différents algorithmes (sur le site wikistat par exemple) et mettre la main au code pour te forger un peu d'expérience.
    - pour le côté renforcement, le sutton allie théorie et pratique et est très bien.

    Maintenant, tu parles du workshop de NIPS. J'en déduis donc que tu t'intéresses plus à la "théorie" du machine learning et du deep learning et à la recherche dans ces domaines.
    Dans ce cas, étant moi-même en thèse, je ne suis certainement pas assez expert pour me permettre de te dire quoi faire.

    Toutefois, je pense qu'il est un peu illusoire de vouloir "tout voir". Il est clair qu'un certain background est nécessaire mais pour les choses plus poussées, la difficulté et la profondeur sont telles qu'il peut peut-être être préférable de cibler un peu ce qui te plaît.

    Pour le background, je dirais qu'il faut bien sûr absolument maîtriser le programme de prepa et être à l'aise sur des notions de L3/M1 comme la théorie de la mesure et de l'intégration et les probas (martingales et Markov inclues), être assez à l'aise en topologie, en analyse fonctionnelle et connaitre un peu de distributions et d'EDP, être à l'aise en statistiques inferentielles et bayesiennes et en optimisation. Avec ça, tu as ce qu'il faut (je pense) pour commencer à t'intéresser à un domaine en particulier ^^

    La géométrie différentielle, la topologie algébrique, l'analyse complexe et la théorie des matrices aléatoires sont évidemment très utiles dans ce domaine mais je pense que cela nécessite un développement particulier. D'ailleurs, beaucoup d'autres domaines sont très utiles aussi (les processus stochastiques et les équations différentielles stochastiques, le transport optimal et Fokker-Planck, certains modèles de physique statistique...).
  • Et bien sûr, je suis tout à fait d'accord avec le message de Riemann que je viens de voir : il est très difficile de te conseiller sans réellement savoir ce que tu souhaites.
  • Et prends ton temps pour apprendre. Maîtriser ne veut pas dire lire plein de pdf !
    Exerce-toi, lis lentement, comprends toutes les lignes, parviens à avoir des représentations concrètes du plus de notions possibles, perds ton regard dans le vide avec ton stylo à la main en ayant l'air de battre la campagnes mais en luttant en réalité pour comprendre pendant des heures, attends plusieurs jours en butant sur une notion...
    Parce que le fonctionnement en mode liste des courses "j'ai fait ça et ça donc il me reste que ça puis ça" est déjà testé et désapprouvé par un certain enfant du forum.
  • Merci pour vos remarques. Je n'ai pas encore de direction précise. Pour l'instant, je travaille les cours de M1.

    Pour les cours de niveau plus élevé, je verrai après. Et c'est sûr qu'il faut comprendre ce que l'on fait, plutôt que multiplier les livres.
Connectez-vous ou Inscrivez-vous pour répondre.