Parcours d'apprentissage descendant : apprentissage automatique pour les ingénieurs logiciels
Inspiré par Coding Interview University.
Traductions : portugais brésilien | 中文版本 | Français | 臺灣華語版本
Comment je (Nam Vu) envisage de devenir ingénieur en apprentissage automatique
Qu'est-ce que c'est?
Il s'agit de mon plan d'études de plusieurs mois pour passer de développeur mobile (autodidacte, sans diplôme CS) à ingénieur en apprentissage automatique.
Mon objectif principal était de trouver une approche de l'étude de l'apprentissage automatique qui soit principalement pratique et résume la plupart des mathématiques pour le débutant. Cette approche n'est pas conventionnelle car il s'agit d'une approche descendante et axée sur les résultats conçue pour les ingénieurs logiciels.
N'hésitez pas à apporter toute contribution qui, selon vous, l'améliorera.
Table des matières
- Qu'est-ce que c'est?
- Pourquoi l'utiliser ?
- Comment l'utiliser
- Suis-moi
- Ne pense pas que tu n'es pas assez intelligent
- À propos des ressources vidéo
- Connaissances préalables
- Le plan quotidien
- Motivation
- Présentation de l'apprentissage automatique
- Maîtrise de l'apprentissage automatique
- L'apprentissage automatique est amusant
- Apprentissage automatique à l'encre
- Apprentissage automatique : un guide détaillé
- Histoires et expériences
- Algorithmes d'apprentissage automatique
- Livres pour débutants
- Livres pratiques
- Concours de connaissances Kaggle
- Série vidéo
- MOOC
- Ressources
- Devenir contributeur Open Source
- Jeux
- Baladodiffusions
- Communautés
- Conférences
- Questions d'entretien
- Mes entreprises préférées
Pourquoi l'utiliser ?
Je suis ce plan pour préparer mon futur emploi : ingénieur en machine learning. Je crée des applications mobiles natives (Android/iOS/Blackberry) depuis 2011. J'ai un diplôme en génie logiciel, pas en informatique. J'ai une petite quantité de connaissances de base sur : le calcul, l'algèbre linéaire, les mathématiques discrètes, les probabilités et les statistiques de l'université. Pensez à mon intérêt pour l'apprentissage automatique :
- Puis-je apprendre et obtenir un emploi dans le Machine Learning sans étudier CS Master et PhD ?
- "C'est possible, mais c'est bien plus difficile que lorsque je suis arrivé sur le terrain." Drac Smith
- Comment puis-je obtenir un emploi dans le Machine Learning en tant que programmeur de logiciels qui étudie lui-même le Machine Learning, mais n'a jamais la chance de l'utiliser au travail ?
- "J'embauche des experts en apprentissage automatique pour mon équipe et votre MOOC ne vous obtiendra pas le poste (vous trouverez de meilleures nouvelles ci-dessous). En fait, de nombreuses personnes titulaires d'une maîtrise en apprentissage automatique n'obtiendront pas le poste parce qu'elles (et la plupart d'entre elles) j'ai suivi des MOOC) n'ai pas une compréhension approfondie qui m'aiderait à résoudre mes problèmes. Ross C.Taylor
- Quelles compétences sont nécessaires pour les emplois en apprentissage automatique ?
- "Tout d'abord, vous devez avoir une formation décente en CS/Math. Le ML est un sujet avancé, donc la plupart des manuels supposent que vous avez cette formation. Deuxièmement, l'apprentissage automatique est un sujet très général avec de nombreuses sous-spécialités nécessitant des compétences uniques. Vous souhaiterez peut-être pour parcourir le programme d'un programme MS en Machine Learning pour voir le cours, le programme et le manuel." Uri
- "Probabilités, calcul distribué et statistiques." Hortensia
Je me retrouve dans des moments difficiles.
AFAIK, il y a deux côtés à l'apprentissage automatique :
- Apprentissage automatique pratique : il s'agit d'interroger des bases de données, de nettoyer les données, d'écrire des scripts pour transformer les données et de coller des algorithmes et des bibliothèques ensemble et d'écrire du code personnalisé pour obtenir des réponses fiables à partir des données afin de satisfaire des questions difficiles et mal définies. C'est le désordre de la réalité.
- Apprentissage automatique théorique : il s'agit de mathématiques, d'abstraction, de scénarios et de limites idéalisés, de beauté et d'information sur ce qui est possible. C’est beaucoup plus soigné, plus propre et éloigné du désordre de la réalité.
Je pense que la meilleure méthode pour une méthodologie centrée sur la pratique est quelque chose comme « pratique – apprentissage – pratique », ce qui signifie que les étudiants viennent d'abord avec des projets existants avec des problèmes et des solutions (pratique) pour se familiariser avec les méthodes traditionnelles dans le domaine et peut-être aussi. avec leur méthodologie. Après avoir pratiqué quelques expériences élémentaires, ils peuvent accéder aux livres et étudier la théorie sous-jacente, qui sert à guider leur future pratique avancée et améliorera leur boîte à outils pour résoudre des problèmes pratiques. L’étude de la théorie améliore également leur compréhension des expériences élémentaires et les aide à acquérir plus rapidement des expériences avancées.
C'est un long plan. Cela va me prendre des années. Si vous connaissez déjà beaucoup de choses, cela vous prendra beaucoup moins de temps.
Comment l'utiliser
Tout ce qui suit est un aperçu et vous devez aborder les éléments dans l'ordre de haut en bas.
J'utilise la version spéciale de démarque de Github, y compris des listes de tâches pour vérifier la progression.
En savoir plus sur la démarque à saveur Github
Suis-moi
Je suis un ingénieur logiciel vietnamien vraiment passionné et qui souhaite travailler aux États-Unis.
Combien ai-je travaillé pendant ce plan ? Environ 4 heures/nuit après une longue et dure journée de travail.
Je suis en voyage.
|
---|
Les États-Unis comme diable |
Ne pense pas que tu n'es pas assez intelligent
Je suis découragé par les livres et les cours qui me disent dès que je les ouvre que le calcul multivarié, les statistiques inférentielles et l'algèbre linéaire sont des prérequis. Je ne sais toujours pas par où commencer…
- Et si je ne suis pas bon en mathématiques
- 5 techniques pour comprendre les algorithmes d'apprentissage automatique sans connaissances en mathématiques
- Comment puis-je apprendre l’apprentissage automatique ?
À propos des ressources vidéo
Certaines vidéos ne sont disponibles qu'en s'inscrivant à un cours Coursera ou EdX. C'est gratuit, mais parfois les cours ne sont plus en cours, vous devez donc attendre quelques mois et vous n'avez donc pas accès. Je vais ajouter davantage de vidéos provenant de sources publiques et remplacer les vidéos de cours en ligne au fil du temps. J'aime utiliser les cours universitaires.
Connaissances préalables
Cette courte section comprend des prérequis/informations intéressantes que je voulais apprendre avant de commencer le plan quotidien.
Le plan quotidien
Chaque sujet ne nécessite pas une journée entière pour pouvoir le comprendre pleinement, et vous pouvez en faire plusieurs en une journée.
Chaque jour, je prends un sujet de la liste ci-dessous, je le lis d'un bout à l'autre, je prends des notes, je fais les exercices et j'écris une implémentation en Python ou R.
Motivation
Présentation de l'apprentissage automatique
Maîtrise de l'apprentissage automatique
L'apprentissage automatique est amusant
Apprentissage automatique à l'encre
Apprentissage automatique : un guide détaillé
Histoires et expériences
Algorithmes d'apprentissage automatique
Livres pour débutants
Livres pratiques
Concours de connaissances Kaggle
Série vidéo
MOOC
Ressources
Jeux
- Halite : jeu de codage IA
- Vindinium : défi de programmation de l'IA
- Concours général d'IA du jeu vidéo
- Concours d'IA Angry Birds
- Les jeux d'IA
- Concours d'IA de jeu de combat
- CodeCup
- Tournoi étudiant StarCraft AI
- Concours d'IA AIIDE StarCraft
- Concours d'IA CIG StarCraft
- CodinGame - Jeux de robots IA
Devenir contributeur Open Source
Baladodiffusions
Podcasts pour débutants :
- Machines parlantes
- Digressions linéaires
- Sceptique des données
- Cette semaine dans l'apprentissage automatique et l'IA
- Guide d'apprentissage automatique
Entretiens avec des praticiens du ML, des chercheurs et des Kagglers à propos de leur Joureny
- Chai Time Science des données, audio, articles
- Apprentissage automatique pour les débutants – Entretiens, audio
"Plus" de podcasts avancés
- Partiellement dérivé
- Spectacle de données O'Reilly
- Pas si écart type
Des podcasts pour sortir des sentiers battus :
Communautés
Conférences
- Systèmes de traitement de l'information neuronale (NIPS)
- Conférence internationale sur les représentations de l'apprentissage (ICLR)
- Association pour l'avancement de l'intelligence artificielle (AAAI)
- Conférence IEEE sur l'intelligence computationnelle et les jeux (CIG)
- Conférence internationale de l'IEEE sur l'apprentissage automatique et ses applications (ICMLA)
- Conférence internationale sur l'apprentissage automatique (ICML)
- Conférences internationales conjointes sur l'intelligence artificielle (IJCAI)
- Association pour la linguistique computationnelle (ACL)
Questions d'entretien
Mes entreprises préférées