Pas besoin d'apprendre le Machine Learning

Apprenez à créer des logiciels à l'aide de modèles d'apprentissage automatique


image

Avertissement: Cet article est basé uniquement sur mes observations des équipes de développement dans le domaine de l'apprentissage automatique et n'est pas le résultat d'une revue scientifique de l'industrie. Pour référence, j'aide à développer Cortex , une plateforme open source pour le lancement de modèles en production.

Si vous êtes développeur, vous avez au moins un intérêt passager pour l'apprentissage automatique. Le concept d'un algorithme que les élèves apprennent à faire des prédictions plus tard est tout simplement ... cool.

Cependant, si vous décidez de commencer à étudier le ML en suivant tous les canons, il est probable qu'après deux semaines d'algèbre linéaire et d'analyse multivariée, vous quittez cette leçon.

La raison réside dans le fait que la plupart des documents d'introduction au ML ne se concentrent pas sur les développeurs, mais sur les chercheurs - ce qui est un problème pour les développeurs qui souhaitent simplement créer des produits d'apprentissage automatique.

Voulez-vous créer des produits ou faire des recherches?


Jusqu'à la fin des années 2000, l'apprentissage automatique était presque exclusivement un problème de recherche. Il n'y avait tout simplement pas beaucoup d'entreprises qui utiliseraient vraiment l'apprentissage automatique dans la production.

Ainsi, bon nombre des documents de familiarité disponibles sur l'apprentissage automatique sont basés sur une approche de recherche. Tout commence par une explication des réseaux de neurones d'un point de vue mathématique et de la théorie qui sous-tend l'apprentissage automatique. Des choses sont données, comme la méthode de rétropropagation et les réseaux contradictoires.

Même le matériel non universitaire suit dans une certaine mesure ce schéma. Par exemple, cela provient directement de la bibliothèque «Quickstart for Beginners» de TensorFlow:

image

Si vous pensez que j'agis de manière sélective, je vous suggère de lire ce qui suit .

Si vous êtes déjà familier avec les mathématiques sous-jacentes à l'apprentissage automatique ou si vous souhaitez l'étudier, cette approche vous convient. Cependant, si vous êtes principalement intéressé à créer des choses avec l'apprentissage automatique, ce n'est probablement pas tout à fait ce que vous recherchez.

Utiliser la programmation comme complément aux mathématiques revient à apprendre à écrire du code en apprenant d'abord l'assembleur. Aucun développeur n'apprendra de cette façon.

Remarque: Si vous avez appris à coder en langage assembleur, j'admets tous les mauvais commentaires de mon côté et je suis impressionné que vous ayez trouvé un navigateur sur votre distribution Linux indistincte.

Lorsque vous avez appris à coder, vous l'avez probablement fait en écrivant «hello world» dans un langage de haut niveau. Puis, à mesure que les projets devenaient plus complexes, vous avez commencé à étudier la programmation de bas niveau.

Ce modèle de formation est un succès auprès des personnes qui créent des logiciels car il définit clairement les priorités lors du travail sur un projet. Si vous êtes plus intéressé par la création d'un système de recommandations que par la publication d'un article, alors voici comment aborder l'étude du machine learning.

Comment apprendre le ML en créant un logiciel


Si vous êtes le type de personne qui apprend le mieux à travers des cours, alors la meilleure ressource pour promouvoir cette approche descendante et d'apprentissage du processus de ML est le cours sur fast.ai Practical Deep Learning For Coders .

Le but de l'article n'est pas de faire de la publicité rapide du tout, mais il convient de noter que les fondateurs de la plate-forme (Jeremy Howard et Rachel Thomas) ont mis en place plusieurs cours pour les développeurs avec une formation approfondie, qui obligent littéralement à créer des choses, plongeant dans la théorie principale, car elle directement liés au projet. Pour mieux comprendre leur style d'apprentissage, regardez une vidéo de Rachel Thomas.



D'un autre côté, si vous appartenez au type de personnes qui étudient le mieux en se plongeant et en créant des choses par elles-mêmes, vous pouvez commencer à maîtriser l'apprentissage automatique comme dans n'importe quel autre domaine de programmation. Choisissez simplement un projet qui vous intéresse - j'ai dressé une liste géante de projets de traitement du langage naturel pour les débutants - choisissez.

Pour mieux comprendre ce qu'est la création de logiciels avec ML (si vous procédez de cette façon):

  1. Définissez un objectif, par exemple, créez la saisie semi-automatique pour un champ de texte ou un identifiant de plaque d'immatriculation.
  2. Trouvez un modèle pré-préparé adapté à votre projet - les modèles GPT-2 ou YOLOv3 fonctionneront également avec les projets mentionnés précédemment.
  3. Si vous le souhaitez, vous pouvez même utiliser la bibliothèque en tant que gpt-2-simple pour affiner (personnaliser selon vos propres données) votre modèle.
  4. Enfin, déployez le modèle en tant que microservice.


Une fois le modèle déployé en tant qu'API, vous pouvez le demander, comme tout autre service Web, et créer votre application autour de lui.

Vous pouvez voir la véritable application de ce processus dans un projet créé par un ingénieur en apprentissage automatique en solo.



Grâce à cette méthode d'apprentissage, vous pouvez vous familiariser avec diverses architectures de modèles populaires, découvrir d'autres approches de l'apprentissage automatique et savoir à quelles applications elles sont destinées. Tout aussi important est le fait que vous en apprendrez plus sur l'infrastructure d'apprentissage automatique qui est nécessaire pour créer des produits du monde réel basés sur des modèles.

Dès que vous pouvez créer des produits basés sur ML, commencez à apprendre la théorie


En tant qu'ingénieur, vous avez probablement déjà implémenté une forme d'authentification plus tôt, ce qui signifie que vous (j'espère) avez haché des mots de passe.

Lors de la configuration du hachage de mot de passe, avez-vous écrit un algorithme de hachage personnalisé? Avez-vous passé plusieurs semaines à étudier la cryptographie? Ou vous venez de l'utiliser bcrypt?

De même, lorsque vous avez créé votre première application web, avez-vous étudié la base de données pendant plusieurs semaines? Avez-vous écrit à partir de zéro? Ou avez-vous utilisé l'ORM aléatoire de votre framework préféré?
La même logique s'applique à l'apprentissage automatique. Si vous êtes une personne qui aime créer des logiciels, commencez par créer des logiciels d'apprentissage automatique et permettez-vous de vous désengager de la théorie sous-jacente du ML en utilisant des outils, des modèles pré-préparés et des cadres d'apprentissage automatique. Ensuite, si vous êtes intéressé ou si votre projet nécessite plus de complexité, creusez plus profondément pour voir comment tout cela fonctionne.



image
Apprenez en détail comment obtenir une profession recherchée à partir de zéro ou passer au niveau supérieur en compétences et en salaire en suivant les cours en ligne SkillFactory:



Lire la suite



All Articles