Machine Learning

Para iniciarmos esta cadeira, temos que ter bem presentes alguns conceitos, sendo o mais significativo o conceito de Machine Learning.

O que é Machine Learning?

Aprender é um conceito fundamental quando quantificamos inteligência. Para o ser humano, aprender está na base de tudo pois ninguém nasce ensinado. O mesmo aplica-se a qualquer máquina, daí ter sido criado o conceito Machine Learning. Partindo da psicologia e biologia o principal objetivo desta área de estudo é mimicar o modelo de pensamento humano.

"Learning is any process by which a system improves performance from experience" - Herbert Simon

Mas como √© que √© poss√≠vel p√īr uma m√°quina a raciocinar como um ser humano? Bem, faz sentido come√ßar com o conceito Intelig√™ncia Artificial, que, tal como j√° tinha sido referido na respetiva UC, afirma que todas as nossas a√ß√Ķes t√™m v√°rias componentes diferentes por detr√°s. Todo o nosso racioc√≠nio, antes de realizarmos o que quer que seja, passa por tr√™s principais etapas (etapas essas que procuramos espelhar recorrendo a m√°quinas computacionais):

  • Raz√£o: idealmente, procuramos ter uma justifica√ß√£o para a a√ß√£o que estamos a realizar. A t√≠tulo de exemplo, ao fazermos uma jogada num jogo de xadrez, temos que saber porque √© que estamos a mover a pe√ßa para um dado s√≠tio, o porqu√™ de o fazer e as consequ√™ncias (positivas e negativas) que a jogada nos trar√°;

  • Adaptabilidade: tal como o ser humano, uma m√°quina tem que ser capaz de aprender com as suas a√ß√Ķes, quer sejam positivas ou negativas. Voltando ao exemplo do jogo de xadrez, ao efetuarmos uma jogada conseguimos perceber os efeitos esperados (e n√£o s√≥) da mesma, conseguindo assim perceber se √© uma boa jogada ou n√£o, se h√° alternativas melhores, entre outros pormenores. Tal como vamos ver nesta UC, √© tamb√©m assim que as m√°quinas aprendem!

  • Criatividade: a criatividade nas m√°quinas tenta espelhar as emo√ß√Ķes humanas, sendo uma √°rea muito procurada atualmente. Pretendemos encontrar solu√ß√Ķes de maior intelig√™ncia sem ser somente com base no racioc√≠nio - queremos encontrar solu√ß√Ķes mais "outside of the box", portanto. Um bom jogador de xadrez n√£o joga sempre a "melhor jogada" (estatisticamente falando), procurando tamb√©m efetuar jogadas que surpreendam o advers√°rio.

Sistemas

Podemos agora orientar as aten√ß√Ķes para a parte de adaptabilidade - tal como sabemos, corresponde a uma sub-√°rea da Intelig√™ncia Artificial que pode ser registada atrav√©s de um sistema ao longo do tempo, ou at√© por m√ļltiplos sistemas registados juntamente com observa√ß√Ķes de experi√™ncia. Podemos, daqui, extrair que sempre que pretendemos aprender precisamos de um sistema: isto √©, precisamos de um conjunto de elementos, organizados com um objetivo em comum, influenciado pelo seu meio (caso seja aberto, claro). Um sistema √© descrito pela sua estrutura, objetivo e fun√ß√£o.

Sistema

Estes sistemas est√£o em todo o lado, e podem ser sistemas:

  • Biol√≥gicos;
  • Ecol√≥gicos;
  • Societ√°rios;
  • Mec√Ęnicos;
  • Digitais;
  • Quantum;
  • H√≠bridos;
  • Astrof√≠sicos;
  • Urbanos;
  • Entre muitos outros!

√Č atrav√©s destes sistemas, tal como j√° foi referido acima, que as nossas m√°quinas aprendem: as m√°quinas observam o sistema (e todas os objetos que ele habitam), registando todo um leque de tipos de dados, procurando assim, recorrendo √† experi√™ncia, aprender mais sobre o sistema e extrair dele a informa√ß√£o que pretende! Esta aprendizagem ou reconhecimento de dados √© o que nos ajuda a perceber o comportamento de um determinado sistema (descriptive learning) e apoia decis√Ķes e recomenda√ß√Ķes futuras (predictive learning).


Machine Learning e Data Science s√£o dois termos particularmente em voga recentemente. Procuremos distingui-los:

Machine Learning Data Science
Serve para melhorar as decis√Ķes tomadas a partir dos dados adquiridos Serve para descobrir o que n√£o sabemos a partir dos dados adquiridos
Conjunto de conceitos, princípios e métodos computacionais Extração não trivial de conhecimentos implícitos, importantes e anteriormente não sabidos
Parte de estatística, álgebra, matemática e algoritmos Parte de Machine Learning

Olhando agora para a distin√ß√£o entre Machine Learning e a √°rea da Intelig√™ncia Artificial, a principal diferen√ßa est√° nos inputs e outputs dos respetivos programas: em intelig√™ncia artificial, s√£o dados como input um conjunto de dados e uma fun√ß√£o de heur√≠stica, sendo retornada uma jogada/caminho/classifica√ß√£o/etc. Em Machine Learning, o "output" de IA √© precisamente um dos inputs (a par dos dados): os modelos procurar√£o aprender a partir do que lhes √© fornecido, procurando assim retornar um programa/modelo inteligente, capaz de fazer classifica√ß√Ķes/previs√Ķes corretas.

Machine Learning

Aprendizagem

