• Michel

Introdução aos Algoritmos de Machine Learning

Atualizado: 4 de Mai de 2018

Uma introdução aos conceitos fundamentais de Machine Learning



O que são algoritmos e modelos?

Segundo a Wikipedia: “um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais devendo ser executadas mecânica ou eletronicamente em um intervalo de tempo finito e com uma quantidade de esforço finita. ”

Um algoritmo não representa, necessariamente, um programa de computador, e sim os passos necessários para realizar uma tarefa. Sua implementação pode ser feita por um computador ou por um ser humano.

Em síntese um algoritmo é simplesmente uma "receita" para executarmos uma tarefa ou resolver algum problema. E como toda receita, um algoritmo também deve ser finito. Se seguirmos uma receita de bolo corretamente, conseguiremos fazer o bolo.

O modelo é o que você obtém quando executa o algoritmo sobre seus dados de treinamento e o que você usa para fazer previsões sobre novos dados. Por exemplo, o algoritmo de regressão linear é uma técnica para ajustar pontos a uma reta y = m x + c. Agora, após o ajuste, você obtém, por exemplo, y = 10 x + 4. Esse é um modelo.

Na prática as palavras algoritmo e modelo são usadas de maneira intercambiável em Machine Learning.


Tipos de aprendizado em Machine Learning


Classificação por métodos de aprendizado

As tarefas de Machine Learning são tipicamente classificadas em três métodos de aprendizado.


Aprendizado supervisionado: São apresentadas ao computador as entradas e saídas coletadas em um banco de dados histórico. O objetivo é aprender uma regra geral que mapeia as entradas para as saídas.

Os dados de entrada são chamados de dados de treinamento e têm um target (variável dependente) ou resultado conhecidos, como spam/não-spam em função das expressões utilizadas nos emails ou o valor de uma moeda em função de sua dimensão e massa.

Na figura abaixo moedas de reais são classificadas por um analista em função de seu tamanho e peso. Estes são os dados de treinamento.



Uma nova moeda é então interpretada de acordo com a região separadas pelas linhas definidas pelo modelo.



Um modelo é preparado através de um processo de treinamento em que é necessário fazer previsões e é corrigido quando essas previsões estão erradas. O processo de treinamento continua até que o modelo atinja um nível desejado de precisão nos dados de treinamento. Por exemplo ao entrar com uma nova moeda de um dos valores, o modelo acerta 80% das vezes.

Aprendizado não supervisionado: São apresentadas ao computador apenas as entradas coletadas em banco de dados histórico. Não há saídas. O algoritmo de aprendizado, deverá descobrir alguma estrutura nas entradas fornecidas (se houver).

Neste caso não se sabe de que valor são as moedas. Agrupando por tamanho e peso o modelo descobre que existem quatro clusters (grupos) bem definidos.


Aprendizado por reforço: É a situação de agir a fim de maximizar a recompensa. Por exemplo, considere ensinar a um cão um novo truque: você não pode dizer o que fazer para isso, mas você pode recompensá-lo/puni-lo se ele faz a coisa certa/errada.

Usamos um método semelhante para treinar os computadores para fazer muitas tarefas, como jogar gamão ou xadrez, agendamento de trabalhos e controlar os membros de um robô. Por exemplo, alguns robôs usam o aprendizado de reforço para escolher um dispositivo de uma caixa e colocá-lo em um contêiner. Se bem-sucedido ou não, ele memoriza o objeto e ganha conhecimento treinando-se a si próprio para fazer este trabalho com grande rapidez e precisão.


Aprendizado por tipos de saída

Outra categorização de tarefas de Machine Learning surge quando se considera a saída desejada.

Classificação

Na classificação , as entradas são divididas em duas ou mais classes, e o modelo deve atribuir às entradas não vistas a uma ou mais dessas classes. Isso geralmente é abordado de maneira supervisionada. A filtragem de spam é um exemplo de classificação, em que as entradas são mensagens de e-mail e as classes são "spam" e "não spam".


Regressão

