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.

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.

Combinação de classificadores: uma introdução

Ao treinar uma máquina de aprendizagem, muitos desafios espreitam o horizonte, entre eles: overfitting. Uma das alternativas para minimizar overfitting é escolher a máquina correta para a tarefa que se deseja resolver. Por exemplo: se tivermos poucos dados disponíveis, uma rede neural artificial pode não ser a melhor escolha; embora existam estratégias para gerar dados artificiais e aumentar a quantidade de dados de treinamento, tais como oversampling data augmentation. Uma escolha mais apropriada seria um algoritmo de instante-based learning, e.g., k-nearest neighbor. 

Escolher o melhor algoritmo de aprendizagem, por tarefa, é uma problema em busca de solução. Muitas abordagens que se valem de meta-learning já foram propostas, mas ainda existe muito terreno a percorrer nesse campo. Essa é uma pesquisa bem interessante e motivada, também, por um teorema de nome engraçado, mas, extremamente importante para a área, chamado de no free lunch theorem. Esse teorema nos indica que não existe uma máquina de aprendizagem que seja a melhor para todas as tarefas. Ou seja, cada tarefa tem suas peculiaridades que devem ser melhor resolvidas por máquinas que tenham características distintas. Nota: um teorema é uma afirmação provada como verdadeira; logo, essa difere de uma mera opinião.

Consequentemente, é responsabilidade do especialista em aprendizagem a escolha da melhor máquina para resolver uma nova tarefa. Mas, existe outra alternativa…

Se para cada tarefa, uma máquina deve ser escolhida, por que não unir esforços e juntar várias máquinas para resolver essa tal tarefa? Vox Populi, Vox Dei. vox-populi-vox-dei3Esse “poder das multidões” (wisdom of the crowd) é a premissa da área de Combinação de Classificadores (ensemble learning) que possui vários nomes, tais como: sistemas de múltiplos classificadores e máquinas de comitê. Esses sistemas combinam máquinas com o intuito de melhorar a precisão geral do sistema, fundamentando-se no argumento de que a junção das opiniões de um grupo de indivíduos é melhor do que a opinião de apenas um indivíduo.

Em um experimento, no início do século vinte, Sir Francis Galton — o mesmo que desenvolveu um método eficiente para classificação de impressões digitais — combinou a resposta de 787 pessoas que estimaram o peso de um boi morto e vestido. Ao calcular a média das respostas de todos os participantes, Galton observou que o erro foi menor do que um porcento (link). Ao invés de combinar as respostas de todos, Galton poderia ter escolhido o indivíduo mais competente para estimar o peso. Entretanto, essa escolha não seria uma tarefa trivial, da mesma forma que, escolher a melhor máquina de aprendizagem, por tarefa, não é uma tarefa simples. Assim, ao combinar todas as respostas, a probabilidade de escolher um indivíduo incompetente foi minimizada.

É inútil combinar máquinas que tenham o mesmo comportamento, ou seja, máquinas que acertem e errem as mesmas instâncias. Assim, ao juntar várias máquinas em um pool, é esperado que elas tenham um excelente desempenho em partes diferentes do espaço de características. Em outras palavras, é fundamental que as máquinas sejam diversas entre si. Existem várias maneiras de se obter diversidade, entre elas: usar diferentes algoritmos de aprendizagem e usar dados diferentes para treinar cada uma das máquinas.

Razões para combinar máquinas

Os aspectos que fortalecem o uso de estratégias de combinação de classificadores podem ser aglutinados em: estatístico, computacional e representacional. A figura ao lado é usada para explicar esses três aspectos. reasons-mcsNela, vê-se que o “espaço dos bons modelos”, para uma dada tarefa, é um subconjunto do “espaço dos modelos”. Esses modelos são máquinas de aprendizagem, de classificação ou de regressão, que foram treinadas com dados de uma tarefa específica. Além disso, o asteriscos (∗) representa o classificar ideal, os círculos (•) são os classificadores individuais e o triângulo (Δ) representa a combinação dos classificadores (ensemble). Objetiva-se obter um modelo o mais próximo possível do modelo ideal (∗). Nota: essa figura foi adaptada da figura 3.2 do livro da Kuncheva, 2014.

Estatístico

