TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro

Preview:

Citation preview

Globalcode – Open4education

Machine Learning Black-Boxes

Denis RosaSoftware Engineer

deniswsrosa

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

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.

Globalcode – Open4education

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.

Globalcode – Open4education

Por que utilizar BlackBox ?

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

Globalcode – Open4education

Como funciona um modelo de machine learning?

Globalcode – Open4education

Gato

Cachorro

Globalcode – Open4education

Generalização

Globalcode – Open4education

?Cachorro

Globalcode – Open4education

SupervisionadoNão Supervisionado

TreinadoSupervisionadoNão Supervisionado

Treinado

Modelos de ML

Globalcode – Open4education

O filho adotadoTreinado

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;

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/

Globalcode – Open4education

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

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

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.

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.

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

Globalcode – Open4education

O filho biológicoSupervisionado

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.

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

Globalcode – Open4education

75de precisão

% 90%-

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;

Globalcode – Open4education

Machine Learning NÃO é um SIMPLES framework

Primeiro erro de todo programador Java: Mahout

Muitos algorítmos do Mahout foram deprecados

Globalcode – Open4education

Por onde eu começo?

Globalcode – Open4education

Aprenda os principais Algoritmos  de ML

Globalcode – Open4education

Quais black boxes devo utilizar?

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

Globalcode – Open4education

Weka

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;

Globalcode – Open4education

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

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.

Globalcode – Open4education

Flow

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

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;

Globalcode – Open4education

Exemplo de classificação

liso Irregular

Maçã Laranja

Irregular

= 1 (Laranja)

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

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;

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.

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;

Globalcode – Open4education

TensorBoard

Globalcode – Open4education

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

Globalcode – Open4education

Obrigado!Denis Rosa

Software Engineer

deniswsrosa