29 mars, 2020
Par Donal Byrne, spécialiste en Deep Learning et véhicule autonome (lien vers l'article en anglais)
Avant de commencer, je pense que c’est une bonne chose de donner quelques informations de base sur ma motivation à écrire cet article. Je viens d'obtenir il y a peu ma licence en informatique. À mi-chemin de ma troisième année, je savais que le seul domaine dans lequel je voulais travailler était l'IA (intelligence artificielle). Mon université n'avait pas de cours spécifiques sur l'IA et il n'y avait pas beaucoup de stages en IA à Dublin. Je suis heureux de dire que je travaille maintenant dans une équipe de recherche et développement en IA en tant que jeune diplômé.
Cet article décrit brièvement ce que j'ai fait pour me préparer à un emploi en IA sans expérience préalable. J'espère que cet article aidera les gens à établir leur propre plan pour entrer dans le monde passionnant de l'IA. Je tiens également à souligner que ces conseils s'appliquent à tous les domaines du développement de logiciels en général, mais les directives et les sujets spécifiques seront évidemment axés sur l'IA/ML (Machine Learning).
L'état de l'IA/ML aujourd'hui
Le Machine Learning est un domaine vraiment unique pour les diplômés en informatique et les jeunes développeurs. Ce domaine n'a vraiment pris son essor qu'au cours des cinq dernières années et est encore relativement jeune. Cela constitue un véritable problème et aussi une véritable opportunité pour les nouveaux développeurs et les employeurs.
Concernant les nouveaux diplômés : ils n'ont pas d'informations solides sur la nature du domaine, peu de modules sont proposés à l'université, d’où une difficulté à acquérir une expérience pertinente.
Concernant les employeurs : ceux-ci trouvent qu'il est très difficile de trouver des personnes ayant une expérience pertinente.
C'est un dilemme difficile à surmonter pour un étudiant, mais c'est aussi une grande opportunité. Il y a actuellement un énorme déficit de développeurs qualifiés en Machine Learning. Des entreprises de tous les secteurs recrutent pour ces postes et ne peuvent pas les pourvoir. Si vous pouvez démontrer que vous possédez les compétences requises, vous serez un candidat hautement désirable qui se distinguera non seulement du groupe des nouveaux diplômés, mais aussi de certaines recrues expérimentées.
Tout cela semble formidable en théorie, mais ce n'est bien sûr pas si simple. Ce n'est pas pour rien que ces personnes sont difficiles à trouver. Il est difficile de devenir compétent dans ce domaine, qui connaît une croissance rapide et des progrès de plus en plus importants chaque mois. Je passe en revue ci-dessous les domaines clés sur lesquels vous devrez travailler pour vous faire une réputation d'expert en apprentissage automatique.
Expérience
Compréhension de la théorie
Spécialisation
Etude universitaire
Gagner de l'expérience
Voici quelques bonnes façons de gagner de l’expérience pour trouver un emploi :
-Les projets personnels
-Les hackathons
-Les challenges de développement informatique (coding challenges)
-Les projets open-source
Les projets personnels
Vous devez avoir des projets de Machine Learning dans votre GitHub. Pour un employeur, c'est un moyen très rapide d'éliminer des personnes du processus de recrutement et ce sera la première chose que les recruteurs regarderont après votre CV. Il peut être un peu difficile de trouver un projet alors que vous êtes encore en train de vous familiariser avec le ML, c'est normal. Il n'est pas nécessaire qu'il soit gros, tape-à-l'œil ou novateur, il doit simplement montrer que vous comprenez le sujet et donner aux gens une indication que vous êtes capable de travailler et rechercher de manière indépendante avec de bonnes normes de développement. Quelques éléments à prendre en compte lors de l'élaboration d'un projet GitHub.
-Le projet ne devrait pas prendre plus d'un mois.
-Assurez-vous que votre code est propre, modulaire et commenté.
-Fournissez un Read Me et d'autres documents pour votre code tels que la technologie utilisée, les tutoriels référencés, les dépendances, etc.
-Si possible, fournissez des tests unitaires pour les parties clés du code.
Ensuite, il faut choisir le projet sur lequel on va travailler. Vous voulez qu'il soit suffisamment simple pour pouvoir être terminé en un mois et suffisamment pertinent pour que vous puissiez acquérir des compétences utiles au cours du processus. Voici quelques exemples :
-Un classificateur d'images utilisant un réseau neuronal convolutif. Il suffit de faire la distinction entre deux types d'images (chien/chat).
-Un réseau neuronal à flux continu pour classer les données. Il existe de nombreux ensembles de données sur kaggle.com. Par exemple classez des photos de fleur en fonction de l’espèce.
-Une analyse des sentiments pour les critiques de films. Un autre premier projet populaire consiste à utiliser un réseau de neurones pour classer le sentiment des critiques de films (bon ou mauvais). Vous pouvez utiliser le jeu de données IMDB, également présent sur kaggle.
Les hackathons
Les hackathons sont géniaux pour plusieurs raisons. Il vous oblige à sortir et à construire quelque chose, vous pouvez rencontrer des personnes plus expérimentées et vous pouvez le mettre sur votre CV et votre portfolio.
Essayez de trouver des hackathons spécifiques à l'IA, mais aussi des hackathons plus généraux et essayez de donner une dimension IA à votre projet. Consultez meetup.com et vérifiez s'il existe dans votre région des groupes de rencontre axés sur l'IA ou le développement de logiciels en général. Ces groupes organisent généralement une sorte de hackathon au moins une fois par an.
Les challenges de développement
Tout comme les hackathons, les challenges de développement vous obligent à construire une application pratique contenant ce que vous avez appris et cela vaut son pesant d'or lorsque vous postulez pour votre emploi. Ces concours sont généralement assez amusants et le sens de la compétition peut être une très bonne source de motivation. Jetez un coup d'œil sur des sites tels que kaggle, CodinGame et Halite.io.
Les projets open-source
C'est la chose la plus proche de l'expérience d’un projet professionnel que vous pouvez obtenir. Les projets open source vous donnent un réel aperçu du développement de niveau production et vous enseigneront des compétences précieuses telles que le débogage, le contrôle des versions, le développement avec d'autres personnes et, bien sûr, beaucoup de Machine Learning.
Comprendre la théorie
D'accord, l'essentiel est d'avoir des projets et de l'expérience à son actif, mais il ne suffit pas de suivre des tutoriels et de les coller sur GitHub (essayez de ne pas le faire :D). Vous devez comprendre ce que vous construisez. Comme beaucoup d'étudiants le savent, il y a une grande différence entre étudier quelque chose et le comprendre.
Il existe de nombreuses ressources au sujet de la théorie du Machine Learning et du Deep Learning. Il est également important de souligner qu'il ne faut pas se concentrer uniquement sur le Deep Learning. Je sais que c'est le côté le plus "sexy" de l'IA, mais ce n'en est qu'un des côtés. Familiarisez-vous avec les formes plus traditionnelles du Machine Learning telles que les modèles de régression, les Support Vector Machines et tous les principaux concepts de probabilité et de statistiques. Ils seront toujours utiles, quel que soit le type d'IA que vous construisez. Voici quelques-unes des meilleures ressources que j'ai trouvées.
-Stanford Machine Learning est un cours gratuit qui couvre à peu près tout ce que vous devez savoir sur la ML, des modèles de régression au Deep Learning.
-DeepLearning.ai par Andrew Ng. Comme le cours précédent, Ng donne un aperçu très complet de l'IA, mais ce cours est spécialisé dans le Deep Learning, par opposition au ML en général.
-Grokking Deep Learning d'Andrew Trask est probablement le meilleur livre sur l'apprentissage profond que j'ai trouvé. Le livre passe en revue la construction de réseaux de neurones en n'utilisant aucune bibliothèque, à l'exception de NumPy (extension du langage de programmation Python). Il est plus complexe et coûte cher, mais il est très précieux si vous avez le temps de le parcourir correctement.
-La chaîne Youtube de Siraj Raval est excellente pour obtenir un aperçu de haut niveau de presque tous les sujets pertinents du ML et est également très divertissante à regarder.
Les spécialisations
Diagramme montrant certains des principaux domaines de l'IA aujourd'hui :
C'est un bon moyen pour les employeurs de trier le bon grain de l'ivraie. Le ML est un domaine MASSIF. Il est impossible qu'une seule personne puisse tout savoir. C'est pourquoi les gens se spécialisent et deviennent des experts. Si vous pouvez non seulement montrer que vous avez une solide compréhension du ML/Deep Learning en général ET que vous vous êtes spécialisé dans un domaine, vous deviendrez encore plus précieux pour les employeurs potentiels. Mais faites attention à ne pas vous enfermer dans une boîte, vous n'avez pas à décider de votre parcours professionnel dans son intégralité dès le début, essayez plutôt de trouver un domaine qui vous passionne vraiment et d'en apprendre davantage, peut-être en faisant quelques projets dessus si vous le pouvez. Voici quelques exemples de spécialisations.
-Vision par ordinateur : CNN (convolutional neural network), segmentation, étiquetage, descriptions, détection d'objets.
-Recurrent Networks : Données de séries chronologiques telles que la bourse ou une vidéo, cellules LSTM (Long short-term memory).
-Reinforcement Learning : travailler à acquérir des compétences telles que jouer à un jeu vidéo ou conduire.
-Traitement du langage naturel : Chat bots, analyse des sentiments, génération de contenu, résumé de contenu.
-Generative Adversarial Networks : générer des contenus tels que des images, des modèles 3D, du son.
-Méta apprentissage (Meta Learning) : Apprendre à apprendre.
-One Shot Learning : apprendre avec très peu de données.
-Visualisation et débogage des réseaux neuronaux : Domaine de recherche immense, les réseaux neuronaux sont encore une boîte noire et il nous est difficile de les visualiser et de comprendre pourquoi ils ne fonctionnent pas lorsqu'ils sont brisés.
Les études universitaires
C'est un point sur lequel beaucoup de gens ne sont pas d'accord. Le chemin pour devenir un développeur de logiciels est en train de changer. L'université n'est plus la condition sine qua non pour entrer dans l'industrie comme c'était le cas auparavant. Des géants de la technologie tels que Google et Apple ont même commencé à renoncer à leur exigence de diplôme. En effet, les entreprises innovantes reconnaissent que les personnes avec lesquelles elles veulent travailler sont passionnées, autonomes et désireuses de prendre des initiatives. Toutes ces choses ne demandent pas forcément un diplôme et, grâce à la grande quantité de ressources disponibles sur Internet, vous pouvez pratiquement tout apprendre en restant chez vous, pour autant que vous soyez prêt à en faire l'effort.
Cela dit, bien réussir à l'université est un gros bonus et ne doit pas être sous-estimé.
En conclusion
C'est le meilleur moment pour faire partie de l'industrie de l'IA. Tout comme l'avènement d'Internet, l'IA aura un impact sur toutes les entreprises, quel que soit le domaine, ce qui en fait l'un des outils les plus recherchés par les entreprises. Actuellement, nous n'en sommes encore qu'aux premiers balbutiements de l'IA. Cela signifie que l'industrie est dans un état d'innovation, de découverte et d'incertitude énorme. Il y a très peu d'experts et personne n'a toutes les réponses. La communauté de l'IA est dans un état constant d'apprentissage et d'amélioration. Alors prenez le temps d'apprendre autant que vous le pouvez et vous verrez bientôt à quelle vitesse vous pourrez améliorer vos compétences. Ce n'est pas une tâche facile et cela prendra du temps. Soyez donc patient, persistant et concentré.
Consultez maintenant des offres avec du travail à distance du site expedijob et trouvez des jobs dans l'intelligence artificielle et le machine learning !
Articles les plus lus
Articles récents