Machine Learning

The Next Big Thing

Produtos de extremo sucesso

O que eles têm em comum?

Machine Learning.

Rodrigo Araújo

BSc. Computer Science

Pesquisador na TDRT

Engenheiro de Software e Machine Learning na JusBrasil

Mas afinal, o que é Machine Learning?

Definições básicas

Machine Learning é um tipo de Inteligência Artificial que dá aos computadores uma habilidade de aprender algo sem ser explicitamente programado pra isso. 

É fazer com que programas cresçam sozinhos e que se modifiquem conforme expostos a novos dados

"Programas que crescem e se modifiquem sozinhos...?"

"Programas que crescem e se modifiquem sozinhos...?"

Machine Learning é uma simplificação do processo de aprendizagem dos humanos

Processo de aprendizagem

Processo de aprendizagem

Carro

Processo de aprendizagem

Carro

Processo de aprendizagem

O que é isso?

Processo de aprendizagem

Reconhecimento de padrões

O que é isso?

Processo de aprendizagem

Reconhecimento de padrões

O que é isso?

Carro

Processo de aprendizagem

Carro

O que é isso?

Processo de aprendizagem

Carro

O que é isso?

Mas o que acontece aqui?

Processo de aprendizagem

Carro

O que é isso?

Bruxaria?

Processo de aprendizagem

Carro

O que é isso?

Machine Learning

Processo de aprendizagem

Machine Learning é uma mudança de paradigma na programação

Paradigma conhecido e tradicional:

Construir um programa para resolver um problema

Paradigma conhecido e tradicional:

Construir um programa para resolver um problema

Paradigma da Machine Learning:

Construir um programa para aprender a resolver um problema

Machine Learning é uma mistura de diversas áreas científicas

Teoria da Informação

Álgebra Linear

Estatística

Probabilidade

...E muito mais...

vs.

Supervised Learning

Unsupervised Learning

Supervised Learning

Supervised Learning

Dados treinados

Supervised Learning

Dados treinados

Algoritmo de aprendizagem

Supervised Learning

Dados treinados

Algoritmo de aprendizagem

Modelo

Supervised Learning

Dados treinados

Algoritmo de aprendizagem

Modelo

Novos dados

Supervised Learning

Dados treinados

Algoritmo de aprendizagem

Modelo

Novos dados

Previsões

Supervised Learning

Tendo dados em mãos, nosso objetivo é achar a função que melhor generalize o problema

Supervised Learning

Temos 2 tipos de problemas aqui

Supervised Learning

Temos 2 tipos de problemas aqui

Classificação

Supervised Learning

Temos 2 tipos de problemas aqui

Classificação

Dada várias classes, prever qual a classe de um próximo dado

Supervised Learning

Temos 2 tipos de problemas aqui

Classificação

Dada várias classes, prever qual a classe de um próximo dado

Ex: Paciente tem câncer ou não?
A pessoa na câmera está sorrindo ou não?

Supervised Learning

Temos 2 tipos de problemas aqui

Classificação

Dada várias classes, prever qual a classe de um próximo dado

Ex: Paciente tem câncer ou não?
A pessoa na câmera está sorrindo ou não?

Previsão/Regressão

Supervised Learning

Temos 2 tipos de problemas aqui

Classificação

Dada várias classes, prever qual a classe de um próximo dado

Ex: Paciente tem câncer ou não?
A pessoa na câmera está sorrindo ou não?

Previsão/Regressão

Prever informações futuras com base em dados passados

Ex: vai chover amanhã? Qual o preço de uma casa com X quartos em um dado local? 

Supervised Learning

Iremos resolve-los com a abordagens semelhantes

Supervised Learning

Achando a função que melhor generaliza o problema

Supervised Learning

E quando os dados são mais complicados e uma função linear não resolve mais?

Supervised Learning

polinômio neles!

Supervised Learning

Ok... mas no mundo real... temos mais de 2 variáveis; temos milhares!

Supervised Learning

Ok... mas no mundo real... temos mais de 2 variáveis; temos milhares!

Supervised Learning

Então, começamos a buscar a melhor função no hiperespaço

Supervised Learning

Melhor estratégia: Gradient Descent

Supervised Learning

Melhor estratégia: Gradient Descent

Supervised Learning

O problema de classificação é conceitualmente um pouco diferente

Supervised Learning

O problema de classificação é conceitualmente um pouco diferente

Supervised Learning

Queremos achar a função que melhor divida as classes

Supervised Learning

Queremos achar a função que melhor divida as classes

Supervised Learning

Queremos achar a função que melhor divida as classes

Supervised Learning

Queremos achar a função que melhor divida as classes

Supervised Learning

Mas... e os algoritmos pra achar essas funções que generalizam os problemas e geram os modelos?

Supervised Learning

Mas... e os algoritmos pra achar essas funções que generalizam os problemas e geram os modelos?

Dados treinados

Algoritmo de aprendizagem

Modelo

Supervised Learning

Mas... e os algoritmos pra achar essas funções que generalizam os problemas e geram os modelos?

Dados treinados

Algoritmo de aprendizagem

Modelo

Supervised Learning

Support Vector Machines

Supervised Learning

Decision Tree

Supervised Learning

Random Forest

Supervised Learning

E minha favorita...

Supervised Learning

Redes Neurais Artificiais (ANNs)

Supervised Learning

Redes Neurais Artificiais (ANNs)

Flexíveis

Poderosas

Elegantes

Supervised Learning

Redes Neurais Artificiais (ANNs)

Supervised Learning

Redes Neurais Artificiais (ANNs)

Supervised Learning

Redes Neurais Artificiais (ANNs)

Backpropagation é lindo (e funciona)

