Termos do momento (Parte 1) – I.A e Machine Learning

Photo by Matan Segev from Pexels

Inteligência Artificial (IA) e Machine Learning (ML) são os termos do momento, apesar de não ser novidade que gigantes do Vale do Silício como Google, Amazon e Facebook já desenvolvem projetos na área há algum tempo. No Brasil, vários bancos e companhias telefônicas criaram recentemente serviços de atendimento ao cliente que utilizam essas tecnologias, como chatbots e assistentes virtuais.

Para o público que não trabalha diretamente com desenvolvimento de software, esses termos podem soar futurísticos e atrativos, e esse é um dos motivos pelos quais tantas empresas estão tentando incorporá-los a seus produtos. Mas, e quanto ao público especializado? Será que os programadores entendem bem o que essas buzzwords significam?

Confesso que antes de pesquisar mais a fundo, eu não sabia explicar de forma concisa a diferença de IA e Machine Learning, nem qual era a exata relação desses tópicos com outros que ouvimos muito por aí, como Deep Learning e redes neurais. Contudo, recentemente me envolvi em um projeto acadêmico relacionado com o assunto e tive que procurar as definições dos termos, e foi aí que várias coisas ficaram bem mais claras.

Por incrível que pareça, buscar essas definições não foi tarefa fácil. Há pouquíssimos artigos em português com explicações que vão direto ao ponto, então tive que garimpar no Google Scholar por artigos gringos até finalmente encontrar o que queria. Tendo cumprido o objetivo, resolvi compartilhar meus resultados com o mundo, e eu vou começar pela definição de Inteligência Artificial que encontrei no livro A guide to Expert Systems de Donald Waterman:

A I.A é uma sub-área da Ciência da Computação que objetiva desenvolver programas computacionais inteligentes. Esses programas (…) se comportam de maneira que seria considerada inteligente se observada num homem.

Em poucas palavras: criar uma IA é criar um software capaz de simular um comportamento humano qualquer. Seja a capacidade de fazer escolhas dado um conjunto de possibilidades, bater um papo com alguém via chat, jogar uma partida de xadrez ou identificar padrões: se um software é capaz de fazer isso, é Inteligência Artificial. Ou seja, não necessariamente precisa ser algo a nível de ficção científica, como os robôs de Eu, Robô ou a Cortana do jogo Halo. Uma I.A pode ser extremamente simples e criada apenas para resolver um problema específico.

Mas, será que é possível criar IAs que aprendam a resolver novos problemas por conta própria? Sim! Essa é basicamente a definição de ML, conforme o americano Tom Mitchell descreve em seu livro Machine Learning:

O Machine Learning diz respeito a questão de como construir programas de computador que melhoram automaticamente através da experiência.

Ou seja, para que um software seja capaz de “aprender com os erros”, é necessário que ele utilize algum processo de aprendizado de máquina. E é aí que algumas empresas “blefam” quando dizem que seus assistentes virtuais utilizam Machine Learning. Pode até ser que esses apps sejam I.As, pois sabem resolver um problema específico e simular uma interação humana (ex: conversar com um cliente via texto ou áudio e ajudá-lo a resolver um problema). Porém, se o app não tem um mecanismo que permite aprender e melhorar quando uma interação dá errado, não podemos dizer que ele utiliza ML.

Por exemplo, em um chat automatizado, o usuário pode vir a cometer um erro de digitação (ex: digitar “bnaco” ao invés de “banco”). Caso esse erro fosse frequente e cometido por muitos usuários, uma aplicação que utiliza Machine Learning seria capaz de identificá-lo e relacioná-lo com a palavra correta (“você quis dizer: banco?”). Para isso, basta que essa aplicação fosse alimentada com dados e treinada corretamente para identificar esses padrões. Por outro lado, uma aplicação sem mecanismos de aprendizado simplesmente diria “não entendi”, afinal, o programa conhece apenas “bancos” e não “bnacos”. É nessa segunda categoria que muitos chatbots se encaixam: assistentes “burros”.

Porém, afinal de contas, como ocorre essa “mágica” do aprendizado de máquina? Bom, uma das maneiras mais comuns de alcançar esse objetivo é utilizando redes neurais. Mas esse é um assunto para o próximo post da série! Fique ligado nas nossas postagens do mês de setembro e até lá 🙂

Link para a parte 2 será postado aqui no futuro. Aguarde!

Fontes: