Uma tarefa envolvendo aprendizagem de máquina pode não ser linear, mas tem um número de passos bem conhecidos:
- Definição de problema.
- Preparação de dados.
- Aprendizagem de um modelo subjacente.
- Melhorar o modelo subjacente através de avaliações quantitativas e qualitativas.
- Apresentar o modelo.
Uma boa maneira de chegar a um novo problema é trabalhar através da identificação e definição do problema da melhor maneira possível e aprender um modelo que capte informações significativas a partir dos dados. Embora os problemas no Reconhecimento de Padrões e Aprendizagem de Máquina possam ser de vários tipos, eles podem ser amplamente classificados em três categorias:
- Aprendizagem supervisionada:
O sistema é apresentado com exemplos de entradas e suas saídas desejadas, dados por um “professor”, e o objetivo é aprender uma regra geral que mapeia entradas para saídas. - Aprendizagem sem supervisão:
Não são dadas etiquetas ao algoritmo de aprendizagem, deixando-o por si só para encontrar estrutura em suas entradas. A aprendizagem sem supervisão pode ser um objectivo em si (descobrir padrões ocultos nos dados) ou um meio para um fim (aprendizagem de características). - Reinforcement Learning:
Um sistema interage com um ambiente dinâmico no qual deve realizar um determinado objectivo (como conduzir um veículo ou jogar um jogo contra um adversário). O sistema é fornecido feedback em termos de recompensas e punições à medida que navega no seu espaço problemático.
Entre aprendizagem supervisionada e não supervisionada está a aprendizagem semi-supervisionada, onde o professor dá um sinal de treino incompleto: um conjunto de treino com algumas (muitas vezes muitas) das saídas alvo em falta. Vamos focar na aprendizagem não supervisionada e agrupamento de dados neste blog post.
Aprendizagem não supervisionada
Em alguns problemas de reconhecimento de padrões, os dados de formação consistem num conjunto de vectores de entrada x sem quaisquer valores alvo correspondentes. O objetivo em tais problemas de aprendizagem não supervisionada pode ser descobrir grupos de exemplos similares dentro dos dados, onde é chamado de clustering, ou determinar como os dados são distribuídos no espaço, conhecido como estimativa de densidade. Para colocar em termos mais simples, para um espaço n-sampled x1 a xn, não são fornecidas etiquetas de classe verdadeiras para cada amostra, portanto conhecidas como aprendizagem sem professor..
Aulas com aprendizagem não supervisionada:
- A aprendizagem não supervisionada é mais difícil em comparação com as tarefas de aprendizagem supervisionada..
- Como sabemos se os resultados são significativos uma vez que não há etiquetas de resposta disponíveis?
- Deixe o especialista olhar para os resultados (avaliação externa)
- Definir uma função objectiva no agrupamento (avaliação interna)
Porquê a aprendizagem não supervisionada é necessária apesar destes problemas?
- Anular grandes conjuntos de dados é muito dispendioso e por isso podemos rotular apenas alguns exemplos manualmente. Exemplo: Reconhecimento da Fala
- Existem casos em que não sabemos em quantas/quais classes estão os dados divididos. Exemplo: Data Mining
- Pode ser que queiramos usar o clustering para obter alguma visão da estrutura dos dados antes de desenhar um classificador.
Aprendizagem Sem Supervisão pode ser ainda classificada em duas categorias:
- Aprendizagem Paramétrica Sem Supervisão
Neste caso, assumimos uma distribuição paramétrica dos dados. Assume-se que os dados da amostra provêm de uma população que segue uma distribuição de probabilidade baseada em um conjunto fixo de parâmetros. Teoricamente, em uma família normal de distribuições, todos os membros têm a mesma forma e são parametrizados por média e desvio padrão. Isso significa que se você conhece a média e o desvio padrão, e que a distribuição é normal, você sabe a probabilidade de qualquer observação futura. O Aprendizado Paramétrico Sem Supervisão envolve a construção de Modelos Mistos Gaussianos e a utilização do algoritmo de Expectativa-Maximização para prever a classe da amostra em questão. Este caso é muito mais difícil que o aprendizado supervisionado padrão porque não há etiquetas de resposta disponíveis e, portanto, não há medida correta de precisão disponível para verificar o resultado. - Aprendizado Não Paramétrico Sem Supervisão
Na versão não paramétrica do aprendizado sem supervisão, os dados são agrupados em clusters, onde cada cluster (esperançosamente) diz algo sobre categorias e classes presentes nos dados. Este método é comumente usado para modelar e analisar dados com pequenos tamanhos de amostra. Ao contrário dos modelos paramétricos, modelos não paramétricos não requerem que o modelador faça qualquer suposição sobre a distribuição da população, e por isso são às vezes referidos como um método sem distribuição.
O que é Clustering?
Clustering pode ser considerado o mais importante problema de aprendizagem não supervisionada; assim, como qualquer outro problema deste tipo, ele trata de encontrar uma estrutura em uma coleção de dados não rotulados. Uma definição vaga de clustering poderia ser “o processo de organização de objetos em grupos cujos membros são semelhantes de alguma forma”. Um cluster é portanto uma coleção de objetos que são “semelhantes” entre eles e são “diferentes” dos objetos pertencentes a outros clusters.
>
Austering baseado na distância.
Dado um conjunto de pontos, com uma noção de distância entre pontos, agrupando os pontos em algum número de clusters, de tal forma que
- distâncias internas (dentro do cluster) as distâncias devem ser pequenas i.Os membros dos agrupamentos são próximos/similares entre si.
- distâncias externas (intra-agrupamento) devem ser grandes, ou seja, os membros dos diferentes agrupamentos são diferentes.
As Metas do Agrupamento
O objetivo do agrupamento é determinar o agrupamento interno em um conjunto de dados não rotulados. Mas como decidir o que constitui um bom agrupamento? Pode ser demonstrado que não existe um critério absoluto “melhor” que seria independente do objetivo final do agrupamento. Consequentemente, é o usuário que deve fornecer esse critério, de tal forma que o resultado do agrupamento se adapte às suas necessidades.
>
Na imagem acima, como sabemos qual é a melhor solução de agrupamento?
Para encontrar uma solução particular de clustering , precisamos definir as medidas de similaridade para os clusters.
Medidas de Proximidade
Para clustering , precisamos definir uma medida de proximidade para dois pontos de dados. Proximidade aqui significa quão semelhantes/dissimilares as amostras são em relação umas às outras.
- Medida de similaridade S(xi,xk): grande se xi,xk são semelhantes
- Dissimilaridade(ou distância) medida D(xi,xk): pequeno se xi,xk forem semelhantes
Existem várias medidas de semelhança que podem ser usadas.
- Vetores: Distância Cosina
- Sets: Distância Jaccard
q=2
Uma medida de proximidade “boa” é MUITO dependente da aplicação. Os clusters devem ser invariantes sob as transformações “naturais” ao problema. Além disso, enquanto o agrupamento não é aconselhado a normalizar dados que são extraídos de múltiplas distribuições.
Algoritmos de clustering
Algoritmos de clustering podem ser classificados como listados abaixo:
- Clustering Exclusivo
- Overlapping Clustering
- Clustering Hierárquico
- Clustering Probabilístico
No primeiro caso os dados são agrupados de forma exclusiva, de modo que se um determinado ponto de dados pertence a um cluster definido, então ele não poderia ser incluído em outro cluster. Um exemplo simples disso é mostrado na figura abaixo, onde a separação de pontos é feita por uma linha reta em um plano bidimensional.
Pelo contrário, o segundo tipo, o agrupamento sobreposto, usa conjuntos difusos para agrupar dados, de modo que cada ponto pode pertencer a dois ou mais agrupamentos com diferentes graus de adesão. Neste caso, os dados serão associados a um valor de associação apropriado.
Um algoritmo de agrupamento hierárquico é baseado na união entre os dois clusters mais próximos. A condição inicial é realizada através da definição de cada ponto de dados como um cluster. Após algumas iterações, ele chega aos clusters finais desejados.
Finalmente, o último tipo de clustering usa uma abordagem completamente probabilística.
Neste blog vamos falar sobre quatro dos algoritmos de clustering mais utilizados:
- K significa
- Fuzzy K significa
- Austering hierárquico
- Mistura de Gaussians
Cada um destes algoritmos pertence a um dos tipos de clustering listados acima. Enquanto K significa um exclusivo algoritmo de clustering, Fuzzy K significa um algoritmo de clustering sobreposto, Hierarquical clustering é óbvio e por último Mixture of Gaussians é um algoritmo probabilístico de clustering. Iremos discutir sobre cada método de agrupamento nos parágrafos seguintes.
K-Means Clustering
K-means é um dos mais simples algoritmos de aprendizagem não supervisionada que resolve o bem conhecido problema de agrupamento. O procedimento segue uma forma simples e fácil de classificar um determinado conjunto de dados através de um certo número de clusters (assumir k clusters) fixados a priori. A idéia principal é definir centros k, um para cada cluster. Estes centros devem ser colocados de uma forma inteligente devido à localização diferente causa resultados diferentes. Portanto, a melhor escolha é colocá-los o mais longe possível um do outro. O passo seguinte é tomar cada ponto pertencente a um determinado conjunto de dados e associá-lo ao centróide mais próximo. Quando nenhum ponto está pendente, o primeiro passo é completado e uma grupagem antecipada é feita. Neste ponto precisamos recalcular k novos centróides como baricentros dos clusters resultantes do passo anterior. Depois de termos estes k novos centróides, uma nova ligação tem de ser feita entre os mesmos pontos do conjunto de dados e o novo centróide mais próximo. Um laço foi gerado. Como resultado deste laço podemos notar que os k centróides mudam a sua localização passo a passo até que não haja mais mudanças. Em outras palavras, os centróides não se movem mais.
Finalmente, este algoritmo visa minimizar uma função objetiva, neste caso uma função de erro ao quadrado. A função objetiva
>
>
where
>
é uma medida de distância escolhida entre um ponto de dados xi e o centro de agrupamento cj, é um indicador da distância dos n pontos de dados dos seus respectivos centros de agrupamento.
O algoritmo é composto pelos seguintes passos:
- Let X = {x1,x2,x3,……..,xn} ser o conjunto de pontos de dados e V = {v1,v2,…….,vc} ser o conjunto de centros.
- Selecionar aleatoriamente ‘c’ centros de agrupamento.
- Calcular a distância entre cada ponto de dados e os centros de agrupamento.
- Atribuir o ponto de dados ao centro de cluster cuja distância do centro de cluster é mínima de todos os centros de cluster.
- Recalcular o novo centro de cluster usando:
Onde, ‘ci’ representa o número de pontos de dados no ith cluster.
- Recalcular a distância entre cada ponto de dados e os novos centros de cluster obtidos.
- Se nenhum ponto de dados foi reatribuído então pare, caso contrário repita a partir do passo 3).
Embora se possa provar que o procedimento sempre terminará, o algoritmo k significa que não necessariamente encontrará a configuração mais ótima, correspondente ao mínimo da função objetivo global. O algoritmo também é significativamente sensível aos centros de cluster inicialmente seleccionados aleatoriamente. O algoritmo k significaans pode ser executado várias vezes para reduzir este efeito.
K significaans é um algoritmo simples que foi adaptado a muitos domínios problemáticos. Como vamos ver, é um bom candidato para extensão para trabalhar com vectores de características difusas.