– O que é Machine Learning?
– “Ah, é quando a máquina aprende sozinha como fazer as coisas de forma automática”.
– Tá, mas como?
– …
Como ficar sem palavras não é uma boa opção, nós separamos aqui dois textos que ajudam a compreender não só o conceito, mas o funcionamento de Machine Learning da forma mais simples possível. Um deles é da cientista-chefe do Google, Cassie Kozyrkov, que faz uma brincadeira bem legal com vinhos [a turma da Ilumeo fez uma resenha em português]. E o outro é do canal no Medium Towards Data Science, escrito pelo fundador da startup de cash back Ben Sanders. Nós vamos misturar um poucos dos dois para tentar desembaralhar algumas coisas.
O COMEÇO, BEM DO COMEÇO
A primeira coisa importante é entender que tudo o que dá sustentação a qualquer coisa que envolva ML, AI ou qualquer modelo estatístico, depende de uma planilha de Excel [claro que não é no véio de guerra da Microsoft que a mágica acontece, mas acompanhe o raciocínio]. Quando as pessoas mencionam “dados” elas querem dizer literalmente células preenchidas dentro de um excel. Um ponto que pertence a uma linha e a uma coluna. Sendo as linhas os casos e as colunas as variáveis analisadas.
Para ficar fácil, vamos pegar o exemplo da Cassie, dos vinhos. Ela criou uma lógica simples de avaliar 50 vinhos, com apenas duas classificações: Y [yummy] e N [not so yummy], ou seja, gostoso ou não tão gostoso, na opinião dela. Além disso, cada um deles receberia um número de identificação de 1 a 50 [ID], uma pontuação de qualidade [review score] e a idade. Pronto, temos um database. Cada linha é um vinho [caso] e cada coluna representa uma variável a ser avaliada.
Nesse exemplo do vinho, a pessoa classificou os 50 na mão, um a um, e formou um database inicial. O que esperamos do Machine Learning é que, quando aplicado, o 51o vinho seja classificado automaticamente, pelo próprio software e não mais pelo ser humano. O ID está fácil, é só seguir a ordem. A idade e o review score são dados que a pessoa apenas tirou de algum lugar e colocou na planilha. Então é simples imaginar que apenas se aplique uma programação simples para “sugar” esses dados das suas fontes originais [algum outro database de vinhos, em um site, por exemplo]. Agora, e o Y e o N? Como adivinhar se o vinho é gostoso ou não, a partir dos critérios pré estabelecidos nos 50 primeiros?
UMA QUESTÃO DE PADRÕES
A partir daqui, o que precisa ser feito é compreender um padrão de como a combinação – ou interação – entre as outras duas variáveis [idade e pontuação] determina que um vinho tenha sido classificado como gostoso ou não tão gostoso. Encontrando esse padrão, teremos uma forma de prever se o 51o vinho e todos os próximos serão Y ou N, sem que a própria pessoa precise dizer.
E quando estamos diante de uma questão que envolve encontrar padrões a partir da interação de duas ou mais variáveis, estamos falando essencialmente de estatística. Testes estatísticos, a grosso modo, fazem precisamente isso.
Pense numa correlação, para usar um termo que vive na boca das pessoas. Ele parte de testes associativos, que tentam encontrar padrões de comportamentos similares entre variáveis [ex: nível de escolaridade está correlacionado com renda per capita: quando uma sobe, a outra acompanha]. Isso vale para técnicas de clusterização, também, para usar outro termo recorrente. Nesse caso, o padrão é entre as linhas do database, ou seja, tentaríamos achar grupos de vinhos nos quais as variáveis se comportam de jeitos semelhantes.
O importante de lembrar é: se estamos falando de encontrar padrões, estamos falando de estatística.
Em seu texto, Ben Sanders dá o exemplo da regressão linear, que é um teste estatístico usado para encontrar um tipo de padrão de comportamento entre variáveis dependentes [aquilo que se quer explicar – no caso a classificação Y e N dos vinhos] e independentes [aquilo que explica – no caso, a idade e a pontuação dos vinhos]. Dada a distribuição dos pontos [casos, ou vinhos nesse exemplo] a regressão busca traçar a linha que melhor se encaixa entre os pontos, com capacidade de prever qual será o próximo.
Então, no fundo o que um algorítmo de machine learning está fazendo é encontrando a melhor maneira possível de dividir esses pontos, de acordo com as classificações estabelecidas. Como traçar a melhor separação possível entre os Y e os N? Porque fazendo isso, será possível identificar o padrão e ter alguma precisão se o 51o vinho será classificado como gostoso ou não tão gostoso, dependendo de qual seja sua idade, combinada com sua pontuação.
Em seu texto, Ben também ilustra de forma bem visual diferentes tipos de técnicas estatísticas, além da Regressão Linear, que buscam diferentes formas de separar os pontos para melhor classificá-los. No seu exemplo, não são tipos de vinhos, mas pontos que tentam ser classificados entre vacas e lobos.
Identificar padrões de interação entre variáveis, para estabelecer a melhor forma de fazer a classificação desejada. Essa é em essência a tarefa de qualquer modelo de machine learning.
PAUSA PARA ENTENDER ALGUNS OUTROS CHAVÕES
Sempre que se houve um papo sobre Machine Learning, AI ou Data Science, é comum ouvir que eles tratam de::
– Centenas de variáveis
– Milhares de casos
– Modelos preditivos
– Tudo em tempo real
E agora isso pode ficar mais claro para nós. Pense no caso do vinho. Será que com apenas 50 classificações no banco de dados original é possível que os modelos estatísticos sejam precisos o suficiente para que acertemos o 51o e os demais? Ou será que apenas a idade e a pontuação são variáveis suficientes para predizermos se um vinho será gostoso ou não? Existem provavelmente outras variáveis que contam para enriquecer o modelo? Variáveis inclusive fora do vinho em si?
Por tudo isso, Machine Learning depende de volume. Volume de variáveis que ajudam a compor um fenômeno e de boa capacidade teórica de predição de outras variáveis. E volume de casos, para que haja massa crítica suficiente para que tenhamos confiança que os dados se comportam de determinada maneira e os próximos inputs provavelmente seguirão a mesma regra.
Só assim é possível efetivamente estabelecer um modelo [um padrão] preditivo [que “adivinha”] qual é a próxima classificação de cada novo caso do banco de dados.
E o tempo real é simplesmente uma questão operacional de como os dados são inputados. Nesse nosso caso dos vinhos, para não precisarmos ficar inputando todo novo vinho de maneira analógica, teríamos que plugar nosso database em outros, que trariam as pontuações, em outros que trariam a idade e qualquer outra variável que escolhessemos compor no modelo. Então, toda vez que um novo input fosse dado, uma lógica simples de if/then [ou seja, um algoritmo] nos devolveria já automaticamente a classificação desse novo vinho, baseado no modelo preditivo estabelecido no database original.
MAS E A TAL “APRENDIZAGEM”?
Pois bem, agora sim, a última parte, que dá sentido ao termo “machine learning” de fato.
No ponto em que estamos da nossa construção, conseguimos gerar estatisticamente um modelo com bom poder preditivo para classificar os vinhos como gostosos ou não tão gostosos. Esse database original é chamado normalmente de base de “treino”. Esse é um termo comum entre quem trabalha na área. E faz sentido, porque realmente ele é uma base controlada e estática, em que está se tentando encontrar padrões de comportamento das variáveis.
E aí começa a vida real, em que vinhos começarão a ser inputados constantemente e nosso modelo vai decidir se o classificará como Y ou N. É nesse momento que o modelo será testado de vez [na verdade o comum é se simular esse tipo de novo input, criando uma base artificial de testes], entendendo se consegue classificar os novos inputs com a mesma precisão que classificou a base de treino. Então, o que começa acontecer é um ajuste no modelo, que vai aperfeiçoando seu entendimento dos padrões a cada nova linha [caso, ou vinho aqui] no database.
Ajuste [ou fit] é outra palavrinha chave nesses conceitos de Machine Learning. Porque o grande risco técnico é o que eles chamam de “overfit”, ou seja um super ajuste do modelo, que consegue estabelecer padrões de classificação altíssimos dentro da base de treino. Mas ele é tão ajustado naquela base, que não funciona para os novos inputs. Então, o ideal é que sempre se calibre o instrumento de maneira prévia buscando um ajuste satisfatório, mas não perfeito. E que sejam feitos constantemente novos testes estatísticos, na medida que venham os novos inputs, para que o modelo esteja sempre melhor ajustado para prever com mais precisão os próximos.
Claro que há um milhão de conceitos no meio de tudo isso, que servem para os técnicos efetivamente consegurem criar esses modelos e seus ajustes. Mas, de modo geral, é assim que funciona Machine Learning. E a partir dessa ideia é que você pode começar a pensar que tipo de base de dados você tem – ou poderia ter – no seu trabalho, que necessita de classificação humana atualmente, mas poderia acontecer de forma automatizada e em tempo real, criando bons inputs para a sua operação e tomada de decisão.
Se você não é estatístico e programador, você não vai conseguir fazer isso sozinho. Mas está mais na sua mão do que você imagina pensar em um projeto de Machine Learning, no tipo de utilidade que ele terá e conseguir conversar com as áreas técnicas para desenvolver algo que faça a diferença.
Just do it 🙂