O guia definitivo para uma carreira de IA: como escolher um curso principal, subir de nível e encontrar um emprego legal





Em 3 de agosto, Sergey Shirkin, especialista em ML e inteligência artificial, falou em nossas redes sociais.



Sergey esteve envolvido na automação de tecnologias financeiras e bancos de dados no Sberbank e Rosbank, criando modelos financeiros baseados em aprendizado de máquina e trabalho analítico na Equifax. Prevê a exibição de TV usando métodos de inteligência artificial na Dentsu Aegis Network Russia. Professor convidado na Escola Superior de Economia (Programa de Mestrado em Comunicação Orientada a Dados).



Sergey também explora a computação quântica aplicada à IA e ao aprendizado de máquina. Ele está na vanguarda das faculdades de Inteligência Artificial, Big Data Analytics e Engenharia de Dados na Geek University, onde trabalha como reitor e professor.



Compartilhamos com vocês a transcrição da transmissão e da gravação.



***



Meu nome é Sergey Shirkin, hoje falaremos sobre inteligência artificial. Discutiremos os caminhos iniciais - como entrar na inteligência artificial, como aprender as matérias necessárias, quais cursos fazer, que literatura ler, como começar uma carreira. Também sobre várias direções.



Os tópicos de hoje podem ser interessantes não apenas para iniciantes, mas também para programadores experientes - por exemplo, como passar do campo da programação para o campo do aprendizado de máquina, inteligência artificial e redes neurais. Dependendo de qual tecnologia uma pessoa está envolvida e quais idiomas ela aprende, a transição prática para essa área pode ocorrer de maneiras diferentes. Existem muitas especialidades em IA.



Recomenda materiais para autoimersão em IA?



Se você for um iniciante, é melhor começar aprendendo Python. Uma maneira rápida de fazer isso, como já vi com outros novatos, é PythonTutor.ru. Lá você precisa estudar a teoria e resolver problemas - pelo menos 70 por cento. Os problemas podem parecer difíceis se você não programou antes.



O próximo passo é a linguagem de consulta SQL, e o site SQL-EX.ru vai ajudar aqui: há exercícios de SQL. Estão organizados por fases: fase de treino, fase de obtenção de uma classificação - pode ocupar um determinado lugar na classificação. Aqui você aprenderá a trabalhar com bancos de dados. Paralelamente, existem materiais de treinamento do autor Moiseenko e são bastante fáceis de aprender.



Em seguida, você precisa estudar o próprio aprendizado de máquina. Vários algoritmos que vão desde regressão linear, regressão logística, até o aumento de gradiente. Existem muitos materiais aqui. Então você pode ir para as redes neurais - para visão computacional, para PNL; você aprenderá redes neurais recorrentes e convolucionais e as mais avançadas - transformadores, Bert, etc.



Vou falar sobre o desenvolvimento da IA. Se você olhar para a história desse desenvolvimento antes de 2010, então ela é bastante escassa: houve, é claro, algumas grandes conquistas em IA e em campos relacionados - em big data, por exemplo, e muitos algoritmos matemáticos estavam prontos. Mas não havia poder de computação e dados suficientes para IA. Desde 2010 - ou melhor, 2012 - a IA explodiu. Em 2012, em uma das competições, a rede neural derrotou algoritmos clássicos de visão de máquina e aprendeu a reconhecer cerca de 1000 classes de imagens.



Após essa conquista, surgiu uma grande lacuna de concorrentes que usavam a visão computacional clássica, e o desenvolvimento de redes neurais artificiais começou. Várias arquiteturas de rede convolucionais surgiram e um avanço ocorreu na visão computacional. Anteriormente, acreditava-se que para uma rede neural distinguir entre a imagem de um gato e de um cachorro é uma coisa muito difícil, mas em 2012, as redes neurais aprenderam a reconhecer e classificar imagens com muito mais rapidez e precisão do que humanos.



Hoje em dia, a visão computacional tem feito grandes avanços. Paralelamente, o processamento de linguagem natural - PNL está se desenvolvendo. Com o advento do modelo GPT-3, que foi criado pela OpenAI há alguns meses, a rede neural aprendeu a gerar texto (bem como música e outras sequências). Este é um dos principais passos da PNL - provavelmente nesta década ela florescerá. Aparecerão bots de bate-papo que serão capazes de manter um diálogo completo com uma pessoa.