Na regressão, também um problema supervisionado, as saídas são contínuas e não discretas. Neste caso o valor que está sendo previsto difere de um “sim ou não” sendo uma variável contínua. Por exemplo, quantos metros quadrados ou qual é a temperatura.

Na figura é fácil distinguir um método contínuo ou discreto de aprendizado.



Clustering

Em clustering (agrupamento), um conjunto de entradas deve ser dividido em grupos que são as saídas. Ao contrário da classificação, os grupos não são conhecidos de antemão, fazendo com que isso seja tipicamente uma tarefa não supervisionada.


Regras de Associação

As regras de associação têm como premissa básica encontrar elementos que implicam na presença de outros elementos em uma mesma transação, ou seja, encontrar relacionamentos ou padrões frequentes entre conjuntos de dados. Por exemplo, uma pessoa que compra carne para hambúrguer possivelmente comprará pães de hambúrguer, bem como ketchup, mostarda, tomate e outros itens que compõem um hambúrguer.


Juntando os tipos de aprendizado podemos também dividi-los em modelos de previsão e modelos de descoberta como na figura abaixo.



Os principais algoritmos de Machine Learning


1. Regressão


A regressão é talvez um dos algoritmos mais conhecidos e bem compreendidos em estatística e machine learning.

A regressão linear existe há mais de 200 anos e tem sido extensivamente estudada. A regressão logística é outra técnica emprestada do campo da estatística. Na regressão logística assim como na regressão linear, o objetivo é encontrar os valores para os coeficientes de uma equação linear que avaliam cada variável de entrada.

Ao contrário da regressão linear, na regressão logística a previsão para a saída é transformada usando uma função não linear chamada função logística que transformará qualquer valor no intervalo de 0 a 1, estabelecendo assim uma probabilidade para um resultado.

SVM (Support Vector Machine) encontra uma linha de separação, mais comumente chamada de hiperplano entre dados de duas classes. Essa linha busca maximizar a distância entre os pontos mais próximos em relação a cada uma das classes, sendo um algoritmo poderoso.

Os algoritmos de regressão mais usados são:

  • Ordinary Least Squares Regression (OLSR)

  • Linear Regression

  • Logistic Regression

  • SVM - Support Vector Machines

2. Baseados em observações


O modelo de aprendizado baseado em observações compara novas observações com as observações originais existentes no banco de dados e que foram usadas para treinamento usando uma medida de similaridade, como por exemplo, a distância entre as observações, para encontrar a melhor correspondência e fazer uma previsão.

O algoritmo mais usado é o kNN “k-Nearest Neighbor” (k-ésimo vizinho mais próximo)


3. Árvores de decisão


Nos métodos da árvore de decisão as decisões bifurcam-se nas estruturas de árvore até que seja tomada uma decisão de previsão para um determinado registro. As árvores de decisão são usadas em problemas de classificação e regressão.

Os algoritmos de árvore de decisão mais usados são:


Classification and Regression Tree (CART)

Iterative Dichotomiser 3 (ID3)

C4.5 eC5.0

Chi-squared Automatic Interaction Detection (CHAID)

Decision Stump


4. Bayesianos


Métodos Bayesianos são aqueles que explicitamente aplicam o Teorema de Bayes para problemas como classificação e regressão. O Teorema de Bayes descreve a probabilidade de um evento, com base no conhecimento prévio das condições que possam estar relacionados ao evento.

Por exemplo, se o câncer está relacionado à idade, usando o teorema de Bayes, a idade de uma pessoa pode ser usada para avaliar com mais precisão a probabilidade de que ela tem câncer, em comparação com a avaliação da probabilidade de câncer feita sem o conhecimento da idade da pessoa.

O algoritmo Bayesiano mais popular é o Naive Bayes


Clustering


Os métodos de clustering (agrupamentos) particionam um conjunto de objetos em agrupamentos baseados em similaridades de atributos e valores, não existindo nenhuma informação prévia sobre a classe ou categoria dos objeto.

