Inteligência Artificial: muito além dos robôs de conversação

A matéria a seguir foi publicada  no Jornal do Commercio (JC) em 11/08/2025 (link).

O desbravar de caminhos para alcançar inteligência além do ser humano remonta a um passado distante dos tempos modernos. Na mitologia grega, Talos, um autômato gigante de bronze, foi concebido por um deus para proteger a ilha de Creta. Talos é provavelmente a primeira máquina inteligente documentada. 

Da Grécia antiga para os dias atuais, a Inteligência Artificial (IA) deixou de ser um assunto apenas relacionado à ficção científica para permear nosso cotidiano. Ao fazer uma busca no Google, somos auxiliados por algoritmos que usam IA. Recomendações de filmes, de livros ou de músicas, nas mais diferentes plataformas, são trabalhos realizados por IA. O acesso ao celular ou aos caixas eletrônicos de bancos usando a impressão digital, a face ou a palma da mão, também é uma tarefa desempenhada por IA. A lista é longa e inclui jogos, redes sociais, sistemas de saúde e financeiro, propaganda, transporte, compras online, só para dar alguns exemplos. Ou seja, artefatos que usam IA já permeiam nosso cotidiano faz algum tempo e, em muitos casos, não estamos cientes de que existe uma IA por trás do processo. 

A percepção do público sobre IA vem mudando ao longo do tempo. Embora seja unânime seu poder transformador na sociedade, alguns enxergam um imenso potencial positivo, já outros veem o copo meio vazio. Interagir com um computador super-avançado, como o HAL 9000, do filme “2001: uma Odisseia no Espaço”, despertava o imaginário popular e, esta realidade, começou a se materializar com o advento de assistentes virtuais como Siri, Cortana e Alexa.

Porém, a visão geral do que é IA começou a se modificar de maneira mais evidente ao final de 2022, com o lançamento do ChatGPT. Agora dispomos de robôs de conversação capazes de realizar diferentes tarefas que, no passado, eram atribuídas apenas a humanos, tais como: resolução de problemas, resumo de documentos, escrita de programas de computador e de cartas, análise de dados e criação de imagens e de vídeos. Tudo isso como se estivéssemos conversando, batendo um papo, com um amigo. Logo, esta forma simples de nos comunicarmos com esses robôs gera uma maior visibilidade da existência de IA, além de aproximar essa realidade da sociedade de forma mais ampla. Esta novidade provoca diferentes sensações e é motivo de debate não apenas entre especialistas, mas por boa parte da sociedade. 

Depois do ChatGPT, ferramentas similares surgiram: Gemini e Deep Seek, entre outras. Esta diversificação de ferramentas amplia as possibilidades de uso e, por consequência, expande a percepção de suas capacidades. Tais ferramentas têm o propósito de processar linguagem natural, ou seja, dispõe de capacidade de “entender” um comando, seja de texto ou de voz, e de produzir uma resposta. Muitos setores da sociedade, empresas públicas ou privadas, já se beneficiam de tais ferramentas e a tendência é de maior e melhor adesão. 

Mas, vale a ressalva de que IA não é apenas um robô de conversação ou um grande modelo de linguagem (LLM, do inglês). Vai muito além! É importante estarmos cientes disso, pois só assim podemos aprofundar a discussão sobre o impacto dessas tecnologias em nossas vidas; pois existem vários aspectos éticos e legais envolvidos. Munidos de tal discernimento, podemos avançar no uso e na construção de ferramentas e de processo educacionais que nos auxiliem a extrair o que de melhor essas novas tecnologias têm a nos oferecer.

Recomendação de configurações para tarefas de regressão

O desbalanceamento dos dados pode enviesar a máquina para os padrões que ocorrem com maior frequência. Embora seja conhecido que balancear os dados antes de apresentá-lo à máquina de aprendizagem seja vantajoso para fins de generalização, tal procedimento é pouco discutido para tarefas de regressão.

Também é importante destacar que não existe um procedimento capaz de encontrar o melhor algoritmo de balanceamento para todos os problemas (referência); e, mais, avaliar todos os algoritmos existentes requer muito esforço computacional. Além disso, a integração ideal entre algoritmos de balanceamento e de aprendizagem de máquina depende dos dados sob análise.

Logo, o artigo

Juscimara Avelino, George D.C. Cavalcanti, Rafael M.O. Cruz. Imbalanced regression pipeline recommendationMachine Learning, 114, 146 (2025).

apresenta uma abordagem automática para a escolha da técnica de balanceamento e do algoritmo de aprendizagem mais apropriados por problema. A abordagem chama-se Meta-IR e isenta o usuário de avaliar cada possível par de técnica de balanceamento e de algoritmo de apresentarem por banco de dados. Vale salientar que a abordagem proposta é extensível para outra configurações do pipeline, tais como pré-processamento, detecção de outiliers e parâmetros da máquina de aprendizagem.

Para tanto, a proposta se vale de meta-aprendizagem e de aprendizagem multi-rótulo para extrair informações de várias tarefas com a finalidade de construir uma representação capaz de recomendar os melhores algoritmos por banco de dados.

A figura a seguir explicita vantagens da abordagem proposta em relação aos sistemas tradicionais de AutoML (Automated Machine Learning).

Vê-se que os sistemas tradicionais realizam grande parte do processamento quando recebem o banco de dados (figura (b)); assim, o processamento em tempo de produção (online) é muito alto. Por outro lado, a proposta realiza a maior parte do processamento offline (e o realiza apenas uma vez), agilizando a resposta em tempo de produção.

Os resultados experimentais mostram a vantagem do sistema proposto (Meta-IR) quando comparado a sistemas de AutoML, tais como: Auto-sklearn, H2O, TPOT, FLAML, LightAutoML e Nive AutoML.

O código-fonte e demais informações estão públicos em https://github.com/JusciAvelino/Meta-IR.

Graduação em Inteligência Artificial no CIn-UFPE, uma necessidade que agora é realidade

No início de maio/2025, iniciou-se o curso de graduação em Inteligência Artificial do CIn-UFPE. A matéria a seguir foi publicada  no Jornal do Commercio (JC) em 19/05/2025 (link).

Inovações no campo da Inteligência Artificial (IA) continuam a moldar a forma como construímos a nossa sociedade. A IA é cada vez mais mencionada e discutida, tanto no ambiente profissional quanto em momentos de lazer. Em outras palavras, a IA permeia o nosso cotidiano, independente se estamos cientes ou não de sua existência.

A Inteligência Artificial é um ramo da Ciência da Computação que tem o objetivo de construir máquinas capazes de realizar tarefas que tradicionalmente requerem inteligência humana, tais como raciocinar, aprender e agir. Como exemplos, temos acesso a diversas aplicações que habilitam os computadores a manipular imagens e vídeos, a ouvir comandos de voz e a respondê-los, a gerar, resumir e traduzir textos, a analisar e extrair informações de grandes quantidades de dados de maneira automática. Para que esta “mágica” ocorra, existem pessoas por trás dos bastidores escrevendo programas de computador.

Diante da franca expansão da área IA, os atuais cursos de computação não comportam mais a diversidade de conhecimento necessária para termos especialistas nesta emergente área. Daí, urge a necessidade de um novo curso com uma maior carga horária focada nas tecnologias que envolvem os domínios de ferramentas e de métodos de IA.

Todas essas aplicações e tecnologias de visão computacional, de processamento de linguagem natural e de ciência de dados fazem parte da grade curricular do novo curso. Os egressos do curso terão conhecimento sobre os fundamentos da IA, como ela funciona, como usá-la e quais seus riscos. Além disso, formaremos profissionais capazes de desenvolver as mais diferentes ferramentas e tecnologias relacionadas à IA, e que conseguem não só entender como essas ferramentas funcionam, mas também, como desenvolvê-las de maneira ética e segura.

IA é o curso de graduação caçula do Centro de Informática (CIn) da UFPE que já conta com os cursos de Ciência da Computação, de Engenharia da Computação e de Sistemas de Informação. O dia-a-dia dos alunos será ainda mais rico com a integração entre os quatro cursos que têm a computação como base, além do convívio com alunos de mestrado, de doutorado e de especializações, e várias outras atividades proporcionadas pelo CIn-UFPE aos seus alunos. 

Ciente de que as inovações em IA evoluem rapidamente, o bacharelado em IA possui nove semestres recheados com um conteúdo atual, avançado e flexível que permitirá a especialização dos alunos nas mais diversas áreas relacionadas à IA. O curso de graduação em Inteligência Artificial nasce olhando para o futuro, com o objetivo de formar profissionais capacitados não só para lidar com as tecnologias atuais, mas, principalmente, formar profissionais preparados para o alvorecer das mudanças que constantemente nos avizinha.

George Darmiton da Cunha Cavalcanti
Coordenador do Bacharelado em Inteligência Artificial
Membro da Academia Pernambucana de Ciências
Professor Titular do CIn-UFPE

DeepSeek traz novas perspectivas para a corrida pela liderança em inteligência artificial 

Texto publicado no Jornal do Commercio (JC) em 17/02/2025 (link)

Chatbots, como o ChatGPT, Gemini, entre outros, revolucionaram a forma como lidamos com diversas tarefas relacionadas ao processamento de linguagem natural — tecnologia de inteligência artificial (IA)capaz de interpretar, manipular e compreender a linguagem humana, seja falada ou escrita. 

