Globalcode – Open4education
Machine Learning Black-Boxes
Denis Rosa
Software Engineer
deniswsrosa
Terceirizando o trabalho duro
Globalcode – Open4education
Agenda
Ecossistema de ML e Big Data
Como funciona ML
Modelos treinados
Watson
Cloud Vision API
Cognitive services
Modelos Supervisionados
Treinando Modelos
Weka
Machine Learning Studio
H2O
Scikit-learn
Turi
MLLib
TensorFlow
Hands 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
Globalcode – Open4education
?Cachorro
Globalcode – Open4education
Supervisionado
Não Supervisionado
Treinado Supervisionado
Não Supervisionado
Treinado
Modelos de ML
Globalcode – Open4education
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ês
http://fredrikstenbeck.com/what-languages-does-ibm-watson-support/
Globalcode – Open4education
Demo
https://alchemy-language-demo.mybluemix.net/
http://retrieve-and-rank-demo.mybluemix.net/rnr-demo/dist/#/
Globalcode – Open4education
Cloud Vision API
https://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 Services
https://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
Demo
https://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
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
75
de 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
Weka
http://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 Studio
https://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 Learn
http://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 Create
https://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
TensorFlow
https://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
Demo
Regressão Linear
Predizendo os valores de imóveis com base em suas
características.
Globalcode – Open4education
Obrigado!
Denis Rosa
Software Engineer
deniswsrosa

TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro