Comment Álvaro Lemos a obtenu un stage d'apprentissage automatique dans une équipe de science des données
Les histoires sur la façon dont les étudiants et les développeurs se lancent dans l'apprentissage automatique appliqué sont une source d'inspiration.
Dans cet article, vous découvrirez l'histoire d'Álvaro Lemos et sa transition du statut d'étudiant à l'obtention d'un stage en apprentissage automatique. Y compris:
- Comment l'intérêt pour les algorithmes génétiques a conduit à la découverte des réseaux de neurones et du domaine plus large de l'apprentissage automatique.
- Comment des articles de blog et des livres basés sur des didacticiels ont aidé à réussir un test pour un stage d'apprentissage automatique au sein d'une équipe de science des données
Commençons.
- Mise à jour février/2017 : Corrections apportées concernant le stage d'Álvaro.
Q. Pouvez-vous parler un peu de vous-même ?
Je viens de Salvador, Bahia (Brésil), mais actuellement, je vis à Belo Horizonte, Minas Gerais (également au Brésil).
J'étudie le génie électrique à l'Université fédérale du Minas Gerais et depuis le début de mes études de premier cycle, j'ai été impliqué d'une manière ou d'une autre dans le développement de logiciels.
Lors de ma première semaine en première année, j'ai rejoint un groupe de recherche appelé LabCOM pour aider un collègue sur son projet de maîtrise. Il souhaitait construire un système d'ingénierie du trafic autogéré dans lequel l'exploitation et la maintenance du réseau seraient effectuées efficacement et sans intervention humaine. Il a été construit sur un simulateur de réseau et j'ai été chargé de fournir un module permettant de mesurer certains paramètres du réseau.
Après cela, j'ai continué à faire des choses liées au développement de logiciels, comme la maintenance d'un serveur Linux dans mon université, j'ai suivi de nombreux cours de développement Web sur des sites comme Code School, Codecademy et Coursera et il y a un an, j'ai obtenu mon premier stage sur une grande entreprise de logiciels.
Ce fut une expérience incroyable, car j'ai pu travailler avec des technologies de pointe, des développeurs très expérimentés, avec qui j'ai appris beaucoup de bonnes pratiques et procédures.
Alors que j'allais y terminer un an, j'ai reçu une proposition pour travailler dans une autre entreprise au sein d'une équipe Data Science qui était en cours de constitution, j'ai donc décidé d'accepter cela.
Q. Comment avez-vous commencé à vous intéresser à l’apprentissage automatique ?
Bonne question…
J’en ai entendu parler pour la première fois lors d’une réunion du groupe de recherche que j’ai mentionné.
Pour faire court, nous utilisions un algorithme génétique pour obtenir des résultats et, même s'ils étaient raisonnablement bons, ils prenaient plus de temps que ce que nous pouvions nous permettre de traiter.
Pour surmonter ce problème, un collègue a suggéré de former un réseau de neurones avec ces résultats, car une fois que nous disposions d'un modèle formé, il produirait des résultats très rapidement.
J'étais l'une des personnes chargées de mettre en œuvre cette solution, mais je n'en savais rien, alors je l'ai recherchée sur Google.
Quand j’ai réalisé qu’un algorithme pouvait fournir le résultat attendu sans être explicitement programmé pour le faire et qu’il le faisait en imitant le cerveau humain, je me suis dit « wooooow, c’est magique ! »
Q. Quels livres et cours avez-vous essayés ?
Lorsque j'ai décidé que je voulais apprendre l'apprentissage automatique, mon premier objectif était de démarrer la spécialisation Johns Hopkins Data Science sur Coursera.
Après avoir suivi deux cours (sur dix !), j'ai laissé tomber. Je n’avais pas vraiment besoin d’appliquer ces connaissances à ce moment-là, je voulais juste apprendre l’apprentissage automatique et je sentais que suivre dix cours juste pour acquérir ces connaissances était assez écrasant. J'ai été distrait par d'autres choses et j'ai oublié ça.
Un an plus tard, j'ai décidé de donner une seconde chance à ma quête de « learning machine learning ». Je me suis inscrit au célèbre cours de machine learning d'Andrew Ng sur Coursera. C'était juste un cours (au lieu de dix !), alors j'ai pensé que ça irait. J'ai beaucoup aimé ses cours, il sait expliquer des choses complexes de manière simple.
J'y faisais des progrès assez rapides, mais après avoir terminé 60 %, mon premier stage a commencé et j'ai commencé à utiliser mon temps libre pour apprendre les technologies que j'utilisais là-bas. Puis mes cours dans mon université ont commencé et oui, je ne suis jamais revenu à Coursera pour terminer ce cours.
Le semestre suivant, j'ai suivi un cours sur les « réseaux de neurones artificiels » dans mon université. C’était une bonne expérience, cela m’a rappelé l’approche d’Andrew Ng, mais j’ai quitté ce cours avec le même sentiment que je ne connaissais pas encore assez le machine learning, ou que je n’avais pas le droit de dire que je le connais.
Personne ne me l’a dit, mais j’ai commencé à penser que pour pouvoir appliquer l’apprentissage automatique, il fallait suivre un programme de maîtrise, car j’ai vu beaucoup d’étudiants le faire.
Oh, une autre chose que j'ai essayée était d'apprendre des articles (documents de recherche). S'il vous plaît, ne faites pas cela. C’est de loin la pire approche que j’ai jamais essayée.
J'ai peut-être été naïf, mais bon, certains professeurs vous encouragent à apprendre de cette façon. Je pense qu'ils sont bons pour trouver des techniques et/ou des algorithmes qui font ce que vous voulez, mais après avoir fait une courte liste, laissez-les et commencez à rechercher des vidéos YouTube, des articles de blog et des livres sur Google.
Q. Comment ML Mastery vous a-t-il aidé dans votre parcours ?
Cela m'a beaucoup aidé.
J'allais bien dans mon emploi précédent lorsque j'ai entendu parler d'une opportunité de stage en apprentissage automatique. C'était avec une entreprise dont j'avais déjà entendu de bonnes choses, alors j'ai décidé de tenter le coup.
Ils m'ont proposé trois défis d'apprentissage automatique à réaliser en une semaine, mais comme je travaillais et étudiais, je n'avais qu'un week-end pour le faire.
- Le premier problème nous demandait de former un modèle de régression logistique pour prédire une variable cible à partir d'un ensemble de données comportant quatre caractéristiques. J'étais censé faire une analyse exploratoire des données, ordonner les fonctionnalités les plus pertinentes, estimer l'erreur et faire des prédictions sur un ensemble de données de test. Pour celui-ci, j'ai pu utiliser les connaissances que j'avais déjà, il me suffisait d'apprendre l'API Scikit Learn.
- Le second était assez similaire, mais l'ensemble de données était fortement déséquilibré et je n'avais aucune idée de la façon de gérer cela, alors j'ai commencé à chercher sur Google et j'ai trouvé votre blog. Cela m'a vraiment aidé car j'ai découvert que je pouvais utiliser d'autres métriques au lieu de la précision par défaut, effectuer une validation croisée, une validation croisée stratifiée, sous-échantillonner et suréchantillonner l'ensemble de données, comparer des algorithmes, etc. Avec toutes ces nouvelles informations, j'ai créé un module Python qui le ferait automatiquement pour moi et classerait les modèles en fonction de leur score F1.
- Le troisième était le plus difficile. J'étais censé trouver les fonctionnalités les plus pertinentes dans un ensemble de données de classification comprenant 128 fonctionnalités. Vos articles de blog m'ont également aidé dans ce domaine.
Je ne pouvais pas simplement leur envoyer les résultats, je devais aussi rédiger un rapport détaillé, vos articles de blog ont donc été fondamentaux car ils m'ont aidé à combler très rapidement mon manque de connaissances.
Maintenant, dans mon nouveau travail, vos livres m'aident beaucoup, notre manager nous a acheté le Super Bundle ?
Q. Félicitations pour votre nouvel emploi ! Parlez-nous-en ?
Merci!
La société s'appelle Radix et je viens de rejoindre l'équipe Data Science.
Mon premier projet était déjà terminé quand je suis arrivé là-bas, mais il était très intéressant. Il s'agit d'un système appelé Oil X!pert, qui reçoit en entrée un échantillon d'huile de camions, chargeuses et autres équipements et génère à la fois le niveau de criticité de la pièce et un texte de diagnostic, comme le montre la figure ci-dessous :
Nous utilisons désormais des approches basées sur les données dans d'autres projets pour parvenir à de meilleures solutions.
Plus précisément, le projet sur lequel je travaille actuellement vise à trouver la cause profonde des dépôts d’encrassement sur les échangeurs de chaleur.
Q. Comment les lecteurs peuvent-ils se connecter avec vous ?
- GitHub : https://github.com/alvarolemos
- LinkedIn : https://www.linkedin.com/in/alvarolemos