O alicerce atual para essas ferramentas são grandes modelos de linguagens (large language models (LLM), em inglês). Até então, um dos desafios para a construção de LLMs residia no custo para treiná-las. Estima-se que o custo para o treinamento do GPT-4 da OpenAI tenha ultrapassado os 75 milhões de dólares. Logo, o desenvolvimento de tais ferramentas estava fora do alcance da maioria das empresas. 

Esse status quo foi colocado à prova com o lançamento do aplicativo de chatbot DeepSeek R1, produto de uma empresa chinesa, especializada em inteligência artificial, fundada em 2023. A DeepSeek afirma que o custo de treinamento de sua ferramenta foi de, aproximadamente, 6 milhões de dólares (menos de 10% do custo do GPT-4). E mais, o DeepSeek obteve desempenho superior em algumas tarefas, tais como  matemática e raciocínio, quando comparado ao GPT-4, por exemplo.

Este é mais um curioso caso no qual restrições podem exercer um poder transformador. O aplicativo R1 foi desenvolvido em um momento de sanções de exportação de chips de computadores dos Estados Unidos para China; chips amplamente usados para a produção de programas de inteligência artificial que precisam de muito processamento e que lidam com muitos dados. Logo, os engenheiros de software da DeepSeek propuseram inovações que culminaram em um modelo que necessita de um décimo do poder computacional de um LLM equivalente. 

Daí emerge uma novidade: dispomos de um chatbot rápido, mais barato e que ainda apresenta desempenho comparável aos principais concorrentes. Se isso não bastasse, o R1 adota uma tecnologia de pesos aberta, na qual qualquer pessoa pode usar e modificar o programa de computador para atingir seus objetivos.

Vale salientar que a DeepSeek não surgiu por acaso. Emergiu de um plano com metas governamentais chinesas para atingir a liderança mundial em IA. Plano esse norteado por investimentos em formação de especialistas em inteligência artificial, infraestrutura, desenvolvimento industrial e pesquisa científica avançada. 

A DeepSeek também se destaca pela descrição detalhada de seus métodos em artigos científicos e pela estratégia de ciência aberta. Mas, ferramentas dessa natureza, seja ChatGPT ou DeepSeek, extraem informações de dados e não são imunes a um potencial viés — seja de gênero, de etnia, de orientação sexual ou outro. Além do mais, tais modelos são tão bons quanto os dados que foram usados para construí-los. Outra preocupação reside na privacidade dos dados. Lembrando que dados são a matéria-prima dessas ferramentas.

Certo é que a liderança das gigantes americanas foi chacoalhada e que muitos outros modelos vão surgir em breve, mais baratos e melhores. A jornada está só no início!

Previsão de sucesso em campanhas de crowdfunding usando aprendizagem de máquina

Crowdfunding, ou financiamento coletivo, é uma maneira de conseguir recursos para alavancar um projeto. Para tanto, um indivíduo ou uma startup apresenta sua ideia em plataformas online com o intuito de conseguir uma quantia específica de dinheiro para colocar seu projeto em curso. Tais projetos são financiados, em geral, por um grande grupo de pessoas que acreditam no projeto e que pode se beneficiar, por exemplo, com cotas do empreendimento.

Algumas campanhas de crowdfunding são exitosas; enquanto outras não conseguem angariar a quantidade de recurso suficientes para iniciar o projeto e, assim, naufragam. Separar, o quanto antes, campanhas de sucesso das que irão fracassar implica em redução de custos e de frustrações de parte a parte.

No artigo a seguir, investigamos diversas abordagens de aprendizagem de máquina para a predição de sucesso em campanhas de crowdfunding.

George D.C. Cavalcanti, Wesley Mendes-Da-Silva, Israel J. dos Santos Felipe, Leonardo A. Santos. Recent advances in applications of machine learning in reward crowdfunding success forecastingNeural Computing & Applications2024. 

Foram avaliados 15 algoritmos de aprendizagem de máquina, entre eles, algoritmos tradicionais (MLP, SVM, …), algoritmos de combinação estática (RandomForest, AdaBoost, XGBoost, …) e algoritmos de combinação dinâmica de classificadores (Meta-DES, KNORAE, …), usando três métricas: acurácia, área sob curva ROC e F-score, e um total de 4.193 campanhas. Destaque para o Meta-DES que obteve o melhor resultado global. Este método usa meta-aprendizagem para selecionar dinamicamente os melhores classificadores por campanha de crowdfunding em avaliação. Em outras palavras, o Meta-DES usa classificadores diferentes para avaliar campanhas diferentes e esta escolha é realizada on-the-fly, ou seja, em produção.

Boa parte da discussão do artigo é voltada para explicar (eXplainable AI) os motivos que levaram a máquina de aprendizagem a indicar que uma determinada campanha seria de sucesso ou não. Para tanto, computamos os Shapley values visando enxergar o conteúdo da black-box das máquinas.

De maneira global, as variáveis mais importantes para a predição foram: o número de pledges, o valor total esperado na campanha, entre outras, conforme mostrado no gráfico acima.

Dentre as variáveis usadas para representar uma campanha, duas delas têm o objetivo de capturar o sentimento do mercado no dia do lançamento da campanha de crowdfunding, são elas: social media net sentiment (SMNS) e mainstream media net sentiment (MMNS). Esse sentimento foi extraído do Twitter e do jornal “O Estado de São Paulo” usando técnicas de processamento de linguagem natural. Embora tenhamos usado apenas duas fontes de informações online, vale destacar que essas variáveis foram relevantes para as decisões das máquinas.

Destaco que este trabalho foi realizado com 4.193 campanhas do mundo real. Um esforço multidisciplinar como este requer a adição de diferentes competências complementares. Agradeço aos co-autores: Wesley (Professor de Finanças/FGV-SP), Israel (Professor de Finanças/UFRN) e Leonardo (Senior Machine Learning Engineer/Nubank).

O código-fonte e mais detalhes sobre a análise experimental estão disponíveis no GitHub: https://github.com/las33/Crowdfunding.

Desbalanceamento em tarefas de regressão

Classificação versus Regressão

Em aprendizagem supervisionada, as tarefas podem ser divididas em Classificação e em Regressão. Em Classificação, o objetivo é predizer uma classe. Por exemplo, em um sistema de detecção de fake news, deseja-se verificar se um conteúdo é fake ou não; logo, tem-se duas classes. Em uma tarefa diferente, o objetivo pode ser de outra natureza, tal como: prever a quantidade de chuva em determinada região numa data futura; esta é uma tarefa de Regressão.

Estas duas tarefas diferem primordialmente em razão das suas varáveis-alvo: uma é discreta (detecção de fake news) e a outra é contínua (previsão pluviométrica). Assim, quando a variável-alvo pode ser representada por um conjunto finito, a tarefa é dita de Classificação. Por outro lado, diz-se que a tarefa é de Regressão quando a variável-alvo é um valor real (contínuo). Ou seja, na detecção de fake news, tem-se duas classes (fake e não-fake), logo, um conjunto finito de valores. Já na tarefa de previsão pluviométrica, a quantidade de chuva, possivelmente dada em milímetros por metro quadrado, é um valor real, contínuo.

Dados desbalanceados

Dados desbalanceados são, frequentemente, encontrados em aplicações do mundo real e podem impor desafios às máquina de aprendizagem. Pode-se dizer que as classes estão desbalanceadas quando o número de instâncias em uma classe é muito menor do que o número de instâncias numa classe diferente. Na sentença anterior, foi utilizado o conceito de classe, remetendo a definição de dados desbalanceados para tarefas de Classificação. Mas, e para tarefas de Regressão?

Verdade que esta questão de desbalanceamento já foi amplamente discutida em tarefas de Classificação. Porém, vale destacar que em tarefas de Regressão, na qual a variável-alvo é um valor contínuo, dados desbalanceados também podem se apresentar como um obstáculo. Pois, os dados pouco representados podem ser coincidentemente os mais relevantes para a aplicação sob análise. Por exemplo, eventos climáticos extremos ocorrem com menos frequência, mas, erros em sua predição podem ser significantemente custosos.

Em Regressão, calculamos o quão desbalanceado está uma tarefa usando uma função de relevância que separa as instâncias em “normais” e “raras”, com base nos seus valores-alvo. Assim, podemos calcular o nível de desbalanceamento pela razão entre a quantidade de instâncias “raras” e “normais”. Caso tenhamos, bem mais instâncias “normais” do que “raras”, dizemos que a tarefa está desbalanceada.

Na figura acima, percebe-se que a quantidade de instâncias com valores de Y (variável-alvo) maiores do que 10 é pouca quando comparada a quantidade de instâncias com valores entre 5 e 8. Logo, boa parte dos valores-alvo é pouco representada e isso dificulta o processo de treinamento das máquinas de aprendizagem.

Algoritmos de balanceamento de dados para Regressão

Uma abordagem bastante usada para lidar com esta questão é o balanceamento dos dados. São vários os possíveis algoritmos na literatura especializada da área. Alguns algoritmos visam gerar instâncias sintéticas que pertençam à classe de instâncias “raras” com o intuito de “engordar” esta classe e, consequentemente, diminuir o desbalanceamento. Em contraste, outras abordagens eliminam algumas instâncias da classe “normal” e, existem, também, algoritmos híbridos que fazem a “engorda” e a eliminação simultaneamente.

Os principais algoritmos de balanceamento de dados para tarefas de regressão foram analisados no artigo listado a seguir. Além da descrição das vantagens e das desvantagens de cada algoritmo, também foram realizados experimentos usando trinta bancos de dados de Regressão de diferentes domínios (desde previsão da qualidade de vinho a incêndios em florestas, passando por tarefas relacionadas à saúde humana).

