Aulas de Inteligência Artificial

- Link dos slides estão nos títulos

Para quem quiser aprender um pouco sobre Aprendizagem de Máquina e Inteligência Artificial...

A aprendizagem de máquina é uma subárea da Inteligência Artificial (IA). Essa última, apesar do grande uso em nosso cotidiano atualmente, surgiu ainda na década de 50 e segue quatro grandes linhas de pensamento desde sua criação: fazer com que máquinas pensem como humanos, ajam como humanos, pensem racionalmente ou ajam racionalmente.

Hoje, na prática, IA é um pouco de todas elas. A neurociências até hoje não sabe explicar como os humanos pensam. E mais, como programar o instinto e o livre-arbítrio? Agir como humano nos remete automaticamente para o famosíssimo Teste de Turing, onde em seu nível HARD, se fosse um jogo, assistiríamos à Ex machina ou a Westworld, onde máquinas são tão humanas que os humanos duvidam de sua origem e máquinas não se entendem não humanas. Pensar de forma racional exige que sempre existam proposições declarativas que se conectam de tal modo que, a partir delas, é possível deduzir conclusões. Os silogismos de Aristóteles!! Existem silogismos para todas as situações possíveis aos homens? 

A última das linhas é agir racionalmente, que parte do pressuposto que existe um jeito certo de executar uma ação. Esse jeito, na verdade, é a reprodução, tida como certa, da forma como o humano a realiza. Quantas formas são possíveis de várias ações serem feitas?? Quem define o que é certo?? Para isso, uma das principais definições de inteligência artificial é de que baseados em experiências humanas ou não, tentamos melhorar a execução de tarefas considerando alguma métrica, que trataremos como o sucesso da máquina em ser “inteligente”. É uma grande simplificação de um dos conceitos mais difíceis de explicar. O que é ser inteligente?!? Fala-se de inteligência na capacidade de Rodin ao esculpir corpos em mármore, onde enxergamos veias e cicatrizes, mas como entender a genialidade de Pollock ou a expressão dos sentimentos de Munch e seu grito??? É arte, e a tarefa de fazer uma máquina criar arte torna-se ainda mais difícil. Arte envolve emoções, máquinas não as tem, mas quais de nossas ações não envolvem sentimentos?!?


AULA 1 - Vídeo 1

AULA 2 - Vídeo 2 

Agir racionalmente é das quatro grandes linhas de pensamento de IA, a mais utilizada. É ensinar o jeito "certo" de agir, lembrando sempre que, definir o que é certo é completamente subjetivo e definido pelo homem que está construindo o agente em questão. Garantir que ele faça do jeito certo, é definir, antes de mais nada, com uma medida de desempenho, o que significa sucesso, considerando, sempre que possível, o custo, tempo e forma de executar essas tarefas. É importante considerar, ainda, quais percepções o agente tem acesso e que atuações são possíveis, recordando que o agente ideal tem acesso à todas as informações do ambiente e é autônomo, e isso é impossível, uma vez que a maior parte dos agentes têm acesso a um mapeamento limitado de sensações/ações ou de modelos de sistemas. Os modelos, frequentemente, são feitos a partir da restrição de algumas variáveis que ali interferem. 

De toda forma, garantir o conhecimento máximo possível sobre o ambiente é imprescindível para a definição da experiência ideal a ser passada para o agente. Entender se o ambiente é dinâmico/estático, determinístico/estocástico, sequencial/episódico, discreto/contínuo ou se existem um ou mais agentes, é essencial para entender como as percepções serão reconhecidas pela máquina. 

Por fim, os agentes inteligentes podem assumir modelos tão simples como agentes reativos/reflexivos, que funcionam apenas como tabelas com mapeamentos entrada/saída ou IFs e ELSEs, e é quando, nesse momento, você descobre que desde Introdução à programação estuda-se IA e não se sabia. As condições passam a tratar de regras e generalizações passam a ser feitas, melhorando a abrangência de percepções reconhecidas e ações vinculadas à elas. E que melhor generalização de que a construção de modelos para reconhecer situações baseadas em experiências do passado??? Considerando um número maior de variáveis, mesmo que muitas delas sejam eliminadas para reduzir a complexidade dessas funções.  E o que pensar dos modelos preocupados apenas em alcanças objetivos e considerando apenas restrições????? 

Assim, descobre-se que um agente é um pouco de cada um desses tipos e que a aprendizagem representa, assim como no homem, saber responder (de forma "certa", preferencialmente) à situações novas ou pouco conhecidas, e, para a máquina, isso acontece, principalmente, com a interferência do seu supervisor, especialista e/ou de tentativas e erros. Isso nos lembra também os homens, onde as figuras que representam esses personagens são nossos pais, professores e as frustrações e sucessos conquistados ao longo da vida.


AULA 3 - Vídeo 1

AULA 4 - Vídeo 2


