Ingénieurs en apprentissage automatique : mythes contre réalités
Publié: 2018-05-08L'apprentissage automatique est ce qui donne aux ordinateurs la capacité d'apprendre et de s'améliorer de manière itérative dans leurs tâches. Il se concentre sur le développement d'algorithmes dynamiques qui peuvent changer (se modifier) lorsqu'ils sont exposés à un nouvel ensemble de données. En termes simples, l'apprentissage automatique est ce qui fait dire à Facebook "voulez-vous taguer vos amis sur cette photo?" , chaque fois que vous téléchargez une photo de groupe. Les personnes qui travaillent dans les coulisses pour que tout cela se produise sont humblement connues sous le nom d'ingénieurs en apprentissage automatique.
Maintenant, comme avec tous les autres domaines sous l'égide de la science des données, l'apprentissage automatique a également beaucoup d'idées fausses à son sujet. Et les éliminer est précisément notre objectif pour aujourd'hui. Mais, il est essentiel que nous vous expliquions d'abord la vie d'un ingénieur en apprentissage automatique, y compris les compétences et les outils qu'il possède.
Tout d'abord, démarquons clairement l'apprentissage automatique de la science des données.
Table des matières
Les ingénieurs en machine learning sont-ils des data scientists ?
La science des données est un terme global, mais il y a quelque chose de fondamentalement différent dans le fonctionnement de l'apprentissage automatique. La science des données et les analystes explorent essentiellement les données et essaient de trouver des approches ou des modèles qui correspondent à leurs besoins commerciaux.
L'apprentissage automatique, en revanche, modifie entièrement ce modèle. Les ingénieurs en apprentissage automatique ne traitent pas directement les données. Ils connaissent les résultats qu'ils veulent, mais laissent les algorithmes faire le travail à leur place. L'apprentissage automatique construit une machine qui bat les champions de Go, ou qui tague des photos ou qui traduit entre les langues. Ces objectifs ne sont pas atteints par une exploration minutieuse des données, contrairement à l'analyse des données. Il y a beaucoup de données à explorer et beaucoup trop de dimensions à aborder (par exemple, quelle est la dimensionnalité d'un jeu de Go ? Ou d'un langage ?) La promesse de l'apprentissage automatique est qu'il construit le modèle lui-même : il explore ses données et réglage.
La différence entre Data Science, Machine Learning et Big Data !
Par conséquent, les ingénieurs en apprentissage automatique n'« explorent » pas autant que les data scientists ou les analystes, du moins pas dans le vrai sens du terme. Leur objectif n'est pas de trouver une signification dans leurs données - ils croient que la signification est déjà là. Au lieu de cela, ils visent à construire un modèle/algorithme/machine/système capable d'analyser les données et de produire des résultats. Ou, pour créer un réseau de neurones qui fonctionne - qui peut être modifié pour produire des résultats fiables sur n'importe quel ensemble de données d'entrée.
Examinons quelques points cruciaux concernant les ingénieurs en machine learning :
- Ils ont des compétences en génie logiciel plus solides que les analystes/scientifiques de données typiques. Les ingénieurs en apprentissage automatique travaillent avec des ingénieurs chargés de la maintenance des systèmes de production. Par conséquent, ils doivent comprendre la méthodologie de développement logiciel, les pratiques agiles et les outils de développement logiciel les plus modernes. Ils doivent être minutieux avec tout, des IDE comme Eclipse ou IntelliJ aux composants d'un pipeline de déploiement de logiciels.
- Les ingénieurs en apprentissage automatique se concentrent sur le fonctionnement des produits de données en production. En conséquence, ils sont holistiques dans leur approche. Ils font partie intégrante de toute équipe de développement de logiciels et savent donc ce qu'est le test A/B. Non seulement ils le « comprennent », mais ils savent également comment effectuer des tests A/B sur les systèmes de production. Ils comprennent l'importance de la journalisation et de la sécurité pour le sort de toute application.
- Ils sont sur leurs gardes lorsqu'il s'agit de surveiller les produits de données en production. Bien qu'il existe de nombreuses ressources pour automatiser le processus de surveillance des applications, les exigences de l'apprentissage automatique vont encore plus loin. Les pipelines de données, les modèles, les algorithmes ou même les systèmes peuvent devenir obsolètes et doivent être recyclés. Un système d'apprentissage automatique peut être facilement déformé en compromettant les pipelines de données qui l'alimentent. Par conséquent, les ingénieurs en apprentissage automatique doivent toujours savoir comment détecter ces compromis.
Quelques compétences nécessaires pour un ingénieur en apprentissage machine performant :
- Connaissances fondamentales en informatique et en programmation
- Probabilité et statistiques
- Modélisation et évaluation des données
- Trouver la bonne bibliothèque ML à utiliser et l'ajuster au besoin
- Génie logiciel et modélisation