Juscimara G. Avelino, George D.C. Cavalcanti, Rafael M.O. Cruz. Resampling strategies for imbalanced regression: a survey and empirical analysisArtificial Intelligence Review, 2024.

As principais contribuições do artigo são:

  • Proposição de uma nova taxonomia para tarefas de regressão desbalanceadas levando em consideração o modelo de regressão, a estratégia de aprendizagem e as métricas;
  • Revisão das principais estratégias utilizadas para tarefas de regressão desbalanceada;
  • Condução de um extenso estudo experimental comparando o desempenho de estratégias de reamostragem e seus efeitos em múltiplos algoritmos de aprendizagem.

Seguem as principais conclusões após a análise dos experimentos:

  • A seleção da estratégia de balanceamento pode impactar significativamente os resultados e é melhor usar uma técnica de balanceamento do que não usar nenhuma;
  • A escolha da melhor técnica depende da tarefa, do modelo de aprendizagem e da métrica usada. Destaque positivo para a técnica Gaussian Noise, independente da métrica usada;
  • Como esperado, os modelos de regressão enfrentaram desafios significativos em tarefas com alto nível de desbalanceamento.

O código-fonte de todas as análises estão publicamente acessíveis no GitHub: https://github.com/JusciAvelino/imbalancedRegression.

Detecção de discurso de ódio & Inteligência Artificial

Parte do texto a seguir foi publicado no Jornal do Commercio (JC) em 10/06/2024 (link)

A primeira rede social a atingir um patamar de um milhão de usuários foi a MySpace, em 2004. Muitas outras redes sociais surgiram de lá para cá e, atualmente, Facebook, YouTube e WhatsApp possuem mais de 2 bilhões de usuários cada uma. Em menos de duas décadas, testemunhamos um rápido crescimento e, dada nossa presença maciça nessas redes, não é à toa que a forma como as usamos esteja moldando diversos aspectos do nosso comportamento. 

As mudanças abrangem não apenas as formas como nos comunicamos e trabalhamos, mas também a forma como aprendemos e nos divertimos, além de diversas outras áreas da interação entre humanos, entre máquinas e entre ambos. Estamos conectados, online e aprendendo a lidar com tal novidade.

Avançamos e nos apropriamos de diversas vantagens dessa nova realidade. Mas, vale destacar que a fácil disseminação e a crença de anonimato fazem das mídias sociais um ambiente bastante utilizado para a propagação dos mais diversos assuntos. Entre eles, destaca-se o discurso de ódio que pode ser definido como ataque ou ameaça a outras pessoas motivados por raça, gênero, nacionalidade, orientação sexual, entre outros.

As redes sociais rejeitam o discurso de ódio em seus contratos e indicam que contas/usuários que promovam esse tipo de discurso podem sofrer sanções. Entretanto, o volume de postagens nessas redes é imenso. Só o X (antigo Twitter) veicula, em média, seis mil postagens por segundo, ou seja, 500 milhões de postagens todo dia. Estes são dados de apenas uma rede social.  Logo, a ideia de se ter intervenção humana, com a finalidade de verificar possíveis infrações, torna-se inviável.

Além da dificuldade associada ao volume, a tarefa de indicar se um discurso é de ódio ou não requer pessoas especializadas, pois um discurso muitas vezes pode ser confundido com sarcasmo, humor, ou linguagem ofensiva que, em muitos casos, pode ser protegida por lei. Dadas essas especificidades, realizar a moderação das postagens em redes sociais usando humanos é um trabalho desafiador, além de lento e não escalável. Logo, é necessário automatizar o processo e repassar a tarefa para programas de computador que são facilmente replicáveis e respondem rapidamente.

A tarefa de detectar discurso de ódio pode ser descrita de maneira simples: dado um conteúdo, deseja-se que o sistema responda sim, se o conteúdo contiver discurso de ódio, e não, caso contrário. Mas, a computação tradicional, determinística e que trabalha segundo regras estáticas, não se apresenta como uma ferramenta adequada para a tarefa em questão.

Daí emerge a aprendizagem de máquina, que é um ramo da Inteligência Artificial capaz de aprender a partir de dados. Ou seja, ao invés de ser explicitamente programada com regras extraídas de especialista humanos, as máquinas de aprendizagem capturam informações diretamente dos dados (postagens contendo ou não discurso de ódio) de maneira autônoma e automática, sendo assim, capazes de lidar com a incerteza inerente ao processo, além de poderem ser ajustadas para se adaptar às mudanças. 

As redes sociais já se valem de máquinas que aprendem para detectar e tentar impedir a disseminação de discurso de ódio. Porém, ainda há bastante espaço para ajustes e melhorias, pois a detecção automática de discurso de ódio é uma tarefa desafiadora e mal-definida; ainda não há consenso sobre como discurso de ódio deve ser definido. Logo, o que é discurso de ódio para uns pode não ser para outros e, tais definições conflitantes criam um ambiente desafiador para a avaliação de tais sistemas. Dentre os muitos os desafios para o avanço desta tecnologia, é possível destacar os seguintes:

Rotulagem: as máquinas de aprendizagem precisam de dados para discernir quais discursos são de ódio e quais não são. Essa triagem e construção de um corpus que será apresentado à máquina é uma tarefa inicialmente delegada aos humanos. Ao rotular um discurso em ódio ou não-ódio, humanos levam consigo seus preconceitos para o corpus que alimentará a máquina de aprendizagem que, por sua vez, será ineficaz no tratamento dessas incorretudes.  Assim, é desejável minimizar o viés desse processo de rotulagem e, para tal fim, comitês diversos, formados por pessoas especializados, devem ser compostos.

A natureza da linguagem: a linguagem é uma entidade viva e, por conseguinte, mutante. Logo, os algoritmos de aprendizagem de máquina precisam de adaptar a tais mudanças e, para tanto, requerem intervenção humana para indicar quais novas formas de expressão devem ser classificadas como discurso de ódio. 

Portabilidade: uma máquina de aprendizagem desenvolvida para uma dada língua, não se aplica diretamente a outras línguas. Mas do que isso, uma máquina, que foi ajustada para uma região de um país grande como o nosso, precisa levar em consideração regionalismos para realizar uma melhor predição e, tais detalhes, podem prejudicar a predição para outras regiões, mesmo sendo a mesma língua em todo o país.

Interpretabilidade: o processo que leva uma máquina de aprendizagem a tomar uma decisão ao invés de outra, muitas vezes, é indecifrável para humanos. Logo, tornar tais máquinas interpretáveis, pode proporcionar maior credibilidade e confiança ao processo; além de gerar questionamentos que podem ser utilizados para melhorar a precisão dessas mesmas máquinas.

Neste cenário, é promissor vislumbrar estratégias capazes de sinergicamente integrar algoritmos e pessoas, capturando o melhor de cada um.

Detecção de Fake News

A imensa quantidade de informação e de notícias veiculadas nas redes sociais traz desafios enormes. Um deles é o combate às fake news.

Não existe um consenso na comunidade científica sobre a definição de fake news. De maneira mais abrangente, adota-se que fake news é notícia falsa. Por outro lado, pode-se restringir e definir fake news como uma notícia que foi intencionalmente produzida para ser falsa e que pode ser verificada como tal. Essa definição mais restrita exclui, por exemplo, sátira e sarcasmo que não têm como objetivo enganar o leitor.

Estima-se que, em 2022, foram enviados 500 milhões de tweets por dia; e está é, dentre muitas, apenas uma rede social. Logo, a inspeção manual de texto veiculados na Internet é inviável não apenas pela quantidade, mas também, pela necessidade de especialistas humanos com pouco viés para realizar a curadoria de tais textos.

Logo, é preciso automatizar o processo! A inteligência artificial é a tecnologia mais viável atualmente para realizar a tarefa de separar rapidamente notícias falsas de verdadeiras.

Faramarz Farhangian, Rafael M.O. Cruz, George D.C. Cavalcanti. Fake news detection: Taxonomy and comparative studyInformation Fusion, 2024.

Neste artigo, analisamos as principais tecnologias para a área de detecção de fake news. Todas as tecnologias avaliadas pertencem à área de aprendizagem de máquina (um campo da inteligência artificial) que é capaz de extrair informação de massas de dados sem a intervenção humana no processo de aprendizagem. Foram comparados 15 métodos de representação de texto (entre eles, métodos atuais como transformers para large language models) e 20 modelos de aprendizagem de máquina (5 clássicos, 3 ensemble learning e 12 deep learning).

Além da taxonomia atualizada da área, apresentamos um estudo comparativo usando várias abordagens do estado-da-arte. Após a análise dos resultados, dentre as conclusões, observou-se que a combinação de diferentes abordagens leva a uma melhora da predição final do sistema de detecção de fake news. Constatou-se também que a técnica ideal de representação dos textos depende do banco de dados sob análise; mas, vale destacar que os modelos baseados em transformers exibem, consistentemente, um desempenho superior.

Por fim, tendo como base as análises realizadas no artigo, são propostas várias perspectivas de pesquisas futuras para o amadurecimento da área, tais como: emprego de várias representações (multi-view learning) e de sistemas de combinação dinâmica de classificadores.

O código-fonte de todas as análises estão publicamente acessíveis no GitHub: https://github.com/FFarhangian/Fake-news-detection-Comparative-Study.

GPT e modelos de linguagem: disciplina da pós-graduação do CIn-UFPE 

Finalizamos, eu e o prof. Tsang, a primeira disciplina do CIn a abordar Generative Pre-trained Transformer (GPT) e Large Language Models (LLM), intitulada: GPT: métodos e desafios de modelos de linguagem. A disciplina foi oferecida para alunos de mestrado e de doutorado da pós-graduação em Ciência da Computação do CIn-UFPE.