SQL e Python um pouco. Depois dos cursos de ciência de dados, sem experiência, você consegue imediatamente um emprego como cientista de dados ou precisa primeiro trabalhar como analista de banco de dados?



Entrar na ciência de dados é mais difícil agora do que há 5 anos. Então foi possível participar de alguma competição no Kaggle e conseguir um lugar - não necessariamente o primeiro, por exemplo, nos primeiros 10% - em alguma competição interessante, não um nível de treinamento. Depois disso, já era possível ir às empresas, tirar dúvidas simples sobre aprendizado de máquina, e essa pessoa poderia ser contratada. Havia poucos especialistas.



Agora tudo é muito mais complicado, então às vezes não funciona logo depois de você ter estudado aprendizado de máquina e matemática para conseguir o emprego dos seus sonhos - um especialista em IA ou cientista de dados.



Uma boa maneira de fazer isso é trabalhar primeiro com um analista de dados, analista de banco de dados ou analista de dados. O fato é que você tem que aprender como pré-processar, limpar dados, aplicar estatísticas. Essas podem ser tecnologias de banco de dados, incluindo Python. Quando você ganha experiência, tem uma formação, então você pode, usando seu conhecimento de bibliotecas de ciência de dados em Python - Pandas, NumPy, SKLearn, se candidatar a um emprego relacionado a IA ou ciência de dados.



Qual é a diferença entre especialistas em IA e cientistas de dados?



AI precisa de C ++? O que você recomenda estudar para se tornar um especialista em visão computacional?



Agora há uma divisão nas vagas das empresas ocidentais: além do cientista de dados, há vagas separadas para especialistas em IA. Anteriormente, era entendido que um cientista de dados é uma pessoa que está envolvida na análise de dados tabulares e tarefas de visão computacional e tarefas de PNL. Havia também uma vaga de analista de dados - pagava menos, embora também tivesse bastante prestígio; tal pessoa tinha que analisar os dados, mas não se aprofundar muito na IA relacionada à fala, texto e imagens, trabalhando principalmente com dados tabulares. Em seguida, havia uma mistura de vagas: no Valley, todos os analistas de dados eram chamados de cientistas de dados, incluindo aqueles que trabalham apenas com dados tabulares e aqueles que trabalham com PNL e visão computacional. E, ao mesmo tempo, um pouco mais tarde, eles começaram a designar um especialista em IA separado.As empresas russas geralmente não têm essas divisões, embora às vezes haja vagas especializadas - por exemplo, "PNL / engenheiro de visão computacional". É desejável que um cientista de dados seja capaz de fazer tudo aos poucos.



Sobre C ++: o mais básico é o Python. Ou seja, se você é um especialista em IA, deve usar TensorFLow, Keras ou PyTorch - agora vem primeiro. Mas se você escrever mais programas de baixo nível - por exemplo, se o trabalho estiver relacionado a veículos robóticos, então você freqüentemente precisará do código C ++. Python nem sempre é rápido. Bibliotecas para aprendizado de máquina geralmente são escritas em C ++, mas às vezes você precisa escrever o programa inteiro em C ++: além dos próprios modelos, a lógica (if-else, etc.) pode funcionar e em C ++ ela funciona mais rápido. Claro, é difícil chegar imediatamente a tal vaga, e é melhor primeiro trabalhar por uma onde haverá Python suficiente - por exemplo, onde houver análise de mídia social com análise de imagem, sem a necessidade de processamento rápido.



Para se tornar um especialista, você precisa aprender a trabalhar com bibliotecas para redes neurais, estudar a biblioteca OpenCV para Python - ela também está disponível para C ++. Isso lhe dará a caixa de ferramentas. Também é desejável ser capaz de trabalhar com a biblioteca NumPy, entender a própria matemática da análise de imagens - isto é, entender álgebra linear e cálculo, e também conhecer a arquitetura das redes neurais. Etc.



Por que as entrevistas de ML fazem perguntas sobre como resolver conflitos em uma tabela hash?



Por que isso é um marcador de contratação quando você pode pesquisar no Google ao longo do caminho?



Nem toda vaga pede isso. Se você for para a análise de dados tabulares, é improvável que seja solicitado. Eles certamente perguntarão se você está se candidatando ao lugar de um engenheiro de ML: ou seja, você não apenas cria modelos de ML, também os implementa e precisa conhecer algoritmos e estruturas de dados. E se você está desenvolvendo algo como um carro robótico, então ainda mais: lá você tem que escrever código de alto e baixo nível, e esse conhecimento é uma obrigação. E às vezes esse conhecimento é necessário na análise de dados tabulares - digamos que você escreva um módulo para isso em C ++.

