L’apprentissage automatique est généralement associé à l’intelligence artificielle (IA) qui fournit aux ordinateurs la capacité d’effectuer certaines tâches, telles que la reconnaissance, le diagnostic, la planification, le contrôle de robots, la prédiction, etc, sans être explicitement programmés. Il se concentre sur le développement d’algorithmes qui peuvent apprendre à se développer et à changer lorsqu’ils sont exposés à de nouvelles données.
D’une certaine manière, le processus d’apprentissage automatique est similaire à celui de l’exploration de données. Les deux recherchent dans les données pour trouver des modèles. Cependant, au lieu d’extraire des données pour la compréhension humaine – comme c’est le cas dans les applications d’exploration de données – l’apprentissage automatique utilise ces données pour améliorer la compréhension du programme lui-même. Les programmes d’apprentissage automatique détectent des modèles dans les données et ajustent les actions du programme en conséquence.
Maintenant, essayez-vous de comprendre certaines des compétences nécessaires pour obtenir un emploi en apprentissage automatique ? Un bon candidat doit avoir une compréhension approfondie d’un large éventail d’algorithmes et de mathématiques appliquées, des compétences en résolution de problèmes et en analyse, des probabilités et des statistiques, ainsi que des langages de programmation tels que Python/C++/R/Java. Au-delà de tout, l’apprentissage automatique requiert une curiosité innée, donc si vous n’avez jamais perdu la curiosité que vous aviez quand vous étiez enfant, vous êtes un candidat naturel pour l’apprentissage automatique.
Voici une liste de compétences clés
1. Python/C++/R/Java : Si vous voulez un emploi dans l’apprentissage automatique, vous devrez probablement apprendre tous ces langages à un moment donné. Le C++ peut aider à accélérer le code. R fonctionne très bien dans les statistiques et les tracés, et Hadoop est basé sur Java, donc vous devrez probablement mettre en œuvre des mappeurs et des réducteurs en Java.
2. Probabilité et statistiques: Les théories aident à apprendre les algorithmes. Les grands exemples sont Naive Bayes, les modèles de mélange gaussien et les modèles de Markov cachés. Vous devez avoir une bonne compréhension des probabilités et des statistiques pour comprendre ces modèles. Lancez-vous dans l’étude de la théorie des mesures. Utilisez les statistiques comme métrique d’évaluation des modèles : matrices de confusion, courbes récepteur-opérateur, valeurs p, etc.
3. Mathématiques appliquées et algorithmes : En ayant une solide compréhension de la théorie des algorithmes et en sachant comment l’algorithme fonctionne, vous pouvez également discriminer des modèles tels que les SVM. Vous devrez comprendre des sujets tels que le décentrement du gradient, l’optimisation convexe, le lagrange, la programmation quadratique, les équations différentielles partielles et autres. De plus, habituez-vous à regarder des sommations.
4. Informatique distribuée : La plupart du temps, les emplois d’apprentissage automatique impliquent de travailler avec de grands ensembles de données de nos jours. Vous ne pouvez pas traiter ces données en utilisant une seule machine, vous devez les distribuer sur un cluster entier. Des projets tels qu’Apache Hadoop et des services en nuage comme EC2 d’Amazon rendent la tâche plus facile et rentable.
5. Élargir l’expertise des outils Unix : Vous devriez également maîtriser tous les grands outils Unix qui ont été conçus pour cela : cat, grep, find, awk, sed, sort, cut, tr, et plus encore. Étant donné que tout le traitement se fera très probablement sur une machine basée sur linux, vous devez avoir accès à ces outils. Apprenez leurs fonctions et utilisez-les bien. Ils ont certainement rendu ma vie beaucoup plus facile.
6. Apprendre davantage sur les techniques avancées de traitement du signal : L’extraction de caractéristiques est l’une des parties les plus importantes de l’apprentissage automatique. Différents types de problèmes ont besoin de diverses solutions, vous pouvez être en mesure d’utiliser des algorithmes de traitement du signal avancés vraiment cool tels que : ondelettes, shearlets, curvelets, contourlets, bandlets. Renseignez-vous sur l’analyse temps-fréquence et essayez de l’appliquer à vos problèmes. Si vous n’avez pas lu l’analyse de Fourier et la convolution, vous devrez également vous familiariser avec ces notions. L’échelle est un truc de traitement du signal 101 cependant.
7. Autres compétences:
(a) Se mettre à jour: Vous devez rester à jour avec tous les changements à venir. Cela signifie également être au courant des nouvelles concernant le développement des outils (changelog, conférences, etc.), de la théorie et des algorithmes (articles de recherche, blogs, vidéos de conférence, etc.). La communauté en ligne change rapidement. Attendez-vous à ce changement et cultivez-le.
(b) Lire beaucoup: Lisez des articles comme Google Map-Reduce, Google File System, Google Big Table, The Unreasonable Effectiveness of Data. Il existe d’excellents livres gratuits sur l’apprentissage automatique en ligne et vous devriez également les lire.