Programador que procura entrar no campo de aprendizado de máquina

19

Sou desenvolvedor de software (principalmente .NET e Python, com cerca de 5 anos de experiência). O que posso fazer para me ajudar a conseguir um emprego no campo de aprendizado de máquina ou realmente qualquer coisa que me inicie nesse campo? A pós-graduação é um requisito difícil?

usuário
fonte
2
Esta pergunta parece ser uma pergunta do wiki da comunidade.
8263 Andrew

Respostas:

16

Toda vez que converso com alguém sobre o aprendizado de mais máquinas, eles sempre me apontam os Elementos de Aprendizagem Estatística de Hastie e Tibshirani . Este livro tem a sorte de estar disponível on-line gratuitamente (uma cópia impressa tem um certo apelo, mas não é obrigatório) e é realmente uma ótima introdução ao assunto. Ainda não li tudo, mas li muito e realmente me ajudou a entender melhor as coisas.

Outro recurso pelo qual estou trabalhando é a aula de Stanford Machine Learning , que também é online e gratuita. Andrew Ng faz um ótimo trabalho ao guiar você pelas coisas. Acho isso particularmente útil, porque minha experiência na implementação de algoritmos é fraca (eu sou um programador autodidata) e mostra como implementar coisas no Octave (desde que o R já tenha implementado grande parte dele em pacotes). Eu também encontrei essas notas nas estatísticas do reddit alguns meses atrás, então eu meio que as folheio e depois assisto o vídeo e reflito sobre ele com minhas próprias notas.

Minha formação é em estatística e tive alguma exposição a conceitos de aprendizado de máquina (um bom amigo meu gosta muito disso), mas sempre senti que estava faltando na área de aprendizado de máquina, por isso tenho tentado aprender tudo um pouco mais por conta própria. Felizmente, existem muitos recursos excelentes por aí.

Quanto a conseguir um emprego nos requisitos da indústria ou da escola de pós-graduação, não estou em ótima posição para aconselhar (acontece que nunca contratei ninguém), mas notei que o mundo dos negócios parece realmente gostar de pessoas que podem fazer coisas e estão um pouco menos preocupados com pedaços de papel que dizem que você pode fazer algo.

Se eu fosse você, gastaria parte do meu tempo livre confiando no meu conhecimento de aprendizado de máquina e implementaria as coisas à medida que você vê oportunidades. A concessão de sua posição pode não lhe dar essa oportunidade, mas se você conseguir implementar algo que agregue valor à sua empresa (mantendo suas outras obrigações), não consigo imaginar alguém chateado com você. O bom aqui é que, se você se interessa por um pouco de aprendizado de máquina nesse trabalho, quando sai à procura de um novo emprego, pode falar sobre a experiência que já tem, o que ajudaria as pessoas a passarem por uma falta de um específico grau.

Existem muitos recursos e é incrivelmente interessante, desejo-lhe sorte!

Outra idéia: você pode iniciar um blog sobre o processo de aprendizado do Machine Learning e talvez documentar alguns projetos nos quais trabalha no seu tempo livre. Fiz isso com um projeto de programação e permite que você fale sobre um projeto em que está trabalhando no seu tempo livre (parece bom para o empregador) e também pode encaminhá-los para o blog (obviamente, mantenha-o profissional) sobre o seu trabalho . Até agora, enviei algumas pessoas para o meu pequeno blog de programação (eu tenho um pouco de preguiça de postar ultimamente, mas eu o mantive atualizado quando estava me candidatando a empregos) e todos com quem conversei ficaram impressionados. isto.

asjohnson
fonte
(+1) ótimos conselhos, especialmente em relação à classe ML, ao conhecimento / trabalho reais> e ao blog.
Steffen
Um blog profissional parece uma boa ideia!
Rishi Dua
"o mundo dos negócios parece realmente gostar de pessoas que podem fazer coisas" - sim, e isso se aplica mesmo a pedaços de papel :) De qualquer forma, faça algo que você possa mostrar a eles.
precisa saber é o seguinte
Os elementos do aprendizado estatístico, embora abrangentes, são difíceis para quem não possui graduação em estatística. Em vez disso, recomendo An Introductions to Statistical Learning with (Applications in R), dos mesmos autores. É muito mais simples.
Abhishek Divekar
3