Se você ainda não está pronto para essas vagas, pode fazer mais entrevistas. Por exemplo, se você for conseguir um emprego como cientista de dados em um banco, haverá menos perguntas desse tipo.



Escrevo em Python há 10 anos, mas não tenho ensino superior. É difícil entrar no reino da IA ​​sem ser inteligente?



É necessária matemática superior. Você terá que fazer cursos ou estudar literatura, e este será um processo longo. Você precisará de treinamento em álgebra linear, cálculo, teoria da probabilidade e estatística matemática. O currículo escolar normal claramente não é suficiente para estudar IA; Claro, os programas são diferentes - em algumas escolas e no 10º ano, são abordados tópicos das universidades, mas isso raramente acontece.



Eventos de treinamento Pandas, SKLearn, Catboost, Seaborn, Kaggle - 3% e 13%. Preciso mergulhar no DL ou já posso procurar emprego?



As bibliotecas já estão indo bem; você já tem Pandas para trabalhar com dados tabulares e SKLearn para modelos de aprendizado de máquina, Catboost para aumento de gradiente e Seaborn para renderização. Os resultados são 3% e 13% - isso significa que se não se trata de uma competição de treinamento, então com esses resultados você já deve ter algum tipo de medalha.



O Deep Learning nem sempre é necessário. Você já pode estar tentando procurar um emprego, eu acho. Mas, se você precisa trabalhar com DL, ainda precisa ensinar redes neurais.



Qual é o conjunto básico de livros para ler?



Vou mostrar meus livros no final do fluxo. Escolhi o conjunto básico, nada particularmente avançado.



Até que ponto essas profissões são procuradas agora? Haverá muitas vagas em 2 anos?



Se você se lembra de 2015-16, então, por exemplo, não havia mais de 5 a 10 vagas para cientistas de dados no Headhunter. Ou seja, havia um mercado quase vazio. Claro, houve uma renomeação de analistas para cientista de dados, mas isso também não foi suficiente.



Agora, leva várias centenas de uma vez, se você olhar para o mesmo site. Dizem que tem vagas que não tem. Por exemplo, em ODS - OpenDataScience - se você olhar, há uma seção de vagas separada. Em geral, enquanto as vagas não acabam, acho que em 2 anos só vai haver mais vagas. Não são apenas as grandes empresas que estão engajadas nisso: existem startups, pequenas empresas; cientistas de dados agora são necessários em agências governamentais - por exemplo, em vários departamentos municipais, no serviço de impostos e assim por diante.



Em qual setor a IA é mais solicitada?



A aplicação mais simples da IA, onde seu uso explícito pode automatizar uma grande quantidade de trabalho mental de especialistas, é no setor financeiro. Existe um grande número de bancos. Cada um deles precisa, por exemplo, avaliar a qualidade de crédito dos tomadores - ou seja, determinar, de acordo com vários critérios, se vale a pena fazer um empréstimo, se a pessoa superestima sua força e se ela será capaz de reembolsar o empréstimo. Este é o uso mais óbvio da IA.



Depois o marketing, a construção de campanhas publicitárias: ou seja, quando é preciso prever se uma pessoa vai assistir a um anúncio (na internet, na TV etc.). Essa também é uma direção desenvolvida, é impossível não automatizá-la usando IA. Além disso, a robotização está se desenvolvendo agora: não existem apenas robôs industriais, mas também domésticos - aspiradores de pó robóticos e outros acessórios domésticos, que também estão sendo desenvolvidos por alguém. Ou vários aplicativos para um smartphone - em geral, existem muitos setores, que vão desde indústria, medicina, varejo, finanças, marketing e terminando com entretenimento. Por exemplo, a IA também pode ser usada em jogos.



Cem mais apreciados ao se candidatar a um emprego em ciência de dados: conhecimento de matemática, compreensão de algoritmos específicos, experiência de trabalho?



Possui mestrado técnico e um ano de atuação como analista de dados em consultoria.



Você tem uma boa formação - uma universidade técnica, um ano de trabalho como analista de dados. Se você já estudou tecnologia e sabe programar, entrar na ciência de dados é fácil. Se você trabalhou em análise de banco de dados e conhece SQL, isso é uma grande vantagem, e se você adiciona programação e aprendizado de máquina, este é um conjunto muito bom.