Na figura que mostra o aspecto Estatístico, percebe-se que o modelo combinado (Δ) está bem mais próximo do modelo ideal (∗) do que a maioria dos modelos individuais (•). Vale salientar que o modelo combinado não é o melhor, pois existe pelo menos um modelo (•) que está mais próximo do modelo ideal do que o modelo combinado. Entretanto, por melhor que seja o seu procedimento experimental, a incerteza relacionada à precisão do modelo, aferida durante o treinamento, pode levar a escolha de um modelo inadequado. Assim, ao combinar os modelos, minimiza-se a chance de selecionar um modelo ruim.

Computacional

Durante o treinamento, um modelo é levado do “espaço dos modelos” para o “espaço dos bons modelos” — conforme mostrado pelas curvas em cinza na figura do aspecto Computacional.  Cada um desses modelos (•) deve se posicionar em um mínimo local diferente da superfície de erro. Logo, a combinação desses modelos diversos gerará um modelo mais próximo do modelo ideal.

Representacional

Suponha que todos os modelos individuais (•) sejam lineares e que a tarefa, que se deseja resolver, seja não-linearmente separável. Logo, nenhum modelo, cuja representação é linear, será capaz de modelar essa tarefa. Por outro lado, ao combinar modelos lineares, regiões não-lineares podem ser modeladas. Assim, na figura que mostra o aspecto Representacional, percebe-se que o modelo combinado (Δ) está fora do “espaço dos modelos”, pois todos os modelo desse espaço são lineares e o alvo é um modelo não-linear que pode ser alcançado combinando modelos lineares. De maneira geral, regiões complexas de bordas entre classes podem ser modeladas usando modelos simples.

No próximo post, arquiteturas de combinação de classificadores — estática e dinâmica — serão discutidas.

Como evitar overfitting?

Não existe uma bala-de-prata para evitar overfitting. Boas práticas na condução de procedimentos experimentais, aliado ao entendimento do significado desse fenômeno, 99-ou-overfitting
contribuem para amenizar esse indesejável problema. Seguem alguns pontos a considerar para combater o overfitting.

treinar com mais dados

Se a máquina de aprendizagem usada é complexa, em termos da quantidade de parâmetros a ajustar, uma alternativa é adquirir mais dados com o intuito de equilibrar a quantidade de parâmetros versus a quantidade de instâncias de treinamento. Ou, simplesmente, deve-se escolher uma máquina mais simples, que tenha menos parâmetros.

validação cruzada

Uma das formas de realizar validação cruzada é usar o procedimento k-fold cross-validation. Nesse procedimento, o conjunto de dados é dividido em k partes, aproximadamente do mesmo tamanho, das quais, k-1 partes são usadas para treinar o modelo e a parte restante é usada para avaliar o modelo. Esse processo é repetido k vezes, de forma que cada parte será usada tanto para treinar como para avaliar o modelo. De maneira geral, a validação cruzada, por si só, não evita overfitting, mas segue uma boa prática ao separar o conjunto de teste e ao realizar um revezamento dos dados para uma melhor avaliação, no que tange a generalização do modelo em instâncias não vistas. Uma observação: o k-fold cross-validation não é uma boa opção quando o conjunto possui poucos dados.

parar o treinamento mais cedo (early stopping)

Máquinas de aprendizagem, tais como redes neurais artificiais, árvores de decisão, deep learning, entre outras, aprendem iterativamente. A cada passo, a máquina ajusta seus parâmetros aos dados e isso pode ser monitorado. Pode-se usar esse monitoramento para decidir qual é o melhor momento de interromper o treinamento da máquina. Espera-se que a precisão no conjunto de treinamento aumente com o tempo, mas, em relação ao conjunto de validação, a acurácia deve atingir um pico e depois cair. Esse pode ser um bom momento para frear o treinamento, antes que a máquina se sobreajuste aos dados.

regularização

Regularização é um conceito amplo que envolve várias técnicas com o propósito de produzir modelos que melhor se ajustem aos dados, evitando overfitting. Um exemplo é o procedimento de poda em uma árvore de decisão. Esse consiste em eliminar alguns “galhos” que, uma vez removidos, reduzirá a árvore, tornando-a mais simples e menos específica às instâncias de treinamento. Outros exemplos de técnicas de regularização envolvem dropout em redes neurais e adição de parâmetros de penalização na função de custo.

ensemble