O objetivo dos algoritmos de agrupamento é colocar os objetos similares em um mesmo grupo e objetos não similares em grupos diferentes. Os principais são:


k-Means

k-Medians

Expectation Maximisation (EM)

Hierarchical Clustering


5. Regras de Associação


Os métodos de aprendizado de regras de associação extraem regras que melhor explicam os relacionamentos observados entre as variáveis ​​nos dados. Essas regras podem descobrir associações importantes e comercialmente úteis em grandes conjuntos de dados multidimensionais que podem ser explorados por uma organização.

Os algoritmos de aprendizagem de regras de associação mais comuns são:


FP-Growth

Apriori


6. Redes Neurais Artificiais


Redes Neurais Artificiais são modelos inspirados pelo sistema nervoso central e que são capazes de realizar o aprendizado de máquina. Redes neurais artificias geralmente são apresentadas como sistemas de "neurônios” interconectados. São comumente usadas ​​para problemas de regressão e classificação, mas na verdade são um vasto subcampo composto de centenas de algoritmos e variações para todos os tipos de problemas.

Os algoritmos de redes neurais artificiais mais usados são:


Perceptron

Back-Propagation


7. Deep Learning


Quando os dados de entrada para um algoritmo são muito grandes para serem processados e são notadamente redundantes (muitos dados, porém pouca informação) como no caso de reconhecimento de imagem de um gato em um jardim, em que todas as informações sobre o jardim são irrelevantes, esses serão transformados em um conjunto reduzido de características mais representativo. Se as características extraídas forem cuidadosamente escolhidas se espera que esse conjunto represente a parte relevante da informação para se executar a tarefa desejada ao invés de se usar os dados de entrada na integra. Os algoritmos de deep learning, funcionam com o princípio das redes neutrais, tem este propósito. Alguns exemplos destes algoritmos são:


Deep Boltzmann Machine (DBM)

Deep Belief Networks (DBN)

Convolutional Neural Network (CNN)


8. Redução de Dimensionalidade


Com um grande número de variáveis, a matriz de dados pode ser muito grande para ser interpretada adequadamente. Podem existir muitas correlações entre pares de variáveis ​​a serem consideradas. As exibições gráficas também podem não ser particularmente úteis quando o conjunto de dados é muito grande.

A redução de dimensionalidade explora a estrutura inerente dos dados, de maneira não supervisionada, a fim de converter um conjunto de observações de variáveis possivelmente correlacionadas num conjunto de valores de menor número de variáveis linearmente não correlacionadas.

Isso pode ser útil para visualizar dados dimensionais ou para simplificar dados que podem ser usados ​​em um método de aprendizado supervisionado. Muitos desses métodos podem ser adaptados para uso em classificação e regressão.


Principal Component Analysis (PCA)

Linear Discriminant Analysis (LDA)

Quadratic Discriminant Analysis (QDA)


9. Ensemble


Os métodos de ensemble usam vários algoritmos de aprendizado para obter um melhor desempenho preditivo conjunto do que os obtidos apenas com qualquer um dos algoritmos de aprendizado constituintes isoladamente.

Os métodos ensemble se baseiam na ideia de que sob certas circunstâncias, a agregação de informação de grupos, resultam em decisões que muitas vezes são superiores àquelas que podem ser feitas por qualquer pessoa - até mesmo um especialista.

Esta é uma classe muito poderosa de técnicas e, como tal, é muito popular.


Boosting

Bootstrapped Aggregation (Bagging)

AdaBoost

Gradient Boosting Machines (GBM)

Random Forest

Uma classificação geral dos algoritmos é resumida na figura abaixo.



Referências

The Elements of Statistical Learning - Trevor Hastie, Robert Tibshirani, Jerome Friedman

Learning from Data - Yaser Abu Mostafa, Malik Magdon-Ismail and Hsuan-Tien Lin.

3 Dimensões

Inteligência Artificial nas Empresas

Al. das Papoulas, 147 - Santana de Parnaíba - Alphaville, SP 06539-180 - (11) 4153 6004  - (11) 9 9795 9765

michel@3dimensoes.com.br