Vou falar sobre como eu construo modelos de aprendizado de máquina no trabalho. A empresa para a qual trabalho é a Dentsu Aegis, uma empresa muito conhecida, principalmente entre quem trabalha com marketing. É um dos 5 maiores grupos de comunicação do mundo; ela está sediada em Tóquio e possui escritórios em 145 países. Filial russa - Dentsu Aegis Network Russia. Ele trabalha na Rússia há 25 anos e é um pioneiro em inovações de mídia.



Vou falar sobre a área pela qual sou responsável como cientista de dados. Esta é exatamente a aplicação que mencionei como a mais óbvia na aplicação prática. A IA em marketing ajuda a automatizar muitas das tarefas dos especialistas, e uma delas é prever como diferentes tipos de conteúdo serão vistos por diferentes públicos-alvo. Vou lhe contar mais sobre uma de minhas tarefas imediatas - previsão de tempo de TV.



O público pode chegar a várias centenas e, para prevê-los manualmente, seria necessário o trabalho de dezenas de especialistas. É opressor. Uma grande quantidade de dados - até bilhões de linhas em tabelas. Você precisa se preocupar não apenas em criar um modelo de aprendizado de máquina, mas também em fazer com que ele funcione rapidamente. Para tal, você precisa conhecer bem bancos de dados relacionais e não relacionais, trabalhar com Linux, ter habilidades de devops e geralmente entender a arquitetura da aplicação, a infraestrutura de TI da empresa, conhecer bem Python, possivelmente C ++.

Quando criamos uma previsão de visualizações de TV, usamos métodos modernos de aprendizado de máquina. Para dados tabulares, estes são aumento de gradiente e floresta aleatória. Se o texto for analisado, usamos redes neurais; além deles - modelagem de tópicos, TF-IDF e outros métodos de PNL comuns.



Usamos o aumento de gradiente porque, se prevermos o uso de dados tabulares, o aumento de gradiente estará à frente de todos os algoritmos conhecidos para trabalhar com esses dados. No Kaggle, a partir de 2018, todas as principais conquistas em competições usando dados tabulares foram alcançadas precisamente com a ajuda do aumento de gradiente. A maioria dos kegglers então mudou para XGBoost - foi a primeira biblioteca conhecida para aumento de gradiente, e mais tarde muitos dominaram LightGBM da Microsoft ou CatBoost da Yandex. Para a tarefa de prever visualizações de TV, o uso de séries temporais também é adequado, mas tais métodos nem sempre funcionam bem - eventos inesperados aparecem periodicamente e precisam ser respondidos ou antecipados a tempo. Às vezes, há grandes períodos anormais - de vários dias a meses: por exemplo,A Copa do Mundo FIFA 2018 teve um grande impacto nas visualizações. A quarentena também se tornou um período anormal: as pessoas começaram a passar mais tempo em casa e a assistir mais TV. Isso também deve ser levado em consideração, antecipado. Em geral, esse período é uma espécie de desafio para aprendizado de máquina e IA, pois é preciso monitorar constantemente os modelos e controlá-los para que funcionem corretamente. Além de períodos anormais, a previsão é influenciada por feriados, condições meteorológicas, mudanças nas tendências nas visualizações de programas e canais específicos. Como resultado, os modelos tornam-se bastante complexos, pois é preciso levar em consideração todas as opções possíveis, levar em consideração ou antecipar anomalias e desvios.Isso também deve ser levado em consideração, antecipado. Em geral, esse período é uma espécie de desafio para o aprendizado de máquina e IA, pois é preciso monitorar constantemente os modelos e controlá-los para que funcionem corretamente. Além de períodos anormais, a previsão é influenciada por feriados, condições meteorológicas, mudanças nas tendências nas visualizações de programas e canais específicos. Como resultado, os modelos tornam-se bastante complexos, pois é necessário levar em consideração todas as opções possíveis, levar em consideração ou antecipar anomalias e desvios.Isso também deve ser levado em consideração, antecipado. Em geral, esse período é uma espécie de desafio para o aprendizado de máquina e IA, pois é preciso monitorar constantemente os modelos e controlá-los para que funcionem corretamente. Além de períodos anormais, a previsão é influenciada por feriados, condições meteorológicas, mudanças nas tendências nas visualizações de programas e canais específicos. Como resultado, os modelos tornam-se bastante complexos, pois é preciso levar em consideração todas as opções possíveis, levar em consideração ou antecipar anomalias e desvios.mudanças nas tendências nas visualizações de programas e canais específicos. Como resultado, os modelos tornam-se bastante complexos, pois é preciso levar em consideração todas as opções possíveis, levar em consideração ou antecipar anomalias e desvios.mudanças nas tendências nas visualizações de programas e canais específicos. Como resultado, os modelos tornam-se bastante complexos, pois é necessário levar em consideração todas as opções possíveis, levar em consideração ou antecipar anomalias e desvios.



