Le guide ultime d'une carrière en IA: comment choisir un poste majeur, monter de niveau et trouver un emploi intéressant





Le 3 août, Sergey Shirkin, spécialiste du ML et de l'intelligence artificielle, s'est exprimé sur nos réseaux sociaux.



Sergey a participé à l'automatisation des technologies financières et des bases de données chez Sberbank et Rosbank, créant des modèles financiers basés sur l'apprentissage automatique et le travail analytique chez Equifax. Prédit le visionnage de la télévision à l'aide de méthodes d'intelligence artificielle chez Dentsu Aegis Network Russia. Maître de conférences invité à l'École supérieure d'économie (programme de maîtrise en communication axée sur les données).



Sergey explore également l'informatique quantique appliquée à l'IA et à l'apprentissage automatique. Il est à la pointe des facultés d'intelligence artificielle, d'analyse de Big Data et d'ingénierie des données de la Geek University, où il travaille en tant que doyen et professeur.



Nous partageons avec vous la transcription de l'émission et de l'enregistrement.



***



Je m'appelle Sergey Shirkin, nous parlerons aujourd'hui d'intelligence artificielle. Nous discuterons des premières voies - comment entrer dans l'intelligence artificielle, comment apprendre les matières nécessaires, quels cours suivre, quelle littérature lire, comment démarrer une carrière. Aussi sur diverses directions.



Les sujets d'aujourd'hui peuvent être intéressants non seulement pour les débutants, mais aussi pour les programmeurs expérimentés - par exemple, comment passer du domaine de la programmation au domaine de l'apprentissage automatique, de l'intelligence artificielle et des réseaux de neurones. Selon la technologie dans laquelle une personne est engagée et les langues qu'elle apprend, la transition pratique vers ce domaine peut avoir lieu de différentes manières. Il existe de nombreuses spécialités en IA.



Recommander des matériaux pour l'auto-immersion dans l'IA?



Si vous êtes un débutant complet, il est préférable de commencer par apprendre Python. Un moyen rapide de le faire, comme je l'ai vu avec d'autres débutants, est PythonTutor.ru. Là, vous devez étudier la théorie et résoudre les problèmes - au moins 70 pour cent. Les problèmes peuvent sembler difficiles si vous n'avez pas programmé du tout auparavant.



La prochaine étape est le langage de requête SQL, et le site SQL-EX.ru vous aidera ici: il y a des exercices sur SQL. Ils sont organisés par étapes: étape de formation, étape d'obtention d'une note - vous pouvez prendre une certaine place dans la notation. Ici, vous apprendrez à travailler avec des bases de données. En parallèle, il existe du matériel pédagogique de l'auteur Moiseenko, et ils sont assez faciles à étudier.



Ensuite, vous devez étudier l'apprentissage automatique lui-même. Divers algorithmes allant de la régression linéaire à la régression logistique, en passant par le renforcement de gradient. Il y a beaucoup de matériaux ici. Ensuite, vous pouvez accéder aux réseaux de neurones - pour la vision par ordinateur, pour la PNL; vous apprendrez les réseaux de neurones convolutifs, les réseaux de neurones récurrents et les plus avancés - transformateurs, Bert, etc.



Je vais vous parler du développement de l'IA. Si vous regardez l'histoire de ce développement jusqu'en 2010, alors c'est plutôt maigre: il y a bien sûr eu de grandes réalisations en IA et dans des domaines connexes - dans le big data, par exemple, et de nombreux algorithmes mathématiques étaient prêts. Mais il n'y avait pas assez de puissance de calcul et de données pour l'IA. Depuis 2010 - ou plutôt 2012 - l'IA a explosé. En 2012, lors de l'une des compétitions, le réseau neuronal a vaincu les algorithmes de vision industrielle classiques et appris à reconnaître environ 1000 classes d'images.



Après cette réalisation, un grand écart est apparu parmi les concurrents qui utilisaient la vision par ordinateur classique, et le développement de réseaux de neurones artificiels a commencé. Diverses architectures de réseau convolutives ont émergé et une percée s'est produite dans la vision par ordinateur. Auparavant, on pensait que pour un réseau de neurones, distinguer l'image d'un chat et d'un chien était une chose très difficile, mais en 2012, les réseaux de neurones ont appris à reconnaître et à classer les images beaucoup plus rapidement et plus précisément que les humains.