Supervised Learning

Redes Neurais Artificiais (ANNs)

Com o passar das épocas de treinamento, a rede neural passa a errar menos

Supervised Learning

Redes Neurais Artificiais (ANNs)

Com o passar das épocas de treinamento, a rede neural passa a errar menos

Supervised Learning

E o que é Deep Learning? 

Supervised Learning

Simples. Redes Neurais com mais camadas escondidas

Supervised Learning

Simples. Redes Neurais com mais camadas escondidas

Supervised Learning

Deep Learning

Unsupervised Learning

Unsupervised Learning

E quando não temos aqueles dados treinados previamente para alimentar o algoritmo?

Unsupervised Learning

Dados treinados

Algoritmo de aprendizagem

Modelo

Novos dados

Previsões

Unsupervised Learning

Dados treinados

Algoritmo de aprendizagem

Modelo

Novos dados

Previsões

Unsupervised Learning

Dados treinados

Algoritmo de aprendizagem

Modelo

Novos dados

Previsões

Unsupervised Learning

Solução: Clustering

Unsupervised Learning

Solução: Clustering

Unsupervised Learning

Dificuldades:

Unsupervised Learning

Dificuldades:

Algortimos ainda não estão em estado-da-arte

Unsupervised Learning

Dificuldades:

É difícil calcular precisão do resultado quando não se tem dados passados para comparar

Processo típico de ML supervisionado

Processo típico de ML supervisionado

dataset treinado

Processo típico de ML supervisionado

dataset treinado

Dataset de teste e validação

Dataset de treino

Processo típico de ML supervisionado

dataset treinado

Dataset de teste e validação

Dataset de treino

Algoritmo de aprendizagem escolhido

Processo típico de ML supervisionado

dataset treinado

Dataset de teste e validação

Dataset de treino

Algoritmo de aprendizagem escolhido

Modelo

Processo típico de ML supervisionado

dataset treinado

Dataset de teste e validação

Dataset de treino

Algoritmo de aprendizagem escolhido

Modelo

Processo típico de ML supervisionado

dataset treinado

Dataset de teste e validação

Dataset de treino

Algoritmo de aprendizagem escolhido

Modelo

Validação final do modelo

Caso de uso real

Caso de uso real

Caso de uso real

modelo

Caso de uso real

modelo

Decisão?

Julgamento?

Sentença?

...?

 

Arquitetura final

Caso de uso real

Golpe final:

Caso de uso real

Golpe final:

Redução de Variância

Caso de uso real

Golpe final:

Redução de Variância

Ganho de informação

Machine Learning: RoadMap

Machine Learning: RoadMap

Por onde começar a estudar Machine Learning?

Machine Learning: RoadMap

Programação

Machine Learning: RoadMap

Programação

Matemática

Álgebra Linear

Estatística

Probabilidade

Teoria da Info

Machine Learning: RoadMap

Programação

Matemática

Álgebra Linear

Estatística

Probabilidade

Teoria da Info

Ops

Spark

Hadoop

Redis

Docker

Machine Learning: RoadMap

Programação

Matemática

Álgebra Linear

Estatística

Probabilidade

Teoria da Info

Ops

Spark

Hadoop

Redis

Docker

Neurociência

Neurociência básica

Learning Process

Processos Cognitivos

Machine Learning: Dicas

Machine Learning: Dicas

Implemente os algoritmos que você esteja estudando, não tenha medo

Machine Learning: Dicas

Abra seu coração para a matemática avançada. Ela é o centro da Machine Learning

Machine Learning: Dicas

Dataset limpo, bem estruturado e GRANDE é um dos maiores segredos da Machine Learning

Machine Learning: Dicas

Dataset limpo, bem estruturado e GRANDE é um dos maiores segredos da Machine Learning

Você irá sofrer muito se pegar Datasets sujos e pequenos

Machine Learning: Dicas

Seus primeiros dias lidando com ML:

Lágrimas irão cair. Acostume-se.

Machine Learning: Dicas

Seus primeiros dias lidando com ML:

Você tentando entender a matemática das Redes Neurais

Machine Learning: Dicas

Seus primeiros dias lidando com ML:

Você finalmente entendendo a matemática das Redes Neurais

Machine Learning: Dicas

Seus primeiros dias lidando com ML:

Você tentando parametrizar um modelo em cima de um dataset ruim

Machine Learning: Dicas

Seus primeiros dias lidando com ML:

Você rodando seu primeiro algoritmo de ML implementado

Machine Learning: Dicas

Seus primeiros dias lidando com ML:

Você finalmente dominando ML e vendo seus programas ficando cada vez mais inteligentes.

Machine Learning: Recursos

Free Datasets: https://archive.ics.uci.edu/ml/datasets.html

Machine Learning: Recursos

Free Datasets: https://archive.ics.uci.edu/ml/datasets.html

SciKit-Learn tutorials: http://scikit-learn.org/stable/tutorial/

Machine Learning: Recursos

Free Datasets: https://archive.ics.uci.edu/ml/datasets.html

SciKit-Learn tutorials: http://scikit-learn.org/stable/tutorial/

Melhor curso do coursera de Machine Learning: https://www.coursera.org/learn/machine-learning

Machine Learning: Recursos

Free Datasets: https://archive.ics.uci.edu/ml/datasets.html

SciKit-Learn tutorials: http://scikit-learn.org/stable/tutorial/

Melhor curso do coursera de Machine Learning: https://www.coursera.org/learn/machine-learning

leia toda essa thread: https://www.quora.com/How-do-I-learn-machine-learning-1

Dúvidas?

Obrigado!

Rodrigo Araújo

@digorithm

www.rodrigoaraujo.me

Made with Slides.com