Naturalmente, os modelos não são deixados sozinhos - testes, ajustes finos e monitoramento estão em andamento. Mas não são apenas os modelos que importam: outra etapa importante é a criação de recursos. Em primeiro lugar, são sinais relacionados com a hora do show: hora do dia, dia da semana, estação, etc. Em segundo lugar, existem atributos relacionados ao conteúdo. Ao mesmo tempo, é preciso entender que, se o programa for transmitido à noite, não importa o conteúdo interessante, não haverá mais visualizações do que no horário nobre. A importância dos recursos pode variar, mas públicos diferentes escolherão conteúdos diferentes. Pode depender do sexo, idade, posição social.



Um dos estágios mais demorados do trabalho com dados é a engenharia de recursos: processamento ou criação de recursos. Essa parte da ciência de dados requer muita experiência: ou não há receitas conhecidas com antecedência ou são muito simples, e você precisa encontrar maneiras de preparar os recursos imediatamente.



Às vezes, há curiosidades nos dados: digamos que o espectador liga a TV à noite e adormece. Acontece que ele assistiu a programas a noite toda. Este é um exemplo de ruído nos dados - os dados parecem ser precisos, mas não parecem ser, e você precisa aprender a adivinhar, embora seja difícil. Além disso, muito poucos anúncios são normalmente exibidos à noite.



Quando construímos um modelo, precisamos não apenas fazê-lo funcionar, mas também fornecer testes e monitoramento. Para isso, precisamos de métricas. Como temos um problema de regressão, nosso conjunto de métricas será diferente do conjunto de classificação, por exemplo. Esses são a raiz do erro quadrático médio e o coeficiente de determinação - todos são muito importantes. Existem também métricas que você mesmo deve criar para resolver um certo problema de negócios - por exemplo, o problema de otimizar os custos de uma campanha publicitária. Nesse caso, precisamos prever não apenas a classificação da TV, mas também a cobertura da campanha publicitária; trabalhamos não apenas com aprendizado de máquina, mas também com métodos estatísticos e econométricos complexos. É o caso quando o conhecimento de aprendizado de máquina não é suficiente: requer cálculo, álgebra linear, métodos de otimização matemática.Ao contrário das tarefas comuns de aprendizado de máquina - regressão, classificação, armazenamento em cluster - aqui você precisa criar seus próprios métodos, e a programação sozinha não é suficiente.



Gostaria de citar o programa da Escola Superior de Economia - Comunicações Orientadas a Dados. Tive que ajudar os alunos neste programa ao longo do caminho, eles estão envolvidos com marketing e assuntos relacionados ao aprendizado de máquina. Na verdade, o que é aprendizado de máquina e ciência de dados para um profissional de marketing? Anteriormente, não se esperava que um especialista na área pudesse programar e fazer modelos complexos, mas agora é uma habilidade que traz vantagens no mercado de trabalho. Se um especialista, além de sua profissão, domina a ciência de dados, então ele tem a oportunidade de mudar de emprego e se tornar um cientista de dados, ou continuar a se desenvolver em sua área de atuação, mas com grandes vantagens competitivas. O especialista em aprendizado de máquina poderá fazer previsões mais precisas, mas isso exigirá muito aprendizado.



Vale a pena prestar atenção no curso MIPT / Yandex Data Science, ou talvez olhar para a Udacity?



Pelo que entendi, você quer dizer um curso do MIPT / Yandex no Coursera. Udacity é uma plataforma de aprendizagem autônoma; não existe apenas ciência de dados, embora boa parte dos cursos seja voltada para IA e ciência de dados. Eu recomendo não ficar em um recurso, mas tentar vários cursos. Os cursos não coincidem 100%, você sempre pode encontrar algo novo que não conhecia antes. Além disso, o novo curso pode ser usado para repetição. Por exemplo, cursos sobre GeekBrains em nossos departamentos de IA, engenharia de dados e análise de big data. Como sou o reitor e professor, posso falar mais sobre eles.