De nos jours, la vision par ordinateur a fait de grands progrès. En parallèle, le traitement du langage naturel - la PNL - se développe. Avec l'avènement du modèle GPT-3, créé par OpenAI il y a quelques mois, le réseau neuronal a appris à générer du texte (ainsi que de la musique et d'autres séquences). C'est l'une des étapes majeures de la PNL - très probablement dans cette décennie, elle s'épanouira. Des chatbots apparaîtront qui pourront maintenir pleinement un dialogue avec une personne.



SQL et Python un peu. Après des cours de science des données, sans expérience, pouvez-vous trouver immédiatement un emploi de data scientist, ou devez-vous d'abord travailler en tant qu'analyste de bases de données?



Se lancer dans la science des données est plus difficile aujourd'hui qu'il y a 5 ans. Ensuite, il a été possible de participer à une compétition à Kaggle et de prendre place - pas nécessairement la toute première, par exemple, dans les 10 premiers% - dans une compétition intéressante, pas de niveau d'entraînement. Après cela, il était déjà possible d'aller dans des entreprises, de répondre à des questions simples sur l'apprentissage automatique, et une telle personne pouvait être embauchée. Il y avait peu de spécialistes.



Maintenant, tout est beaucoup plus compliqué, donc parfois cela ne fonctionne pas juste après avoir étudié l'apprentissage automatique et les mathématiques, pour obtenir le travail de vos rêves - un spécialiste de l'IA ou un scientifique des données.



Une bonne façon de procéder est de travailler d'abord avec un analyste de données, de base de données ou de données. Le fait est que vous devez apprendre à prétraiter, nettoyer les données, appliquer des statistiques. Il peut s'agir de technologies de base de données, y compris Python. Lorsque vous acquérez de l'expérience, que vous avez une formation, vous pouvez, en utilisant vos connaissances des bibliothèques de science des données en Python - Pandas, NumPy, SKLearn, postuler pour un emploi lié à l'IA ou à la science des données.



Quelle est la différence entre les spécialistes de l'IA et les data scientists?



L'IA a-t-elle besoin de C ++? Que conseilleriez-vous d'étudier pour devenir un expert en vision par ordinateur?



Il existe maintenant une division dans les postes vacants des entreprises occidentales: en plus du scientifique des données, il existe des postes vacants distincts pour les spécialistes de l'IA. Auparavant, il était entendu qu'un data scientist est une personne engagée dans l'analyse de données tabulaires, de tâches de vision par ordinateur et de tâches PNL. Il y avait aussi un poste d'analyste de données vacant - il payait moins, même s'il était également assez prestigieux; une telle personne devait analyser des données, mais ne pas aller trop loin dans l'IA liée à la parole, au texte et aux images, travaillant principalement avec des données tabulaires. Ensuite, il y avait un mélange de postes vacants: dans la vallée, tous les analystes de données étaient appelés data scientists, y compris ceux qui ne travaillent qu'avec des données tabulaires, et ceux qui travaillent avec la PNL et la vision par ordinateur. Et en même temps, un peu plus tard, ils ont commencé à affecter un spécialiste de l'IA distinct.Les entreprises russes n'ont généralement pas de telles divisions, bien qu'il y ait parfois des postes vacants spécialisés - par exemple, "Ingénieur PNL / vision par ordinateur". Il est souhaitable qu'un data scientist soit capable de tout faire petit à petit.



A propos de C ++: le plus basique est Python. Autrement dit, si vous êtes un spécialiste de l'IA, vous devez utiliser TensorFLow, Keras ou PyTorch - cela vient en premier maintenant. Mais si vous écrivez plus de programmes de bas niveau - par exemple, si le travail est lié à des véhicules robotiques, vous aurez souvent besoin de code C ++. Python n'est pas toujours rapide. Les bibliothèques pour l'apprentissage automatique sont généralement écrites en C ++, mais parfois vous devez écrire le programme entier en C ++: en plus des modèles eux-mêmes, la logique (if-else, etc.) peut fonctionner, et en C ++, cela fonctionne plus rapidement. Bien sûr, il est difficile d'arriver immédiatement à un tel poste vacant, et il est préférable de travailler d'abord pour un poste où il y aura suffisamment de Python - par exemple, où il existe une analyse des médias sociaux avec analyse d'image, sans nécessiter de traitement rapide.