Voltemos então às experiências. As máquinas aprendem e tornam-se inteligentes a partir da experiência passada para elas. A partir daí, ela passa a entender padrões e produzir ações. São 4 as formas possíveis de utilizar a aprendizagem de máquina. Na supervisionada, como o nome de forma óbvia já indica, um supervisor apresenta a experiência através de suas sensações e atuações. É como se você explicasse para a máquina as características de um animal e que animal é esse, ou explicasse para a máquina índices de cidades e também seus PIBs. Percebe-se que assim, explicamos os dados de entrada e saída, de forma que com novas entradas, até então desconhecidas à máquina, a partir de um padrão entendido com casos anteriores, prevê-se a saída associada ao dado de entrada novo.

Na não supervisionada, essa saída não é conhecida, assim, a máquina tem como tarefa entender padrões a partir de similaridades e dissimilaridades dos objetos. Ela nunca será capaz de saber quem é Brad Pitt, mas será capaz de agrupar milhares de fotos de Brad Pitt e deixar de fora desse grupo as fotos de seu melhor amigo George Clooney. Em um exemplo onde apresento à máquina apenas fotos de Gisele Bundchen e Natalie Portman, quem a máquina dirá que é, recebendo uma foto minha??? É a chance de virar uma supermodelo brasileira, uma atriz israelense graduada em Havard ou não ser ninguém?!? Existe ainda uma mistura das duas técnicas anteriores, a aprendizagem semi supervisionada, onde agrupam-se instâncias e, a partir das poucas já rotuladas, expande-se o rótulo para as demais que compartilham o mesmo grupo. Em um mundo com cada vez mais dados e cada vez menos rótulos (?), é um dos métodos que vêm sendo cada vez mais usado.

Por fim, um dos mais novos métodos, a aprendizagem por reforço, ensina-se à máquina o que pode ser feito e uma métrica de desempenho (novamente a forma de medir o sucesso) e a máquina aprende como deve-se fazer. A forma mais simples de entendê-lo é com o jogo do dinossauro do Google, que jogamos quando estamos sem acesso à internet. Ganha-se pontos à medida que caminha-se pelo cenário pulando cactos e abaixando-se na presença de pterodáctilos. Ensina-se, portanto, à máquina, que as ações possíveis são pular ou se abaixar, e que o objetivo é aumentar o score. Com isso, depois de chocar-se com cactos e pterodáctilos, e assim, o score parar, a máquina descobre que deve-se pular na presença dos primeiros e abaixar-se, quando aparece o segundo. Além disso, a máquina aprende que é ainda melhor andar abaixado, não sendo necessário preocupar-se com o momento oportuno de fugir dos animais voadores. O jogo milenar chinês GO teve suas regras aprendidas pelo sistema AlphaGo que aplicou estratégicas nunca usadas por humanos na hora de jogar. A preocupação dos humanos na busca pela vitória passava sempre pelo adversário, quando a máquina descobriu que era bem mais vantajoso preocupar-se em conquistar territórios para ganhar.

É interessante pensar, portanto, que tudo tem regra, mas é surpreendente como elas são definidas dependendo do que você entende por sucesso. Isso é uma analogia perfeita da vida! Quantos de nós estamos correndo abaixados para não esperar os momentos oportunos, baseados em uma métrica qualquer que definimos como sucesso. Talvez existam tantas outras que poderiam te levar a outras tantas regras diferentes. Aprendizagem de máquina, assim, busca sempre por modelos que representam padrões. Parte-se do pressuposto que existe um padrão para tudo. O sucesso da aprendizagem de máquina, portanto, é porque as máquinas estão se tornando cada vez mais humanas, ou nós somos cada vez mais padrões??

A globalização, as formas de comunicação e o acesso à informação nos tornam cada vez mais iguais. As regras nos governam, de forma necessária, evitando o caos, mas, muitas vezes, questionável. Na série Unabomber, sobre o terrorista, anarquista e prodígio matemático Theodore Kaczynski, uma cena reflete o controle nos imposto, quando em uma cidade segura, de madrugada, em um cruzamento, sem nenhum carro por perto, mas em um semáforo vermelho, um automóvel para e espera pelo momento “certo” de seguir viagem. A estética, consumo e hábitos se repetem. São os mesmos cabelos, mesmas roupas, músicas e sugestões, onde você, necessariamente, TEM que pertencer à algum grupo e se parecer com alguém.

É cada vez mais fácil prever em um mundo cada vez menos diverso e mais repetido. Os caminhos são os mesmos, as horas são as mesmas... Estamos indo de encontro, inclusive, a uma das teorias que rege nossas vidas, quando Darwin demonstra nossa evolução como resultado de adaptações bem sucedidas e da importância da diversidade, que reflete essas diferentes adaptações. As diferenças, portanto, fundamentalmente, deveriam, a rigor, ser respeitadas. Como isso acontecerá em um mundo cada vez mais máquina, menos humano, mais inteligência artificial, onde cada vez mais negamos as surpresas ao mudar as frequências do rádio para ouvir as sugestões do Spotify??


