Capítulo 94 – Machine Learning – Guia Definitivo – Parte 4
Nos 10 capítulos finais deste livro online vamos trazer um grande resumo sobre Machine Learning. O objetivo é fornecer uma visão clara do que é e como Machine Learning está sendo usado no dia a dia, um pouco de matemática, as principais regras e princípios. Queremos ainda que esses capítulos finais possam servir de material de referência para os alunos que estão buscando as certificações oferecidas pela DSA no Bootcamp de Certificação.
Serão 10 partes no total com um guia completo sobre Machine Learning. Aproveite a leitura para compreender de forma definitiva o que é uma das tecnologias mais incríveis do nosso tempo.
E a partir deste capítulo até o final do livro (que terá 100 capítulos), vamos explicar para você dezenas de regras e princípios da aplicação de Machine Learning para resolver problemas de negócio!
Boa leitura!
Machine Learning Não é a Solução Para Todos os Problemas
O aprendizado de máquina é incrível, mas requer dados. Sem dados, não há como usar Machine Learning. Isso está bem claro para você? Vamos repetir: sem dados não há como usar Machine Learning.
Logo, antes de pensar em Machine Learning uma empresa deve pensar em dados. Como obter os dados necessários? Como armazenar os dados com segurança? Como seguir as normas regulatórias e de privacidade? Todas essas perguntas devem ser respondidas antes de considerar Machine Learning para resolver os problemas da empresa.
E a criação de um modelo de Machine Learning não significa que já podemos parar de pensar em dados. Teremos que usar dados para alimentar o modelo treinado e extrair as previsões e teremos que re-treinar o modelo periodicamente com novos dados.
Sem uma política clara de gestão de dados (e de metadados) qualquer iniciativa de Machine Learning já começa errada. Não é justo depois colocar a culpa na tecnologia se ela não funcionar. Sem matéria-prima (dados), Machine Learning é apenas um belo diagrama teórico.
Machine Learning é Matemática e Estatística via programação de computadores. Quando os algoritmos são treinados com dados, aprendem os padrões e a generalização presente nos dados (se houver) e um modelo é criado. Ao receber novos dados, esse modelo é capaz de fazer previsões. Mas você deve concordar que os padrões podem mudar ao longo do tempo. O que isso significa? Que o modelo deve ser re-treinado periodicamente para manter a sua performance. Ainda assim, espera-se que o modelo tenha uma taxa de erros, algo absolutamente normal. O que você prefere? Nenhum modelo para prever as vendas ou um modelo capaz de fazer previsões com 90% de precisão? A segunda opção, evidentemente.
Além de tudo isso, cada modelo de Machine Learning é específico para resolver um problema. Sua empresa precisa de um modelo para prever o volume de vendas no próximo mês? Criamos um modelo para esse fim. Sua empresa precisa de um modelo para classificar novos e-mails como spam ou não spam? Criamos outro modelo para esse fim. Sua empresa precisa de um modelo capaz de detectar o sentimento do cliente em um post em determinada rede social? Ótimo, então criamos um outro modelo para esse fim. Entendeu a ideia? Cada modelo é específico ao problema que estamos tentando resolver e cada problema terá seu próprio conjunto de dados.
Logo, Machine Learning parece mágica somente até você compreender a Matemática por trás dos modelos. Por se tratar de uma tecnologia baseada em Ciências Exatas, Machine Learning é regido por diversas regras e princípios, muitas das quais listaremos para você a partir de agora.
Mas antes de decidir usar Machine Learning, a empresa deve considerar se Machine Learning é a solução ideal ou não. Por isso conhecer as regras e princípios do aprendizado de máquina pode ser o ponto de partida.
Regras e Princípios
Vamos listar agora dezenas de regras e princípios para a utilização de Machine Learning no dia a dia. Começaremos neste capítulo e seguiremos até o final deste livro, no Capítulo 100. O primeiro grupo de regras e princípios é sobre o início do projeto de Machine Learning.
Regra 1: Tudo começa com a definição do problema de negócio
Machine Learning compreende um conjunto de algoritmos que, ao serem treinados com dados, geram um modelo capaz de fazer previsões quando recebe novos dados. Logo, cada modelo de Machine Learning será criado para resolver um problema diferente, cada qual com diferentes conjuntos de dados. Se não definirmos o problema, como saberemos quais dados buscar e qual algoritmo usar? Definimos o problema e só depois teremos condições de pensar em Machine Learning.
Um projeto de Machine Learning não começa com Machine Learning. Começa com a definição do problema, identificação dos dados e só então podemos falar em aprendizado de máquina.
Regra 2: Escolha o aprendizado de máquina em vez de uma heurística complexa
Uma simples heurística pode levar um produto (software) ao mercado. Uma heurística complexa é insustentável. Depois de ter uma ideia básica do problema de negócio que está tentando resolver e dados que suportam a ideia, passe para o aprendizado de máquina. Como na maioria das tarefas de engenharia de software, você desejará estar constantemente atualizando sua abordagem, seja uma heurística ou um modelo de Machine Learning e descobrirá que o modelo de aprendizado de máquina é mais fácil de atualizar e manter, na maioria dos casos.
Regra 3: Projete e implemente métricas desde o início
“O que não pode ser medido não pode ser gerenciado”.
A célebre frase de William Edwards Deming (notável estatístico, consultor, conferencista e professor norte-americano) expõe uma verdade aplicável à qualquer situação, inclusive à construção dos modelos de Machine Learning. Como saber se a performance do modelo está adequada? Como saber se a performance está se deteriorando ao longo do tempo? Precisamos medir a performance do modelo periodicamente e, logo, precisamos de uma ou mais métricas.
Há métricas comuns como acurácia ou coeficiente de determinação, mas cada empresa pode criar suas próprias métricas e isso é muito comum em Startups de tecnologia. Definimos as métricas que permitirão monitorar e acompanhar a evolução do modelo ao longo do tempo. Isso vai ajudar a saber, por exemplo, o momento ideal de re-treinar o modelo ou mesmo mudar completamente sua concepção.
Regra 4: Mantenha o primeiro modelo simples e obtenha a infraestrutura certa
O primeiro modelo fornece o maior impulso à sua solução, por isso não precisa ser sofisticado. Mas você terá muito mais problemas de infraestrutura do que o esperado. Antes que alguém possa usar seu novo e sofisticado sistema de aprendizado de máquina, você precisa determinar:
- Como obter dados para o seu algoritmo de aprendizagem.
- Uma ou mais métricas para definir se o modelo é “bom” ou “ruim”.
- Como integrar seu modelo de Machine Learning aos aplicativos da empresa. Você pode aplicar o modelo ao vivo ou pré-computar o modelo em exemplos offline e armazenar os resultados em uma tabela. Por exemplo, você pode querer pré-classificar páginas da web e armazenar os resultados em uma tabela, mas pode querer classificar mensagens de redes sociais ao vivo.
Modelos de Machine Learning serão melhorados ao longo do tempo à medida que a empresa e a equipe de Ciência de Dados aprendem as nuances de uso do modelo no dia a dia, comete erros, faz ajustes, reavalia e o ciclo se repete. Não é necessário ter um modelo perfeito para começar e a primeira versão do modelo traz aprendizado para a empresa construir modelos cada vez melhores.
Regra 5: Teste a infraestrutura independentemente do aprendizado de máquina
Não adianta ter o modelo de Machine Learning mais incrível, sofisticado e preciso do sistema solar, se não for possível executá-lo em tempo hábil.
Certifique-se de que a infraestrutura seja “testável” e que as partes de aprendizado do sistema sejam encapsuladas para que você possa testar tudo ao seu redor. Especificamente:
- Teste a obtenção de dados no algoritmo. Verifique se as colunas de recursos que devem ser preenchidas estão preenchidas. Onde a privacidade permitir, inspecione manualmente as entradas de treinamento do seu algoritmo. Se possível, verifique as estatísticas em seu pipeline em comparação com as estatísticas dos mesmos dados processados em outro lugar.
- Teste a precisão dos modelos. Certifique-se de que o modelo em seu ambiente de treinamento forneça a mesma pontuação que o modelo em seu ambiente de produção.
- O aprendizado de máquina tem um elemento de imprevisibilidade, portanto, verifique se você tem testes para o código para criar exemplos no treinamento e na produção e se pode carregar e usar um modelo fixo durante a produção.
Regra 6: Tenha cuidado com dados descartados ao executar pipelines
Um pipeline é uma sequência de tarefas para extrair, processar e carregar dados. Dados são extraídos de uma ou mais fontes, processados e transformados de acordo com as necessidades de limpeza e regras de negócio e então carregados em um repositório de destino. A arquitetura e concepção do pipeline é responsabilidade de um Arquiteto de Dados e a criação, execução e manutenção é responsabilidade de um Engenheiro de Dados.
O problema, é que esses profissionais podem não ter uma visão completa de como os dados serão usados mais tarde para treinar os modelos de Machine Learning e dados úteis podem ser descartados no meio do caminho. O que é bom para o pipeline pode gerar falta de dados mais tarde no processo.
Certifique-se que todos os membros da equipe de Ciência de Dados estejam alinhados para que o processo de construção de modelos de aprendizado de máquina seja uma grande linha de produção e nada seja perdido no meio do caminho.
Regra 7: Transforme heurísticas em recursos ou trate-os externamente
Heurísticas são estratégias práticas que diminuem o tempo de tomada de decisão e permitem que as pessoas funcionem sem parar constantemente para pensar em seu próximo curso de ação. As heurísticas são úteis em muitas situações, mas também podem levar a vieses inconscientes.
Normalmente, os problemas que o aprendizado de máquina está tentando resolver não são completamente novos. Existe um sistema existente para classificação ou qualquer problema que você esteja tentando resolver.
Isso significa que há um monte de regras e heurísticas. Essas mesmas heurísticas podem ajudá-lo quando ajustadas com aprendizado de máquina. Suas heurísticas devem ser exploradas para qualquer informação que tenham, por dois motivos: Primeiro, a transição para um sistema de aprendizado de máquina será mais suave. Em segundo lugar, geralmente essas regras contêm muita intuição sobre o sistema que você não quer jogar fora. Existem quatro maneiras de usar uma heurística existente:
Pré-processar usando a heurística. Se o recurso é incrivelmente importante, então esta é uma opção. Por exemplo, se, em um filtro de spam, o remetente já estiver na lista restritiva, não tente reaprender o que significa “lista restritiva”. Bloqueie a mensagem. Essa abordagem faz mais sentido em tarefas de classificação binária.
Crie um recurso. Criar um recurso diretamente da heurística é ótimo. Por exemplo, se você usar uma heurística para calcular uma pontuação de relevância para um resultado de consulta, poderá incluir a pontuação como o valor de um recurso. Mais tarde, você pode querer usar técnicas de aprendizado de máquina para massagear o valor (por exemplo, converter o valor em um de um conjunto finito de valores discretos ou combiná-lo com outros recursos), mas comece usando o valor bruto produzido pela heurística.
Extraia as entradas brutas da heurística. Se houver uma heurística para aplicativos que combine o número de instalações, o número de caracteres no texto e o dia da semana, considere separar essas partes e alimentar essas entradas no aprendizado separadamente.
Modifique o rótulo. Esta é uma opção quando você sente que a heurística captura informações não contidas no rótulo. Por exemplo, se você está tentando maximizar o número de downloads de uma app, mas também deseja conteúdo de qualidade, talvez a solução seja multiplicar o rótulo pelo número médio de estrelas que o aplicativo recebeu. Há muita margem de manobra aqui.
Esteja atento à complexidade adicional ao usar heurística em um sistema de Machine Learning. Usar heurísticas antigas em seu novo algoritmo de aprendizado de máquina pode ajudar a criar uma transição suave, mas pense se existe uma maneira mais simples de obter o mesmo efeito.
Continuaremos no próximo capítulo.
Referências: