sexta-feira, 18 de janeiro de 2019

Como automatizar o Machine Learning?

Paolo Tamagnini, Simon Schmid e Christian Dietz  em 17/01/2019 no site CIO



Foto: Shutterstock


É possível automatizar totalmente o ciclo de vida da Ciência de Dados? É possível construir automaticamente um modelo de Machine Learning a partir de um conjunto de dados?
De fato, nos últimos meses, surgiram muitas ferramentas que afirmam automatizar todo ou parte do processo da Ciência de Dados. Como eles funcionam? Você poderia construir um? Se você adotar uma dessas ferramentas, quanto trabalho seria necessário para adaptá-la ao seu próprio problema e ao seu próprio conjunto de dados?
Normalmente, o preço a pagar pela automação do Machine Learninga, ou AutoML, é a perda de controle de um tipo de modelo caixa preta. O que você ganha em automação, você perde em sintonia fina ou capacidade de interpretação. Embora esse preço possa ser aceitável para problemas de Ciência de Dados circunscritos em domínios bem definidos, ele pode se tornar uma limitação para problemas mais complexos em uma ampla variedade de domínios. Nestes casos, uma certa quantidade de interação com o usuário final é desejável.
No KNIME, adotamos uma abordagem mais suave à AutoML. Nossa automação guiada - uma instância especial de análise guiada - faz uso de um aplicativo  Web totalmente automatizado para guiar os usuários por meio da seleção, treinamento, teste e otimização de vários modelos de Machine Learning. O fluxo de trabalho foi projetado para que os analistas de negócios criem facilmente soluções de análise preditiva aplicando seu conhecimento de domínio.
Neste artigo, mostraremos as etapas deste aplicativo do ponto de vista do analista de negócios, ao executar a tarefa a partir de um navegador da web.
Análise guiada para AutoML
Com automação guiada, não pretendemos substituir o driver automatizando totalmente o processo. Em vez disso, oferecemos assistência e permitimos que o feedback seja coletado sempre que necessário durante o processo de modelagem. Uma aplicação de automação guiada é desenvolvida por Cientistas de Dados para usuários finais. Para ser bem sucedido, precisa de:

  • Facilidade de uso para o usuário final (por exemplo, execução de um navegador da web)
  • Um conjunto de pontos de interação da GUI para reunir preferências e exibir resultados
  • Opções de escalabilidade
  • Um aplicativo de software de Ciência de Dados flexível, extensivo e ágil em execução em segundo plano
Por flexível, extensivo e ágil, queremos dizer um aplicativo de Ciência de Dados que permite a montagem de dados complexos e operações de Machine Learning, além de integrações fáceis com outras ferramentas de Ciência de Dados, tipos de dados e fontes de dados.
Em geral, uma aplicação de automação guiada pode automatizar o desenvolvimento de muitos tipos de modelos de Macine Learning. Nesse caso, precisamos automatizar as seguintes partes do ciclo da Ciência de Dados para criar um modelo de classificação genérico:


  • Preparação de dados
  • Engenharia de recursos
  • Otimização de Parâmetros
  • Seleção de recursos
  • Treinamento de modelo
  • Avaliação de modelo
  • Implantação de modelo
Tão simples quanto o aplicativo final pode parecer para o usuário final, o sistema em execução em segundo plano pode ser bastante complexo e, portanto, não é fácil criar completamente do zero. Para ajudá-lo com este processo, criamos um modelo de um aplicativo interativo para criação automática de modelos de classificação de Machine Learning.
Este blueprint foi desenvolvido com o KNIME Analytics Platform e está disponível em nosso repositório público .
Um modelo para automação guiada de Machine Learning
O conceito principal por trás do blueprint para automação guiada inclui algumas etapas básicas:

  • Upload de dados
  • Definição de configurações de aplicativos por meio da interação humana
  • Treinamento e otimização de modelos automatizados, com base nas configurações definidas anteriormente
  • Painel com resumo de desempenho e download do modelo
O processo atual implementado no blueprint (Figura 1) se aplica a um problema de análise preditiva padrão. No entanto, o padrão raramente é o caso quando lidamos com problemas de dados. Geralmente, o processamento personalizado deve ser aplicado aos dados de entrada devido a tipos especiais de dados, estrutura de dados ou apenas conhecimento especializado pré-existente. Às vezes, o treinamento e o conjunto de testes podem precisar seguir regras específicas, como a ordem do tempo.