Contudo, de que forma é que estas máquinas podem aprender? Bem, existem três principais formas:

  • Aprendizagem supervisionada: com um professor ou atrav√©s de dados de treino e outputs desejados, isto √©, etiquetas, quantidades ou estruturas;
  • Aprendizagem n√£o supervisionada: sem um professor e atrav√©s de dados de treino sem outputs desejados, procura-se "agrupar" os dados em diferentes categorias, conseguindo assim receber uma dada inst√Ęncia e dizer "esta inst√Ęncia deve pertencer √†quela categoria";
  • Aprendizagem por refor√ßo: sem um professor designado para dar exemplos negativos ou positivos, atrav√©s de pr√©mios e penalidades observadas atrav√©s da sequ√™ncia de a√ß√Ķes dentro de um ambiente espec√≠fico.

O processo de aprendizagem também se caracteriza por ser feito em diferentes etapas. A primeira etapa, pré-processamento de dados, refere-se a aquisição de dados, integração e limpeza dos mesmos: isto é, deteção de outliers, normalização dos dados, redução de dimensão, entre outros tratamentos.
De seguida, passamos √† etapa de minera√ß√£o de dados, recorrente em Machine Learning. Aqui, procura-se observar um dataset, encontrando associa√ß√Ķes locais ou padr√Ķes que satisfa√ßam crit√©rios estat√≠sticos significativos (n√ļmero m√≠nimo de observa√ß√Ķes de modo a contrariar expectativas, para remo√ß√£o de outliers), e poder discriminat√≥rio de alvos qualitativos ou correla√ß√£o entre crit√©rios.
Por fim, temos uma fase de pós-processamento de dados, que serve para extrair a informação e conhecimento (descriptive stance) assim como os modelos aprendidos (predictive stance), podendo desta forma interpretar e validar os resultados e consolidar os conhecimentos descobertos.

Symbolic Learning

Dentro das v√°rias vertentes existentes em Machine Learning, uma das principais √© Symbolic Learning. Popular entre 1970 e 1990, esta √°rea de estudo refere-se principalmente a como s√≠mbolos s√£o constru√ß√Ķes criadas pela mente humana, de modo a simplificar a resolu√ß√£o de problemas, que, posteriormente, s√£o usados para nos referirmos a v√°rias partes do mundo. O sistema aprende uma representa√ß√£o simb√≥lica atrav√©s da an√°lise de exemplos positivos e negativos de um conceito. O nome parte precisamente da no√ß√£o associada √† informa√ß√£o ser apresentada atrav√©s de s√≠mbolos.

Symbolical Learning

Statistical Machine Learning

A segunda vertente mais relevante √© statistical machine learning, contendo conceitos como regress√Ķes lineares, clustering e redes neuronais. Estes dois tipos de Machine Learning diferem principalmente no m√©todo atrav√©s do qual a informa√ß√£o √© apresentada: atrav√©s de s√≠mbolos e vetores, respetivamente.

Ao contr√°rio da vertente anterior, esta abordagem opta por representar os objetos diretamente. An√°logo √† biologia, onde os √≥rg√£os percetores capturam informa√ß√£o atrav√©s de recetores, optamos por criar vetores, onde cada dimens√£o representa um certo valor. Podemos tamb√©m pensar nas v√°rias dimens√Ķes como atributos. Por exemplo, podemos comparar dois peixes pelos seus peso e tamanho. Ao representar objetos desta maneira podemos comparar duas entidades medindo a dist√Ęncia euclidiana entre os dois vetores que a representam. O processo de escolher os atributos a representar chama-se extra√ß√£o de atributos.

O objetivo poder√° ser, ent√£o, discriminar os peixes em dois conjuntos, consoante as dimens√Ķes analisadas. V√°rios algoritmos de Machine Learning realizam esta divis√£o, de maneiras diferentes. O algoritmo Perceptron tenta determinar a linha que separa os dois tipos de peixes, neste exemplo.

Estes algoritmos operam sobre uma amostra estatística. Ao utilizá-lo para classificar um outro peixe, não há garantias de que a classificação seja de facto correta, problema conhecido como overfitting. Este pode ser também resultado de outliers estatísticos, em que, por exemplo, um salmão pode ter atributos muito semelhantes a um peixe de outra espécie, distorcendo a linha de separação entre as duas espécies. Este fenómeno ocorre devido a uma pequena amostra de treino.

Uma amostra reduzida não é representativa da população. Uma solução poderia ser aumentar esta amostra, mas muitas vezes é impossível. Faz-se então um compromisso, dando espaço a um pequeno erro. Este compromisso é descrito pelo pressuposto de que a curva de distinção terá de ser suave, de acordo com a teoria da regularização.

Espaços destacados

Aprender atrav√©s de uma base de dados √© obter rela√ß√Ķes de dados relevantes, estas rela√ß√Ķes s√£o padr√Ķes ou abstra√ß√Ķes que equivalem a distribui√ß√Ķes de interesse em observa√ß√Ķes espec√≠ficas e atributos que podem ser inesperadamente informativos ou inesperadamente discriminativos.

Quando as nossas vari√°veis visualizadas s√£o num√©ricas, um espa√ßo destacado representa um vetor espa√ßo, por exemplo o espa√ßo de Euclides, e as observa√ß√Ķes representam pontos dos dados.

x={v1,‚Ķ,vm}‚ąąRmx = \{v_1, \dots, v_m\} \in \R^m
‚ą£‚ą£a‚ąíb‚ą£‚ą£=‚ąĎi=1m(ai‚ąíbi)2||a - b|| = \sqrt{\sum_{i=1}^m (a_i - b_i)^2}