Introdução ao Machine Learning para Hackers

Post on 15-Feb-2017

413 views 4 download

Transcript of Introdução ao Machine Learning para Hackers

Introdução aoMachine 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)

Inteligência ArtificialMachine Learning

Deep Learning

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

OK. Exemplos?

SpamRecomendações da NetflixAmazon Echo

Google Photos / Facebook Photo Tags

DeepMind jogando Atari

Prisma

Carros autônomos

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

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

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

Let’s start hacking.

Regressão Linear com Python

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

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

Exemplo:

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

Aprendizagem supervisionada.

Exemplo:

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

Aprendizagem não-supervisionada.

Exemplo:

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

Aprendizagem por reforço.

Back to hacking.

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

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

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.

Cool! Where do we start?

Linguagem Lua; usado pelo Facebook

Para Python

C++ Criado pelo Google; em Python

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

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

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.

Avanços recentes

Reconhecimento de fala sem deep learning

30% de erro

Reconhecimento de fala com deep learning

Menos de 5% de erro

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.

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

Mais sobre ConvNets

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”

Pausa para teoria: arquiteturas de deep nets

Outros exemplos de modelos generativos:

Beethoven no estilo Bossa Nova

Beethoven no estilo Beatles

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.

Deep Learning: longa história

Yann Lecun

Facebook, NYU

Geoff Hinton

Google, U. Toronto

Yoshua Bengio

U. Montreal

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

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.

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)

Cheat-sheet de algoritmosMuitos dados: deep nets

Gracias.

Slides: slideshare.net/GabrielCyprianoSaca

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

Blog e mais: about.me/gabrielcs