Pour devenir un spécialiste, vous devez apprendre à travailler avec des bibliothèques pour les réseaux de neurones, étudier la bibliothèque OpenCV pour Python - elle est également disponible pour C ++. Cela vous donnera la boîte à outils. Il est également souhaitable de pouvoir travailler avec la bibliothèque NumPy, comprendre les mathématiques mêmes de l'analyse d'images - c'est-à-dire comprendre l'algèbre linéaire et le calcul, et également connaître l'architecture des réseaux de neurones. Etc.



Pourquoi les entretiens ML posent-ils des questions sur la résolution des conflits dans une table de hachage?



Pourquoi est-ce un marqueur d'embauche alors que vous pouvez le rechercher sur Google en cours de route?



Tous les postes vacants ne le demandent pas. Si vous accédez à l'analyse de données tabulaires, il est peu probable que vous y soyez invité. Ils vous demanderont certainement si vous postulez pour le poste d'ingénieur ML: c'est-à-dire que vous ne créez pas seulement des modèles ML, vous les implémentez également et vous devez connaître les algorithmes et les structures de données. Et si vous développez quelque chose comme une voiture robotique, alors plus encore: vous devrez y écrire du code de haut et de bas niveau, et cette connaissance est indispensable. Et parfois, cette connaissance est requise dans l'analyse des données tabulaires - disons que vous écrivez un module pour cela en C ++.

Si vous n'êtes pas encore prêt pour ces postes vacants, vous pouvez passer d'autres entretiens. Par exemple, si vous allez chercher un emploi de data scientist dans une banque, il y aura moins de questions de ce type.



J'écris en Python depuis 10 ans, mais pas d'enseignement supérieur. Est-il difficile d'entrer dans le domaine de l'IA sans être intelligent?



Des mathématiques supérieures sont nécessaires. Vous devrez suivre des cours ou étudier la littérature, et ce sera un long processus. Vous aurez besoin d'une formation en algèbre linéaire, en calcul, en théorie des probabilités et en statistiques mathématiques. Le programme scolaire habituel n'est clairement pas suffisant pour étudier l'IA; Bien sûr, les programmes sont différents - dans certaines écoles et en 10e année, les sujets des universités sont couverts, mais cela se produit rarement.



Événements de formation Pandas, SKLearn, Catboost, Seaborn, Kaggle - 3% et 13%. Dois-je plonger dans DL, ou puis-je déjà chercher un emploi?



Les bibliothèques vont déjà bien; vous disposez déjà de Pandas, une bibliothèque pour travailler avec des données tabulaires, et SKLearn, pour les modèles d'apprentissage automatique, et Catboost, pour l'amplification de gradient, et Seaborn, pour le rendu. Les résultats sont de 3% et 13% - cela signifie que s'il ne s'agit pas d'une compétition d'entraînement, alors avec de tels résultats, vous devriez déjà avoir une sorte de médaille.



Le Deep Learning n'est pas toujours nécessaire. Vous essayez peut-être déjà de chercher un emploi, je pense. Mais, si vous devez travailler avec DL, vous devez toujours enseigner les réseaux de neurones.



Quel est le livre de base à lire?



Je vais montrer mes livres à la fin du flux. J'ai choisi l'ensemble de base, rien de particulièrement avancé.



Dans quelle mesure ces professions sont-elles actuellement demandées? Y aura-t-il de nombreux postes vacants dans 2 ans?



Si vous vous souvenez de 2015-16, par exemple, il n'y avait pas plus de 5 à 10 postes vacants de data scientist chez Headhunter. Autrement dit, il y avait un marché presque vide. Bien sûr, il y a eu un changement de nom des analystes en data scientist, mais ce n'était pas non plus suffisant.



Maintenant, cela prend plusieurs centaines à la fois, si vous regardez le même site. Ils disent qu'il y a des postes vacants qui ne sont pas là. Par exemple, sur ODS - OpenDataScience - si vous regardez, il y a une section de vacance séparée. En général, si les vacances ne se terminent pas, je pense que dans 2 ans, il n'y en aura que plus. Non seulement les grandes entreprises sont engagées dans ce domaine: il y a des startups, des petites entreprises; Les spécialistes des données sont désormais nécessaires dans les agences gouvernementales - par exemple, dans divers services municipaux, dans le service des impôts, etc.