Mythe n°1 : les ingénieurs en machine learning font en sorte que les systèmes pensent exactement comme les humains.
Bien qu'il s'agisse d'un objectif final éventuel, c'est loin d'être la vérité pour le moment. Comparez brièvement le processus d'apprentissage d'un enfant à celui d'une machine, et vous vous rendrez compte que l'apprentissage automatique en est encore à ses balbutiements. Par exemple, un bébé n'a pas besoin d'observer des centaines d'humains pour des choses simples comme marcher ou manger. Ils fixent leurs propres objectifs, perçoivent les autres humains autour, créent intuitivement leur stratégie d'apprentissage et l'affinent par essais et erreurs jusqu'à ce qu'ils réussissent. Même sans beaucoup d'intervention ou de conseils externes, un bébé peut réussir à apprendre à marcher, ainsi que d'autres choses essentielles.
Les machines, en revanche, nécessitent une supervision à chaque étape de l'apprentissage. De plus, un enfant combine sans effort diverses entrées reçues de plusieurs organes sensoriels de manière holistique et efficace. Par exemple, un enfant sera capable de reconnaître des images en un instant et de comprendre tout texte écrit dessus. Mais, pour enseigner la même chose à une machine, nous avons besoin d'algorithmes sophistiqués distincts, chacun pour reconnaître les données, identifier les bruits et comprendre le texte.

Mythe #2 : Toutes les données sont utiles pour les ingénieurs en machine learning.
Il ne fait aucun doute que les ingénieurs en apprentissage automatique ont également besoin de données, mais elles ne sont pas toutes pertinentes pour l'apprentissage automatique. Ils ont besoin de données représentatives qui couvrent les modèles et les résultats que leur système devra gérer. Les données ne doivent pas contenir de modèles non pertinents, car le modèle d'apprentissage automatique reflétera ces modèles non liés et les recherchera dans les données avec lesquelles il sera utilisé.
Toutes les données que vous utilisez pour la formation doivent être bien étiquetées et étiquetées avec les fonctionnalités qui correspondent aux questions que vous allez poser au système d'apprentissage automatique, ce qui demande beaucoup de travail. Toutes ces données doivent être bien étiquetées avec les fonctionnalités qui correspondent aux questions que vous allez poser à votre système. Il doit également être vierge et exempt de toute incohérence ou erreur. Ainsi, toutes les données ne sont pas précieuses pour les ingénieurs en apprentissage automatique - seules les données pertinentes le sont !
Gardez un œil sur la prochaine grande chose : l'apprentissage automatique
Mythe #3 : Les ingénieurs en machine learning ignorent les connaissances préexistantes.
Les experts dans de nombreux domaines rejettent l'apprentissage automatique pour avoir adopté une approche « table rase » dans leurs algorithmes d'apprentissage. Ils supposent que tous les algorithmes d'apprentissage automatique commencent à zéro - sans connaissance des données préexistantes. Les ingénieurs en machine learning comprennent mieux que l'apprentissage est un processus long qui nécessite une surveillance constante. Il ne peut pas être imité en introduisant simplement les données dans un algorithme. Par conséquent, tous les algorithmes d'apprentissage ne partent pas d'une feuille blanche ; certains utilisent des ensembles de données pour affiner un pool de connaissances préexistant. En fin de compte, cela dépend des besoins commerciaux de l'organisation.
Idée reçue n° 4 : des modèles d'apprentissage automatique plus simples sont toujours plus précis.
Ceci est conforme au rasoir d'Occam. Mais, disons que le rasoir dit seulement que des explications plus simples sont préférables, pas pourquoi. Ils sont préférés parce qu'ils sont plus faciles à comprendre, à retenir et à gérer. Cependant, lorsqu'il s'agit d'apprentissage automatique, l'hypothèse la plus simple cohérente avec les données est parfois moins précise pour la prédiction qu'une hypothèse plus compliquée. Certains des algorithmes d'apprentissage les plus puissants produisent des modèles qui semblent inutilement élaborés - parfois même en continuant à les ajouter après avoir correctement ajusté les données - mais c'est ainsi qu'ils battent les moins puissants.

