Quel est le meilleur langage de programmation pour l'apprentissage automatique? – Apprendre une langue étrangère

  • Gisèle Pierra Le Corps, La Voix, Le Texte: Arts Du Langage En Langue Étrangère
    Binding : Taschenbuch, Label : Editions L'Harmattan, Publisher : Editions L'Harmattan, medium : Taschenbuch, numberOfPages : 242, publicationDate : 2006-06-01, releaseDate : 2006-06-01, authors : Gisèle Pierra, ISBN : 2296009697

Par Christina Voskoglou

Les sites de questions et réponses et les forums de science des données bourdonnent de questions sans cesse: Je suis nouveau en science des données, quelle langue devrais-je apprendre? Quel est le meilleur langage pour l’apprentissage automatique?

De nombreux articles tentent de répondre à ces questions, qu’ils soient basés sur une expérience personnelle ou sur des données d’offre d’emploi. Toutefois, les offres d’emploi en Occident sont bien plus actives que les offres d’emploi en Occident ne peuvent en décrire. Cependant, les opinions des pairs sont très précieuses mais souvent contradictoires et peuvent donc dérouter les novices. Nous nous sommes tournés vers nos données fiables de plus de 2 000 scientifiques de données et développeurs d’apprentissage automatique qui ont répondu à notre dernière enquête sur les langues qu’ils utilisent et les projets sur lesquels ils travaillent – ainsi que de nombreux autres éléments intéressants concernant leurs activités d’apprentissage automatique et leur formation. Ensuite, nous-mêmes, spécialistes des données, nous n’avons pas pu nous empêcher de lancer quelques modèles pour déterminer les facteurs les plus importants en relation avec la sélection de la langue. Nous avons comparé le top 5 des langues et les résultats prouvent qu’il n’ya pas de réponse simple à la question «quelle langue?». Cela dépend de ce que vous essayez de construire, de vos antécédents et de la raison pour laquelle vous vous êtes impliqué dans l’apprentissage automatique.

Quelle langue d'apprentissage automatique est la plus populaire?

Voyons d’abord la popularité globale des langues d’apprentissage automatique. Python est en tête du peloton, avec 57% des scientifiques de données et des développeurs en apprentissage automatique qui l'utilisent et 33% en donnant la priorité au développement. Rien d’étonnant, compte tenu de l’évolution des référentiels d’apprentissage approfondi de Python au cours des 2 dernières années, notamment la sortie de TensorFlow et une vaste sélection d’autres bibliothèques. Le python est souvent comparé à R, mais ils sont loin d’être comparables en termes de popularité: R vient au quatrième rang pour l’utilisation globale (31%) et au cinquième rang pour la hiérarchisation des priorités (5%). R est en fait le langage avec le rapport de priorité d'utilisation le plus faible parmi les cinq, avec seulement 17% des développeurs qui l'utilisent pour le hiérarchiser. Cela signifie que dans la plupart des cas, R est une langue complémentaire et non un premier choix. Le même ratio pour Python est de 58%, le plus élevé de loin parmi les cinq langues, ce qui indique clairement que les tendances en matière d’utilisation de Python sont tout à fait opposées à celles de R. Non seulement Python est la langue la plus largement utilisée, mais aussi le choix principal pour la majorité de ses utilisateurs. C / C ++ est loin derrière Python, à la fois en termes d'utilisation (44%) et de hiérarchisation des priorités (19%). Java suit de très près le C / C ++, tandis que JavaScript occupe la cinquième place, bien que ses performances en matière de hiérarchisation soient légèrement meilleures que celles de R (7%). Nous avons interrogé nos répondants sur d'autres langues utilisées dans l'apprentissage automatique, y compris les suspects habituels de Julia, Scala, Ruby, Octave, MATLAB et SAS, mais elles se situent toutes en dessous de la barre des 5% de priorité et de moins de 26% d'utilisation. Nous avons donc concentré notre attention sur les cinq langues les plus parlées.

Python est priorisé dans les applications où Java ne l’est pas.

Nos données révèlent que le facteur le plus déterminant lors du choix d’une langue pour l’apprentissage automatique est le type de projet sur lequel vous allez travailler: votre domaine d’application. Dans notre enquête, nous avons interrogé les développeurs sur 17 domaines d’application différents tout en offrant à nos répondants la possibilité de nous dire qu’ils exploraient encore les options et ne travaillaient pas activement dans aucun domaine. Nous présentons ici les trois zones supérieure et inférieure par langue: celles dans lesquelles les développeurs accordent la priorité à chaque langue.

