Como entender Machine Learning através da comida

Photo by Cel Lisboa on Unsplash

Através da comida?!

Isso mesmo, através da comida! :-)

Imagine que você está pedindo uma pizza e, em pouco tempo, você recebe aquela pizza linda, quentinha e deliciosa entregue na sua casa.

Alguma vez você já pensou em todos os passos envolvidos no processo que termina com a pizza entregue em sua casa? Tipo, o processo todo mesmo, desde a semeadura dos tomates até o entregador apitando no interfone! No fim das contas, não é tão diferente de um projeto de Machine Learning.

Sério mesmo! Confere aí!

Esse artigo foi inspirado por uma apresentação de , Cassie Kozyrkov, Chief Decision Scientist do Google, na conferência Data Natives em Berlim.
Photo by SwapnIl Dwivedi on Unsplash

1. Semeando

Esse é o processo gerador de dados, que pode ser uma ação de usuário ou movimento, calor ou ruído disparando um sensor, por exemplo.

Photo by no one cares on Unsplash

2. Colhendo

Depois, chega a época da colheita, ou seja, quando os vegetais ou frutas estão no ponto correto.

Essa é a coleta de dados, ou seja, quando o browser do usuário ou o sensor transforma em dados, respectivamente, a ação do usuário ou o evento que disparou o sensor.

Photo by Matthew T Rader on Unsplash

3. Transportando

Depois da colheita, os produtos têm que ser transportados até o seu destino para serem usados como ingredientes em nossa pizza.

Essa é a ingestão de dados em um repositório, como uma base dados ou um data lake, de onde serão usados posteriormente.

Photo by Nicolas Gras on Unsplash

4. Escolhendo equipamentos e utensílios

Para cada ingrediente, existe um utensílio apropriado. Para cortar, use uma faca. Para misturar, uma colher. O mesmo raciocínio vale para os equipamentos: para cozinhar, use um forno. Para fritar, um fogão. Você também pode usar algo mais sofisticado, como um microondas, que tem muito mais opções de configuração.

Mas, algumas vezes, é melhor utilizar um equipamento mais simples — ou você já viu algum restaurante divulgar “pizzas de microondas”?! Eu, nunca!

Em Machine Learning, os utensílios são técnicas de pré-processamento de dados, enquanto os equipamentos são os algoritmos, tais como Regressão Linear ou Floresta Aleatória. Você também pode usar um microondas, digo, Deep Learning. As várias opções de configuração são equivalentes aos hiper-parâmetros. Equipamentos, digo, algoritmos simples têm poucos hiper-parâmetros, mas os sofisticados têm vários.

Além disso, não há nenhuma garantia que usar um algoritmo mais sofisticado vá resultar em um desempenho melhor (ou você gosta mais de pizzas de microondas?!). Dito isso, escolha sabiamente seu algoritmo.

Photo by S O C I A L . C U T on Unsplash

5. Escolhendo uma receita

Ingredientes e equipamentos não bastam. Você também precisa de uma receita, contendo todos os passos necessários para preparar seu prato.

Esse é o seu modelo. E, não, seu modelo não é a mesma coisa que seu algoritmo. O modelo inclui também todos o pré e pós processamentos necessários. E, falando em pré-processamento

Photo by Caroline Attwood on Unsplash

6. Preparando ingredientes

A maioria das receitas começa com instruções do tipo: “corte isso”, “descasque aquilo”, etc. Elas não mandam lavar os vegetais, pois isso é óbvio — ninguém quer comer vegetais sujos, não é mesmo?

Bom, o mesmo vale para os dados. Ninguém quer dados “sujos”. Você tem que limpá-los, ou seja, lidar com dados faltantes e outliers. E então você tem que descascá-los e cortá-los, digo, pré-processá-los, tipo, codificando variáveis categóricas (por exemplo, masculino ou feminino) em valores numéricos (0 ou 1).

Ninguém gosta dessa parte. Nem os cientistas de dados, nem os cozinheiros (acho eu).

Photo by Bonnie Kittle on Unsplash

7. Preparos especiais