Ensemble learning, ou sistema de múltiplos classificadores – SMC -,  combina as saídas de vários modelos com o intuito de melhorar a resposta final do sistema. Os SMCs têm alcançado resultados melhores do que o uso de modelos isolados. Esse sucesso deve-se a divisão de tarefas que é o espírito dessa área. Baseado no princípio de dividir-para-conquistar, cada modelo que compõe o SMC é treinado com parte do conjunto de treinamento e, consequentemente, acaba por se tornar um especialista nessa porção. Essa estratégia ajuda a amenizar o overfitting, e além disso, é robusta à presença de ruído nos dados.

 

Overfitting: desafio capital para aprendizagem de máquina

Overfitting (sobreajuste ou superajuste) é, provavelmente, o maior problema em aprendizagem de máquina. Ele ocorre quando um modelo não é capaz de generalizar. Ou seja, o modelo classifica corretamente os dados que foram usados para treiná-lo, mas, não consegue reproduzir esse desempenho em dados novos, que lhe são apresentados durante seu uso em produção. Logo, assume-se que o modelo “decorou” os dados usados para treiná-lo e, por conseguinte, seu desempenho nos dados de treinamento é bastante superior ao seu desempenho em uso, frustrando as expectativas do cliente. 

Para ilustrar, suponha que o treinamento de uma máquina de aprendizagem, usando um conjunto de treinamento Τ, gerou um modelo, e que, esse modelo foi avaliado no conjunto de teste Δ. As taxas de acerto do modelo, nos conjuntos Τ e Δ, foram de 95 e 92%, respectivamente. Logo, a expectativa é que, em uso, a acurácia do modelo gire em torno dos noventa porcento. Mas, ao ser colocado em produção, esse modelo não ultrapassa os 70% de acerto. Essa perda de 20 pontos percentuais, pode ser oriunda de várias fontes, uma delas é overfitting. Mas, o que ocorreu?

Vamos usar um exemplo para explicar o ocorrido. A figura acima mostra três cenários que diferem na função aprendida (modelo que é mostrado em verde) a partir dos dados de treinamento. Veja que na figura (a), o modelo classifica incorretamente muitas instâncias. Já na figura (b), o modelo não erra nenhuma instância, a separação é perfeita. A diferença entre as figuras (a) e (b) está no ajuste dos modelos. Enquanto o modelo da figura (a) não conseguiu aprender a estrutura dos dados (underfitting), o modelo da figura (b) fez uma estimativa muito precisa e acabou por “decorar” as instâncias de treinamento (overfitting). Um caso desejado é apresentado na figura (c), na qual, o modelo se ajusta aos dados, mas de forma a capturar as estruturas das classes e, consequentemente, poder generalizar bem instâncias nunca vistas.

Em outras palavras, caso um modelo bastante simples seja usado, pode-se subestimar e não capturar a complexidade dos dados. Observe que, na figura (a), a região de decisão é não-linearmente separável, logo, uma reta não é capaz de resolver o problema. Por outro lado, ao usar uma função muito complexa (popularmente: um canhão para matar uma mosca), corre-se o risco de decorar as instâncias de treinamento (figura (b)) e, dessa forma, perde-se a capacidade de classificar corretamente instâncias não usadas no treinamento. Vale salientar que a maioria das instâncias que serão incorretamente classificadas concentram-se na borda, perto da região de decisão, entre as classes. Já as instâncias mais internas às classes, essas são facilmente classificadas por qualquer algoritmo (mas, essa é uma discussão para outro post).

Avaliações incorretas geram modelo com overfitting 

A maneira mais comum de se incorrer em overfitting é treinar e avaliar a máquina usando o mesmo conjunto de dados. Suponha a situação na qual o professor passa listas de exercícios durante o curso e, na prova, repete questões dessas listas. Nesse caso, é esperado que os alunos que aprenderam as questões das listas, não terão nenhuma dificuldade em acertar todas as questões da prova. Dessa forma, as notas não refletirão a capacidade dos alunos em resolver problemas semelhantes aos que foram apresentados nas listas de exercícios; pois, os alunos devem ser avaliados em questões diferentes das usadas nas listas de exercícios. Com base nessa analogia, as máquinas devem ser avaliadas usando dados diferentes dos dados que foram usados para treiná-las.

treino-teste

