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
Machine Learning: The Net Big thing
By Rodrigo Araújo
Machine Learning: The Net Big thing
- 2,034