AULA 5 - Vídeo 1

AULA 6 - Vídeo 2 - Parte 1 e Vídeo 2 - Parte 2


A aprendizagem de máquina é dada como a ação de uma máquina melhorar a realização de uma determinada tarefa, em relação a uma medida de desempenho, baseada na experiência. A experiência é o conjunto de dados sobre o problema e é fornecido pelo homem.

Hoje, o número de especialistas em IA cresce exponencialmente, em detrimento ao número de linhas de código exigidos pela programação do futuro, o software 2.0. Com a era do deep learning, exige-se cada vez menos linhas de código para executar o método, o que possibilita, portanto, que atentemos cada vez mais sobre o problema, melhorando ainda mais que tipo de experiência apresentar à máquina.

É justamente a experiência enviesada um dos grandes problemas e temas do futuro na IA. O homem pode enviesar seu conjunto de dados mostrando à máquina o que é de seu interesse. Sendo assim, uma das etapas ESSENCIAIS no processo de aprendizagem de máquina é entender o máximo possível sobre o problema.

A estatística, nessa etapa, além de seu uso nos próprios métodos (ou sendo eles), é extremamente útil. Ela te fornece medidas descritivas como desvio padrão, média e mediana, por exemplo, que demonstram a presença de outliers e a variabilidade do conjunto de dados. Tratar os outliers (que normalmente são dados reais) com ações como sua exclusão (em último cirscunstância), aumento da amostra desses casos (que pode ser feito de várias formas) ou a normalização (que pode ser de vários tipos), são imprescindíveis para melhorar o desempenho dos métodos. A presença de ruído também deve ser analisada, assim como formas de reduzir sua presença, fazendo uso, inclusive de IA, para substituição de valores.

Observar ausência de valores e a recuperação da informação, quando possível, ou a criação de valores para essas instâncias, usando K-vizinhos mais próximos ou uma média, é possível, quando se extrai leite de pedra e tenta-se manter as poucas instâncias que se tem. O cuidado de se usar a média (ou mediana) é essencial para evitar inconsistência na base, como colocar o peso de um bebê baseado na média de uma base com uma maioria de instâncias de pessoas adultas. Essas mesmas inconsistências devem ainda ser checadas na etapa de pré-processamento, como dois pacientes com todos os atributos de entrada iguais e um doente e outro saudável, como atributos de saída. Ou o rótulo está errado ou essas características não são suficientes para prever a doença!

Na era do Big Data, a montanha de dados pode ser excessiva para a descoberta da solução de muitos problemas. Descobrir o que é essencial também é importante, pensando ainda no desempenho do método. Nessa fase, encontrar a correlação entre os atributos te mostra de antemão o que é redundante. Outras técnicas, como a seleção de atributos, te indicam ainda quais deles são mais importantes para definir a solução do teu problema. A própria redundância das instâncias deve ser avaliada, induzindo uma importância de um padrão que pode ser irrelevante para um determinado caso.

Pensando na relevância de informação, uma das principais, de verdade verdadeira, etapas do pré-processamento, é entender a quantidade de instâncias de cada classe estudada. Uma acurácia (número de casos corretos/número total de instâncias) é a pior métrica para descobrir o sucesso do teu método. Caso tenhamos classes desbalanceadas, uma com 5 instâncias e outra com 95, 95% de acurácia pode ser o pior valor possível encontrado, estando as 5 instâncias da classe minoritária consideradas como elementos da classe majoritária. Dessa forma, criar pesos para o modelo considerar o desbalanceamento, além de técnicas de amostragem (também usadas para definir melhores atributos), podem ajudar a balancear as classes, melhorando o desempenho do método trabalhado. 

As possibilidades para o balanceamento são várias, como diminuir a majoritária, igualando à menor, ou aumentando a minoritária criando instâncias. Aí sugiro o maior cuidado pensando no problema e na possibilidade de gerar inconsistências, já observadas inclusive em métodos fornecidos em pacotes prontos. Mantendo as características originais da base completa, desbalanceada, é bom lembrar dos problemas de superajustamento, clássicos em aprendizagem de máquina.

Portanto, debruçar-se sobre os dados com ajuda de especialistas e da estatística descritiva, entendendo o máximo possível sobre eles, sempre será a principal fase do processo de aprendizagem de máquina. É aí, justamente, onde você ensina para máquina a representação daquele objeto ou fenômeno!

Uma vez apresentada a melhor experiência à máquina, considerando o máximo possível a estatística dos dados e o método científico, finalmente poderemos aguardar por soluções que tentem minimizar os viéses humanos.

AULA 7 - Vídeo 1

Instalação do Anaconda (uso do Jupyter): https://drive.google.com/drive/u/0/folders/1mKjKRdhV_0QLnEEWsXDtVdp6EE_z83Wi


AULA 8 - Vídeo 1 e Vídeo 2

AULA 15 - Vídeo 1

Máquinas de vetor de suporte

Processamento natural da linguagem

Vídeo no Youtube