Ao ser lançado, o ChatGPT nos fez refletir sobre várias possíveis direções quanto ao seu uso e quanto ao alcance de suas potencialidades. Aplicações como tradução, sumarização de documento, construção de textos, entre outras, atingiram novos patamares e deixaram vários métodos/estratégias/algoritmos obsoletos. 

Para a construção de plataformas semelhantes ao ChatGPT, diversas tecnologias foram agregadas de forma inteligente para obtermos os resultados que enxergamos hoje. Uma dessas tecnologias consta na sigla do GPT, o “T” é de  Transformers (mais detalhes neste link) que é uma rede neural para treinar LLMs em grandes bancos de dados. 

Os LLMs transformaram a área de processamento de linguagem natural e compõem a base de uma ampla gama de sistemas de última geração que têm demonstrado uma excelente capacidade de gerar textos legíveis e fluidos. Porém, como toda nova tecnologia, esses modelos trazem consigo novos desafios, entre eles, desafios relacionados a aspectos éticos e de escalabilidade. A disciplina focou em fundamentos e, também, em diversos aspectos relacionados ao uso destes modelos.

Nesta primeira edição, o curso contou com a participação de 27 alunos (13 de doutorado e 14 de mestrado). Os orientadores desses alunos, no programa de pós-graduação do CIn, formam um grupo heterogêneo composto por 16 professores que atuam em diversas áreas, tais como: inteligência artificial, aprendizagem de máquina, ciência de dados, otimização, realidade aumentada e engenharia de software. 

Esta diversidade trouxe desafios, mas, foi frutífera, em especial, nas discussões que expuseram pontos de vistas que, embora convergentes, tinham alvos díspares. Por outro prisma, esta diversidade também reforça a ubiquidade da aprendizagem de máquina nas mais diversas áreas de pesquisa.

Sigamos para a próxima edição!

Transformers: a tecnologia por trás do ChatGPT

Sistemas que extraem informações de grandes quantidades de textos (large language models – LLM) têm despertado os mais diferentes sentimentos e atiçado o interesse de variados setores da sociedade. Um exemplo de LLM é o ChatGPT que conseguiu atingir a incrível marca de mais de um milhão de usuários em apenas cinco dias após seu lançamento.

Embora o ChatGPT tenha causado bastante “barulho” nos últimos meses, a tecnologia que o tornou possível vem sendo desenvolvida há tempos.

A “magia” por trás do ChatGPT deve-se, principalmente, a um tipo de arquitetura de rede neural artificial chamada de Transformers que foi lançada num artigo da Google de 2017 intitulado Attention is all you need. Lembrando que o T da sigla GPT significa Transformer; Generative Pre-trained Transformer (GPT).

A arquitetura do Transformer (mostrada na figura acima) é composta de vários módulos e parece complicada de início, porém, notem que vários módulos se repetem. Neste post, foco nas três principais inovações que tornaram essa tecnologia realidade:

  • Positional encoding;
  • Attention;
  • Self-attention.

A primeira, positional encoding, objetiva atribuir ordem as palavras de uma sentença quando apresentadas a modelos de aprendizagem de máquina. Já as duas seguintes, attention e self-attention, buscam pelas partes (palavras) mais importantes das sentenças. Mais detalhes a seguir.

Positional encoding

A ordem das palavras numa sentença importa. Logo, ao apresentar uma sentença a uma máquina de aprendizagem, é relevante informar para esta máquina a ordem das palavras. Esta é a tarefa do positional enconding.

De maneira simples, podemos dizer que o positional encoding atribui um número para cada palavra da sentença. Por exemplo: a frase

“Vamos jogar vôlei”

seria representada assim

[(“Vamos”, 1), (“jogar”, 2), (“vôlei”, 3)].

Esta é uma operação crucial, pois as redes neurais artificiais não levam em conta a ordem das palavras que lhes são apresentadas. Desta forma, a rede neural pode aprender que a primeira palavra está atrelada ao “1”, a segunda ao “2” e assim por diante.

Antes dos Transformers, as redes neurais recorrentes (RNN) atacaram esta questão da ordem das palavras de uma maneira diferente. Ao invés de apresentar todas as palavras da sentença de uma vez, as RNNs apresentavam uma palavra por vez à rede. Assim, a primeira palavra da sentença era apresentada à rede, em seguida, a segunda palavra e assim por diante. Mas, esta estratégia possui um alto custo de processamento e dificulta a paralelização das operações durante o treinamento da rede. Além disso, o trabalho de “entender” a ordem era atribuído à rede, no caso das RNNs, enquanto que nos Transformers, esta responsabilidade foi incorporada aos dados fornecidos como entrada para a rede.

Vale destacar que a estratégia usada no Transformer é mais sofisticada do que o exemplo mostrado acima que apenas atribuir números a cada palavra. Uma codificação usando as funções seno e cosseno, com diferentes frequências, são usadas para este fim. Mais detalhes sobre esta codificação pode ser encontrada aqui e aqui.

Attention

Antes de iniciar esta parte, lembremos que o artigo seminal do Transformer foi intitulado Attention is all you need. Logo, “attention” está no título do artigo e possui um papel crucial.

O conhecimento necessário para se chegar ao ponto que estamos em relação aos LLMs representa um aglomerado de experiências prévias. Neste sentido, o conceito de attention para a tradução foi descrito no artigo Neural machine translation by jointly learning to align and translate, em 2015.

Neste artigo, os autores destacam a importância de ter uma visão geral do texto para realizar uma tradução, por exemplo, de uma sentença do inglês para o francês de maneira mais acurada. Para ilustrar o conceito, a sentença

The agreement on the European Economic Area was signed in August 1992.”

pode ser traduzida para

L’accord sur la zone économique européenne a été signé en août 1992.”.

Perceba que quando da tradução de “European Economic Area” para “la zone économique européenne“, existe uma troca de ordem entre palavras. Além disso, francês, assim como o português, é uma língua na qual é necessário ajustar os adjetivos “économique” e “européenne” para o feminino por causa do termo “la zone“. Essas restrições dificultam bastante a possiblidade de se fazer uma tradução palavra-a-palavra de uma língua para a outra, como era comum em abordagens prévias.

Ainda no artigo de 2015, os autores mostram o heatmap, copiado acima, que relaciona cada palavra da sentença em inglês com palavras da sentença em francês. Perceba que devido à mudança de ordem das palavras de uma língua para a outra, neste heatmap, a palavra “European” está fortemente relacionada às palavras “économique” e “européenne“. Assim, este heatmap ilustra o mecanismo de attention que tem o objetivo de olhar para as diferentes alternativas quando da tradução.

Self-attention

A intuição por trás de self-attention é que nós não damos a mesma importância a todas as palavras em uma sentença. Logo, self-attention é um mecanismo que cria um relacionamento entre palavras de uma mesma sentença, com o intuito de focar em algumas, enquanto outras palavras recebem pouca atenção.

Tal mecanismo pode ajudar no processo de desambiguação entre palavras que possuem a mesma escrita e significados diferentes, por exemplo.

Observe estas duas sentenças:

“O real continua pouco valorizado comparado ao euro.”

“Isto não é real; estamos num ambiente virtual.”

A palavra real nas duas sentenças possuem significados diferentes e ao olhar para as outras palavras de cada sentença, podemos inferir o seu verdadeiro significado. Isso é realizado de maneira direta por humanos, simplesmente olhando as palavras ao redor.

Desta forma, na primeira sentença, a palavra “real” pode ser correlacionada a palavra “euro” e, assim, entende-se que o assunto trata de moedas. Já na segunda, a palavra “real” relaciona-se mais fortemente com a palavra “virtual”, e daí, inferimos que a palavra “real” não se trata de moeda, como na primeira sentença.


Não apenas o ChatGPT se beneficiou de Transformers. A lista é longa, entre elas: GPT, GPT-2, GPT-3, GPT-4, BERT, ALBERT, RoBERTa, DistilBERT e XLNet.

Seleção dinâmica de one-class classifiers

Mesmo sendo desenvolvidos para problemas que tenham apenas dados de uma classe, one-class classifiers (OCCs) também podem ser usados para tarefas que possuem várias classes. Nesse caso, um OCC é treinado para cada classe. Logo, para uma tarefa com n classes, n OCCs serão treinados. A classificação de uma nova instância é realizada da seguinte forma: essa instância é fornecida como entrada para cada um dos OCCs e sua classe é definida como a classe do OCC que responder com maior certeza.

Entretanto, quando uma nuvem de instâncias é multimodal, ou seja, quando essa nuvem possui mais de um grupo, boa parte dos OCCs não consegue lidar com essa dificuldade. Suponha que os pontos vermelhos na figura (a) acima pertençam à classe target e os pontos verdes à classe outlier. Vale destacar que durante o processo de treinamento do OCC, apenas os pontos vermelhos estão disponíveis. Assim, os pontos em verde são mostrados na figura apenas para fins de ilustração. A elipse em preto representa o classificador OCC e engloba todos os pontos vermelhos, dividindo a área do espaço de características em duas: target (dentre da elipse) e outlier (fora da elipse). Nessa figura, é possível notar que vários exemplos da classe outlier estão localizados dentro da região delimitada pelo OCC e, por consequência, esses pontos são incorretamente classificados como pertencentes à classe target. Nota-se também que as instâncias em vermelho compõem uma classe multimodal, ou seja, formada por várias modas/grupos.