Dans quel secteur l'IA est-elle la plus demandée?



L'application la plus simple de l'IA, où son utilisation explicite peut automatiser une grande quantité de travail mental de spécialistes, se trouve dans le secteur financier. Il existe un grand nombre de banques. Chacun d'eux doit, par exemple, évaluer la solvabilité des emprunteurs - c'est-à-dire déterminer selon divers critères s'il vaut la peine d'octroyer un prêt, si une personne surestime sa force et si elle sera en mesure de rembourser le prêt. C'est l'utilisation la plus évidente de l'IA.



Puis le marketing, la construction de campagnes publicitaires: c'est-à-dire quand il faut prédire si une personne va regarder une publicité (sur Internet, à la télévision, etc.). C'est aussi une direction développée, il est impossible de ne pas l'automatiser à l'aide de l'IA. De plus, la robotisation se développe maintenant: il n'y a pas seulement des robots industriels, mais aussi des robots ménagers - des aspirateurs robotiques et d'autres accessoires pour la maison, qui sont également développés par quelqu'un. Ou diverses applications pour un smartphone - en général, il existe de nombreuses industries, allant de l'industrie, la médecine, la vente au détail, la finance, le marketing et se terminant par le divertissement. Par exemple, l'IA peut également être utilisée dans les jeux.



Une centaine de plus appréciés pour postuler à un emploi en science des données: connaissance des mathématiques, compréhension d'algorithmes spécifiques, expérience de travail?



Il est titulaire d'un master technique et d'un an de travail en tant qu'analyste de données dans le conseil.



Vous avez une bonne formation - une université technique, une année de travail en tant qu'analyste de données. Si vous avez déjà étudié la technologie et savez programmer, il est facile de se lancer dans la science des données. Si vous avez travaillé dans l'analyse de bases de données et connaissez SQL, c'est un gros plus, et si vous ajoutez la programmation et l'apprentissage automatique, c'est un très bon ensemble.



Je vais parler de la façon dont je construis des modèles d'apprentissage automatique au travail. L'entreprise pour laquelle je travaille est Dentsu Aegis, une entreprise très connue, en particulier parmi ceux qui travaillent dans le marketing. C'est un des 5 premiers groupes de communication au monde; il a son siège à Tokyo et possède des bureaux dans 145 pays. Branche russe - Dentsu Aegis Network Russia. Il travaille en Russie depuis 25 ans et est un pionnier des innovations médiatiques.



Je vais vous parler du domaine dont je suis responsable en tant que data scientist. C'est exactement l'application dont j'ai parlé comme étant la plus évidente dans l'application pratique. L'intelligence artificielle dans le marketing permet d'automatiser de nombreuses tâches des spécialistes, et l'une d'elles consiste à prédire comment différents types de contenu seront vus par différents publics cibles. Je vais vous en dire plus sur l'une de mes tâches immédiates - la prévision de la télévision.



L'audience peut être de plusieurs centaines, et pour les prévoir manuellement, le travail de dizaines de spécialistes serait nécessaire. C'est écrasant. Une très grande quantité de données - jusqu'à des milliards de lignes dans les tableaux. Vous devez non seulement créer un modèle d'apprentissage automatique, mais aussi le faire fonctionner rapidement. Pour un tel travail, il faut bien connaître les bases de données relationnelles et non relationnelles, travailler avec Linux, avoir des compétences en devops et comprendre généralement l'architecture de l'application, l'infrastructure informatique de l'entreprise, bien connaître Python, éventuellement C ++.

Lorsque nous construisons une prédiction des vues télévisées, nous utilisons des méthodes modernes d'apprentissage automatique. Pour les données tabulaires, il s'agit de l'augmentation de gradient et de la forêt aléatoire. Si le texte est analysé, nous utilisons des réseaux de neurones; en plus d'eux - modélisation de sujets, TF-IDF et autres méthodes PNL courantes.