Les scientifiques en apprentissage automatique travaillant sur l'analyse des sentiments accordent une priorité supérieure à Python (44%) et R (11%), à JavaScript (2%) et à Java (15%) par rapport aux développeurs travaillant dans d'autres domaines. En revanche, Java est davantage priorisé par ceux qui travaillent sur la sécurité du réseau / les cyberattaques et la détection des fraudes, les deux domaines dans lesquels Python est le moins prioritaire. Les algorithmes de sécurité réseau et de détection de fraude sont développés ou utilisés principalement dans les grandes organisations – et en particulier dans les institutions financières – où Java est l’un des favoris de la plupart des équipes de développement internes. Dans les domaines moins centrés sur l'entreprise, tels que le traitement du langage naturel et l'analyse des sentiments, les développeurs optent pour Python, qui offre un moyen plus simple et plus rapide de créer des algorithmes très performants, grâce à la vaste collection de bibliothèques spécialisées qui l'accompagne. .

L'intelligence artificielle (IA) dans les jeux (29%) et la locomotion robotique (27%) sont les deux domaines dans lesquels C / C ++ est le plus favorisé, compte tenu du niveau de contrôle, de performance et d'efficacité élevé. Ici, un langage de programmation de niveau inférieur, tel que C / C ++, fourni avec des bibliothèques d’IA hautement sophistiquées, est un choix naturel, alors que R, conçu pour l’analyse statistique et la visualisation, est généralement considéré comme dépourvu de pertinence. L'IA dans les jeux (3%) et la locomotion par robot (1%) sont les deux domaines dans lesquels R est la priorité la plus basse, suivis par la reconnaissance de la parole lorsque le cas est similaire.

Hormis dans l'analyse des sentiments, R est également une priorité relativement élevée – par rapport à d'autres domaines d'application – en bioingénierie et en bioinformatique (11%), domaine dans lequel Java et JavaScript ne sont pas privilégiés. Étant donné l’utilisation de longue date de R dans les statistiques biomédicales, à la fois au sein et en dehors du monde universitaire, il n’est pas surprenant que ce soit l’un des domaines où il est le plus utilisé. Enfin, nos données montrent que les développeurs débutant dans le domaine de la science des données et de l'apprentissage automatique qui explorent encore les options accordent plus d'importance à JavaScript (11%) et à Java moins qu'à d'autres (13%). Il s’agit dans de nombreux cas de développeurs qui expérimentent l’apprentissage automatique en utilisant une API d’apprentissage automatique tierce dans une application Web.

Les antécédents professionnels sont essentiels pour la sélection d’une langue d’apprentissage automatique.

En second lieu dans le domaine des applications, les antécédents professionnels jouent également un rôle déterminant dans la sélection d’une langue d’apprentissage automatique: les développeurs qui privilégient les cinq langues principales plus que d’autres proviennent de cinq milieux différents. La priorité est donnée à Python par ceux pour qui la science des données est la première profession ou le premier domaine d’études (38%). Cela indique que Python est désormais devenu une partie intégrante de la science des données – il est devenu le langage natif des scientifiques. On ne peut pas en dire autant de R, qui est généralement prioritaire pour les analystes de données et les statisticiens (14%), car le langage a été initialement créé pour eux, en remplacement de S.

Les développeurs web frontaux étendent leur utilisation de JavaScript à l'apprentissage automatique: 16% l'ont priorisé à cette fin, tout en restant à l'écart du lourd C / C ++ (8%). À l'opposé, les ingénieurs en matériel informatique / électronique embarqués optent plus pour le C / C ++ que les autres, tout en évitant JavaScript, Java et R plus que d'autres. Compte tenu de leur investissement dans la maîtrise de C / C ++ au cours de leur vie d'ingénieur, il serait insensé de choisir un langage qui compromettrait leur niveau de contrôle sur leur application. Les ingénieurs en matériel informatique embarqué sont également les plus susceptibles de travailler sur des projets d'apprentissage automatique proches du matériel, tels que les projets d'analyse de bord IoT, où le matériel peut forcer leur sélection de langue. Nos données confirment que leur implication est nettement supérieure à la moyenne dans des projets de maintenance industrielle, de classification d'images et de locomotion de robots, entre autres.

