Este documento introduz conceitos de machine learning e deep learning para iniciantes. Ele discute o que é machine learning, exemplos de aplicações como spam, recomendações e carros autônomos, e como iniciar com regressão linear e clusterização usando Python. Também apresenta arquiteturas de deep learning como redes neurais recorrentes e convolucionais.
2. Quem sou eu?
Gabriel Cypriano
gabrielcs.me
Background em Ciência da Computação e Engenharia de Software
Cursos online recentes:
Machine Learning (Stanford University)
Intro to Recommender Systems (University of Minnesota)
Python for Data Science (DataCamp)
5. O que é Machine Learning?
Definição anti-hacker:
“It is the field of study that gives computers the
ability to learn without being explicitly
programmed.”
Definição hacker:
“It is all about learning from examples rather than
writing explicit rules — you let the algorithm find
those rules for you.”
7. Tá, mas eu consigo fazer isso
em casa?
Claro, é só revisar álgebra linear, cálculo multivariável,
inferência estatística e fazer um mestrado + um
doutorado em Deep Learning.
J.K. :)
Nós vamos inverter a abordagem de aprendizado
tradicional e começar utilizando APIs que abstraem a
matemágica.
Leitura recomendada: http://bit.ly/2aSa6SM
8. Cool! Where do we start?
R foi feita por estatísticos para estatísticos
É a mais natural para computação numérica, mas não
dá pra criar nem um web service, além de limitações
com o volume de dados
Python não é tão natural quanto R para computação
numérica, mas dá pra se fazer web services/apps
Comunidade de ML forte
Scala muito usada com o Spark para computação paralela
Deixa Python na poeira, mas pode ser complexa para
um momento inicial
9. Cool! Where do we start?
Também existem muitas soluções na nuvem:
Google Cloud Machine Learning
Microsoft Azure Machine Learning
Amazon Machine Learning
IBM Predictive Analytics
11. Pausa para teoria:
abordagens de aprendizado
Supervisionado
Quando são fornecidos labels com os exemplos
Por reforço (reinforcement learning)
Dando recompensas, tipo como você treina seu dog.
Não-supervisionado
Quando não são fornecidos labels
16. Deep Learning, babe!
O que é?
Abstração hacker: é machine learning usando tipos de
modelos (Deep Nets) que são capazes de reconhecer
padrões mais complexos nos exemplos.
17. Cool! Where do we start?
Linguagem Lua; usado
pelo Facebook
Para Python
C++
Criado pelo Google; em
Python
18. Can we hack that too?
Só precisamos simular os neurônios do nosso cérebro e
aplicar derivadas parciais pra implementar 2 algoritmos:
gradiente descendente e backprop
J.K., vamos usar o TensorFlow.
Code: http://bit.ly/2aYZNv0
19. Outras vantagens do Deep
Learning
Deep Learning é capaz de fazer aprendizado de features
Nos livramos do feature engineering, tarefa mais
demorada quando se usa outros modelos
20. Outras vantagens do Deep
Learning
Comunidades que antes usavam técnicas estatísticas
completamente diferentes, agora compartilham muito
em comum
Ex.: reconhecimento de fala e reconhecimento de
objetos em imagens.
22. Avanços recentes
Quando a tradução entre
línguas for feita com Deep
Learning, será como capturar o
pensamento de uma língua para
só depois aplicá-lo na outra
língua.
23. Pausa para teoria:
arquiteturas de deep nets
Redes recorrentes (RNNs)
Têm uma memória de curto prazo, ideal para
reconhecimento de fala e processamento de texto
Redes Convolucionais (ConvNets pros íntimos)
Inspiradas no nosso córtex visual, são muito
utilizadas em imagens
25. Pausa para teoria:
arquiteturas de deep nets
Redes adversárias
Enquanto uma rede tenta identificar se o input é natural
ou artificial, uma segunda rede tenta criar inputs
artificiais para enganar a outra.
É um tipo de modelo generativo. Provavelmente o que é
utilizado pelo Prisma.
Enquanto as primeiras camadas de uma ConvNet revela
o “estilo”, as últimas revelam o “conteúdo”
26. Pausa para teoria:
arquiteturas de deep nets
Outros exemplos de modelos generativos:
Beethoven no estilo Bossa Nova
Beethoven no estilo Beatles
27. Deep Learning: longa história
Redes Neurais Artificiais existem desde os anos 80, mas
depois um tempo ninguém mais deu bola.
Pesquisadores de outras áreas até zombavam.
Fast-forward: lots of data and fast GPUs!
Thank you gamers.
28. Deep Learning: longa história
Yann Lecun
Facebook, NYU
Geoff Hinton
Google, U. Toronto
Yoshua Bengio
U. Montreal
29. Tech de ponta:
transfer learning
Similar a se reutilizar o aprendizado de uma língua
ao se aprender uma nova língua.
TensorFlow Inception
Pré-treinado em 2 semanas com 8 GPUs
utilizando o ImageNet
Basicamente, é removida a última camada da rede e
se refaz o treinamento
30. Tech de ponta:
one-shot learning
Deep Learning atualmente precisa de milhares ou
milhões de exemplos
Como conseguir aprender com um ou poucos
exemplos?
Pesquisa em atividade.
31. Roadmap ML hacker
(em ordem)
DataCamp: Python for Data Science (opcional)
Udacity: Intro to Machine Learning
Coursera: Machine Learning (Stanford University)
Udacity: Deep Learning (Google)
Deep Learning (Bengio e Goodfellow)