Uma alternativa para lidar com essa multi-modalidade é criar várias meta-classes, uma para cada grupo, e treinar um OCC por grupo. Logo, uma nuvem de pontos (uma classe) será representada por vários OCC, um para cada meta-classe ou grupo. O desafio é definir o número de grupos em uma nuvem de pontos e, para esse fim, pode-se usar cluster validity indices para estimar este número.

Entretanto, não existe um índice (cluster validity index) que consiga definir de maneira precisa todos os grupos de qualquer nuvem de pontos, pois tal tarefa depende da medida de distância usada, da estrutura dos dados e de outras características. Em outras palavras, um dado índice pode ser a melhor escolha para uma classe e não ser para outra. Logo, esse mapeamento, do melhor índice por classe, é um problema em aberto.  Além disso, quando os cluster validity indeces são aplicados a uma dada nuvem de pontos, eles podem separar essa nuvem de maneiras diferentes.  Por exemplo, o índice Silhouette pode indicar que a nuvem possui 3 grupos, enquanto o índice NbClust pode indicar 5 grupos.

Diante deste contexto, foi proposto o método One-class Classifier Dynamic Ensemble Selection for Multi-class problems (MODES) que é um sistema de seleção dinâmica de classificadores para tarefas multi-classe. O MODES usa vários índices e treina um OCC para cada grupo definido por cada um dos índices. Essa estratégia permite que a diversidade das informações extraídas pelos índices seja incorporada ao sistema através do treinamento de vários OCCs. Por exemplo: a figura (b) ilustra que um dado cluster validity index encontra dois grupos; assim, dois OCC são treinados, um para cada grupo. Já outros cluster validity indexes encontram 4 e 5 grupos, como mostrado nas figuras (c) e (d), respectivamente; e, mais nove OCCs são treinados. Assim, cada OCC torna-se um especialista em uma determinada área do espaço de caraterística e minimiza o erro de classificar um outiler como target, como ocorre na figura (a).

Vale destacar que no MODES cada classe é tratada individualmente, logo, desbalanceamento entre as classes não é uma preocupação. Além disso, estratégias que decompõem as classes, como é o caso do MODES, podem se apresentar como alternativas interessantes para incremental learning e para open-set recognition

O MODES propõe uma abordagem capaz de lidar com dados que possuem distribuições complexas usando uma estratégia que seleciona dinamicamente os OCCs mais competentes para cada uma das instâncias de teste.


Rogério CP Fragoso, George DC Cavalcanti, Roberto HW Pinheiro, Luiz S Oliveira. Dynamic selection and combination of one-class classifiers for multi-class classification. Knowledge-based Systems, 2021.

One-class classification

Os classificadores tradicionais, tais como árvores de decisão e multi-layer perceptrons, recebem como entrada instâncias de duas ou mais classes e dividem o espaço de características em regiões de forma que cada classe seja representada por uma ou mais regiões. Logo, instâncias de classes diferentes são usadas para melhor definir as bordas entre regiões.

De maneira diferente, one-class classifiers (OCCs) recebem instâncias de apenas uma classe e dividem o espaço de características em apenas duas regiões: target (instâncias que pertencem à classe-alvo) e outliers (instâncias que não pertencem à classe-alvo). Assim, o objetivo de OCCs é determinar se uma dada instância de teste pertence à classe-alvo.

A imagem acima mostra um OCC, representado pela curva em vermelho, que delimita a área do espaço de caraterísticas para a classe-alvo, formada por cajus. Ou seja, todas as instância que se encontram dentro desta região serão ditas cajus e todas as instâncias fora desta região serão classificadas como não-cajus. Logo, esse classificador é potencialmente capaz de distinguir cajus de quaisquer outras frutas e/ou objetos.

Vale ressaltar que em seu processo de treinamento, os OCCs não usam contra-exemplos, pois apenas instâncias da classe-alvo estão disponíveis. Desta forma, os OCCs não dispõem de informação entre as classes para melhor posicionar a fronteira de decisão (curva em vermelho na figura). Em contraste, como apenas uma classe é usada no treinamento, desbalanceamento não é um problema.

Uma maneira simples de construir um OCC é mostrada na figura acima. Nela, um OCC é representado por um círculo em azul. Este círculo foi definido da seguinte forma: primeiro, calcula-se o centro de massa das instâncias (cajus) e, em seguida, define-se um raio que pode ser ajustado de várias formas, por exemplo, como a distância do centro de massa ao caju mais distante.

Nesta figura, três cajus ficaram fora do círculo, logo, estes cajus são classificados como não-cajus, gerando erros de falsos negativos. Além disso, percebem-se espaços vazios dentro do círculo, pois a região de decisão não se ajustou tão bem aos dados de treinamento como no exemplo mostrado na primeira figura.

Um falso positivo ocorre quando uma instância se localiza dentro do círculo e esta instância é, por exemplo, um maracujá, ou seja, um não-caju. Logo, a definição do raio possui um papel fundamental para minimizar os erros de falso negativo e de falso positivo. Quanto menor o raio, maior o erro de falso negativo e menor o erro de falso positivo. Em contrapartida, quanto maior o raio, menor o erro de falso negativo e maior o erro de falso positivo. Assim, podemos pensar nestes dois erros como uma balança, quando um aumenta o outro diminui e vice-versa.

OCCs representam uma classe de classificadores composta por vários algoritmos de treinamento, entre eles: one-class support vector machine, support vector data description, auto-encoder neural network e isolation forest.

Aplicações

OCCs têm encontrado uso nas mais diversas aplicações, tais como: detecção de imagens e de eventos, biometria, detecção de falsificação, classificação de documento e detecção de mudança de conceito. A seguir são descritas três áreas mais abrangentes da aprendizagem de máquina que têm se beneficiado do emprego de OCCs.

OCCs podem ser usados para tarefas multi-classe de maneira que cada classe é modelada por um OCC. Assim, tem-se m OCCs, sendo m o número de classes da tarefa. A inferência da classe de uma instâncias de teste é realizada da seguinte forma: esta instância de teste é fornecida como entrada para cada um dos OCCs e o OCC com o maior grau de certeza indicará a classe.

Detecção de anomalia e de outliers são aplicações nas quais OCCs se apresentam como uma alternativa interessante. Nestas aplicações, deseja-se separar um conjunto de instâncias ditas “normais” de instância que não se encaixam nesta “normalidade”.

Em tarefas com múltiplas classes, open set recognition tem o objetivo de considerar que uma dada instância de teste pode não pertencer a nenhuma das m classes iniciais do sistema. Pode-se considerar este processo como a rejeição da instância de teste, pois a instância não é atribuída a nenhuma das m possíveis classes. Num futuro, este mesmo sistema pode aumentar o número de classes m para incorporar estas instâncias que diferiram das classes preexistentes.

Normalização dos atributos & Desempenho dos classificadores

Pré-processar os dados, antes de treinar uma máquina de aprendizagem, é uma etapa vital para se conseguir extrair o melhor de cada máquina. São várias as formas de pré-processar os dados e esta tarefa depende da aplicação em investigação. Por exemplo: em processamento de linguagem natural, é comum realizar a tokenization que objetiva separar sentenças em unidades menores, tais como palavras.

O foco desta post é o pré-processamento dos atributos com o objetivo de colocá-los em uma mesma escala, ou dentro de um mesmo critério, com o intuito de minimizar a influência indevida de um atributo sobre o outro. Esta tarefa é realizada por técnicas de scaling, muitas vezes chamadas de normalização.

Min-max scaler é a mais utilizada e difundida técnicas de scaling. Nela, cada um dos atributos é ajustado para caber em um intervalo, geralmente, entre 0 e 1. Outras técnicas de scaling permeiam as aplicações e, entre elas, destaco: standard scaler, maximum absolute scaler, robust scaler e quantile transformer.

Diante desse contexto com várias técnicas de scaling e vários classificadores, alguns questionamentos emergem:

  • Vale a pena normalizar os dados?
  • A escolha da técnica de scaling influencia no desempenho dos modelos de aprendizagem?
  • Qual técnica escolher para um dado classificador?
  • Quais classificadores são mais sensíveis às escolhas das técnicas de scaling?

Estas e outras questões são abordadas no artigo de Amorim et al. que realiza uma ampla avaliação usando 82 bancos de dados públicos e cinco técnicas de scaling. Foi mostrado que escolher bem a técnica de scaling melhora a precisão de classificadores. Em particular, algoritmos baseados em árvores de decisão são pouco sensíveis à escolha da técnicas de scaling. Logo, em alguns casos, não normalizar pode ser a melhor opção.

O nível de desbalancamento do banco de dados é um fator que influencia a escolha da técnica de scaling. O standard scaler obteve melhor desempenho em bancos de dados com baixos níveis de desbalanceameto, enquanto o quantile transformer apresenta-se como a melhor escolha para os níveis médio e alto de desbalanceamento.

Os autores também ressaltam que a melhor técnica de scaling para um sistema de múltiplos classificadores coincide com a melhor técnica empregada por seu classificador-base. Assim, a definição da melhor técnica de scaling, para um sistema de múltiplos classificadores, pode ser realizada avaliando o comportamento das técnicas em um classificador-base, o que torna todo o processo mais rápido e barato.

Sabendo que o emprego de técnicas de scaling é bastante negligenciado nas mais diversas aplicações, Amorim et al. colocam luz nesta questão e mostram que devemos ficar alertas em relação a esse ponto sensível, pois a escolha da técnica influencia significativamente o desempenho de modelos de classificação.