Uma possível customização do processo anterior, incluindo o pré-processamento de dados customizado e uma divisão de treinamento/teste customizada, é mostrada na Figura 2. É possível aplicar facilmente essas customizações ao blueprint no KNIME Analytics Platform. Graças à sua estrutura de programação visual, nenhuma codificação é necessária.
Automação guiada de Machine Learning: navegador da Web passo a passo
Vamos ver como é o esquema de automação guiada a partir de um navegador da web via KNIME Server .

No início, somos apresentados a uma sequência de pontos de interação:
  • Carregamento dos dados
  • Seleção da variável de destino
  • Remoção de recursos desnecessários
  • Seleção de um ou mais algoritmos de Machine Learning para treinar
  • Opcionalmente, personalização das configurações de otimização de parâmetros e engenharia de recursos
  • Seleção da plataforma de execução
Os recursos de entrada podem ser removidos com base na experiência do analista de negócios ou em uma medida de relevância do recurso. A medida de relevância que usamos foi baseada nos valores ausentes e na distribuição de valores da coluna; colunas com muitos valores ausentes, com valores que são muito constantes ou com valores que estão muito espalhados são penalizados.
A personalização da otimização de parâmetros e a engenharia de recursos são opcionais. A otimização de parâmetros é implementada por meio de uma pesquisa de grade em intervalos de parâmetros personalizáveis. A engenharia de recursos, se ativada, trabalha primeiro com um número de combinações de recursos e transformações selecionadas, depois com uma seleção final de recursos.
Algumas opções estão disponíveis em termos da plataforma de execução, variando de sua própria máquina local (padrão) a uma plataforma baseada em Spark ou outras plataformas de execução distribuídas .
O modelo de página Web a ser usado para todos os pontos de interação, que estão resumidos na Figura 3 abaixo, inclui uma descrição da tarefa necessária à direita e um fluxograma de aplicativo na parte superior. As etapas futuras são exibidas em cinza, as etapas anteriores em amarelo e a etapa atual em apenas um quadro amarelo.
Depois que todas as configurações tiverem sido definidas, o aplicativo executará as etapas no plano de fundo. Os recursos de entrada selecionados passarão pelo pré-processamento de dados (lidando com valores ausentes e outliers), criação e transformação de recursos, otimização de parâmetros e seleção de recursos, e treinamento final do modelo e avaliação em termos de medidas de precisão e desempenho computacional.
E aqui chegamos ao final da jornada de automação guiada. O aplicativo retorna um painel em que os modelos de Machine Learning selecionados são comparados em termos de precisão e velocidade de execução.
Curvas ROCmedidas de precisãográficos de ganho ou de sustentação matrizes de erro são calculados no conjunto de testes e exibidos na página de destino final para comparar medidas de precisão (Figura 4).
A velocidade de execução do modelo é avaliada durante o treinamento e durante a implantação. A velocidade de execução da implantação é medida como a velocidade média para executar a previsão de uma única entrada. Assim, dois gráficos de barras mostram, respectivamente, o tempo de treinamento do modelo em segundos e o tempo médio para produzir uma única previsão em milissegundos (Figura 5).
Todas as visualizações do painel são interativas. Configurações de plotagem podem ser alteradas e visualizações de dados podem ser exploradas em tempo real.
Os modelos estão prontos para download. No painel final, você encontrará os links para baixar um ou mais dos modelos treinados para uso futuro, por exemplo, como uma API RESTful em produção.
Para a experiência completa de automação guiada, você pode assistir ao aplicativo em ação neste vídeo de demonstração: "Análise orientada para automação de aprendizado de máquina".
Machine Learning para analistas de negócios
Neste artigo, descrevemos o modelo KNIME para automação guiada de Machine Learning e ilustramos as etapas necessárias. Esse aplicativo da web orientado ao fluxo de trabalho representa nossa própria interpretação de aplicativos de aprendizado de máquina semi-automatizados (guiados).

O blueprint implementado através da KNIME Analytics Platform e descrito neste artigo pode ser baixado gratuitamente , personalizado de acordo com suas necessidades e reutilizado livremente. Um fluxo de trabalho baseado na Web pode ser executado executando-se o mesmo aplicativo no Knime Server.
Agora, é a sua vez de criar um aplicativo de aprendizado de máquina guiada a partir desse blueprint. Dessa forma, você pode capacitar os analistas de negócios a criar e treinar facilmente modelos de aprendizado de máquina a partir de um navegador da web.
Para mais informações sobre o KNIME, visite www.knime.com e o blog KNIME .

Nenhum comentário:

Postar um comentário