Pour Java, ce sont les développeurs d’applications de bureau frontales qui accordent la priorité à celle-ci (21%), ce qui correspond également à son utilisation principalement dans les applications d’entreprise, comme indiqué précédemment. Les développeurs d'entreprise ont tendance à utiliser Java dans tous les projets, y compris l'apprentissage automatique. La directive entreprise dans ce cas est également évidente d'après le troisième facteur fortement corrélé à la hiérarchisation des langues – la raison de se lancer dans l'apprentissage automatique. Java est la priorité (27%) des développeurs qui se sont lancés dans l’apprentissage automatique parce que leur patron ou leur entreprise le leur avait demandé. C'est le moins préféré (14%) des personnes qui se sont lancées sur le terrain simplement parce qu'elles étaient curieuses de voir en quoi consiste tout ce remue-ménage – Java n'est pas un langage que vous apprenez normalement pour le plaisir! C’est Python que les curieux accordent plus de priorité que d’autres (38%), ce qui est une autre indication du fait que Python est reconnu comme la langue principale à expérimenter pour déterminer l’apprentissage automatique.

Il semble cependant que certaines universités dispensant des cours de sciences des données doivent encore se familiariser avec cette notion. Les développeurs qui affirment avoir appris la machine parce que la science des données fait / faisait partie de leur diplôme universitaire sont les moins susceptibles de donner la priorité à Python (26%) et les plus susceptibles de donner la priorité à R (7%) par rapport aux autres. Il existe à l’évidence un préjugé favorable en faveur de R au sein des cercles de la statistique dans le monde universitaire – où il est né -, mais à mesure que la science des données et l’apprentissage automatique s’intéressent davantage à l’informatique, la tendance s’efface. Ceux qui ont une formation universitaire en informatique peuvent le favoriser plus que d’autres, mais en termes absolus, ce n’est encore qu’une petite fraction de ce groupe qui ira en premier.

C / C ++ est plus prioritaire pour ceux qui souhaitent améliorer leurs applications / projets existants avec l'apprentissage automatique (20%) et moins pour ceux qui espèrent créer de nouvelles applications hautement compétitives basées sur l'apprentissage automatique (14%). Ce modèle indique à nouveau que le C / C ++ est principalement utilisé dans les projets d'ingénierie et les applications IoT ou AR / VR, probablement déjà écrit en C / C ++, auquel des fonctionnalités prises en charge par ML sont ajoutées. Lors de la création d’une nouvelle application à partir de rien – en particulier d’une application utilisant la PNL pour les chatbots – il n’ya aucune raison particulière d’utiliser le C / C ++, alors qu’il existe de nombreuses raisons d’opter pour des langages offrant des bibliothèques hautement spécialisées, telles que Python. Ces langages peuvent générer plus rapidement et plus facilement des algorithmes très performants pouvant offrir un avantage concurrentiel dans les nouvelles applications centrées sur le ML.

Enfin, les sous-traitants qui se sont lancés dans l'apprentissage automatique pour augmenter leurs chances d'obtenir des projets hautement rentables privilégient JavaScript plus que d'autres (8%). Il s’agit probablement de développeurs JavaScript construisant des applications Web auxquelles ils ajoutent une API d’apprentissage automatique. Un exemple serait de visualiser les résultats d’un algorithme d’apprentissage automatique sur un tableau de bord Web.

Il n’existe pas de «meilleur langage pour l’apprentissage automatique».

Nos données montrent que la popularité n'est pas un bon critère pour choisir un langage de programmation pour l'apprentissage automatique et la science des données. Il n’existe pas de «meilleur langage pour l’apprentissage automatique» et tout dépend de ce que vous voulez construire, de votre origine et de la raison pour laquelle vous vous êtes impliqué dans l’apprentissage automatique. Dans la plupart des cas, les développeurs transfèrent le langage qu'ils utilisaient déjà dans l'apprentissage automatique, en particulier s'ils devaient l'utiliser dans des projets adjacents à leur travail précédent, tels que des projets d'ingénierie pour les développeurs C / C ++ ou des visualisations Web pour les développeurs JavaScript.

Si votre tout premier contact avec la programmation se fait par apprentissage automatique, vos collègues de notre sondage considèrent que Python est la meilleure option, compte tenu de la richesse de ses bibliothèques et de sa facilité d’utilisation. Si, par contre, vous rêvez d’un emploi dans un environnement d’entreprise, soyez prêt à utiliser Java. Quel que soit le cas, il s’agit d’une période passionnante pour l’apprentissage automatique, et le voyage sera époustouflant, quelle que soit la langue choisie. Appréciez la balade!

Si vous êtes un programmeur Machine Learning ou Data Scientist, Rejoignez notre communauté et exprimez votre opinion dans nos prochains sondages.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *