Les meilleures ressources que j'ai utilisées pour m'enseigner l'apprentissage automatique

Le domaine de l'apprentissage automatique devient de plus en plus courant chaque année. Avec cette croissance, de nombreuses bibliothèques et outils permettent d'abstraire certains des concepts les plus difficiles à mettre en œuvre pour les débutants.

La plupart des gens diront que vous avez besoin d'un diplôme de niveau supérieur en ML pour travailler dans l'industrie. Si vous aimez travailler avec des données et des mathématiques pratiques, je dirais que ce n'est pas vrai. Je n'ai pas obtenu de diplôme universitaire avec un diplôme en apprentissage automatique ou en données, mais je travaille actuellement avec ML dans une startup. Je veux partager ce que j'ai appris et comment je suis arrivé ici dans l'espoir que cela aidera quelqu'un d'autre.

Commencer

Je connaissais déjà Python quand j'ai commencé, mais si vous ne le faites pas, je vous recommande d'apprendre d'abord Python de base et intermédiaire. La langue est assez facile à apprendre par rapport aux autres. Python abrite également la plus grande communauté de science des données / ML, il existe donc des tonnes d'outils pour vous aider à apprendre.

Apprendre Python: FreeCodeCamp Python Crash Course

Avec cela à l'écart, la première chose à faire est de télécharger «The Machine Learning Podcast» par OCDevel (overcast.fm, iTunes) dans votre application de podcast préférée. Écoutez les 10 à 15 premiers épisodes. Ils sont très bons pour donner une vue d'ensemble de l'écosystème d'apprentissage automatique et il existe également des ressources recommandées qui sont liées sur le site OCDevel.

Outillage

Anaconda & Jupyter Notebook - Ce sont un must pour le ML et la science des données. Suivez les instructions ici pour les installer et les configurer.

Visual Studio Code avec Python Plugin - Je n'aurais jamais pensé recommander un produit Microsoft, mais je suis honnêtement impressionné par leur engagement open source ces derniers temps. C'est maintenant mon éditeur de code préféré, même pour faire certaines choses en Python - comme le débogage du code.

Kaggle.com est le meilleur endroit pour trouver des ensembles de données lorsque vous débutez. Allez-y, créez un compte et parcourez le site. Vous remarquerez qu'il existe de nombreuses compétitions pour les personnes de tous niveaux d'expérience et même des tutoriels pour les accompagner (comme celui-ci pour les débutants sur le Titanic). Ces ensembles de données seront très utiles pour s'entraîner pendant que vous apprenez les bibliothèques Python.

Bibliothèques Python

Ensuite, il est important d'apprendre les bibliothèques Python courantes pour travailler avec des données: Numpy, Matplotlib, Pandas, Scikit-Learn, etc. Je recommande de commencer par ce cours de datacamp. Il passe en revue quelques notions de base que vous pouvez ignorer ou utiliser pour examen et la section Numpy est une bonne introduction.

Pandas est un must, mais prend également un peu de temps à comprendre car il fait tellement de choses. Il est construit sur Numpy et est utilisé pour nettoyer, préparer et analyser les données. Il a également des outils intégrés pour des choses comme la visualisation. J'ai utilisé beaucoup de ressources pour apprendre les pandas et m'entraîner avec. Voici quelques-uns:

  1. Apprenez les pandas sur Kaggle
  2. Apprendre le cours vidéo sur les pandas | Cahier pour le cours
  3. Jupyter Notebook Extra Exemples: Notions de base | Tracer avec Matplotlib et Pandas | Et beaucoup plus

Après Pandas vient Scikit-Learn. C'est là que les choses commencent à être davantage appliquées aux algorithmes d'apprentissage automatique réels. Scikit-Learn est une bibliothèque scientifique Python pour l'apprentissage automatique.

La meilleure ressource que j'ai trouvée pour cela jusqu'à présent est le livre «Hands on Machine Learning with Scikit-Learn and Tensorflow». Je pense qu'il fait un très bon travail en vous enseignant étape par étape avec des exemples pratiques. La première moitié concerne Scikit-Learn, j'ai donc fait cette partie en premier, puis je suis revenue à la partie Tensorflow.

Il existe de nombreuses autres bibliothèques Python comme Keras et PyTorch, mais j'y reviendrai plus tard. C'est déjà beaucoup à apprendre :)