Lucas B.V. de Amorim, George D.C. Cavalcanti, Rafael M.O. Cruz, The choice of scaling technique matters for classification performance, Applied Soft Computing, 2023.

Como irritar seu orientador?

Em post anterior, discuti as atribuições do orientador que representam apenas uma parte da engrenagem. A orientação é um trabalho em conjunto, uma parceria. Logo, é fundamental que os alunos saibam quais são suas atribuições e obrigações. Estar plenamente consciente, em relação às responsabilidades de cada parte, torna a jornada mais simples. Além do mais, fazer um doutorado é, por si só, uma aventura desafiadora.

Uma maneira de abordar a questão, sobre as responsabilidades do aluno, é listar o que se espera de um bom estudante. Entretanto, vou focalizar o problema por uma perspectiva diferente. Ao invés de elencar os desejáveis atributos de um aluno, vou indicar os comportamentos dos alunos que mais irritam os orientadores. Assim, caso um estudante deseje contrariar o orientador e fazê-lo perder a paciência, esse será seu guia.

Sumir

Simplesmente, desapareça. Não responda e-mail. Não se comunique nem por sinal de fumaça. Essa é a maneira mais simples de irritar seu orientador. Durante o período de orientação, o aluno e o orientador devem ter reuniões regulares e, provavelmente, várias reuniões curtas, diria até, informais. O estudante deve aproveitar esses momentos não apenas para se familiarizar no enredo da pesquisa, mas também para melhor entender o microcosmos da academia.

Entregar um relatório desleixado

Avaliar um relatório mal escrito, mal formatado e desorganizado é uma tarefa desagradável. Se o próprio autor do relatório não é zeloso com sua obra, por que os outros devem ser? O estudante deve cuidar de todos os detalhes: fonte, espaçamento, figuras, tabelas, equações, referências, uso correto da linguagem, escrita científica, entre outros. Vale destacar que o orientador não é um corretor ortográfico e nem um professor de português (ou de inglês). Ele é o especialista no assunto da pesquisa. Assim, não desperdice o tempo dele com atividades simples que você poderia facilmente realizar, como usar um corretor ortográfico. Dica: ao finalizar o relatório, guarde-o por um tempo e depois releia-o prestando atenção tanto à forma quanto ao conteúdo. Você, provavelmente, encontrará vários pontos de melhoria antes de enviá-lo ao seu orientador.

Não cumprir prazos

Prometeu, cumpra. Se não está certo de quanto tempo necessitará para escrever um relatório, para sintetizar os artigos do estado-da-arte ou para avaliar/implementar um técnica, simplesmente infome que precisa de uns dias para melhor estimar e planejar as atividades. Porém, depois que o cronograma estiver pronto, informe o seu orientador e cumpra-o. Imprevistos ocorrem com todos. Entretanto, não informar que irá se atrasar e não explicar o motivo, fere o acordo previamente firmado.

Pedir ajuda antes de tentar resolver o problema sozinho

“Professor, como faço para adicionar uma equação no Latex? Qual é a data da matrícula?” Esse tipo de pergunta, certamente, deixará o orientador irritado, pois, com um mínimo de pró-atividade, o aluno resolveria essas questões facilmente. Para a primeira questão, resolva conversando com outros estudantes ou buscando na Internet, google it! Já para a segunda questão, uma ida a secretaria, ou ao site do programa, seria suficiente. Novamente, não gaste o tempo do seu orientador com atividades pouco proveitosas para o âmago do seu doutorado.

Sair da reunião sem a menor noção do que foi discutido

Ao final de uma reunião com o orientador, o aluno sai com algumas tarefas definidas. Ao regressar à sala do orientador, quinze dias depois, o aluno informa ao orientador que não realizou o experimento acordado, pois não entendeu o que foi solicitado na reunião. Para sanar esse tipo de situação: pergunte! Peça ajuda. O orientador não lerá a sua mente. Dica para o orientador: peça para o aluno lhe explicar o que foi planejado para os próximos dias. Visto que, o aluno só conseguirá explanar o que entendeu. Dica ao aluno: ao final da reunião escreva uma e-mail/ata com o que foi discutido e acordado na reunião. Caso o aluno tenha esquecido algo, ou incompreendido algum ponto, o orientador estará ciente e poderá auxiliar.

Concordar com tudo o que o orientador diz

Concorda com tudo? Esse é o seu doutorado! No início é natural que você concorde com muito do que é dito pelo orientador; além do mais, ele é o pesquisador experiente. Mas, ao longo do percurso, o aluno deve amadurecer e começar a liderar algumas iniciativas relacionadas ao desenvolvimento da pesquisa.


As principais causas de conflitos entre alunos e orientadores são: i) os alunos reclamam da falta de feedback do supervisor e ii) os orientadores reportam falta de habilidade em pesquisa do aluno.

Diante do exposto, é dever de ambos manter uma relação respeitosa, amigável e construtiva. Mas, do ponto de vista do estudante, ele pode controlar melhor a relação se: i) cumprir os prazos, ii) preparar-se para as reuniões, iii) estar aberto a receber críticas, e iv) demonstrar conhecimento e amadurecimento na área da pesquisa.

Atribuições do orientador

Vários fatores podem influenciar a busca pelo título de doutor, ou de mestre, e esses fatores são classificados em internos e externos. Motivação, autoestima e confiança são exemplos de fatores internos. Dentre os fatores externos, é possível citar: vida pessoal, financiamento da pesquisa, estrutura do departamento, além, claro, da supervisão/orientação.

De todos os fatores, a supervisão é o mais importante para se alcançar o sucesso almejado pelas instâncias envolvidas: aluno, orientador, programa de pós-graduação e sociedade.

O trabalho de supervisionar o aluno é atribuição do orientador (tipos de orientador). A relação do orientador com o orientando varia de orientação para orientação. Cada aluno possui características particulares que devem ser levadas em consideração durante o progresso da pesquisa. Mas, independente dessas especificidades, podem-se listar algumas atribuições/propriedades de uma boa orientação, tais como:

Dedicação/Disponibilidade: refere-se ao tempo que o orientador dispõe para trabalhar com o estudante. É imprescindível que tenham reuniões regulares, assim, o orientador pode aferir o andamento da pesquisa e o amadurecimento do aluno, e o aluno pode ser aconselhado mais rapidamente. Dicas para o aluno: i) antes da reunião, envie um relatório reportando os avanços alcançados, bem como as limitações/desafios, e, ii) sempre, ao final de uma reunião, envie um email/ata registrando o que foi discutido.

Condução/Opiniões precisas: a pesquisa é uma tarefa mal-definida (ill-posed problem) que pode gerar ansiedade e sensação de estar andando em círculos. Um bom orientador deve ser capaz de i) auxiliar o aluno a desbravar esse ambiente recheado de incertezas, e ii) dar opiniões precisas sobre alternativas para os percalços que sucedem durante a pesquisa. Também é papel do orientador sugerir um redirecionamento da pesquisa caso perceba que uma “rua sem saída” se avizinha. Esse acompanhamento, constante e próximo, tem por objetivo verificar se a tese será finalizada no prazo, além de informar, de maneira clara, caso tenha chegado o momento de interromper a parceria.

Suporte/Relação de apoio: é senso comum que, para orientar, é necessário conhecimento técnico aprofundado na área da pesquisa. Sem tal conhecimento, o orientador fica impossibilitado de guiar o aluno nos meandros da pesquisa. Mas, apenas dominar técnicas e métodos não é suficiente. O bom orientador deve dispor de algumas características pessoais que facilitem sua comunicação com os orientandos. Ele deve inspirar o aluno e ser um entusiasta na pesquisa, além de ser respeitoso e altruísta. Tais características permitem que o aluno sinta-se mais seguro em relação aos desafios da pesquisa e, também, ajudam-no a desenvolver habilidades fundamentais para sua vida profissional.

Mesmo correndo o risco de ser redundante, reforço que é atributo do orientador revisar e avaliar relatórios, artigos e teses de seus orientandos em um prazo viável. Se um artigo, uma proposta de tese ou mesmo uma tese ou dissertação ainda não tem a qualidade necessária para ser submetido aos avaliadores, o orientador tem o dever de comunicar isso ao aluno e, também, de ajudá-lo indicando o que é preciso ser melhorado.

Por outro lado, vale salientar que o aluno deve estar ciente que o orientador possui várias atividades, além da orientação. Assim, o aluno deve escrever seu documento de uma maneira que facilite a vida do orientador e que lhe desperte o desejo de ler aquele documento o quanto antes. Mas, as atribuições dos alunos é assunto para outro post.

É papel do orientador manter a sinergia durante o fluxo de trabalho. Não é papel do aluno provar para o orientador que ele consegue fazer pesquisa sozinho, pois, se assim fosse, o orientador seria desnecessário. A pesquisa deve ser desenvolvida em conjunto, é uma parceria na qual o aluno está sendo treinado para realizar pesquisa de alto nível. Desse modo, a qualidade do processo de supervisão pode ser definida como uma função que mede a interação entre orientador e orientando.

Afinal, orientadores disponíveis, que deem opiniões precisas e que mantenham uma relação profissional saudável, podem ser decisivos na formação da próxima geração de pesquisadores.

Tipos de orientador

O orientador é o responsável por guiar e auxiliar o treinamento em pesquisa de alunos em diversos níveis, e.g., mestrado e doutorado. Essa é uma tarefa desafiadora que deve formar o aluno, facilitar seu entendimento sobre as bases da ciência e gerar conhecimento.