Os cursos são combinados em faculdades - por exemplo, a faculdade de inteligência artificial tem 17 cursos, mais 8 adicionais. Quase todo curso tem trabalho prático como projeto final. Assim, um especialista que aprende sobre isso ganha prática. Eu recomendo não apenas estudar teoria, mas fazer projetos: boas habilidades práticas o deixarão mais perto de entrevistar e iniciar uma carreira.



Eu mesmo estudei há algum tempo na Udacity - fiz um curso sobre veículos robóticos, muito longo, estava planejado para ser 9 meses, mas o curso durou cerca de um ano. Aprendi muito mesmo, as impressões da plataforma são positivas. Mas, é claro, todos os cursos lá são ministrados em inglês.



Como levar em consideração as anomalias nas séries temporais e elas podem ser eliminadas?



Um processo desagradável. Não existe uma receita pronta para isso - você precisa de um grande número de testes. Mais precisamente, existem modelos prontos, mas eles são projetados apenas para detectar anomalias no passado, e eles precisam não apenas ser detectados, mas também antecipados.



Para esses casos, existem vários desenvolvimentos, mas você mesmo deve criá-los. O mais importante é determinar o que acontecerá no futuro: por exemplo, um aumento na exibição de TV em determinados canais e programas. Conforme o tempo passa, esses dados voltam para os dados de treinamento e precisam ser processados ​​da maneira certa.



Mesmo que não haja anomalias no futuro, as anomalias do passado podem afetar seu prognóstico. Existem muitos métodos aqui; o mais simples é excluir dados anômalos, mas se houver muitos deles, isso pode levar à perda de todo um período da série temporal, portanto, esse método nem sempre é adequado.



Como conseguir um emprego sem experiência comprovada?



Boa experiência são seus projetos. Ou seja, se você não apenas ensina teoria, mas imediatamente faz um projeto - de preferência sob a orientação de um mentor (uma pessoa com experiência em ciência de dados e IA) - então você sabe o que está fazendo. Você não sabe apenas aplicar a teoria, ou aplicar um modelo a dados encontrados na Internet, mas também resolver problemas práticos. Ao trabalhar nesses projetos, você adquire conhecimento que não pode ser obtido em livros e cursos, e a ajuda de um mentor é inestimável aqui.



Vamos falar sobre livros - preparei uma pequena pilha.



Se você trabalha com ciência de dados, provavelmente terá que trabalhar em um ambiente Linux. Ao mesmo tempo, você não será um administrador - ou seja, não precisará de um conhecimento muito profundo - mas será necessário um conhecimento seguro dessa plataforma para tarefas administrativas simples (planejar a inicialização de scripts ou descartar recursos do sistema operacional). É aqui que o livro "LINUX - Guia de Bolso" de Scott Granneman se torna útil. Pode ser estudado em alguns dias.



Sobre a teoria da probabilidade, eu recomendaria o livro de GG Bitner "Teoria das Probabilidades" - ele contém teoria e problemas. A teoria da probabilidade será útil tanto para entrevistas quanto para trabalho.

Qualquer pessoa que trabalhe em TI requer um conjunto mínimo de conhecimentos e habilidades. Nesse sentido, o livro “Mínimo teórico em Ciência da Computação - tudo que um programador e desenvolvedor precisa saber” (Philo Vladston Ferreira) é um programa educacional em ciência da computação.



Se você mergulhar em programação e desenvolvimento de baixo nível, precisará de algoritmos. No livro "Algoritmos para Iniciantes - Teoria e Prática para um Desenvolvedor" de Panos Luridas, os algoritmos são fornecidos sem referência a uma linguagem específica. Existe um livro mais longo para C ++ - "Algorithms in C ++" de Robert Sedgwick; é útil quando você deseja eliminar algumas das operações de alto nível que o Python possui e criar algoritmos do zero.



Se você deseja ter uma ideia geral do trabalho de nível superior de um cientista de dados, o livro "Trabalhando com dados em qualquer campo - como alcançar um novo nível usando análise" de Kirill Eremenko é para você. Não há programação aqui. Mas, se você já é um especialista, ele só será útil se você ainda não trabalhou com dados.

