Conseils pratiques pour débuter dans le Machine Learning
David Mimno est professeur adjoint au département des sciences de l'information de l'Université Cornell. Il a une formation et un intérêt pour le traitement du langage naturel (NLP), en particulier la modélisation thématique. Il est notamment le responsable de la maintenance de MALET, la bibliothèque NLP basée sur Java.
Je suis récemment tombé sur un article de blog de David intitulé « Conseils aux étudiants en apprentissage automatique ». C'est un excellent article qui comprend des conseils similaires que je donne aux programmeurs et aux étudiants en coaching.
C’est un excellent article et de bons conseils et je le résume pour vous dans cet article de blog.
Livres d'introduction à l'apprentissage automatique
David recommande quelques livres assez avancés comme textes d'introduction. La raison en est que ses étudiants sont des étudiants diplômés et sont prêts à relever le défi. Je ne recommande pas moi-même ces textes.
Néanmoins, les textes qu’il propose sont les suivants :
- Apprentissage automatique : une perspective probabiliste
- Reconnaissance de formes et apprentissage automatique
- Modèles graphiques probabilistes : principes et techniques
- Théorie de l’information, algorithmes d’inférence et d’apprentissage
Il s’agit peut-être d’une sélection de certains des meilleurs manuels sur l’apprentissage automatique disponibles actuellement. Vous les verrez encore et encore en parcourant les cours d’études supérieures du MIT, de Stanford, de Cornell et d’autres grandes écoles américaines.
Livres d'introduction aux mathématiques
David commente que tout ce que vous pourrez apprendre sur l’algèbre linéaire, les probabilités et les statistiques sera utile.
Il continue en suggérant quelques livres clés :
- Introduction à l'algèbre linéaire
- Analyse des données bayésiennes
- Analyse des données à l'aide de modèles de régression et multiniveaux/hiérarchiques
Conseils pratiques en apprentissage automatique
Après avoir suggéré quelques ressources d’introduction, David donne quelques conseils pratiques pour débuter dans le domaine.
- Ne vous attendez pas à obtenir quoi que ce soit du premier coup. David suggère de lire les descriptions de la même méthode provenant de plusieurs sources différentes. C'est la même suggestion que je fais dans mon modèle de description d'algorithme, à laquelle je suis parvenu par nécessité.
- Mettre en œuvre un modèle. Je suis d'accord avec David sur le fait que vous ne pouvez pas apprécier pleinement le modèle tant que vous ne l'avez pas mis en œuvre vous-même et lui avez donné vie. David suggère de comparer votre implémentation à d'autres, telles que celles disponibles en open source, et de rechercher et de comprendre toutes les astuces mathématiques ou programmatiques utilisées pour améliorer l'efficacité.
- Lisez des articles. David raconte une anecdote sur la lecture d'un article sur les déplacements quotidiens cachés. Pensez à choisir un algorithme ou un problème et lisez les principales sources liées à cet article.
- Choisissez un papier et vivez dedans pendant une semaine. David suggère de ne faire qu'un avec un journal et d'y réfléchir sérieusement pendant une semaine jusqu'à ce que vous le connaissiez intimement. Par exemple, il vous suggère de remplir les blancs dans la progression de toute équation dérivée. Je peux parler par expérience et vous suggère de choisir votre article avec soin. J’ai choisi des articles avec lesquels il m’a fallu des années pour communier.
David termine avec une merveilleuse citation de John von Neumann :
Jeune homme, en mathématiques, tu ne comprends pas les choses. Il suffit de s'y habituer.
Gardez cette citation près de vous. Les choses n’auront plus de sens pendant un moment. Continuez à lire et à jouer jusqu'à ce que les choses cliquent (ou au moins que vous ayez une compréhension empirique fonctionnelle).
Avez-vous des conseils pratiques durement gagnés en matière d'apprentissage automatique ?