Mesmo quando são usados dois conjuntos disjuntos, um para treinar a máquina e outro para testá-la, não há garantia de que o overfitting será evitado. Isso ocorre quando procedimentos metodológicos incorretos são empregados, tais como: uso de informações dos dados de teste e overfitting no conjunto de validação. 

Usando informações do conjunto de teste

Aprendizagem de máquina é a arte de ajustar parâmetros. São muitos parâmetros para avaliar e uma pergunta recorrente é: quais parâmetros devo usar e em quais circunstâncias? Uma forma comum de abordar essa questão é usar o seguinte procedimento: primeiro, define-se um conjunto de parâmetros, depois, a máquina é treinada e, por fim, o modelo gerado é avaliado no conjunto de teste. Até aí, tudo bem! Mas, se esse processo for repetido com um conjunto diferente de parâmetros, teremos, ao final, dois modelos, cada um treinado com parâmetros diferentes. Como escolher o melhor deles? Se escolhermos olhando para o resultado dos modelos no conjunto de teste, essa escolha está fadada a overfitting, pois, o conjunto de teste foi usado no processo de escolha dos parâmetros. Existem variações desse procedimento incorreto que, por princípio, ferem a premissa de não usar o conjunto de teste no processo de ajuste/escolha do modelo.

Overfitting no conjunto de validação 

Modificando um pouco o procedimento descrito acima, ao invés de se ter dois conjuntos, dividimos os dados em três conjuntos disjuntos: treinamento, validação e teste. O objetivo do conjunto de validação é auxiliar o treinamento da máquina, buscando os melhores parâmetros, similar ao procedimento acima, mas, deixando o conjunto de teste fora do processo. Esse parece ser um procedimento mais confiável, pois, o conjunto de teste, no qual o modelo será avaliado, está, de fato, ausente do processo de treinamento. Perceba que o procedimento de ajuste dos parâmetros pode se repetir diversas vezes, mas o conjunto de validação é o mesmo. Assim, após várias tentativas, um conjunto de parâmetros que satisfaça a métrica usada será encontrado, porém, esse modelo estará sobreajustado ao conjunto de validação. 

Aprendizagem em conjuntos de dados com classes desbalanceadas

Um dos pontos que devemos atentar ao treinar uma máquina de aprendizagem é o desbalanceamento entre as classes. Podemos dizer que as classes estão desbalanceadas quando o número de padrões em uma classe é muito menor do que o número de padrões numa classe diferente.

Veja o exemplo na figura acima que mostra duas classes: azul e vermelha. Nesse conjunto, temos 100 padrões da classe azul e 10 da classe vermelha. Logo, a quantidade de padrões na classe azul é 10 vezes maior do que a quantidade de padrões na classe vermelha. O imbalance ratio (IR) é usado para medir esse desbalanceamento, e é calculado como sendo a razão entre o número de padrões na classe majoritária e o número de padrões na classe minoritária. Para esse exemplo, o IR é igual a 10, pois temos uma razão de um para dez (1:10).

Em muitos problemas do mundo real, esse desbalanceamento é bem mais acentuado. Vamos supor um cenário no qual a razão fosse de 1:1000, ou seja, para cada padrão da classe vermelha, temos mil padrões da classe azul. Nesse cenário, caso uma máquina de aprendizagem sempre respondesse “classe azul”, para qualquer padrão fornecido como entrada, essa máquina atingiria uma acurácia (número de acertos dividido pelo número total de padrões avaliados) próxima a cem porcento. Para ser mais preciso, supondo um conjunto com 3003 padrões, sendo 3 da classe vermelha e 3000 da classe azul (para manter a proporção de 1 para 1000), a acurácia seria de 3000/3003, ou seja, 99,9001% de acerto.

Embora essa taxa de acerto, superior a 99,9%, seja bastante promissora, vale salientar que essa máquina de aprendizagem, de fato, não “aprendeu” nada. Ela, de certa forma, foi guiada a minimizar o erro no conjunto de treinamento (com ampla maioria de padrões da classe azul) e, nesse caso, o treinamento pode tê-la levado a desprezar os padrões da classe vermelha.

No exemplo acima, uma máquina conseguiu quase cem porcento de acerto, mesmo sem aprender a tarefa de maneira relevante. Para esses casos, a acurácia não é uma medida interessante, pois é uma medida global, calculada sem fazer distinção entre as classes. Quando avaliamos conjuntos de dados desbalanceados, devemos utilizar medidas que avaliem as classes separadamente, por exemplo: f-score, g-mean e area under the ROC curve.

