Quero estudar Machine Learning, por onde começo?

Joel Backschat
fcamara-hpt

--

É comum atualmente ouvir falar sobre Machine Learning e Deep Learning, a cada dia surgem novas aplicações que aumentam mais e mais o interesse de todos sobre o assunto. Eu mesmo já estou envolvido nesse mundo a mais de um ano, seja na empresa onde trabalho a FCamara que já tem alguns produtos na área como o Fidelizaluno, bem como na vida pessoal em minhas aventuras no mundo da estatística, matemática e programação.

No meu caso específico, posso dizer que os primeiros passos nesse mundo não foram nada agradáveis, principalmente para alguém como eu que nunca teve um grande apreço pelas aulas de calculo. Seja na escola ou mesmo na faculdade.

Então achei que seria interessante compartilhar um pouco do que venho aprendendo e quem sabe, ajudar a amenizar o caminho daqueles que estão começando nessa trilha.

Nesse primeiro artigo achei melhor começar mostrando o que eu considero essencial para você começar a se aventurar nesse mundo. Muitos já devem ter imaginado o primeiro item, e sim estou falando da matemática. Para ser mais exato estou falando de estatística descritiva e estatística inferencial. Além disso toda parte de cálculo principalmente focada em gráficos é necessária.

Dessa forma se você assim como eu fugia dessas aulas, lamento! Hora de tirar a poeira dos livros antigos. Mas não se desespere, tem muita coisa boa online hoje em dia, que vai te ajudar a tirar dúvidas e aprender tudo que você precisa. Dentre essas, posso citar o site da Khan Academy por exemplo, que possui ótimos conteúdos sobre vários assuntos relacionados a matemática e estatística. Agora se você não se dá muito bem com o Inglês, no Brasil temos a site da Alura que tem cursos exclusivos sobre estatística para quem quer forcar na área. E ainda um curso sobre estatística e probabilidade da Veduca.

Acredite é importante entender conceitos como a teoria de Bayes, e funções como Softmax que nos auxilia a normalizar os dados. Particularmente para o mundo do Machine Learning eu não vejo a necessidade de decorar fórmulas, considero essencial sim entender como cada uma delas funciona e quando aplica-las. Para executa-las temos bibliotecas prontas como Scikit Learn que se encarregam de “decorar as fórmulas”.

Outro tópico muito importante é o conhecimento nas linguagens de programação R ou Python. No meu caso em especifico eu optei por Python por já ter um certo conhecimento na linguagem e por entender que hoje o ambiente para o desenvolvimento de soluções utilizando Machine Learning em Python é mais rápido e propício. Existe uma grande variedade de ferramentas que temos para auxiliar o desenvolvimento principalmente quando falamos de

· Gerenciamento de ambientes

· Operações com vetores e Matrizes

· Criação de gráficos

Ferramentas como o Anaconda que nos permite criar containers com versões especificas de bibliotecas do Python deixando todo o controle de versões por conta dela. Dessa maneira não sofremos com problema de compatibilidade entre bibliotecas.

Não me entenda mal, não é que seja necessário usar Python ou R para desenvolvedor qualquer coisa usando Machine Learning. Mas por exemplo, como você faria para multiplicar 2 vetores na sua linguagem preferida? Aposto que na maioria delas por exemplo, exigiria no mínimo um código de dois fors aninhados, certo?

Bem então abaixo tem um código em Python que multiplica 2 vetores utilizando uma biblioteca chamada Numpy.

import numpy as npvetor1 = [1,2,3,4,5,6] 
vetor2 = [2,3,4,5,1,8]
print(np.dot(vetor1,vetor2))

Simples não?

Além disso, grandes empresas que hoje oferecem serviços para auxiliar você a criar seus produtos, utilizando algoritmos de Machine Learning como a Amazon, Microsoft e IBM dão um grande suporte ao Python facilitando você levar seu algoritmo pronto para a nuvem e disponibiliza-lo como serviço, sem precisar alocar uma grande infraestrutura para isso.

Então se você aceitou minha dica e quer saber mais sobre Python acesse esse link para começar a aprender agora mesmo a linguagem. E mesmo que você tenha conhecimento na linguagem é importante gastar um tempo olhando algumas bibliotecas utilizadas para se trabalhar com Machine Learning dentre elas

· Numpy (facilita realização de várias operações matemáticas com vetores)

· Panda (ótima para criar gráficos)

· TensorFlow (Ferramenta da Google para Machine Learning que auxilia a montar sua rede neural)

· Anaconda (Gerencia ambientes em Python resolvendo problemas de compatibilidade entre versões de bibliotecas, muito similar ao Docker em seu uso, mas não em sua arquitetura)

· Jupiter Notebook (Gera uma espécie de word que compila código em várias linguagens. Assim você pode montar documentos que explicam teses e hipóteses ao mesmo tempo que testa seu código. Compatível com bibliotecas de gráficos como o Panda permite que o usuário visualize os dados de saída de sua rede neural em tempo real)

Dessa maneira, começar nesse novo mundo através do Python é uma boa pedida, pois mesmo na hora de estudar os modelos matemáticos é muito mais fácil encontrar exemplos feitos na tecnologia.

Assim espero que esse artigo tenha oferecido uma direção na hora de você iniciar em seu novo objetivo.

Bons estudos!!

--

--