Introdução ao Machine Learning para Hackers

33
Introdução ao Machine Learning para Hackers

Transcript of Introdução ao Machine Learning para Hackers

Page 1: Introdução ao Machine Learning para Hackers

Introdução aoMachine Learning

para Hackers

Page 2: Introdução ao Machine Learning para Hackers

Quem sou eu?Gabriel Cypriano

about.me/gabrielcs

Background em Ciência da Computação e Engenharia de SoftwareCursos online recentes:

Machine Learning (Stanford University)

Intro to Recommender Systems (University of Minnesota)

Python for Data Science (DataCamp)

Page 3: Introdução ao Machine Learning para Hackers
Page 4: Introdução ao Machine Learning para Hackers

Inteligência ArtificialMachine Learning

Deep Learning

Page 5: Introdução ao Machine Learning para Hackers

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.”

Page 6: Introdução ao Machine Learning para Hackers

OK. Exemplos?

SpamRecomendações da NetflixAmazon Echo

Google Photos / Facebook Photo Tags

DeepMind jogando Atari

Prisma

Carros autônomos

Page 7: Introdução ao Machine Learning para Hackers

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

Page 8: Introdução ao Machine Learning para Hackers

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

Page 9: Introdução ao Machine Learning para Hackers

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

Page 10: Introdução ao Machine Learning para Hackers

Let’s start hacking.

Regressão Linear com Python

Code: http://bit.ly/2aZfa7L

Page 11: Introdução ao Machine Learning para Hackers

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

Page 12: Introdução ao Machine Learning para Hackers

Exemplo:

Carros autônomos (input são câmeras e um humano dirigindo)?

Aprendizagem supervisionada.

Page 13: Introdução ao Machine Learning para Hackers

Exemplo:

Prisma (input é um estilo de pintura e uma foto)?

Aprendizagem não-supervisionada.

Page 14: Introdução ao Machine Learning para Hackers

Exemplo:

Jogos de Atari (input são pixels e o score)?

Aprendizagem por reforço.

Page 15: Introdução ao Machine Learning para Hackers

Back to hacking.

Aprendizagem não-supervisionada: clusterização.

Code: http://bit.ly/2arPMlQ

Page 16: Introdução ao Machine Learning para Hackers

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.

Page 17: Introdução ao Machine Learning para Hackers

Cool! Where do we start?

Linguagem Lua; usado pelo Facebook

Para Python

C++ Criado pelo Google; em Python

Page 18: Introdução ao Machine Learning para Hackers

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 backpropJ.K., vamos usar o TensorFlow.

Code: http://bit.ly/2aYZNv0

Page 19: Introdução ao Machine Learning para Hackers

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

Page 20: Introdução ao Machine Learning para Hackers

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.

Page 21: Introdução ao Machine Learning para Hackers

Avanços recentes

Reconhecimento de fala sem deep learning

30% de erro

Reconhecimento de fala com deep learning

Menos de 5% de erro

Page 22: Introdução ao Machine Learning para Hackers

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.

Page 23: Introdução ao Machine Learning para Hackers

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

Page 24: Introdução ao Machine Learning para Hackers

Mais sobre ConvNets

Page 25: Introdução ao Machine Learning para Hackers

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”

Page 26: Introdução ao Machine Learning para Hackers

Pausa para teoria: arquiteturas de deep nets

Outros exemplos de modelos generativos:

Beethoven no estilo Bossa Nova

Beethoven no estilo Beatles

Page 27: Introdução ao Machine Learning para Hackers

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.

Page 28: Introdução ao Machine Learning para Hackers

Deep Learning: longa história

Yann Lecun

Facebook, NYU

Geoff Hinton

Google, U. Toronto

Yoshua Bengio

U. Montreal

Page 29: Introdução ao Machine Learning para Hackers

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

Page 30: Introdução ao Machine Learning para Hackers

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.

Page 31: Introdução ao Machine Learning para Hackers

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)

Page 32: Introdução ao Machine Learning para Hackers

Cheat-sheet de algoritmosMuitos dados: deep nets

Page 33: Introdução ao Machine Learning para Hackers

Gracias.

Slides: slideshare.net/GabrielCyprianoSaca

Notícias sobre ML: getpocket.com/@gabrielcs

Blog e mais: about.me/gabrielcs