Apprentissage superficiel

Il s'agit de la première étape de l'apprentissage automatique. Scikit-Learn a des fonctions d'apprentissage superficielles telles que la régression linéaire intégrée à la bibliothèque. Le livre Scikit-Learn que je mentionne ci-dessus enseigne de nombreux types d'algorithmes d'apprentissage automatique courants et vous permet de vous entraîner avec des exemples pratiques.

Bien que ce soit bien, j'ai toujours trouvé utile de suivre également le cours d'apprentissage automatique d'Andrew Ng à Stanford. Il est disponible pour être audité gratuitement sur Coursera (il existe un podcast pour ce cours sur iTunes, mais c'est un peu difficile à suivre et il a bien plus d'une décennie). La qualité de l'enseignement est incroyable et c'est l'une des ressources les plus recommandées en ligne (ce n'est pas la plus facile à parcourir, c'est pourquoi je le recommande ici).

Commencez lentement à suivre le cours Andrew Ng et ne soyez pas frustré si vous ne comprenez pas quelque chose. J'ai dû le poser et le ramasser plusieurs fois. J'ai également suivi Matlab à l'université, qui est la langue qu'il utilise dans le cours, donc je n'ai pas eu de problème avec cette partie. Mais si vous souhaitez utiliser Python à la place, vous pouvez trouver les exemples traduits en ligne.

Math :)

Oui, les mathématiques sont nécessaires. Cependant, je ne pense pas qu'une approche intense, d'abord mathématique, soit la meilleure façon d'apprendre; c'est intimidant pour beaucoup de gens. Comme le suggère OCDevel dans son podcast (lié ci-dessus), passez la plupart de votre temps à apprendre l'apprentissage automatique pratique et peut-être 15 à 20% à étudier les mathématiques.

Je pense que la première étape ici est d'apprendre / de rafraîchir les statistiques. Cela peut être plus facile à digérer et être à la fois très amusant et pratique. Après les statistiques, vous devrez certainement apprendre un peu d'algèbre linéaire et un peu de calcul pour vraiment savoir ce qui se passe dans le deep learning. Cela prendra du temps, mais voici quelques-unes des ressources que je recommande pour cela.

Ressources statistiques:

  1. Je pense que les cours de statistiques sur Udacity sont assez bons. Vous pouvez commencer par celui-ci, puis explorer les autres qu'ils proposent.
  2. J'ai adoré le livre «Naked Statistics». Il est plein d'exemples pratiques et agréable à lire.
  3. Il est également utile de comprendre les statistiques bayésiennes et en quoi elles diffèrent des modèles fréquentistes et classiques. Ce cours de coursera fait un excellent travail pour expliquer ces concepts - il y a aussi une partie 2 du cours ici.

Ressources d'algèbre linéaire:

  1. Le livre «Linear Algebra, Step by Step» est excellent. C'est comme un manuel de lycée / collège mais bien écrit et facile à suivre. Il y a aussi beaucoup d'exercices pour chaque chapitre avec des réponses dans le dos.
  2. Série vidéo Essence of Linear Algebra - Les explications mathématiques de 3blue1brown sont incroyables. Je recommande vivement son contenu mathématique.
  3. Il y a aussi un aperçu de l'algèbre linéaire dans le cours Andrew Ng, mais je pense que les deux ressources que j'énumère ci-dessus sont un peu plus faciles à utiliser pour apprendre le sujet.

Ressources de calcul:

J'avais pris quelques années de calcul auparavant, mais j'avais encore besoin de rafraîchir un peu. J'ai pris un manuel d'occasion pour Calc. 1 dans une librairie locale pour commencer. Voici quelques ressources en ligne qui m'ont également aidé.

  1. Série de vidéos Essence of Calculus
  2. Comprendre le calcul de The Great Courses Plus

Autres mathématiques utiles:

  1. Prise de décision mathématique à partir de The Great Courses Plus

L'apprentissage en profondeur

Après avoir appris quelques mathématiques et les bases de la science des données et de l'apprentissage automatique, il est temps de se lancer dans davantage d'algorithmes et de réseaux de neurones.

