46
Aprendizado N˜ ao-Supervisionado Fabr´ ıcio Olivetti de Fran¸ ca Universidade Federal do ABC

Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Embed Size (px)

Citation preview

Page 1: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Aprendizado Nao-Supervisionado

Fabrıcio Olivetti de Franca

Universidade Federal do ABC

Page 2: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Topicos

1. Aprendizado Nao-Supervisionado

2. Agrupamento de Dados

1

Page 3: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Aprendizado Nao-Supervisionado

Page 4: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Aprendizado Nao-Supervisionado

Muitas vezes nao temos um rotulo pre-definido que queremos extrair de

nossos dados.

Contagem?

1 e 2

Tipo?

2

Page 5: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Aprendizado Nao-Supervisionado

O aprendizado nao-supervisionado especifica as tecnicas para extrair

conhecimento de um conjunto de dados sem que tenhamos:

• Informacao do que queremos encontrar.

• Qualquer retorno indicando corretude do que encontramos.

3

Page 6: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Aprendizado Nao-Supervisionado

Essas tecnicas se baseiam em:

• Formacao de grupos de dados similares.

• Modelo de criacao de um dado.

• Busca de objetos representativos.

• Reducao de Dimensionalidade e Extracao de Atributos.

4

Page 7: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Formacao de grupos de dados

Define-se uma medida de similaridade entre nossos dados.

Forme grupos baseados na similaridade entre objetos do mesmo grupo.

5

Page 8: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Formacao de grupos de dados

Nas imagens abaixo:

6

Page 9: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Formacao de grupos de dados

Podemos formar os grupos “bonzinhos” e “malvados”:

7

Page 10: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Formacao de grupos de dados

Podemos formar os grupos “masculino”, “feminino” e “indefinido”:

8

Page 11: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Formacao de grupos de dados

Podemos formar os grupos “herois”, “vıtimas” e “viloes”:

9

Page 12: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Modelo de Criacao

Procura encontrar um modelo que explica a geracao dos dados:

P(θ | x) =?

10

Page 13: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Modelo de Criacao

Vamos tomar como exemplo agora as seguintes imagens:

11

Page 14: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Modelo de Criacao

Com elas podemos encontrar os seguintes modelos de criacao:

12

Page 15: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Dados Representativos

Vamos considerar que uma imagem e um conjunto de pixels, e as cores

desses pixels sao nossos dados.

Se encontrarmos as k cores mais representativa dessa imagem, podemos

redesenha-la utilizando essas cores, economizando bits!

13

Page 16: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Dados Representativos

14

Page 17: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Reducao de Dimensionalidade e Extracao de Atributos

Ja vimos que em alguns casos (textos, imagens, vıdeos) temos a

necessidade de extrair atributos estruturados para que seja possıvel

utilizar algoritmos de Aprendizado de Maquina.

Alem disso, em algumas situacoes tambem pode ser desejavel extrair

atributos do conjunto de atributos estruturados.

15

Page 18: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Reducao de Dimensionalidade e Extracao de Atributos

A extracao de novos atributos e motivado por:

• encontrar um espaco de atributos com separacao linear entre as

classes;

• reduzir a dimensao do problema reduzindo o custo computacional do

modelo de aprendizado;

• descobrir relacoes entre os atributos que podem ser de interesse

pratico;

• projetar para um espaco bi ou tri-dimensional com o intuito de

visualizar os dados.

16

Page 19: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Reducao de Dimensionalidade e Extracao de Atributos

Ja a reducao de atributos e aplicada com o objetivo de minimizar o

impacto da maldicao da dimensionalidade.

Quando o espaco de atributos tem uma dimensao muito grande,

observamos alguns fenomenos:

• A diferenca entre as distancias de objetos similares e dissimilares se

torna pequena.

• Muitos atributos nao contribuem com o objetivo do aprendizado.

• Alguns atributos inserem ruıdos que atrapalham o ajuste dos

parametros livres dos algoritmos.

17

Page 20: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Agrupamento de Dados

Page 21: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Digamos que temos diversas cores que sao tons de vermelho, verde e azul.

0 50 100 150 200 250x

0

50

100

150

200

250

y

18

Page 22: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Queremos escolher as 3 cores mais representativas desse conjunto!

0 50 100 150 200 250x