Nous utilisons l'augmentation de gradient car si nous prédisons à l'aide de données tabulaires, l'augmentation de gradient est en avance sur tous les algorithmes connus pour travailler avec de telles données. À Kaggle, à partir de 2018, toutes les principales réalisations des compétitions utilisant des données tabulaires ont été réalisées avec précision à l'aide du renforcement du gradient. La plupart des kegglers sont ensuite passés à XGBoost - c'était la première bibliothèque connue pour le renforcement de gradient, et plus tard, beaucoup ont maîtrisé LightGBM de Microsoft ou CatBoost de Yandex. Pour la tâche de prévision des vues télévisées, l'utilisation de séries chronologiques est également bien adaptée, mais ces méthodes ne fonctionnent pas toujours bien - des événements inattendus apparaissent périodiquement et doivent être traités ou anticipés à temps. Parfois, il y a de grandes périodes anormales - de plusieurs jours à plusieurs mois: par exemple,La Coupe du Monde de la FIFA 2018 a eu un grand impact sur les vues. La quarantaine est également devenue une période anormale: les gens ont commencé à passer plus de temps à la maison et à regarder davantage la télévision. Cela aussi doit être pris en compte, anticipé. En général, cette période est une sorte de défi pour l'apprentissage automatique et l'IA, car vous devez constamment surveiller les modèles et les contrôler pour qu'ils fonctionnent correctement. En plus des périodes anormales, les prévisions sont influencées par les jours fériés, les conditions météorologiques, les changements de tendances dans les vues de programmes et de chaînes spécifiques. De ce fait, les modèles se révèlent assez complexes, car il faut prendre en compte toutes les options possibles, prendre en compte ou anticiper les anomalies et les écarts.Cela aussi doit être pris en compte, anticipé. En général, cette période est une sorte de défi pour l'apprentissage automatique et l'IA, car vous devez constamment surveiller les modèles et les contrôler pour qu'ils fonctionnent correctement. En plus des périodes anormales, les prévisions sont influencées par les vacances, les conditions météorologiques, les changements de tendances dans les vues de programmes et de chaînes spécifiques. De ce fait, les modèles se révèlent assez complexes, car il faut prendre en compte toutes les options possibles, prendre en compte ou anticiper les anomalies et les écarts.Cela aussi doit être pris en compte, anticipé. En général, cette période est une sorte de défi pour l'apprentissage automatique et l'IA, car vous devez constamment surveiller les modèles et les contrôler pour qu'ils fonctionnent correctement. En plus des périodes anormales, les prévisions sont influencées par les vacances, les conditions météorologiques, les changements de tendances dans les vues de programmes et de chaînes spécifiques. De ce fait, les modèles se révèlent assez complexes, car il faut prendre en compte toutes les options possibles, prendre en compte ou anticiper les anomalies et les écarts.les changements dans les tendances des vues de programmes et de chaînes spécifiques. De ce fait, les modèles se révèlent assez complexes, car il faut prendre en compte toutes les options possibles, prendre en compte ou anticiper les anomalies et les écarts.les changements dans les tendances des vues de programmes et de chaînes spécifiques. De ce fait, les modèles se révèlent assez complexes, car il faut prendre en compte toutes les options possibles, prendre en compte ou anticiper les anomalies et les écarts.



Naturellement, les modèles ne sont pas laissés à eux-mêmes - les tests, les réglages fins, la surveillance sont constamment en cours. Mais ce ne sont pas seulement les modèles qui comptent: une autre étape importante est la création de fonctionnalités. Premièrement, ce sont des signes liés à l'heure du spectacle: heure de la journée, jour de la semaine, saison, etc. Deuxièmement, il existe des attributs liés au contenu. Dans le même temps, il faut comprendre que si le programme est diffusé la nuit, alors, quel que soit le contenu intéressant, il n'y aura pas plus de vues qu'aux heures de grande écoute. L'importance des fonctionnalités peut varier, mais différents publics choisiront un contenu différent. Cela peut dépendre du sexe, de l'âge, du statut social.



L'une des étapes les plus chronophages de l'utilisation des données est l'ingénierie des fonctionnalités: traitement ou création d'entités. Cette partie de la science des données nécessite beaucoup d'expérience: soit il n'y a pas de recettes connues à l'avance, soit elles sont trop simples, et vous devez trouver des moyens de préparer les fonctionnalités à la volée.



Parfois, il y a des curiosités dans les données: disons que le spectateur allume la télévision le soir et s'endort. Il s'avère qu'il a regardé des programmes toute la nuit. Ceci est un exemple de bruit dans les données - les données semblent exactes, mais elles ne semblent pas l'être, et vous devez apprendre à deviner, bien que ce soit difficile. De plus, très peu de publicités sont généralement diffusées la nuit.