Próximo: “Data Science. Data Science from Scratch, de Joel Grasz, também é um livro útil. Da mesma publicação - “Practical Statistics for Data Science Professionals. 50 conceitos essenciais ”por Peter Bruce e Andrew Bruce. Aqui você também pode estudar estatísticas.



Se você vai trabalhar com dados em Python e usar a biblioteca Pandas, então você definitivamente precisa de "Python and Data Analysis" de Wes McKinney - o autor da própria biblioteca Pandas.

Sobre aprendizado de máquina, recomendo dois livros: Machine Learning de Peter Flach e Python e Machine Learning de Sebastian Raska.



Para o aprendizado profundo, existe o livro Deep Learning in Python de François Schollet, onde você pode estudar redes neurais para PNL e problemas de visão computacional. Especificamente na PNL, há "Análise aplicada de dados de texto em Python" - Benjamin Bengford, Rebecca Belbrough e Tony Ojeda.



Se você quiser aprender TensorFlow para aprendizado profundo, há um livro com o mesmo nome de Bharat Ramsundar e Reza Bosag Zade.



Há também um livro que explica de forma simples e clara os princípios das redes neurais - o livro de Andrew Trask "Grock Deep Learning". Há também "Algoritmos Grock" - explica bem algoritmos que podem ser úteis em uma entrevista e na prática.



O que você pergunta nas entrevistas?



Existe uma pequena coleção de perguntas. Há dúvidas sobre o aprendizado de máquina clássico - um especialista que consegue um emprego na área de ciência de dados e IA deve saber como os modelos clássicos de aprendizado de máquina funcionam: linear, regressão logística, gradiente descendente, regularização L1-L2. É necessário que uma pessoa fale sobre o princípio de funcionamento das árvores de decisão, sobre o critério do conteúdo da informação para problemas de classificação e regressão; para que uma pessoa saiba como funciona o aumento de gradiente de floresta aleatória É muito bom se ele conhece as diferenças entre os modelos de aumento de gradiente - Catboost, LightGBM, XGBoost - ou seja, qual é a diferença entre essas bibliotecas, como o aumento de gradiente é implementado nelas. Você também precisa de uma pessoa para possuir bibliotecas de aprendizado de máquina - Pandas, NumPy, SKLearn. Se um especialista precisa trabalhar com redes neurais, com visão computacional, com PNL,então haverá perguntas sobre esses tópicos.

Pode haver muitas perguntas. Se uma pessoa responde bem, então é interessante perguntar a ela sobre alguns de seus projetos - se uma pessoa fez algo, o entrevistado imediatamente tem muitas perguntas relacionadas especificamente aos projetos. Se você tem projetos pessoais no GitHub, ou projetos educacionais de cursos, será muito bom se você puder contar em detalhes sobre as tecnologias e algoritmos que usou.



Além disso, durante a entrevista, você pode fazer várias perguntas básicas. Normalmente, se uma pessoa as responde bem, provavelmente é um bom especialista. Claro, é importante que ele seja capaz de completar a tarefa de teste. Teoria é uma coisa, mas como uma pessoa pode resolver um problema prático, programá-lo, que código ela escreverá também é importante. Se uma pessoa conhece toda a teoria, mas envia um código no qual o OP não é usado quando necessário, ela não sabe como aplicar a teoria corretamente. Além disso, é claro, o próprio código deve ser legível e comentado.



Eu também queria falar sobre computação quântica, aprendizado de máquina quântica é outra área de meu interesse, mas hoje não terei tempo.



O que deve ser escrito no currículo para receber um convite de entrevista?



O currículo é um momento crucial. Em primeiro lugar, não deve aumentar de volume: deve conter apenas experiências relevantes. Se você trabalhou em uma especialidade não relacionada à TI, isso não é necessário. Liste suas realizações resumidas, projetos, cursos realizados, relevantes para a vaga. Escreva o que mostra que você é um especialista capaz de fazer o trabalho. E, é claro, o resumo deve ser legível.




O que aconteceu antes



  1. Ilona Papava, Engenheira de Software Sênior do Facebook - como conseguir um estágio, obter uma oferta e tudo sobre trabalhar em uma empresa
  2. Boris Yangel, engenheiro de ML da Yandex - como não se juntar às fileiras de especialistas idiotas se você é um Cientista de Dados
  3. Alexander Kaloshin, EO LastBackend - como lançar uma startup, entrar no mercado chinês e obter 15 milhões de investimentos.
  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