Vous avez probablement déjà un avant-goût de l'apprentissage en profondeur avec certaines des ressources que j'ai mentionnées dans la partie 1, mais voici de très bonnes ressources pour vous présenter de toute façon les réseaux de neurones. Au moins, ils seront une bonne critique et combleront certaines lacunes pour vous.

  1. Série 3blue1brown expliquant les réseaux de neurones
  2. Introduction à la liste de lecture Deep Learning de Deeplizard

Pendant que vous suivez le cours Andrew Ng Stanford, je vous recommande de vérifier fast.ai. Ils ont plusieurs cours vidéo pratiques de haute qualité qui peuvent vraiment aider à apprendre et à consolider ces concepts. Le premier est Practical Deep Learning pour les codeurs et le second - qui vient de sortir - est le Cutting Edge Deep Learning pour les codeurs, partie 2. J'ai ramassé tellement de choses en regardant et en revoyant certaines de ces vidéos. Une autre fonctionnalité étonnante de fast.ai est le forum communautaire; probablement l'un des forums d'IA les plus actifs en ligne.

Bibliothèques de Deep Learning en Python

Je pense que c'est une bonne idée d'apprendre un peu de ces trois bibliothèques. Keras est un bon point de départ car son API est conçue pour être plus simple et plus intuitive. À l'heure actuelle, j'utilise presque entièrement PyTorch, qui est mon préféré, mais ils ont tous des avantages et des inconvénients. Il est donc bon de savoir lequel choisir dans différentes situations.

Keras

  • Liste de lecture Deeplizard Keras - Cette chaîne a de très bonnes explications et exemples. Vous pouvez suivre les vidéos gratuitement ou avoir accès aux blocs-notes de code en vous abonnant sur Patreon au niveau 3 $ (USD).
  • J'ai également trouvé que la documentation de Keras était assez bonne
  • Datacamp a de nombreux tutoriels bien écrits pour ML et Keras comme celui-ci

Tensorflow

  • La section Tensorflow du livre, «Hands on Machine Learning with Scikit-Learn et Tensorflow» (mentionnée ci-dessus également)
  • Série Deeplizard Tensorflow

PyTorch

  • Série Deeplizard Pytorch
  • Udacity Pytorch Bootcamp - Je suis actuellement en train de suivre le nanodegree Deep Reinforcement Learning d'Udacity et je pensais que leur section PyTorch plus tôt dans le cours était très bonne. Ils sont sur le point de le lancer gratuitement au public! Voici quelques-uns de leurs carnets PyTorch sur Github.
  • Fast.ai est également construit avec PyTorch - Vous apprendrez cette bibliothèque si vous suivez leurs cours.

Blogs et documents de recherche

J'ai trouvé très utile de lire les recherches actuelles au fur et à mesure que j'apprends. Il existe de nombreuses ressources qui aident à rendre les concepts complexes, et les mathématiques derrière eux, plus faciles à digérer. Ces articles sont également beaucoup plus amusants à lire que vous ne le réalisez peut-être.

  1. blog fast.ai
  2. Distill .pub - La recherche sur l'apprentissage automatique expliquée clairement
  3. Two Minute Papers - Courtes descriptions vidéo de l'IA et autres documents de recherche
  4. Arvix Sanity - Un outil plus intuitif pour rechercher, trier et enregistrer des documents de recherche
  5. Feuille de route des papiers d'apprentissage profond
  6. Machine Learning Subreddit - Ils ont des fils de discussion sur les articles de recherche.
  7. Arxiv Insights - Cette chaîne présente de nombreux articles de recherche sur l'IA

Enseignement complémentaire audio

  1. The Data Skeptic - Ils ont beaucoup de bons épisodes plus courts, appelés [mini] s, où ils couvrent les concepts d'apprentissage automatique
  2. Génie logiciel Apprentissage automatique quotidien
  3. Podcast d'apprentissage machine OCDevel - J'ai déjà mentionné celui-ci, mais je le répertorie à nouveau au cas où vous l'auriez manqué

Ressources d'apprentissage supplémentaires

  • E-book Réseaux de neurones et apprentissage profond
  • Machine Learning Yearning (ébauche gratuite) par Andrew Ng

La fin

Veuillez applaudir si cela a été utile :)

Réseaux sociaux: @gwen_faraday

Si vous connaissez d'autres ressources qui sont bonnes, ou constatez que je manque quelque chose, veuillez laisser des liens dans les commentaires. Merci.