É fato que várias máquinas de aprendizado podem, de maneira enviesada, priorizar a classe majoritária durante o seu treinamento. Assim, as principais alternativas para lidar com conjuntos de dados, nos quais as classes estejam desbalanceadas são:

  • pré-processamento: o objetivo é deixar todas as classes com um número similar de padrões, ou seja, balancear as classes. Técnicas de undersampling (remover padrões da classe majoritária) e/ou de oversampling (adicionar padrões na classe minoritária) são empregadas;
  • algoritmo com penalização: os algoritmos de aprendizagem são modificados com o intuito de torná-los sensíveis à questão do desbalanceamento. Assim, durante o processo de treinamento da máquina, o custo ao errar um padrão da classe minoritária é bem maior do que o custo associado a um erro na classe majoritária;
  • ensemble: nessa abordagem, técnicas de pré-processamento são usadas em conjunto com sistemas de múltiplos classificadores. Desta forma, ao invés de centralizar o conhecimento em apenas uma máquina de aprendizagem, o conhecimento extraído dos dados de treinamento é dividido em várias máquinas.

Das três alternativas listadas acima, a mais comumente usada é a primeira: pré-processamento. Embora, seja importante destacar a última, ensemble, pois essa tem alcançado resultados superiores quando comparada às demais (artigo).

E para tarefas multi-classe?

A questão fica um pouco mais sutil, quando temos mais de duas classes. Veja o exemplo na figura a seguir.

Observando essa imagem, podemos dizer que a classe verde é minoritária em relação à classe azul e majoritária em relação à classe vermelha. Assim, a relação entre as classes já não é tão óbvia quanto em problemas com duas classes. Além disso, o cálculo do IR, conforme descrito anteriormente, não representa uma medida tão confiável. Isso acontece porque diferentes conjuntos de dados podem ter o mesmo IR, desde que, a proporção, entre a quantidade de padrões na classe com mais exemplos e a quantidade de padrões na classe com menos exemplos, seja mantida. Note que, o IR do exemplo com três classes, é o mesmo do exemplo com duas classes: 10; pois, no cálculo do IR, o número de exemplos nas demais classes (que não seja a classe majoritária e a classe minoritária) não é levado em consideração. Mas, existem outras formas de calcular o IR, por exemplo: dividindo o número de exemplos na classe majoritária pela soma das quantidades de padrões de todas as outras classes. Assim, o IR para o problema para três classes ficaria igual a 3,33, ou seja, cem padrões da classe azul dividido por trinta (20 padrões da classe verde mais 10 da classe vermelha).

É relevante destacar, que essa questão do desbalanceamento entre classes, é mais grave quando lidamos com tarefas que dispõem de poucos padrões. Para tarefas, nas quais o número de padrões é extremamente alto para todas as classes, essa questão é minimizada. Ao acessar muitos padrões, podemos construir um conjunto de treinamento balanceado, basta realizar undersampling na classe majoritária.

Além disso, o desbalanceamento, por si só, não representa um problema! Basta que as classes (mesmo que desbalanceadas) estejam bem separadas no espaço de características, consequentemente, a tarefa da máquina de aprendizagem será bem simples. Veja, que no exemplo acima, as classes vermelha e verde, embora desbalanceadas, são linearmente separáveis. Logo, um Perceptron (uma reta) seria suficiente para realizar uma classificação perfeita dos exemplos dessas classes. A dificuldade emerge quando, além de desbalanceadas, as classes se sobrepõem. Observe que as bordas, entre as classes vermelha e azul e entre as classes azul e verde, são mais complexas de serem definidas.

Quando usar aprendizagem de máquina?

Você já deve ter ouvido a frase: “a inteligência artificial está em todo lugar”. É verdade que usamos no nosso cotidiano vários dispositivos e aplicações que se valem de algoritmos inteligentes e nem percebemos. Algoritmos que filtram imagem impróprias, que recomendam possíveis amigos e que escolhem suas melhores fotos estão embutidos nas redes sociais.  Quando um email é colocado na caixa de Spam, uma máquina de aprendizagem (ramo de destaque da inteligência artificial) fez essa classificação. Os resultados das suas buscas na Internet são filtradas e selecionadas usando, adivinha o quê, algoritmos de aprendizagem de máquina. Recomendação de produtos, detecção de fraudes em compras, carros autônomos; a lista é vasta!