Entretanto, não existe uma fórmula mágica. Cada orientação é única. A relação entre o orientador e o aluno envolve diversos fatores de ambas as partes, tais como: background, desejos, expectativas e motivação. Em razão disso, a orientação é um processo personalizado, ou seja, um orientador se comporta de maneira diferente mesmo entre seus alunos.

São vários os estilos de orientação. Existe orientador que sempre está presente, e o que nunca aparece; tem o orientador experiente, e até, o marinheiro de primeira viagem; tem o orientador inseguro, e também, aquele que sempre tem uma opinião precisa sobre os próximos passos. A lista é vasta…

Tomando como base minha experiência, elenquei alguns tipos de orientador. Está é uma lista particular que não tem a pretensão de ser exaustiva. Mas, pode ajudar a identificar algumas características desejáveis ou não do seu (futuro) orientador, e também, pode servir para que você saiba que não está só.

Fantasma

Esse orientador nunca aparece, logo não faz ideia das questões de pesquisa que o aluno está desbravando. Esse tipo também é conhecido como orientador tartaruga, pois põe os ovos na praia (ou seja, aceita os alunos sob sua tutela) e desaparece. Para alunos autônomos, esse tipo de orientador pode funcionar até o momento em que uma crise se avizinha (e tais momentos desafiadores sempre chegam). Mas, para os alunos que precisam de suporte com certa frequência, é, sem dúvida, um pesadelo, uma angústia.

Superstar

É uma estrela de grande magnitude. Encontros são raros. Uma vantagem é que esse tipo de orientador pode abrir portas no futuro e, também, facilitar a obtenção de recursos para o desenvolvimento da pesquisa. Por outro lado, não é incomum que os alunos sejam compelidos a realizar tarefas de ensino e tarefas administrativas para o orientador, em detrimento de sua pesquisa.

Sufocador

Esse orientador deseja saber, em detalhes, todos os passos dos alunos, dentro e fora do ambiente de pesquisa. É controlador e busca a vida dos alunos nas redes sociais. Vai todos os dias, de manhã e de tarde, verificar se o aluno está no laboratório. Cada reunião, em particular ou em grupo, é um processo inquisitório e exaustivo. Quando chega ao ponto de desprestigiar tudo o que o aluno apresenta, é um tormento.

Clone

Esse tipo de orientador deseja que o aluno seja sua réplica em relação à visão de mundo. Os alunos devem trabalhar para solidificar o que o orientador construiu e, assim, aumentar sua reputação. Um aluno muito “criativo” pode ser “podado”. Nesses casos, é comum verificar que a relação patrão-empregado permanece por muito tempo após a defesa.

Generalista

Esse orientador está disposto a “orientar” alunos em qualquer área do conhecimento; é o sabe-tudo. Qualquer tópico de pesquisa existente ou não nessa galáxia, ou em outra, é assunto do seu interesse. Além do mais, ele se acha o maior especialista no assunto, ou melhor, em qualquer assunto. Rapidamente, o aluno percebe que está órfão no tema escolhido.

Amigão

Esse orientador é, normalmente, presente, mas nunca dá uma crítica contundente. Sempre bonzinho, incapaz de desafiar o aluno, mesmo nas situações em que o aluno não cumpre as obrigações. Muitas vezes se mostra indiferente ao progresso na pesquisa, mas reforça o relacionamento pessoal.


Os orientadores são amálgamas das diferentes personas listadas acima, e de algumas não listadas. Independente do caso, o orientador deve enxergar que o aluno está em processo de treinamento para, em breve, se tornar um colega de profissão. Esse é um relacionamento profissional e, como tal, cada um deve ter seu papel claramente delimitado e seu trabalho respeitado.

k-vizinhos mais próximos: uma análise

O algoritmo k-vizinhos mais próximos (do inglês, k-Nearest Neighbors – kNN) funciona da seguinte forma: dada uma instância de teste xq, o algoritmo encontra os k vizinhos mais próximos de xq no conjunto de treinamento. Em seguida, a classe de xq é dada pela classe que ocorrer com maior frequência entre os k vizinhos.

Na figura acima, são mostrados os cinco vizinhos mais próximos da instância de teste xq. Dessas cinco instâncias, 4 são da classe “+” (vermelha) e 1 da classe “0” (azul). Ao aplicar o kNN, com k=5, a instância xq é classificada como sendo da classe vermelha, pois essa classe possui mais representantes na vizinhança de xq.

Esse algoritmo possui dois parâmetros: o número de vizinhos (k) e a medida de dissimilaridade (ou de similaridade) usada para encontrar os vizinhos mais próximos. A distância Euclidiana é a medida mais amplamente usada para determinar os vizinhos, embora existam diversas opções. Em relação ao parâmetro k (número de vizinhos), várias alternativas para determinar o valor mais adequado por tarefa podem ser empregadas. Uma delas é avaliar o algoritmo kNN no conjunto de validação, adotando diferentes valores para k. O valor de k que alcançar a melhor precisão será escolhido para classificar todas as instâncias de teste.

Uma primeira diferença em relação a outras máquinas de aprendizagem, tais como árvore de decisão e multi-layer perceptron, é que, no kNN, a etapa de treinamento é caracterizada apenas pelo armazenamento das instâncias. A rigor, não há treinamento. Logo, a função que será usada para a tomada de decisão é definida em operação, analisando um subconjunto dos dados de treinamento, i.e., os k vizinhos mais próximos. Por esse motivo, pode-se dizer que o kNN é uma máquina de aprendizagem local.


Embora seja simples, vale destacar que o kNN constrói regiões de decisão não-lineares no espaço de características. Para ilustrar, a figura a seguir mostra como o espaço de características bidimensional é dividido quando emprega-se o kNN, com k=1. As linhas verdes delimitam a área de cobertura de cada uma das instâncias de treinamento (pontos pretos: x1, x2 e x3). Assim, qualquer instância de teste que se posicionar na região amarela será classificada como sendo da mesma classe da instância x1, pois essa será a instância mais próxima. Da mesma forma, instâncias localizadas na região laranja serão classificada pela classe de x2 e, na região azul, pela classe de x3.

Importante destacar que as regiões de cobertura mostradas na figura foram obtidas usando apenas um vizinho mais próximo (1NN). Ou seja, essas regiões podem ficam mais complexas ao adotar valores maiores de k. Além disso, uma caraterísticas interessante do kNN é que as regiões de coberturas podem ser facilmente modificadas ao inserir, remover ou reposicionar as instâncias.


Mas, o kNN possui algumas desvantagens:

Armazenamento: todas as instâncias de treinamento são armazenadas para posterior consulta, quando da chegada de uma instância de teste. Se o conjunto de treinamento possuir muitas instâncias, a quantidade de memória requerida para armazená-lo pode ser um problema. Uma alternativa, para aliviar essa questão, é usar algoritmos de redução de instâncias que têm o intuito de reduzir o número de instâncias no conjunto de treinamento.

Esforço computacional: a função que classificará uma instância de teste, só é definida em operação, usando os vizinhos mais próximos. Logo, o kNN requer um esforço de processamento, em tempo de execução, para vasculhar todo o conjunto de treinamento em busca dos vizinhos para cada instância de teste. Algoritmos de redução de instâncias também podem auxiliar para mitigar essa desvantagem do kNN.

Alta dimensionalidade: ao calcular a dissimilaridade (por exemplo: usando a distância Euclidiana) entre vetores que são representados por muitas variáveis, esse cálculo pode ser impreciso devido à alta dimensionalidade dos vetores. Uma maneira de atenuar essa questão é remover variáveis redundantes ou pouco relevantes, para fins de classificação, usando algoritmos de seleção ou de extração de características.


A figura a seguir mostra dois exemplos que ilustram uma instância de teste e seus cinco vizinhos mais próximos. Nesses dois exemplos, percebe-se que a instância de teste xq está bastante próxima das instâncias da classe “0” (azul). Mas, o kNN (k=5) classificará as duas instâncias de teste como pertencentes à classe “+” (vermelha), pois essa classe possui mais instâncias do que a classe azul na vizinhança de xq.

Nesses exemplos, a proximidade de xq em relação aos seus vizinhos não é levada em consideração. Apenas a quantidade de instâncias na vizinhança é usada para decidir a classe de xq. Mas, é possível encontrar variações do kNN que visam abrandar essa e outras propriedades previamente discutidas.

Redução de instâncias: seleção & geração

Algoritmos de redução de instâncias têm o objetivo de representar um conjunto de dados usando poucas instâncias. Dado um conjunto de dados (T), deseja-se obter um conjunto reduzido (S), de forma que o número de instâncias em S seja menor do que o número de instâncias em T, i.e., |S|<|T|. O novo conjunto S substituirá o conjunto T; logo, S não é qualquer subconjunto de T, mas, um conjunto que mantenha as informações do conjunto original e que o represente.

Esses algoritmos de redução são comumente aplicados na etapa de pré-processamento, antes do treinamento de uma máquina de aprendizagem. Ao diminuir o número de instâncias de um conjunto de dados, a quantidade de memória requerida para armazenar esses dados é reduzida. Além disso, máquinas de aprendizagem podem ser treinadas com maior agilidade, pois precisam extrair informações de uma quantidade menor de instâncias. Em especial, os algoritmos de aprendizagem baseados em instância (instance-based learning), tal como o k-Nearest Neighbors (kNN), podem se beneficiar bastante, visto que esses algoritmos são reconhecidamente lentos em operação.

Algoritmos de redução de instância são categorizados em: seleção de instâncias e geração de protótipos. Na seleção, o conjunto reduzido S é um subconjunto de T. Já na geração, o conjunto S é formado por instâncias que não necessariamente existem em T, ou seja, o algoritmo pode criar novas instâncias.