Lorsque nous construisons un modèle, nous devons non seulement le faire fonctionner, mais également fournir des tests et une surveillance. Pour cela, nous avons besoin de métriques. Puisque nous avons un problème de régression, notre ensemble de métriques sera différent de l'ensemble de classification, par exemple. Ce sont l'erreur quadratique moyenne et le coefficient de détermination - ils sont tous très importants. Il existe également des métriques que vous devez créer vous-même pour résoudre un certain problème commercial - par exemple, le problème de l'optimisation des coûts d'une campagne publicitaire. Dans ce cas, nous devons prédire non seulement la cote télévisée, mais également la couverture de la campagne publicitaire; nous travaillons non seulement avec l'apprentissage automatique, mais aussi avec des méthodes statistiques et économétriques complexes. C'est le cas lorsque la connaissance du machine learning ne suffit pas: elle nécessite du calcul, de l'algèbre linéaire, des méthodes d'optimisation mathématique.Contrairement aux tâches d'apprentissage automatique courantes - régression, classification, clustering - ici, vous devez trouver vos propres méthodes, et la programmation seule ne suffit pas.



Je voudrais mentionner le programme de la Higher School of Economics - Data-Driven Communications. J'ai dû aider les étudiants sur ce programme en cours de route, ils sont engagés dans le marketing et les sujets liés à l'apprentissage automatique. En fait, qu'est-ce que l'apprentissage automatique et la science des données pour un marketeur? Auparavant, on ne s'attendait pas à ce qu'un spécialiste dans ce domaine programme et fabrique des modèles complexes, mais c'est maintenant une compétence qui présente des avantages sur le marché du travail. Si un spécialiste, en plus de son métier, maîtrise la science des données, alors il a l'opportunité soit de changer de métier et de devenir data scientist, soit de continuer à se développer dans son domaine, mais avec de grands avantages compétitifs. Un expert en apprentissage automatique sera en mesure de faire des prédictions plus précises, mais cela demandera beaucoup d'apprentissage.



Vaut-il la peine de prêter attention au cours MIPT / Yandex Data Science, ou peut-être de se tourner vers Udacity?



Si je comprends bien, vous voulez dire un cours du MIPT / Yandex sur Coursera. Udacity est une plateforme d'apprentissage autonome; il n'y a pas que la science des données, bien qu'une grande partie des cours soit destinée à l'IA et à la science des données. Je recommande de ne pas s'attarder sur une seule ressource, mais d'essayer plusieurs cours. Les cours ne coïncident pas à 100%, vous pouvez toujours trouver quelque chose de nouveau que vous ne saviez pas auparavant. Le nouveau cours peut également être utilisé pour la répétition. Par exemple, des cours sur GeekBrains dans nos départements d'IA, d'ingénierie de données et d'analyse de big data. Puisque je suis leur doyen et leur professeur, je peux vous en dire plus sur eux.



Les cours sont combinés en facultés - par exemple, la faculté d'intelligence artificielle a 17 cours, plus 8 cours supplémentaires. Presque tous les cours ont des travaux pratiques en tant que projet final. Ainsi, un spécialiste qui y apprend se pratique. Je recommande non seulement d'étudier la théorie, mais de faire des projets: de bonnes compétences pratiques vous rapprocheront de l'entrevue et du démarrage d'une carrière.



J'ai moi-même étudié il y a quelque temps à Udacity - j'ai suivi un cours sur les véhicules robotiques, très long, il était prévu que ce soit 9 mois, mais le cours a duré environ un an. J'ai vraiment beaucoup appris, les impressions de la plateforme sont positives. Mais, bien sûr, tous les cours y sont dispensés en anglais.



Comment prendre en compte les anomalies dans les séries chronologiques et peuvent-elles être supprimées?



Un processus désagréable. Il n'y a pas de recette toute faite pour cela - vous avez besoin d'un grand nombre de tests. Plus précisément, il existe des modèles prêts à l'emploi, mais ils sont conçus uniquement pour détecter des anomalies du passé, et ils doivent non seulement être détectés, mais aussi anticipés.



Pour de tels cas, il existe différents développements, mais vous devez les créer vous-même. Le plus important est de déterminer ce qui se passera dans le futur: par exemple, une augmentation de l'écoute de la télévision sur certaines chaînes et programmes. Au fil du temps, ces données retournent dans les données d'entraînement et doivent être traitées de la bonne manière.