am

O sucesso da aprendizagem de máquina nas mais diversas áreas desperta nosso interesse em imaginar quais serão as próximas aplicações que permearão nossas vidas. Um exercício interessante é entender o que essas aplicações de sucesso têm em comum. Mas, talvez esse seja um exercício mais mercadológico do que propriamente um exercício técnico. Por outro lado, do ponto de vista técnico, vale a pena investigar a essência por trás do uso de aprendizagem de máquina. Para abordar esse assunto, devemos analisar três fatores:

Dados — a aprendizagem de máquina é essencialmente um processo de aprendizado a partir de dados. Logo, sem dados, outras alternativas, diferentes da aprendizagem de máquina, devem ser buscadas. Para um processo de aprendizado supervisionado, os dados devem ser rotulados. Exemplificando: num sistema de detecção de spam, os dados devem ser formados por emails e cada email deve ter um rótulo indicando se ele é spam ou não. Assim, de posse dos emails e de seus rótulos, uma máquina de aprendizagem pode encontrar uma função que ao receber um email como entrada, consegue inferir se é spam ou não.

Função — o processo de treinamento de uma máquina de aprendizagem tem o objetivo de encontrar uma função que faz um mapeamento de um conjunto de variáveis de entrada em uma das possíveis saídas. No caso de um sistema de detecção de spam, se a função que faz esse mapeamento já for conhecida, é desnecessário gastar tempo obtendo os dados e treinando uma máquina para se obter o que já se tem. Mas, se essa função for desconhecida e você não conseguir criar um modelo do problema — como é o caso de verificar se um email é spam —, métodos de aprendizagem de máquina podem te ajudar.

Padrão — os dados que serão usados para o treinamento de uma máquina de aprendizagem devem apresentar um comportamento coerente em relação aos objetos do mundo real que eles representam. Imagine um email que hoje é rotulado como spam e amanhã, esse mesmo email, é rotulado como não-spam. Essa inconsistência impossibilita que uma máquina de aprendizagem construa uma representação plausível do que é um spam, pois não é possível encontrar um comportamento padrão que possa ser usado para fins de aprendizagem.

Avaliando esses três fatores, podemos verificar que mesmo se os dados não tiverem um comportamento coerente (padrão) e se a função de mapeamento for conhecida, podemos usar técnicas de aprendizagem de máquina. Nada nos impede. Mas, não conseguiremos usar aprendizagem de máquina se não tivermos dados. Esse é um pré-requisito essencial.

Para os que pretendem construir soluções baseadas em aprendizagem de máquina para a indústria, sugiro atentar para outros fatores, tais como:

  • Os responsáveis devem ter um bom entendimento do que aprendizagem de máquina significa e o que pode ser alcançado com seu uso. Por mais que iniciativas de automação end-to-end do processo de aprendizagem, e.g. Auto-ML, tenham crescido bastante nos últimos anos, o emprego acurado de técnicas de aprendizagem requer a intervenção de especialistas;
  • Dados de qualidade devem estar disponíveis.  Para tanto, devem ser observados o tamanho e a diversidade da amostra, bem como sua aderência ao problema real. A máquina será tão boa quanto os dados usados para treiná-la. Caso a máquina seja treinada com uma amostra que não reflete o mundo real, a aplicação provavelmente não funcionará a contento. Digamos que um sistema tenha sido treinado apenas com imagens coletadas durante o verão e com forte luz solar. Esse sistema, muito provavelmente, terá o seu funcionamento comprometido para imagens adquiridas à noite, durante um inverso chuvoso;
  • Existência de um processo claro de avaliação do diferencial ao empregar aprendizagem. Essa avaliação possui várias camadas que pode ter início no módulo mais interno do sistema — métrica usada para avaliar a máquina de aprendizagem —, a uma apreciação global que quantificará uma possível redução de custos ou de riscos do negócio.