Seleção de instâncias

Essa abordagem busca pelo melhor subconjunto de instâncias (S) em um conjunto de dados (T), de forma que S ⊂ T. Para realizar tal tarefa, uma função de custo que define o que significa “melhor” subconjunto precisa ser definida. Por exemplo, no algoritmo de seleção de instâncias Edited Nearest Neighbors (ENN), a função de custo tem a tarefa de remover todas as instâncias que não são corretamente classificadas por seus vizinhos mais próximos. Outro exemplo é o Condensed Nearest Neighbors (CNN) que foca em remover instâncias que estão mais próximas dos centros das classes.

As figuras acima mostram os subconjuntos gerados pelos algoritmos ENN e CNN, a partir do conjunto de dados mostrado na primeira figura à esquerda. Pode-se notar que o ENN remove poucas instâncias e que a maioria das instâncias removidas pertence a regiões de borda. Logo, o ENN expõe mais claramente as fronteiras entre as classes.

A função de custo do CNN foca na remoção de áreas seguras, ou seja, agrupamentos de instâncias que têm a mesma classe. Por isso, na figura que mostra o resultado da aplicação do CNN, é possível perceber áreas vazias longe das fronteiras entre as classes. Esse algoritmo representa o conjunto de dados original usando bem menos instâncias do que o ENN.

Geração de protótipos

Os algoritmos de geração de protótipos criam instâncias artificiais que são usadas para representar o conjunto de dados original. Assim, ao invés de selecionar instâncias que existem no conjunto original, como os algoritmos de seleção de instâncias, os algoritmos de geração produzem novas instâncias (protótipos) que não existem no conjunto de dados inicial.

Para ilustrar como um protótipo pode ser criado para representar algumas instâncias, é possível se valer da noção de algoritmos de agrupamento (clustering), mesmo sabendo que esses pertencem a um espectro maior de aplicações. Os algoritmos de agrupamento fornecem um conjunto de grupos, e cada grupo pode ser representado por seu centro. Logo, pensando em reduzir as instâncias, pode-se representar todo o conjunto de dados original usando apenas os centros dos grupos. Assim, o número de protótipos no conjunto reduzido S é definido pela quantidade de grupos gerada pelo algoritmo de agrupamento.

A ideia é criar esses novos protótipos de forma que sejam necessários poucos deles para cobrir o espaço de características. Desta forma, o posicionamento desses protótipos nesse espaço é de suma importância. Muitas vezes, esse posicionamento é definido por um processo de otimização, tal como no algoritmo de classificação supervisionada learning vector quantization que é a pedra angular de diversas técnicas de geração de protótipos.

Discussão: Seleção versus Geração

A maioria das técnicas de seleção de instâncias e de geração de protótipos foi desenvolvida tendo como alvo o algoritmo kNN. Mas, vale destacar que essas técnicas podem ser usadas, eficientemente, como pré-processamento em outras abordagens de aprendizagem.

Para algumas aplicações, não é plausível gerar dados artificiais a partir dos dados originais. Logo, as técnicas de seleção seriam mais indicadas para esses casos. De maneira geral, as técnicas de seleção requerem menos poder computacional do que as de geração. Por outro lado, as técnicas de geração conseguem representar os dados originais de maneira mais concisa e, em geral, obtêm melhor precisão do que as de seleção.

Embora os algoritmos de redução de instâncias sejam rotineiramente usados na etapa de pré-processamento, antes do treinamento de uma máquina de aprendizagem, eles podem ser aplicados em outros cenários. Em [Cruz et al. 2018, Cruz et al. 2017], algoritmos de redução foram aplicados no contexto de combinação de classificadores.

Definição do tema de pesquisa

A escolha do tema é uma etapa desafiadora e deve ser realizada antes do início da pesquisa. A diversidade de possíveis temas é imensa. Porém, independente da escolha, é importante verificar algumas questões que podem indicar se um caminho promissor será trilhado. Seguem algumas perguntas (figura a seguir) que devem ser levadas em consideração para ajudar nessa escolha:

Afinco e dedicação passam a ser palavras de ordem quando se trabalha em algo que se tem interesse, algo que supõe-se promissor. Essa motivação extra, que advém do prazer associado ao desenvolvimento de algo que lhe é importante, contribuí, uma enormidade, para se atingir o objetivo. Escolha um tema do seu interesse ou se interesse por um tema que lhe foi sugerido.

Caso você ainda não tenha conhecimento amplo sobre o tema, você deve estar disposto a amadurecer rápido. Esse amadurecimento será guiado pelo orientador. Ele lhe indicará referências (artigos, livros, teses, entre outras) que, por sua vez, devem ser de fácil acesso.

Outra questão diz respeito aos dados para realizar a pesquisa. Se os dados estiverem disponíveis, um trabalho a menos. Mas, se você tiver que coletar os dados, tenha o cuidado de analisar a viabilidade e, também, o tempo necessário para essa tarefa. Falando em tempo, averigue se o cronograma cabe no tempo que você dispõe para desenvolver a pesquisa.

Ligue o sinal de alerta se você respondeu não para alguma questão acima, pois o trabalho já é árduo quando essas variáveis estão sob controle. Para os que responderam sim, sucesso na pesquisa.

Classificador baseado em perturbação

Após o treinamento de uma máquina de aprendizagem, obtém-se um modelo M que é usado para classificar novas instâncias, ou seja, instâncias nunca vistas durante o processo de treinamento. Esse modelo funciona da seguinte maneira: recebe como entrada uma instância de teste (xq) e fornece como saída uma predição da classe (ωq) dessa instância, i.e., M(xq) → ωq.

Conforme descrito acima, observam-se duas fases: uma de treinamento, na qual o modelo M é gerado, e uma de teste, na qual o modelo é usado para classificar novas instâncias (xq). Mas, existem outras alternativas, por exemplo: no artigo Online local pool generation for dynamic classifier selection, os modelos só são treinados quando a instância de teste é apresentada ao sistema. Assim, os modelos são treinados on-the-fly, especificamente para classificar cada instância de teste e, depois da classificação, os modelos são descartados. Vale destacar que quando o sistema é colocado em execução, ele não possui nenhum classificador armazenado. Esse tipo de abordagem tem a vantagem ser facilmente adaptável à inclusão de novos dados de treinamento, mesmo quando o sistema está implantado no cliente.

Com o intento de unir esses dois mundos, propusemos um novo classificador que parte do processo de treinamento é feito offline e parte é feito online, chamado Perturbation-based Classifier (PerC). A parte offline é igual ao procedimento corriqueiro, descrito acima, no qual o conjunto de dados de treinamento é usado para gerar o modelo. Já o procedimento onlineutiliza a instância de teste (xq), em tempo de execução, para auxiliar no processo de tomada de decisão da máquina de aprendizagem.

Para explicar o funcionamento da parte online, suponha um problema com duas classes (ω1 e ω2)  e admita que a instância de teste xq pertence à classe ω1. Assim, é esperado que a inserção da instância xna classe ω1 causará uma “perturbação” (daí o nome do classificador) menor do que sua inserção na classe ω2, pois xq pertence à classe ω1. Essa é a hipótese.

perc

Para ilustrar o conceito de perturbação, a figura acima mostra uma tarefa simples composta de duas classes (ω1: azul e ω2: vermelha), na qual deseja-se classificar a instância de teste xq (representada pelo triângulo verde). Para cada uma das classes, é possível calcular seu centroide (centro de massa), representado por um quadrado preenchido da cor da classe.

O algortimo PerC adiciona xq ao conjunto de treinamento das classes, admitindo, momentaneamente, que tal instância pertence a cada uma das possíveis classes do problema. Assim, suponha que xq pertence à classe azul. Logo, o número de instâncias nessa classe será acrescido de um e, feito isso, recalcule seu centro de massa. Faça o mesmo para a classe vermelha: suponha que xé uma instância vermelha e recalcule o centro de massa dessa classe. Os novos centros de massa são representados por quadrados vazados da cor de cada classe.

Depois do recálculo dos centros de massa, podemos verificar qual centro de massa sofreu maior variação em seu posicionamento original no espaço de características. O centro de massa da classe azul sofreu uma menor variação quando comparado ao centro de massa da classe vermelha. Logo, o PerC classificará xcomo sendo da classe azul (ω1). Vale enfatizar que ao inserir xna classe azul, o comportamento dessa classe mudou pouco, dando a entender que a instância adicionada já fazia parte da distribuição dessa classe. Observando a figura, notam-se que os quadrados preenchidos são calculados offline, enquanto os quadrados vazados só foram calculados online, usando a instância de teste (xq).

Para tarefas com mais de duas classes, ou seja, multi-classe, o PerC funciona da mesma forma. Ele adiciona, temporariamente, a instância de teste xq, em cada uma das classes, e avalia a perturbação causada. A classe que for minimamente perturbada é atribuída como sendo a classe da instância xq. Para fins de ilustração, nesse exemplo foi usada a média da classe como fator fundamental para a análise da perturbação. Mas, outros fatores podem ser levados em conta, tal como a matriz de covariância das classes.

PerC não pode ser categorizado como um sistema de online learning, pois a instância de consulta xq não é permanentemente adicionada ao conjunto de treinamento. No PerC, após a classificação, a instância xé descartada. De maneira geral, PerC não pode ser enquadrado em nenhum paradigma de aprendizagem existente. É um novo paradigma.

O código-fonte do PerC pode ser acessado em https://github.com/rjos/perc.