Inteligência Artificial e Machine Learning: Desmistificando a Computação
Você com certeza já deve ter ouvido falar de inteligência artificial, certo? Seja tratando de robôs, carros autônomos, NPCs em jogos ou assistentes virtuais, todos nós temos visto um aumento considerável da utilização de IA ao redor do mundo. De fato, ela tem sido o motor do que se tem chamado de quarta revolução industrial e promete se infiltrar em quase todas as áreas do desenvolvimento humano. Mas o que é IA, afinal?
O que é Inteligência Artificial?
Não existe um consenso em relação a uma definição concreta, mas muitos autores convergem em alguns pontos. Para um dos pais do campo de estudo da IA e co autor do artigo que introduziu o termo mundialmente, John McCarthy:
“Inteligência Artificial é a capacidade de uma máquina de realizar funções que se fossem realizadas pelo ser humano, seriam consideradas inteligentes.”
A inteligência humana é frequentemente descrita em termos de capacidade lógica - abstração, memorização, aprendizado, planejamento – e da sua aplicação na resolução de problemas. A IA compreende o emprego de soluções tecnológicas que simulam ou aproximam esse tipo de cognição e comportamento complexo.
Isso parece muito mágico a princípio, mas na verdade está fundamentalmente baseado na ciência. A concepção e a aplicação da IA na resolução de problemas do mundo real consiste basicamente na modelagem desses problemas de forma lógica (dados estruturados com alguma semântica envolvida), e na posterior aplicação de algoritmos computacionais de fim específico que trabalham em cima do modelo.
A inspiração para esses algoritmos provém de múltiplas áreas do conhecimento humano, sendo frequentemente associados a campos da matemática, porém também havendo contribuições de domínios como biologia e química.
Alguns exemplos de Aplicação de IA
1.Primeiro Problema: Encontrar a melhor rota (por alguma ótica: menor tempo, menor distância) do ponto A até o ponto B, como aplicativos tais como Google Maps e Waze fazem.
Possível modelagem: Representar o mapa como um grafo, onde cada nó é um ponto específico, e as arestas entre nós indicam o custo de movimentação.
Algoritmos aplicáveis: Algoritmos de busca em grafos como Busca em Largura (BFS: breadth-first search) e Busca em Profundidade (DFS: depth-first search).
2.Segundo Problema: Encontrar o melhor movimento em um jogo de damas, dado o tabuleiro atual e a cor do jogador que fará o movimento.
Possível modelagem: Representar os possíveis estados de tabuleiro como nós de uma árvore onde a relação de hierarquia estabelece a transição de estados para cada movimento.
Algoritmo aplicável: Busca de Monte Carlo em Árvores (MCTS: Monte Carlo tree search).
3.Terceiro Problema: Precificar um produto de forma a maximizar o lucro total, dado que um produto mais caro poderá vender menos, mas gera um lucro maior por unidade vendida.
Possível modelagem: Representar possíveis preços enquanto estados e definir uma função de avaliação de estados (nesse exemplo, uma função que calcule o lucro obtido por unidade e utilize alguma heurística para estimar a quantidade de unidades vendidas).
Algoritmos aplicáveis: Hill Climbing, Simulated Annealing.
4.Quarto Problema: Encontrar o melhor escalonamento de aulas em um conjunto de espaços físicos, como é feito em escolas e universidades.
Possível modelagem: Representar cada possível escalonamento enquanto um indivíduo, construindo uma população de possíveis soluções. Definir uma função de aptidão de indivíduos (levando em consideração fatores como disponibilidade dos professores e carga horária de disciplinas).
Algoritmos aplicáveis: Implementações e variações de Algoritmos Genéticos.
Todos esses são exemplos de atuação do que chamamos de IA Clássica, que tinha como foco a simulação de um tipo de raciocínio mais deliberativo e pautado na resolução de problemas. Posteriormente, o surgimento da IA moderna propôs uma mudança de paradigma: a construção de agentes que pudessem empregar um raciocínio mais reativo, capazes de efetuar sequências complexas de decisões como resposta a uma entrada do mundo exterior. É nesse contexto que surge o Aprendizado de Máquina.
O que é Aprendizado de Máquina
De forma simplificada, o aprendizado de máquina consiste no campo de estudo e construção de agentes computacionais que recebem dados de entrada de alguma fonte, realizam algum tipo de processamento e geram como saída predições e/ou modelos de ambiente.
Esses agentes operam com base em algoritmos (sim, algoritmos de novo!) que conseguem aprender com a experiência e com seus erros através de múltiplas iterações sobre os dados de entrada. Esse aprendizado se traduz em um tipo de conhecimento empírico sobre os dados (e na teoria sobre aquilo que os dados representam), que pode ser usado para confeccionar um modelo ou realizar predições sobre novos dados ainda não vistos pelo agente.
Tendo evoluído a partir do estudo de reconhecimento de padrões, o campo de AM se ramifica em três grandes classes de algoritmos, que diferem entre si na forma de estruturação dos dados de entrada e na quantidade de feedbacks que o agente recebe do mundo externo enquanto realiza seu processamento:
Aprendizado Supervisionado
Trata-se de uma categoria de aprendizado que recebe feedback instrutivo. São apresentados ao agente o que se chama de dados rotulados, isto é, dados empacotados na forma de informação estruturada + rótulo, esse último sendo uma espécie de conclusão acerca das informações. O objetivo geral é conseguir extrair algum tipo de regra ou política que mapeia corretamente as informações para os rótulos informados. Essa regra poderá então ser aplicada em novos dados de forma a se realizar algum tipo de classificação (quando os rótulos indicam uma categoria) ou previsão (quando os rótulos indicam uma saída real numérica).
Aprendizado Não Supervisionado
No aprendizado não supervisionado, o agente não recebe dados rotulados. Em vez disso, ele recebe um conjunto de dados não estruturados e deve encontrar padrões, agrupamentos ou outros relacionamentos dentro dele. Isso é feito usando técnicas como clustering, onde pontos de dados semelhantes são agrupados, ou redução de dimensionalidade, onde o agente tenta encontrar uma representação de menor dimensão dos dados. O aprendizado não supervisionado é frequentemente usado quando não há uma compreensão clara de como a saída deve ser ou quando o objetivo é explorar os dados para identificar padrões interessantes.
Aprendizado Por Reforço
No aprendizado por reforço, o agente interage com o ambiente e recebe feedback na forma de recompensas ou punições. O objetivo é aprender uma política que maximize a recompensa esperada ao longo do tempo. Esse tipo de aprendizado é frequentemente utilizado em situações em que o agente deve tomar uma sequência de decisões que afetam o futuro, como em jogos ou na robótica. O agente aprende a realizar ações que levam à recompensa de longo prazo mais significativa por tentativa e erro, construindo um modelo do ambiente no processo.
Em conclusão, embora a Inteligência Artificial e o Aprendizado de Máquina possam parecer conceitos complexos e abstratos, essas tecnologias consistem fundamentalmente na aplicação de técnicas e algoritmos computacionais construídos por seres humanos. Elas estão se tornando cada vez mais presentes no nosso dia-a-dia, transformando vários setores, desde saúde e finanças até transporte e educação.
É importante manter em mente que se tratam de ferramentas poderosas, porém subordinadas aos pensamentos e objetivos dos humanos que as projetam e operam. À medida que continuamos a explorar seu potencial, é importante garantir que sejam desenvolvidas e utilizadas de forma responsável e ética, beneficiando a sociedade como um todo.
Conteúdo escrito por Rafael Cardoso, Estagiário de Desenvolvimento de Software.