Além de todos os outros ótimos conselhos, sugiro que você participe de competições online, consulte Sites para competições de modelagem preditiva

Sobre livros etc., você deve dar uma olhada em:

Em relação aos graus , concordo com @asjohnson que um certificado é menos importante, pelo menos posso confirmar isso para a área em que estou trabalhando (Data Mining / ML na Web). Pode ser diferente para áreas mais "acadêmicas", como a bioinformática. Ser capaz de demonstrar que alguém é a) entusiasta eb) fez um trabalho real ("fazer coisas inteligentes") exibindo um pequeno portfólio (por exemplo, competições on-line ...) deve ser um IMHO mais eficaz.

steffen
fonte
(+1) Para competições online. Eu acho que se você fizesse algo do kaggle ou de uma das outras competições por aí e acompanhasse o seu código e o seu processo (eu estou pensando no blog) em um local onde possíveis empregadores pudessem conferir. Isso mostraria muita iniciativa e, de várias maneiras, é mais fácil do que pensar em sua própria questão de interesse. Basta escolher uma das competições que lhe interessa e, em seguida, você terá os dados e um local para enviar e comparar respostas.
precisa saber é o seguinte
2

Leia Machine Learning de Tom Mitchell. Esse é um bom livro que você deve começar no campo do Machine Learning.

Uma coisa a ter em atenção: observe que o mesmo algoritmo às vezes pode ter um desempenho melhor ou pior, de acordo com o cenário e os parâmetros fornecidos e a chance aleatória. fazer não se mete em otimização de parâmetros para os seus dados de treinamento - esta é uma má aplicação de aprendizagem de máquina.

Existem muitas técnicas adequadas para aplicações específicas (mas nem todas) e há muita teoria que você pode ler para entender melhor o aprendizado de máquina. Para ser bom em aprendizado de máquina, você precisa saber o que está fazendo, caso contrário, não pode ter certeza se seus resultados serão generalizados.

Boa sorte.

Andrew
fonte
0

Há um grande número de bons livros sobre aprendizado de máquina, incluindo vários da série O'Reilly que fazem uso do Python. Trabalhar com um ou vários deles pode ser um bom ponto de partida.

Eu também sugeriria obter algum conhecimento de estatística - por meio de um curso ou dois, ou auto-estudo, realmente não importa. A razão é que existem alguns livros de aprendizado de máquina que se concentram nos algoritmos e na mecânica, mas ignoram a questão fundamental de quão provável é que o que o algoritmo diz a você é apenas por acaso. E isso é essencial para saber.

Boa sorte e divirta-se, é um ótimo campo.

PeterR
fonte
0

Muito boa pergunta. Uma coisa a se perceber de antemão é que o aprendizado de máquina é uma arte e uma ciência e envolve limpar meticulosamente os dados, visualizá-los e, eventualmente, criar modelos que atendam aos negócios em questão, mantendo-os simultaneamente escaláveis ​​e tratáveis. Em termos de habilidades, mais importante do que qualquer outra coisa, é se concentrar na probabilidade e usar métodos simples antes de para os mais complexos. Eu prefiro a combinação R & Perl, já que você sabia que python deveria ser bom o suficiente. Ao trabalhar em um trabalho real, você sempre precisará extrair seus próprios dados para que o conhecimento de SQL (ou qualquer outro tipo de sql que sua empresa suporte) seja obrigatório.

Nada supera a experiência na área de ML; portanto, participar de sites como stackexchange, o kaggle também é uma ótima maneira de se expor a esse campo. Boa sorte.

brócolis
fonte
0

Eu sei que é uma pergunta um pouco antiga, mas considerando o fato de que muitos programadores ainda não sabem como começar.

Assim, criei o repositório "Um plano diário completo para estudar para se tornar um engenheiro de aprendizado de máquina" .

Este é o meu plano de estudos de vários meses para passar de desenvolvedor móvel (autodidata, sem diploma de CS) a engenheiro de aprendizado de máquina.

Meu principal objetivo era encontrar uma abordagem para estudar Machine Learning, que é principalmente prática e abstrai a maior parte da Matemática para iniciantes. Essa abordagem não é convencional porque é a abordagem de cima para baixo e primeiro para resultados projetada para engenheiros de software.

Por favor, sinta-se à vontade para fazer as contribuições que achar melhor.

Nam Vu
fonte