• Por Guilherme Sesterheim*

 

Agora que entendemos a diferença entre as três abordagens que podemos ter com relação a IA com o último artigo, é hora de olhar para a abordagem intermediária, sempre mantendo em mente os limites existentes. Dada a explicação das diferenças entre abordagens para Machine Learning: a) APIs prontas para uso, b) treinando um modelo, e c) criando um modelo, vamos falar sobre treinando (usando) um modelo.

Treinando um modelo

Esta é a abordagem meio termo para problemas com IA (ou Machine Learning). Uma vez que você conclui que seu problema não pode ser resolvido com APIs prontas para uso, tente esta abordagem. Só porque não há uma API pronta para uso, não significa que ninguém nunca tentou resolver o seu problema, falando de forma mais ampla e genérica. Existe uma probabilidade altíssima de que o seu problema já possa ser resolvido através de um modelo existente. Usando esta abordagem, você deverá olhar para três coisas. Isto não significa dependência, uma vez que o terceiro passo (abaixo) pode ser deixado de lado em alguns casos (também exemplificado abaixo), mas eles são uma sequência.

Encontrando o melhor modelo

Esta é a parte onde você precisará de alguém com experiência no assunto. Há vários modelos para serem utilizados e abordar/resolver o mesmo problema, por exemplo. E também há vários problemas sem modelos que os cubram. Você precisará encontrar o melhor modelo que se encaixa da melhor forma à sua necessidade. Você precisará também checar os percentuais de confiabilidade que o modelo em questão provê, se ele usa as informações de que você dispõe, e ainda se você precisará adaptar alguma informação que você já tenha para usar aquele modelo;

Podemos dividir os modelos em três grupos:

  • Modelos para treinamento supervisionado

    Você poderá usar um modelo de treinamento supervisionado quando você sabe que o algoritmo precisa chegar à conclusão X (objetivo) depois de avaliar as informações A (info 1), B (info 2) e C (info 3). Exemplo: você sabe que espirros (info 1), temperatura corporal elevada (info 2), e dor por todo o corpo (info 3) significa que você está gripado (objetivo). Abaixo apresento genericamente alguns modelos muito conhecidos:

o Regressão linear – https://docs.aws.amazon.com/machine-learning/latest/dg/types-of-ml-models.html – É um bom modelo para trabalhar com números. Predição de números principalmente. Exemplos: qual será a temperatura para amanhã? Por quanto esta casa será comprada?

o Árvore de decisão –https://www.ibm.com/support/knowledgecenter/en/SS3RA7_15.0.0/com.ibm.spss.modeler.help/nodes_treebuilding.htm – Encontre a doença: os sintomas A, B e C são verdadeiros no paciente? Então doença X; Os sintomas A, B e D são verdadeiros? Então doença Y;

o Redes Bayesianas – https://pt.slideshare.net/GiladBarkan/bayesian-belief-networks-for-dummies – Quando temos uma evidência e queremos chegar a sua causa. Propagação de crença – O mesmo cenário da saúde acima pode ser aplicado, porém de forma inversa. Tenho gripe. Preciso identificar se neste paciente, temos todos os sintomas, ou se ele não apresenta corisa mas mesmo assim tem gripe.

  • Modelos para treinamento não supervisionado

    Você poderá usar quando não possui a conclusão a que aquele algoritmo precisa chegar. Você precisará checar todas as vezes que ele for executado. Exemplo: se o cliente comprou o produto X e Y, ele pode estar interessado no produto Z. Você não sabe se de fato ele está interessado no produto Z, porque ele PODE estar interessado, mas mesmo assim não comprar o produto (o que concluiria sua predição). Apresento também alguns modelos:

o Associação – https://en.wikipedia.org/wiki/Association_rule_learning – Exemplo acima de varejo sugerindo compras para seus usuários;

o Detecção de anomalias – Qualquer controle gráfico ou de informações em que anomalias precisam ser alertadas. Bolsa de valores ou controles de temperatura de uma caldeira, por exemplo;

  • Modelos para treinamento semi-supervisionado

É aplicável quando você sabe algumas vezes o que você quer descobrir, mas não sempre. Modelos podem ser encontrados em https://en.wikipedia.org/wiki/Outline_of_machine_learning#Machine_learning_algorithms

Configurando um modelo

Chegaremos neste passo quando tivermos um modelo conhecido que precisaremos configurar. É possível que você não precise treinar o modelo.

Um exemplo para regressão linear, que surgiu de um cliente: eles queriam combinar diferentes informações de muitas fontes diferentes e descobrir como isto afetaria a precificação de seu produto. Para cada um dos produtos, você configuraria o algoritmo de forma a entender que o suprimento A afeta 10% do preço final do produto, suprimento B afeta 50% e etc. Sabendo disso, o algoritmo seria capaz de “predizer” mudanças nos seus preços e avisá-los sobre comprar mais ou menos de cada suprimento. Desta forma eles estariam a frente de seus concorrentes, e economizando dinheiro ao mesmo tempo;

E então… Treinando um modelo

Uma vez que você possui um problema que requer um modelo que seja treinado para identificar seu algo, você precisará guardar dados para treinar seu modelo. A análise de imagem que os grandes provedores de cloud possuem é um excelente exemplo. Uma vez que você envia uma foto que possua a Torre Eiffel, o algoritmo já sabe que há uma Torre Eiffel na sua imagem. Mas como eles fazem isto? Eles já treinaram um modelo para entender os padrões na imagem e então classificá-la. É a mesma coisa que o Facebook faz todas as vezes em que faces nas fotos que você envia. Para o exemplo do Facebook, a técnica se torna ainda mais impressionante porque o Facebook treina seu algoritmo com as faces de todas as pessoas. Desta forma o algoritmo consegue entender que a sua imagem tem uma foto de um amigo em específico, e sugerir a você que o marque! Não é somente um reconhecimento genérico de pessoas como outros modelos fazem.

 

Como fazer isto tudo?

Por fim, há muitas ferramentas como Google AutoML, Amazon Machine Learning, Watson tools, and Tensorflow (open source tool). Os provedores de soluções permitem que você envie um determinado modelo e então usem sua infraestrutura para executar, treinar e consumir sua inteligência.

 

 

* Guilherme é líder de área de desenvolvimento de software na ilegra. Possui experiência em tecnologias Google Cloud, linguagens de programação de código aberto, métodos de gerenciamento de projetos e conhecedor de mindset Lean para melhorar processos internos e para as necessidades de clientes. Concluiu o mestrado na Unisinos em 2013, e atualmente frequenta o curso de MBA em gestão de projetos pela Fundação Getúlio Vargas

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code