Même s'il n'y a pas d'anomalies dans le futur, des anomalies passées peuvent affecter votre pronostic. Il existe de nombreuses méthodes ici; le plus simple est de supprimer les données anormales, mais s'il y en a beaucoup, cela peut conduire à la perte de toute une période de la série chronologique, donc cette méthode n'est pas toujours appropriée.



Comment décrocher un emploi sans expérience avérée?



Une bonne expérience est vos projets. Autrement dit, si vous n'enseignez pas seulement la théorie, mais réalisez immédiatement un projet - de préférence sous la direction d'un mentor (une personne ayant de l'expérience en science des données et en IA) - alors vous savez ce que vous faites. Vous savez non seulement appliquer la théorie ou appliquer un modèle à des données trouvées sur Internet, mais aussi résoudre des problèmes pratiques. Lorsque vous travaillez sur de tels projets, vous acquérez des connaissances qui ne peuvent être obtenues à partir de livres et de cours, et l'aide d'un mentor est inestimable ici.



Parlons de livres - j'ai préparé une petite pile.



Si vous travaillez dans la science des données, vous devrez probablement travailler dans un environnement Linux. En même temps, vous ne serez pas un administrateur - c'est-à-dire que vous n'aurez pas besoin de connaissances trop approfondies - mais une connaissance confiante de cette plateforme pour de simples tâches administratives (planification du lancement de scripts ou élimination des ressources du système d'exploitation) sera nécessaire. C'est là que le livre "LINUX - Pocket Guide" de Scott Granneman vous aidera. Il peut être étudié en quelques jours.



Sur la théorie des probabilités, je recommanderais le livre de GG Bitner "Théorie des probabilités" - il contient à la fois de la théorie et des problèmes. La théorie des probabilités sera utile pour les entretiens et le travail.

Toute personne travaillant dans l'informatique a besoin d'un minimum de connaissances et de compétences. En conséquence, le livre "Le minimum théorique en informatique - tout ce qu'un programmeur et développeur a besoin de savoir" (Philo Vladston Ferreira) est un programme éducatif en informatique.



Si vous vous lancez dans la programmation et le développement de bas niveau, vous aurez besoin d'algorithmes. Dans le livre "Algorithmes pour débutants - Théorie et pratique pour un développeur" de Panos Luridas, les algorithmes sont donnés sans référence à un langage spécifique. Il existe un livre plus long pour C ++ - "Algorithms in C ++" de Robert Sedgwick; il est utile lorsque vous souhaitez éliminer certaines des opérations de haut niveau de Python et créer des algorithmes à partir de zéro.



Si vous voulez avoir une idée générale du travail de haut niveau d'un data scientist, alors le livre "Travailler avec des données dans n'importe quel domaine - comment atteindre un nouveau niveau en utilisant l'analyse" de Kirill Eremenko est pour vous. Il n'y a pas de programmation ici. Mais, si vous êtes déjà un expert, cela ne vous sera utile que si vous n'avez pas encore travaillé avec des données.

Suivant: «Data Science. Data Science from Scratch de Joel Grasz est également un livre utile. De la même publication - «Statistiques pratiques pour les professionnels de la science des données. 50 concepts essentiels »par Peter Bruce et Andrew Bruce. Vous pouvez également étudier les statistiques ici.



Si vous comptez travailler avec des données en Python et utiliser la bibliothèque Pandas, vous avez certainement besoin de "Python and Data Analysis" de Wes McKinney - l'auteur de la bibliothèque Pandas elle-même.

Concernant l'apprentissage automatique, je recommande deux livres: Machine Learning de Peter Flach et Python et Machine Learning de Sebastian Raska.



Pour l'apprentissage en profondeur, il y a le livre Deep Learning in Python de François Schollet, où vous pouvez étudier les réseaux de neurones pour les problèmes de PNL et de vision par ordinateur. Plus précisément sur la PNL, il existe une «analyse appliquée des données textuelles en Python» - Benjamin Bengford, Rebecca Belbrough et Tony Ojeda.



Si vous souhaitez apprendre TensorFlow pour un apprentissage en profondeur, il existe un livre du même nom de Bharat Ramsundar et Reza Bosag Zade.



Il existe également un livre qui explique simplement et clairement les principes des réseaux de neurones - le livre d'Andrew Trask "Grock Deep Learning". Il existe également des «algorithmes de Grock» - cela explique bien les algorithmes qui peuvent être utiles dans les entretiens et dans la pratique.



Que demandez-vous dans les entretiens?



Il y a une petite collection de questions. Il y a des questions sur l'apprentissage automatique classique - un spécialiste qui obtient un emploi dans le domaine de la science des données et de l'IA devrait savoir comment fonctionnent les modèles d'apprentissage automatique classiques: régression linéaire, logistique, descente de gradient, régularisation L1-L2. Il est nécessaire qu'une personne parle du principe de fonctionnement des arbres de décision, du critère du contenu de l'information pour les problèmes de classification et de régression; pour qu'une personne sache comment fonctionne la forêt aléatoire, le renforcement du gradient fonctionne. C'est très bien s'il connaît les différences entre les modèles d'amplification de gradient - Catboost, LightGBM, XGBoost - c'est-à-dire en quoi ces bibliothèques diffèrent, comment l'amplification de gradient y est implémentée. Vous avez également besoin d'une personne pour posséder des bibliothèques d'apprentissage automatique - Pandas, NumPy, SKLearn. Si un spécialiste a besoin de travailler avec des réseaux de neurones, avec la vision par ordinateur, avec la PNL,puis il y aura des questions sur ces sujets.

Il peut y avoir beaucoup de questions. Si une personne répond bien, alors il est intéressant de lui poser des questions sur certains de ses projets - si une personne a fait quelque chose, la personne interrogée a immédiatement de nombreuses questions liées aux projets. Si vous avez des projets personnels sur GitHub, ou des projets éducatifs issus de cours, ce sera très bien si vous êtes capable de parler en détail des technologies et des algorithmes que vous avez utilisés.



De plus, pendant l'entretien, vous pouvez poser différentes questions de base. Habituellement, si une personne y répond bien, c'est probablement un bon spécialiste. Bien sûr, il est important qu'il soit capable de terminer la tâche de test. La théorie est une chose, mais comment une personne peut résoudre un problème pratique, le programmer, quel code il écrira est également important. Si une personne connaît toute la théorie, mais envoie un code dans lequel l'OP n'est pas utilisé en cas de besoin, alors elle ne sait pas comment appliquer correctement la théorie. De plus, bien sûr, le code lui-même doit être lisible et commenté.



Je voulais aussi parler de l'informatique quantique, l'apprentissage machine quantique est un autre domaine de mon intérêt, mais aujourd'hui je n'aurai pas le temps.



Que faut-il écrire sur le CV pour recevoir une invitation à une entrevue?



Un CV est un moment crucial. Premièrement, il ne doit pas être gonflé en volume: il ne doit contenir que l’expérience pertinente. Si vous avez travaillé dans une spécialité non liée à l'informatique, cela n'est pas nécessaire. Listez vos réalisations en bref, projets, cours suivis, pertinents pour le poste vacant. Écrivez ce qui vous montre en tant que spécialiste capable de faire le travail. Et, bien sûr, le résumé doit être lisible.




Qu'est-il arrivé avant



  1. Ilona Papava, ingénieur logiciel senior chez Facebook - comment obtenir un stage, obtenir une offre et tout sur le travail en entreprise
  2. Boris Yangel, ingénieur Yandex ML - Comment ne pas rejoindre les rangs des spécialistes stupides si vous êtes un Data Scientist
  3. Alexander Kaloshin, EO LastBackend - comment lancer une startup, entrer sur le marché chinois et obtenir 15 millions d'investissements.
  4. , Vue.js core team member, GoogleDevExpret — GitLab, Vue Staff-engineer.
  5. , DeviceLock — .
  6. , RUVDS — . 1. 2.
  7. , - . — .
  8. , Senior Digital Analyst McKinsey Digital Labs — Google, .
  9. «» , Duke Nukem 3D, SiN, Blood — , .
  10. , - 12- — ,
  11. , GameAcademy — .
  12. , PHP- Badoo — Highload PHP Badoo.
  13. , CTO Delivery Club — 50 43 ,
  14. , Doom, Quake Wolfenstein 3D — , DOOM
  15. , Flipper Zero —
  16. , - Google — Google-
  17. .
  18. Data Science ? Unity









All Articles