A Aprendizagem Automática no desenvolvimento da Inteligência Artificial

Talvez já devesse ter referido que não sou propriamente um perito em Inteligência Artificial nem em alguns dos temas sobre os quais escrevo.

Sou sim um curioso a quem estes temas interessam, que dedica algum tempo a pesquisar informação, a ler e a participar em Seminários e Tertúlias promovidos com quem sabe e normalmente abertos à comunidade. Deles retenho ideias com as quais crio um modelo mental que me ajuda a entender (admito que à minha maneira) o tema em análise.
Admito que a motivação de cada um de nós é por vezes condicionada pela forma demasiado técnica com que a temática nos é apresentada, mas também por um ritmo de vida cada vez mais intenso que nos deixa pouco espaço e tempo para nos dedicarmos a adquirir conhecimentos sobretudo sobre matérias que, embora não sendo da nossa especialidade, são interessantes e estão na ordem do dia.
É assim, com a presunção de que consigo explicar algumas coisas num modelo “mais simples” que o usado pelos especialistas, aquele que eu entendo, que ouso partilhar consigo alguns textos resumo.
O Parlamento Europeu definiu o termo Inteligência Artificial, IA ou AI, para descrever a “capacidade que uma máquina tenha para reproduzir competências semelhantes às humanas como é o caso do raciocínio, da aprendizagem, do planeamento e da criatividade. Assim quando nos referimos a IA estamos a falar sobre sistemas tecnológicos que exibem comportamento inteligente de análise ao ambiente em que se inserem e que podem agir – com algum grau de autonomia – por forma a alcançarem objetivos específicos.”
Uma subárea muito importante da IA é a Aprendizagem Automática (vulgo “Machine Learning”) de que vou tentar dar uma ideia simplificada do meu entendimento.
Atualmente todos temos o nosso telemóvel cheio de “APP´s” e o nosso Computador cheio de “Programas”. Elas e eles foram desenhados para produzir um determinado “resultado” função de dados de entrada que nele introduzimos, seguindo com rigor um determinado conjunto de instruções. Neste caso o papel de quem produziu o programa (ou APP) e a qualidade da sua programação, fica muito dependente da previsão feita para os comportamentos esperados, determinando assim o rigor e a relevância dos resultados.
De uma forma simplista, um programa desenhado para fazer uma soma poderia ser organizado com a seguinte sequência de instruções:

Introduza o 1ª Número A ?
Introduza o 2º Número B ?
Vou somar A com B A + B
Atribuo ao resultado da soma a letra C = A + B
Vou Informar que o Resultado das soma é C

Um “outro” programa para saber o estado do tempo na Guarda para o dia de amanhã poderia ser desenhado com as seguintes instruções:
Entre no site do IPMA https://www.ipma.pt
Selecione a Página “Tempo: Previsão 10 dias”
Para que local pretende saber o tempo ? Guarda
Para que dia? amanhã

Ou seja, tradicionalmente precisamos programas diferentes para resolver problemas de natureza diferente. É essa a razão pela qual temos necessidade de ter instalados nos nossos equipamentos uma enorme quantidade de programas e aplicações, isto derivado à diversidade de resultados que desejamos obter.
Só há cerca de 70 anos se começou a alimentar a ideia de ser possível desenhar e implementar uma certa automatização do pensamento. Contudo este processo evolutivo chocou sobretudo com um fenómeno conhecido por paradoxo de Moravec ao constatar-se que coisas que para os humanos eram muito difíceis de fazer (jogar Xadez ao mais alto nível ou demonstrar teoremas matemáticos, …), eram relativamente fáceis de programar num computador, e coisas que para os humanos eram triviais (reconhecimento facial de um amigo ou do que é falado, …) eram extremamente difíceis de programar.
Só nos últimos anos se conseguiu quebrar essa incomoda incongruência, sobretudo devido aos desenvolvimentos conseguidos numa subárea da Inteligência Artificial designada por Aprendizagem Automática (“Machine Learning”).
O fundamento revolucionário da aprendizagem automática reside na ideia de que em vez de desenharmos um programa para cada tarefa que pretendemos executar, mais fácil, simples e útil seria, programarmos o computador com base “num mesmo algoritmo” (recordo que algoritmo é a “receita” para se poder executar uma tarefa ou resolvermos um problema) que “aprenda” a identificar “padrões” e “regras” a partir de exemplos e dados de experiências passadas, para dai depois poderem tomar decisões ou fazer previsões com um mínimo de (ou mesmo sem) intervenção humana.
Imagine que pretendemos explicar a um miúdo o que é um cão. Mostramos-lhe um “Pastor Alemão”, apontamos e dizemos “cão”. Se de seguida lhe mostrarmos um “Pinscher Anão” é possível que ele não deduza de imediato que se trata também de um “cão”. Mas se apontamos para ele e dissemos “cão”, ele irá começar a entender o que é um “cão”: têm o corpo coberto de pelos, quatro patas, orelhas salientes, exprimem-se com “Aus” ou “Béus” … o tamanho, o comprimento e a cor do pelo não são atributos relevantes, ou seja, iniciou um processo para identificação de um “padrão” associado ao que é um “cão”. Se lhe formos mostrando “n” cães de diversas raças, ele irá criar um padrão cada vez mais preciso do que é um “cão” e poderá depois partir para uma fase evolutiva que o levará a poder distinguir atributos de diversas raças dentro do mesmo conceito de “cão”. Só que o miúdo, tal como nós, à medida que se lhe sugere atenção para “demasiados” dados, tem tendência a fazer retenção seletiva da informação, coisa que não acontece com as memórias de capacidade quase ilimitada dos computadores. Digamos que estes relativamente nós respondem às perguntas dos exames sempre “com consulta”. “E assim, também eu …”. Este é uma forma grosseira que entendo pode servir de base para explicar o modelo de aprendizagem automática.

Notícias Relacionadas