Por fim, gostaria de destacar que a falta de entendimento do que pode ser alcançado usando aprendizagem de máquina dá origem ao mito de que basta termos uma grande massa de dados e, milagrosamente, técnicas de aprendizagem serão capazes de resolver qualquer problema apenas “olhando” esses dados. Essa massa de dados, muitas vezes, precisa ser trabalhada a várias mãos por diferente especialistas (bancos de dados, ciência dos dados, estatísticos, experts no problema em questão, entre outros) para que tenhamos sucesso no uso de métodos que aprendem.

Competências de um doutor

Um doutorado inicia-se com a escrita de um projeto contendo pelo menos uma questão original. Essa questão é avaliada e o projeto se transforma em uma tese que é defendida em um evento público. De maneira simplista, esses são os passos para a obtenção de um título de doutor.

Além de ser aprovado na defesa de tese, o doutorando almeja produzir um documento relevante e de alta qualidade. Esses também são os anseios dos programas de pós-graduação e dos orientadores, pois esses documentos respaldados pelo método científico podem gerar papers. Mas, do ponto de vista de formação para o mercado, seja academia ou indústria, quais competências esse recém-doutor deve ter?

competencia-dic

Vários fatores são basilares para a geração de doutores de alta qualidade. Entre eles, é possível destacar:

Orientação: o orientador deve ser especialista na área do projeto de pesquisa e deve ter tempo para trabalhar com o aluno;

Instituição: o ambiente de pesquisa no qual o aluno está inserido deve propiciar condições para que a pesquisa seja desenvolvida tanto em relação a equipamentos/infra-estrutura quanto em relação ao convívio com outros pesquisadores; e,

Financiamento: o aluno deve ter acesso a recursos financeiros para dedicar-se ao doutorado.

Entretanto, esses três fatores são necessários mas não garantem o sucesso. Daí surge a pergunta: como verificar se um doutorando reune as competências para se tornar doutor? Ao perguntar quais competências o doutorando precisar ter para obter o título de doutor, a resposta mais comum é provavelmente a seguinte: você deve ser um especialista em sua área de pesquisa e, além disso, deve ser capaz de desenvolver pesquisa de alto nível sem a ajuda do seu orientador e, também, deve ser capaz de ajudar na formação de uma nova geração de pesquisadores.

Diante da resposta dada no parágrafo anterior, não é possível delinear de maneira clara e precisa quais são as exigências/competências requeridas para se tornar um doutor. Essa imprecisão gera desconforto e insegurança no doutorando e não ajuda o programa de pós-graduação a aferir a qualidade de seus formandos. Com o intuito de iniciar uma discussão e minimizar esse desconforto, descrevo a seguir algumas competências que são vitais para a formação de um doutor.

Conhecimento

O doutorando deve conhecer muito bem a área de pesquisa do seu doutorado e deve ter conhecimento profundo em uma das linhas de pesquisa dessa área. Por exemplo: um pesquisador que trabalha na linha de pesquisa de “sistemas de múltiplos classificadores” deve ter um bom conhecimento em aprendizagem de máquina.

Pensamento crítico

A busca pela questão de pesquisa, que será o foco do doutorado, passa pela análise crítica de trabalhos previamente publicados. Ao lermos trabalhos da literatura, devemos não apenas absorver o conhecimento neles acumulados, mas também, devemos ponderar sobre possíveis caminhos não percorridos. Importante destacar que essa análise deve ser balizada por hipóteses plausíveis que diminuam o amplo espectro de possibilidades caso adotássemos uma busca cega baseada em tentativa e erro. Dica: fique alerta se você não encontra possíveis alternativas ou pontos de melhorias nos trabalhos que lê.

competencia

Habilidade para realizar experimentos

Delinear o protocolo para realizar um experimento correto, no qual a pergunta de pesquisa será respondida a contento, é uma competência requerida e que deve ser aprendida ao longo do doutorado. Durante o planejamento dos experimentos, questione (lista não exaustiva) se o tamanho da amostra é adequado, se nenhum erro foi cometido, se os métodos selecionados são apropriados e se o aparato estatístico está aderente aos dados que você possui. Ao realizar experimentos, deve-se estar atento ao viés de confirmação. Este viés ocorre quando o pesquisador está tão imerso em sua pesquisa que não consegue enxergar alguns pontos cruciais que podem afetar a plausibilidade de suas conclusões. 

Habilidade para trabalhar em grupo e liderança