De vez em quando, você pode ser criativo com seus ingredientes para obter um sabor melhor ou uma apresentação sofisticada.

Você pode maturar um bife para obter um sabor distinto ou esculpir uma cenoura no formato de uma rosa para colocar em cima do seu prato :-)

Essa é a engenharia de atributos! Um passo importante que pode aumentar substancialmente o desempenho de seu modelo, se for feito de maneira engenhosa.

Praticamente todos cientistas de dados gostam dessa parte. E eu acho que os cozinheiros, também.

Photo by Clem Onojeghuo on Unsplash

8. Cozinhando

Esse é o passo fundamental — sem cozinhar os ingredientes, não temos prato. Você coloca os ingredientes no fogão (ou outro equipamento), ajusta a temperatura e aguarda um pouco antes de conferir novamente.

Esse é o treinamento do seu modelo. Você alimenta os dados no seu algoritmo, ajusta os hiper-parâmetros e aguarda um pouco antes de conferir novamente.

Photo by Icons8 team on Unsplash

9. Provando

Mesmo que você siga uma receita ao pé da letra, não há garantia alguma de que tudo vá dar certo. Como você vai saber, então? Você prova! Se não estiver bom, você pode colocar um pouco mais de sal ou, quem sabe, mudar a temperatura. Mas não pára de cozinhar!

Infelizmente, algumas vezes sua pizza vai queimar, ou ficar com um gosto horrível que você não consegue melhorar de jeito nenhum. Você joga ela fora, aprende com seus erros e recomeça.

Com um pouco de sorte, se você persistir, conseguirá fazer uma pizza deliciosa :-)

Provar é avaliar. É preciso avaliar seu modelo para saber se ele está apresentando um bom desempenho. Caso não esteja, você pode acrescentar mais atributos ou, quem sabe, mudar um hiper-parâmetro. Mas não pára de treinar!

Infelizmente, algumas vezes seu modelo não vai convergir para uma solução, ou vai produzir previsões muito ruins sem que você consiga arrumá-lo. Você descarta o modelo, aprende com seus erros e recomeça.

Com um pouco de sorte, se você persistir, conseguirá treinar um modelo com alto desempenho :-)

Photo by Kai Pilger on Unsplash

10. Entregando

Para o cozinheiro, o trabalho está terminado! Ele fez uma pizza deliciosa. Deu.

Mas se a pizza não for entregue a tempo para o consumidor, a pizzaria vai quebrar e o cozinheiro vai perder o emprego.

Depois da pizza pronta, é preciso empacotá-la para mantê-la quente e transportá-la com cuidado para não chegar toda esmagada na casa do consumidor faminto. Se o entregador não chegar lá, ou se perder a pizza no caminho, ou se chacoalhar a pizza, todo esforço na cozinha terá sido em vão.

Entrega é implantação. Previsões, ao invés de pizzas. Mas previsões, assim como as pizzas, também tem que ser “empacotadascomo produtos, ao invés de caixas. Assim, elas podem ser entregues aos seus ávidos consumidores. Mas se o processo falhar ou for interrompido, ou ainda se as previsões forem modificadas, todo esforço no treinamento e avaliação terá sido em vão.


Viu?! Machine Learning é como cozinhar — existem muitas pessoas envolvidas no processo e requer muito esforço, mas o resultado final pode ser delicioso!

E, não se esqueça que:

  • se os ingredientes estiverem estragados, o prato vai ficar ruim  não há receita no mundo capaz de arrumar isso e, tampouco um equipamento ou utensílio;
  • se você é um cozinheiro, não se esqueça que, sem a entrega, não há motivo para cozinhar, já que ninguém iria provar sua deliciosa comida;
  • e, se você é um dono de restaurante, não tente empurrar seus equipamentos goela abaixo do cozinheiro — o microondas nem sempre é a melhor opção — e, além disso, o seu cozinheiro vai ser muito infeliz se tudo que ele fizer for lavar e descascar ingredientes

Não sei você, mas eu vou pedir uma pizza agora! :-)

Para sugestões, perguntas ou comentários, por favor, escreva abaixo ou me contate no Twitter.