TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

42
Globalcode – Open4education Machine Learning Black- Boxes Denis Rosa Software Engineer deniswsrosa Terceirizando o trabalho duro

Transcript of TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Page 1: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Machine Learning Black-Boxes

Denis RosaSoftware Engineer

deniswsrosa

Terceirizando o trabalho duro

Page 2: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

AgendaEcossistema de ML e Big DataComo funciona MLModelos treinados

WatsonCloud Vision APICognitive services

Modelos SupervisionadosTreinando ModelosWekaMachine Learning StudioH2OScikit-learnTuriMLLibTensorFlowHands on Demo

Page 3: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Objetivo

Fornecer a visão macro de quais são as principais ferramentas que podemos utilizar para extrair os melhores benefícios de machine learning.

Page 4: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Page 5: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

O que é um BlackBox ?

São ferramentas e libraries que facilitam a criação do seu modelo e o deploy dele e produção.

Page 6: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Por que utilizar BlackBox ?

Não quero ter de implementar isso toda vez que fizer uma regressão logística por exemplo:

Page 7: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Como funciona um modelo de machine learning?

Page 8: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Gato

Cachorro

Page 9: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Generalização

Page 10: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

?Cachorro

Page 11: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

SupervisionadoNão Supervisionado

TreinadoSupervisionadoNão Supervisionado

Treinado

Modelos de ML

Page 12: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

O filho adotadoTreinado

Page 13: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Por quê utilizar serviços de modelos treinados?

• Não é necessário acumular terabytes de dados e muitas horas de processamento para treinar modelos;

• Custo total é muito mais barato;• Equipe especializada para evoluir o modelo;

Você pode se concentrar no seu produto!

Ex: Linguagem natural, tradução, reconhecimento de imagem, OCR.

• É mais rápido e escalável.

• É utilizado como um simples serviço;

Page 14: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

IBM Watson Services

Linguagem

• AlchemyLanguage• Retrieve and Rank• Bot Dialog• Concept Insights• Natural Language

Classifier• Tone Analyzer

Speech

• Speech to text• Text to speech

Visual

• Visual insights• Visual Recognition

http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/services-catalog.html

Portuguêshttp://fredrikstenbeck.com/what-languages-does-ibm-watson-support/

Page 15: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Demohttps://alchemy-language-demo.mybluemix.net/

http://retrieve-and-rank-demo.mybluemix.net/rnr-demo/dist/#/

Page 16: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Cloud Vision APIhttps://cloud.google.com/vision/

• Filtro de conteúdo explícito;• OCR• Image label detection;• Face detection;

Serviços simples e custo baixo porém api é mal documentada.

Page 17: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Microsoft Cognitive Serviceshttps://www.microsoft.com/cognitive-services/

Vision

• Emotion Detection • Face Detection• Face Verification• OCR

Speech

• Bing Speech• Custom Recognition• Speaker

Recognition

Language

• Spell Check• Text Analytics• Language

Understanding 

Alguns serviços de texto ainda não suportam português.

Serviços de imagens são free até 30.000 requisições por mês.

Page 18: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Demohttps://www.microsoft.com/cognitive-services/en-us/face-api

https://www.microsoft.com/cognitive-services/en-us/speaker-recognition-api

https://www.microsoft.com/cognitive-services/en-us/emotion-api

Page 19: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

O filho biológicoSupervisionado

Page 20: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Quando treinar seus próprios modelos?

• Dados são privados *;• O modelo faz parte do core da aplicação;• Modelo deve possuir características específicas do seu negócio;

* Alguns players utilizam as imagens enviadas para evoluir o modelo treinado, por isso o preço por transaction é tão baixo.

Ex: Recomendações, regressões, classificações, árvores de decisão, clustering.

Page 21: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Limpeza de Dados

Treinamento

Teste do Modelo

Ajustes

Validação

Como se treina um modelo de ML?

Seleção de Features

Seleção do Algorítmo

Page 22: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

75de precisão

% 90%-

Page 23: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Como aumentar a precisão do meu modelo?

A resposta para essa pergunta é muito complexa:

• Feature engineering;• Deep Learning;• More data;• Model adjustments;

• Penalization;

• Bagging;• Boosting;

• Algorithm selection;• Lower training rates;• Model is overfitted;

Page 24: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Machine Learning NÃO é um SIMPLES framework

Primeiro erro de todo programador Java: Mahout

Muitos algorítmos do Mahout foram deprecados

Page 25: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Por onde eu começo?

Page 26: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Aprenda os principais Algoritmos  de ML

Page 27: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Quais black boxes devo utilizar?

Page 28: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Wekahttp://www.cs.waikato.ac.nz/ml/weka/

• Gratuito, GUI based e de fácil uso;

• Exporta o modelo para código java;• Possui grande variedade de algoritmos disponíveis;• Pode ser utilizado em batch mode;• A gestão da memória todavia não é muito eficaz e pode ser

um problema para grandes datasets

Page 29: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Weka

Page 30: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Azure Machine Learning Studiohttps://studio.azureml.net/

• Não requer código, é baseada em workflows;

• Provisiona sozinho a infraestrutura para treinar os modelo;• Excelente documentação;• Fácil definição de parâmetros e de visualização dos dados;• Possui interface web e integração com RStudio;

Page 31: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

https://www.youtube.com/watch?v=kZ04LnSjWek

Page 32: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

http://www.h2o.ai/

• Escolhido como o melhor projeto open-source de machine learning em java pelo github

• Possui interface web e boa documentação;

• Principal ferramenta utilizada para em competições como o Kaggle;

• Suporta R, Java, Scala e Python;

• Conecta com HDFS, S3, SQL, NoSQL databases, Excel, etc.

Page 33: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Flow

https://www.youtube.com/watch?v=wzeuFfbW7WE

Page 34: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Scikit Learnhttp://scikit-learn.org/stable/

• A principal library de machine learning;

• Safe choice para grande parte dos casos;• Bem documentado e comunidade ativa;• Fácil, robusto, rápido e open source;

Page 35: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Exemplo de classificação

liso Irregular

Maçã Laranja

Irregular

= 1 (Laranja)

Page 36: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Graph Lab Createhttps://dato.com/products/create/

• Uma das ferramentas mais simples para se aprender ML;

• Baseada em python;• Boa documentação e possui licensa para estudantes;• Fácil definição de parâmetros e de visualização dos dados;• Integração com Ipython Notebook;

Turi

Page 37: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

http://spark.apache.org/docs/latest/mllib-guide.html

• Open source e embarcado no Spark;

• Projetado para ser capaz de analizar terabytes de dados;• Focado em ajudar a construir um Machine Learning pipeline

ao invés de ser uma library de algorítmos.;• Simples, de fácil integração com outras ferramentas, é

inspirado no scikit-learn;

Page 38: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

http://spark.apache.org/docs/latest/mllib-guide.html

Quem está utilizando?

• Yahoo!, Uber, Toyota, NBC, Linkedin, ING, Alibaba, Amazon, Ebay, Nasa JPL e Facebook.

Page 39: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

TensorFlowhttps://www.tensorflow.org/

• Utilizado por muitos serviços do Google;

• O queridinho para classificação de imagens e Neural Network; • Open Source e com APIs em python;• Comunidade mais forte que a o Torch ou Theano;• TensorBoard;

Page 40: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

TensorBoard

Page 41: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

DemoRegressão LinearPredizendo os valores de imóveis com base em suas características.

Page 42: TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Globalcode – Open4education

Obrigado!Denis Rosa

Software Engineer

deniswsrosa