Para se trabalhar bem em equipe, é necessário ganhar a confiança do grupo, ser respeitoso, firme e empático. Assim, seja como aluno de doutorado, como orientador, após finalizar seu doutorado e ingressar na vida acadêmica, ou como empregado em uma indústria, certamente você trabalhará em uma equipe. Em todos esses ambientes, o mais importante é trabalhar como uma equipe e não apenas trabalhar em uma equipe. Para que uma equipe funcione bem é preciso um líder. No caso específico de uma equipe formada por um orientador e seus alunos, o orientador é o líder e, ele deve gerenciar os liderados sabendo que cada um possui uma pesquisa particular e que cada orientação é diferente.

Comunicação

A última etapa do método científico é “reportar os resultados/conclusões”. Assim, habilidades de escrita e de exposição oral do trabalho são mandatórias para melhor divulgar a pesquisa. Na vida acadêmica, as pesquisas são compartilhadas com a comunidade científica através de artigos em revistas e em congressos. Além disso, as agências de fomento, que concedem financiamento para a pesquisa, avaliam pedidos de projetos de pesquisas. Logo, artigos e projetos de pesquisa mal-escritos serão recusados.

Resiliência e determinação 

Pesquisa é um processo de se aventurar pelo desconhecido. Ao investigar um problema original e importante, inerentemente, o doutorando desbravará terras inexploradas. Nessa aventura, é necessário ser resiliente e determinado para não desistir antes do término. Adianto que tais características de sobrevivência serão bastante úteis na vida futura do doutor.

As competências listadas não estão em ordem de importância. Mas, juntas, elas compõem um corpo de atributos que fortalece os alicerces para a formação de um bom profissional que poderá atuar tanto na academia quanto na indústria. Vale destacar que, num passado recente, formava-se doutor para a academia. Dessa forma, o foco da formação estava em prover ao futuro doutor capacidades para realizar pesquisa. Pouca atenção era dada para outras competências, tais como trabalho em grupo e comunicação, hoje indispensáveis.

Pesquisa em ciência da computação às avessas

Motivado por indicação de um revisor, li e sugiro a leitura de dois artigos interessantes que abordam a necessidade, ou não, de experimentação em ciência da computação, são eles:  Experiments as Research Validation: Have We Gone Too Far? e Theory Without Experiments: Have We Gone Too Far?.

A ciência da computação é vasta e formada de várias subáreas, entre elas: teoria da computação, banco de dados, redes, engenharia de software, inteligência computacional e arquitetura. Como tal, encontrar uma metodologia universal para validar toda e qualquer pesquisa realizada na grande área parece-me utopia. <para quem leu os artigos listados no primeiro parágrafo> Entendo que o uso de experimentos não só ajudam, como não atrapalham; o problema é outro, pelo menos nas cercanias.

Decerto é que o foco da pesquisa, independente da subárea, deve estar na novidade e não apenas na precisão. Esse é um ponto importante pois é fácil encontrar artigos, ditos científicos que quando muito são tecnológicos, e até pesquisadores que justificam suas pesquisas pelo fato de terem encontrado uma boa precisão usando alguma medida. Vale salientar que a quantidade de medidas existentes é enorme e, derivado desse fato, encontrar pelo menos uma medida que justifique o modelo proposto pode ser questão de paciência. Veja esse artigo que lista mais de 30 medidas comumente usadas na área de mineração de dados.

Pesquisas dessa natureza muitas vezes se assemelham a colchas de retalhos compostas pela justaposição de diversas abordagens e que parecem ter surgido por obra do acaso ou por tentativa e erro. Nesses casos, justificar a motivação de tais pesquisas torna-se um pandemônio. Pois, as motivações de fato nunca foram pensadas, e agora que boas taxas de acerto foram obtidas é necessário pensar às avessas. Aí, o objetivo da pesquisa passa a ser encontrar uma justificativa que suporte a medida. <e quando tal justificativa não é encontrada? Resposta curta: comece novamente. Resposta longa: discutiremos isso em outro momento>.

Obter resultados muito bons não é ruim. Muito pelo contrário, em especial para a indústria que busca soluções para o mercado sempre ávido por diferenciais que desbanquem a concorrência. Por outro lado, para o crescimento do “conhecimento científico” precisamos de algo mais. Precisamos de premissas que suportem nossas ideias, pois assim, podemos colocar mais um degrau na escada que ajudará outros pesquisadores a galgar na direção da expansão do conhecimento científico.