0

50

100

150

200

250

y

19

Page 23: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

E nao necessariamente essas 3 cores devem fazer parte do conjunto de

dados, podemos criar cores novas!

0 50 100 150 200 250x

0

50

100

150

200

250y

20

Page 24: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

O que caracteriza uma cor representativa de um conjunto?

0 50 100 150 200 250x

0

50

100

150

200

250

y

21

Page 25: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Bom, para saber isso primeiro precisamos conhecer os conjuntos!

0 50 100 150 200 250x

0

50

100

150

200

250

y

22

Page 26: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Para nosso exemplo e facil:

0 50 100 150 200 250x

0

50

100

150

200

250

y

23

Page 27: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

A cor representativa de cada grupo e aquela que mais se aproxima de

todas do grupo.

0 50 100 150 200 250x

0

50

100

150

200

250y

24

Page 28: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Ou seja, e a que tem maior similaridade media com os elementos do

grupo.

0 50 100 150 200 250x

0

50

100

150

200

250y

25

Page 29: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Ou seja, e a que tem maior similaridade media com os elementos do

grupo.

0 50 100 150 200 250x

0

50

100

150

200

250y

26

Page 30: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Matematicamente, quem sao esses elementos?

0 50 100 150 200 250x

0

50

100

150

200

250

y

27

Page 31: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Dado um conjunto de pontos X n-dimensionais, queremos determinar o

ponto c , representando o centro, que minimiza:

J(X , c) =1

m

m∑i=1

dist(xi, c)

definimos que a distancia e o inverso da similaridade.

28

Page 32: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

O mınimo pode ser encontrado com:

∇J(X , c) =1

m

m∑i=1

∇dist(xi, c) = 0

29

Page 33: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Temos os centros...como definir os grupos?

0 50 100 150 200 250x

0

50

100

150

200

250

y

33

Page 34: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Para cada amostra x, verificamos o centro mais proximo...essa amostra

fara parte desse grupo.

0 50 100 150 200 250x

0

50

100

150

200

250y

34

Page 35: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Sabemos como calcular o centro, dado os grupos...e como definir os

grupos dado os centros.

0 50 100 150 200 250x

0

50

100

150

200

250y

Mas como comecamos?

35

Page 36: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Comecamos chutando pontos iniciais para os centros.

0 50 100 150 200 250x

0

50

100

150

200

250

y

36

Page 37: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Definimos os grupos de acordo com esses centros:

0 50 100 150 200 250x

0

50

100

150

200

250

y

37

Page 38: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Para cada grupo, calculamos o novo centro:

0 50 100 150 200 250x

0

50

100

150

200

250

y

38

Page 39: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

E remontamos os grupos:

0 50 100 150 200 250x

0

50

100

150

200

250

y

39

Page 40: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

Repetimos esse procedimento...

0 50 100 150 200 250x

0

50

100

150

200

250

y

40

Page 41: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means

...ate os centros ou os grupos nao se alterarem mais.

0 50 100 150 200 250x

0

50

100

150

200

250

y

41

Page 42: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means - Algoritmo

def kmeans(X, k, it=100):

centers = [X[i,:] for i in np.random.choice(X.shape[0])]

while it>0:

centers = emStep(X, centers)

return estStep(X, centers)

def emStep(X, centers):

return maxStep( X, estStep(X, centers) )

42

Page 43: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means - Algoritmo

def estStep(X, centers):

return np.array([np.argmin(distances(x_i, centers))

for x_i in X])

def maxStep(X, labels):

return [X[labels == k].mean(axis = 0)

for k in np.unique(labels)]

43

Page 44: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means - Algoritmo

def distances(x, centers):

return [dist(x, center_j) for center_j in centers]

44

Page 45: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

k-Means - Scikit-Learn

from sklearn.cluster import KMeans

model = KMeans(n_clusters=k)

model.fit(X)

clusters = model.labels_

45

Page 46: Aprendizado N~ao-Supervisionado - folivetti.github.io · Aprendizado N~ao-Supervisionado Essas t ecnicas se baseiam em: Forma˘c~ao de grupos de dados similares. Modelo de cria˘c~ao

Proxima Aula

Na proxima aula aprenderemos sobre os algoritmos de agrupamento

Espectral e Hierarquico.

46