Apprenez le cours ML en ligne des meilleures universités du monde. Gagnez des programmes de maîtrise, Executive PGP ou Advanced Certificate pour accélérer votre carrière. Étant donné que l'apprentissage automatique fait partie de la science des données, une combinaison d'informatique et de mathématiques, la connaissance des mathématiques est indispensable pour les ingénieurs en apprentissage automatique. Vous aurez besoin de connaissances en concepts mathématiques tels que l'algèbre linéaire, le calcul, l'optimisation, les probabilités et les statistiques pour créer et comprendre les algorithmes d'apprentissage automatique. Pour être plus précis, vous devrez avoir une idée de base des opérations mathématiques qui aident à l'analyse des données. Mais la meilleure partie est que vous pouvez apprendre ces concepts de base des mathématiques avec le temps tout en apprenant l'apprentissage automatique, et la plupart de ces concepts sont modérément faciles à saisir. Nous savons que la science des données et l'apprentissage automatique sont inextricablement liés, de sorte que l'apprentissage automatique ne sera aussi bon que les données qui lui sont fournies et la capacité des algorithmes à les ingérer. Les scientifiques des données devront avoir une compréhension de base de l'apprentissage automatique. Les scientifiques des données extraient des connaissances utiles à partir de quantités massives de données. Ils découvrent les tendances et aident au développement de solutions pour automatiser des opérations commerciales particulières. Pour des prévisions et des estimations précises, les Data Scientists doivent appréhender le Machine Learning. Cela peut aider les robots à faire de meilleurs jugements et à prendre des mesures plus sages en temps réel sans avoir besoin d'interaction humaine. L'exploration et l'interprétation des données sont transformées par l'apprentissage automatique. Les procédures statistiques traditionnelles ont été remplacées par des ensembles automatisés plus précis d'algorithmes génériques. Python est le langage le plus utilisé pour l'analyse de données et l'apprentissage automatique. La majorité des ingénieurs Machine Learning choisissent Python pour les défis NLP, R ou Python sont préférés pour les travaux d'analyse des sentiments, et Java est utilisé pour d'autres applications Machine Learning telles que la sécurité et la détection des menaces. Python est devenu le langage préféré pour l'analyse de données, l'apprentissage automatique et l'intelligence artificielle (IA) en raison de son vaste écosystème de bibliothèques, qui permet aux professionnels de l'apprentissage automatique d'accéder, de gérer, de convertir et d'analyser facilement les données. Python est populaire parmi les développeurs d'apprentissage automatique en raison de son indépendance de plate-forme, de sa simplicité et de sa lisibilité. Les mathématiques sont-elles indispensables pour les ingénieurs en Machine Learning ?
Les data scientists ont-ils besoin de Machine Learning ?
Quel langage de codage est préféré par les ingénieurs ML ?