Utilizando Machine Learning e Java para classificar o conteúdo de páginas Web
Agile Trends 2018 - Além da Automação com Machine Learning
1. Indo Além da Automação
Com Machine Learning
Emerson Bertolo
Analytics Data Science Team
2. Machine Learning
Machine Learning is the science (and
art) of programming computers so
they can learn from data.
Géron, Aurélien (2017-03).
url das ilustrações:
http://codejocks.com/how-tensorflow-is-bringing-machine-learning-in-the-spotlight/
https://giphy.com
3. Analytics
Artificial Intelligence for Software Testing (AIST)
É um campo emergente que visa o desenvolvimento de
sistemas de IA para testar software, métodos para testar
sistemas de inteligência artificial e, finalmente, projetar
software capaz de auto-teste e auto-recuperação.
(Traduzido por Google Translator - algoritmo de NLP)
AISTA (www.aitesting.org)
AIST
4. Plataforma de
Gestão Testes
(Hub)
url das ilustrações: https://pixabay.com
https://giphy.com
Predições baseadas em
Experiências Passadas
Predição Ciclos de Testes
Solução Randômica de
Tentativa & Erro
Cenário Atual & Desafios
Relatórios
(Hub)
5. dataset
estruturado
dos ciclos
Predições baseados em
Modelos Estatísticos
Ações
SimuladasPlataforma de
Gestão Testes
(Hub)
Predição Ciclos de Testes
Nova Proposta
url das ilustrações: https://pixabay.com
https://giphy.com
Time de Diversas
Expertises
Insights Criativos
Machine Learning
Mais novo
Integrante do Time
Quais relações existem entre
os dados extraídos?
Fazendo Perguntas
Novas
6. raw data
(CSV, JSON)
Seleção de 5 Features
Estudo de Correlação
(entre 10 a 20)
Como fizemos?
Gênese de um Modelo Preditivo
url das ilustrações: https://pixabay.com
http://carlosbaia.com/2016/12/24/decision-tree-e-random-forest/
https://giphy.com
Random Forest
Transformação e
Normalização
Regressão Logística
dataset
normalizado
Experimentação & Seleção dos
Modelos de Aprendizagem
Regressão
Decision Tree
Random Forest
XGboost
Redes Neurais
Obtenção de
Coeficientes
Treino & Validação
300 Ciclos de Testes
Podemos facilmente embutir os
coeficientes em uma planilha
ou em API’s
Quando 2 físicos PhD’s se divertem com ML
8. Lições I
GIGO = Garbage in, Garbage out
Avaliar quais informações realmente podem ser aproveitadas
url das ilustrações: https://giphy.com
9. Lições II
Distribuição dos Dados Analisados
Amostras desbalanceadas são um grande desafio
url das ilustrações: https://giphy.com
10. Lições III
Modelos mais Simples, Modelos Melhores
6 features representavam maior impacto na predição
url das ilustrações: https://giphy.com
11. Lições IV
Falsas Correlações podem Invalidar seu Modelo
Modelo Simplificado com 4 features de maior correlação
url das ilustrações: https://giphy.com
12. Resultados
Predição e Prescrição
80% de Acurácia (acerto médio) na Predição de Atrasos
Sistema Prescritivo
Probabilidade de Conclusão: 0.0%
Classificação: Provável Atraso
Considerar aumentar o prazo planejado para 35 dias
13. url das ilustrações: https://giphy.com
Automação de Testes & IA
Desafios
➔ Testes quebram quando as telas mudam
➔ Dependência de DOM (web)
➔ Dependência de Posição de Tela (legado)
15. Image Detection
Soluções Possíveis
➔ Computer Vision (libs como OpenCV e muitos docs)
➔ Redes Neurais Single Shot Detection - SSD (2015)
➔ TensorFlow Object Detection API (2017)
url das ilustrações:
https://github.com/tensorflow/models/tree/master/research/object_detection
16. Protótipo Zero
Computer Vision com OpenCV
➔ OpenCV 3
➔ Border Detection & Image Filters
➔ Android ADB
Criamos um robô capaz de acessar um dispositivo android e sozinho
explorar sua tela com cliques e swipes. Com OpenCV o sucesso da
detecção depende do estilo de tela e ícones.
17. Redes SSD
Predicting Box Containers
url dos principais papers:
https://arxiv.org/pdf/1512.02325.pdf
https://arxiv.org/pdf/1506.02640.pdf
Uma SSD desenha vários boxes e analisa a probabilidade de um box conter um objeto
Os boxes com maior índice de confiança são mantidos como predição
Aqui a arquitetura Yolo bastante popular na detecção de objetos
Um rede SSD possui camadas especializadas na deteção de muitos boxes
Mais rápida que a Yolo, mas tem menor acurácia
18. Como começamos?
➔ 2500 prints de tela
➔ Classificados em 5 categorias de objetos
➔ Uma GPU AWS - 15 min treino (média por rodada)
➔ Time de 5 pessoas - POC em 2 semanas
url das ilustrações: https://giphy.com
20. Resultados com SSD
Uma rede SSD treinada ocupa apenas 4 megabytes
A rede neural aprendeu a reconhecer os botões principais e
labels de título depois de 15 minutos de treino
21. Resultados com SSD
Dataset final com 400 imagens de treino
Rede aprendeu a reconhecer os botões com sucesso e exatidão (maior parte)
Deteção deslocada ou sobreposta - correção pode ser aplicada usando um filtro matemático
Falsas detecções, rede deve ser treinada com telas mais heterogêneas
22. ➔ Grande parte do esforço é obter dados de treino
➔ Scripts Python para ajuste de imagens e xml maps
➔ Utilizar a própria rede para rotular novas imagens
➔ Utilizar Imagem + Texto é mais promissor
➔ Acurácia de 100% não é factível
url das ilustrações: https://giphy.com