SlideShare uma empresa Scribd logo
1 de 109
Baixar para ler offline
Inteligência Artificial – ACH2016
Aula22 – Aprendizado Não-Supervisionado
K-Médias e Mapas Auto-Organizáveis
Norton Trevisan Roman
(norton@usp.br)
3 de junho de 2019
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 1 / 38
Aprendizado Não-Supervisionado
Agrupamentos
Até agora, todos nossos dados de treinamento
possuı́am um rótulo ou valor associados a eles
Conhecı́amos o valor da função objetivo para esses dados
Tı́nhamos uma medida clara do sucesso ou não de nosso
algoritmo
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 2 / 38
Aprendizado Não-Supervisionado
Agrupamentos
Até agora, todos nossos dados de treinamento
possuı́am um rótulo ou valor associados a eles
Conhecı́amos o valor da função objetivo para esses dados
Tı́nhamos uma medida clara do sucesso ou não de nosso
algoritmo
E se esse não for o caso?
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 2 / 38
Aprendizado Não-Supervisionado
Agrupamentos
Até agora, todos nossos dados de treinamento
possuı́am um rótulo ou valor associados a eles
Conhecı́amos o valor da função objetivo para esses dados
Tı́nhamos uma medida clara do sucesso ou não de nosso
algoritmo
E se esse não for o caso?
Mais, e se sequer saibamos que rótulos usar?
Apelamos ao agrupamento (clustering) dos dados
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 2 / 38
Aprendizado Não-Supervisionado
Análise de Agrupamentos
A análise de agrupamentos busca agrupar objetos
em subconjuntos (os agrupamentos)
De modo a que objetos em um agrupamento estejam mais
relacionados uns aos outros que a objetos de fora
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 3 / 38
Aprendizado Não-Supervisionado
Análise de Agrupamentos
A análise de agrupamentos busca agrupar objetos
em subconjuntos (os agrupamentos)
De modo a que objetos em um agrupamento estejam mais
relacionados uns aos outros que a objetos de fora
Central a isso é a
noção de grau de
similaridade entre
dois objetos
Decisão bastante
subjetiva Fonte: http://earthporm.com/wp-content/uploads/2015/
09/similar-things-look-alike-29__700.jpg
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 3 / 38
Aprendizado Não-Supervisionado
Similaridade
Medida, em geral, como a distância entre pares de
pontos
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 4 / 38
Aprendizado Não-Supervisionado
Similaridade
Medida, em geral, como a distância entre pares de
pontos
Medidas comuns:
Distância Euclidiana
Distância
Manhattan
Similaridade de
Cosseno
etc
Fonte: [9]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 4 / 38
Aprendizado Não-Supervisionado
Similaridade
Fonte: [9]
Distância Euclidiana
d(~
xi , ~
xj ) = k~
xi − ~
xj k2
=
n
X
k=1
(xik − xjk)2
(onde ~
xi = [xi1, xi2, . . . , xin])
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 5 / 38
Aprendizado Não-Supervisionado
Similaridade
Fonte: [9]
Distância Manhattan
d(~
xi , ~
xj ) = k~
xi − ~
xj k =
n
X
k=1
(xik − xjk)
(onde ~
xi = [xi1, xi2, . . . , xin])
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 6 / 38
Aprendizado Não-Supervisionado
Similaridade
Fonte: [9]
Similaridade de Cosseno
sim(~
xi , ~
xj ) = cos(θ) =
~
xi · ~
xj
k~
xi kk~
xj k
(onde ~
xi = [xi1, xi2, . . . , xin])
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 7 / 38
Aprendizado Não-Supervisionado
K-Means
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 8 / 38
K-Means
Funcionamento
Técnica de agrupamento em que
Agrupamentos possuem pontos como representantes
O quadrado da distância euclidiana é adotado como medida
de dissimilaridade entre vetores e representantes de grupos
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 9 / 38
K-Means
Funcionamento
Técnica de agrupamento em que
Agrupamentos possuem pontos como representantes
O quadrado da distância euclidiana é adotado como medida
de dissimilaridade entre vetores e representantes de grupos
K-Means cria um conjunto de exatamente k
categorias → seus centros (ou centróides)
k previamente definido
Inicialmente, cada centro é escolhido aleatoriamente
O procedimento iterativamente move esses centros
Minimizando a variância total dentro do agrupamento
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 9 / 38
K-Means
Funcionamento: Algoritmo
Função K-Means(X = {~
x1, . . . , ~
xn}, k): agrupamento
C ← escolheAleatorio(X, k)
repita
para i = 1 até n faça
Determine o representante mais próximo, cp ∈ C, de ~
xi
b(i) ← p
para j = 1 até k faça
Redefina cj como a média dos vetores ~
xi ∈ X com
b(i) = j
até que nenhuma mudança ocorra em C entre duas iterações
sucessivas
retorna C
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
K-Means
Funcionamento: Algoritmo
Base de dados
Função K-Means(X = {~
x1, . . . , ~
xn}, k): agrupamento
C ← escolheAleatorio(X, k)
repita
para i = 1 até n faça
Determine o representante mais próximo, cp ∈ C, de ~
xi
b(i) ← p
para j = 1 até k faça
Redefina cj como a média dos vetores ~
xi ∈ X com
b(i) = j
até que nenhuma mudança ocorra em C entre duas iterações
sucessivas
retorna C
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
K-Means
Funcionamento: Algoritmo
Escolha k exemplos ale-
atoriamente para re-
presentar os k grupos
Função K-Means(X = {~
x1, . . . , ~
xn}, k): agrupamento
C ← escolheAleatorio(X, k)
repita
para i = 1 até n faça
Determine o representante mais próximo, cp ∈ C, de ~
xi
b(i) ← p
para j = 1 até k faça
Redefina cj como a média dos vetores ~
xi ∈ X com
b(i) = j
até que nenhuma mudança ocorra em C entre duas iterações
sucessivas
retorna C
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
K-Means
Funcionamento: Algoritmo
Associa xi à catego-
ria mais próxima p
Função K-Means(X = {~
x1, . . . , ~
xn}, k): agrupamento
C ← escolheAleatorio(X, k)
repita
para i = 1 até n faça
Determine o representante mais próximo, cp ∈ C, de ~
xi
b(i) ← p
para j = 1 até k faça
Redefina cj como a média dos vetores ~
xi ∈ X com
b(i) = j
até que nenhuma mudança ocorra em C entre duas iterações
sucessivas
retorna C
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
K-Means
Funcionamento: Algoritmo
Recalcula a média
de cada categoria
Função K-Means(X = {~
x1, . . . , ~
xn}, k): agrupamento
C ← escolheAleatorio(X, k)
repita
para i = 1 até n faça
Determine o representante mais próximo, cp ∈ C, de ~
xi
b(i) ← p
para j = 1 até k faça
Redefina cj como a média dos vetores ~
xi ∈ X com
b(i) = j
até que nenhuma mudança ocorra em C entre duas iterações
sucessivas
retorna C
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
K-Means
Funcionamento: Algoritmo
As k médias como repre-
sentantes das k categorias
Função K-Means(X = {~
x1, . . . , ~
xn}, k): agrupamento
C ← escolheAleatorio(X, k)
repita
para i = 1 até n faça
Determine o representante mais próximo, cp ∈ C, de ~
xi
b(i) ← p
para j = 1 até k faça
Redefina cj como a média dos vetores ~
xi ∈ X com
b(i) = j
até que nenhuma mudança ocorra em C entre duas iterações
sucessivas
retorna C
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
K-Means
Funcionamento
K-means encontra os melhores centros alternando
Associação, baseada nos centros atuais, de pontos a
agrupamentos
Escolha de novos centros a partir da atual associação de
pontos ao agrupamento
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
K-Means
Funcionamento
K-means encontra os melhores centros alternando
Associação, baseada nos centros atuais, de pontos a
agrupamentos
Escolha de novos centros a partir da atual associação de
pontos ao agrupamento
Começamos com um
conjunto de pontos
Fonte: [12]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
K-Means
Funcionamento
K-means encontra os melhores centros alternando
Associação, baseada nos centros atuais, de pontos a
agrupamentos
Escolha de novos centros a partir da atual associação de
pontos ao agrupamento
Criamos então centros aleatórios
Fonte: [12]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
K-Means
Funcionamento
K-means encontra os melhores centros alternando
Associação, baseada nos centros atuais, de pontos a
agrupamentos
Escolha de novos centros a partir da atual associação de
pontos ao agrupamento
Associamos cada exemplo
ao centro mais próximo
Fonte: [12]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
K-Means
Funcionamento
K-means encontra os melhores centros alternando
Associação, baseada nos centros atuais, de pontos a
agrupamentos
Escolha de novos centros a partir da atual associação de
pontos ao agrupamento
Então movemos cada cen-
tro para a média dos pon-
tos em seu agrupamento
Fonte: [12]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
K-Means
Funcionamento
K-means encontra os melhores centros alternando
Associação, baseada nos centros atuais, de pontos a
agrupamentos
Escolha de novos centros a partir da atual associação de
pontos ao agrupamento
Fazemos nova associação dos
pontos ao centro mais próximo
Fonte: [12]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
K-Means
Funcionamento
K-means encontra os melhores centros alternando
Associação, baseada nos centros atuais, de pontos a
agrupamentos
Escolha de novos centros a partir da atual associação de
pontos ao agrupamento
E movimentamos nova-
mente o centro para a
média no novo agrupamento
Fonte: [12]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
K-Means
Funcionamento
K-means encontra os melhores centros alternando
Associação, baseada nos centros atuais, de pontos a
agrupamentos
Escolha de novos centros a partir da atual associação de
pontos ao agrupamento
E assim sucessivamente, até
que nenhum centro seja movido
Fonte: [12]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
K-Means
Vantagens e Desvantagens
Vantagens
Simplicidade computacional
Rápido
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 12 / 38
K-Means
Vantagens e Desvantagens
Vantagens
Simplicidade computacional
Rápido
Desvantagens
Não é aplicável a dados categóricos (como ficaria a média
ou a distância?)
Sensı́vel a ruı́do ou outliers (por conta da distância
euclidiana)
O valor de k precisa ser definido de antemão
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 12 / 38
K-Means: Variação
K-Medoids
K-means:
Cada grupo é representado pela média de seus vetores
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 13 / 38
K-Means: Variação
K-Medoids
K-means:
Cada grupo é representado pela média de seus vetores
K-medoids:
Cada grupo é representado por um vetor selecionado dentre
os elementos do conjunto de dados – o medoid
Recalculado a cada iteração do algoritmo
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 13 / 38
K-Means: Variação
K-Medoids
K-means:
Cada grupo é representado pela média de seus vetores
K-medoids:
Cada grupo é representado por um vetor selecionado dentre
os elementos do conjunto de dados – o medoid
Recalculado a cada iteração do algoritmo
Além do medoid, cada grupo contém todos os vetores que:
Não são usados como medoids em outros grupos
Estão mais próximos de seu medoid que dos medoids dos demais
grupos
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 13 / 38
K-Means: Variação
K-Medoids
Vantagens
Pode ser usado tanto com dados contı́nuos quanto discretos
K-means aceita somente contı́nuos, pelo fato da média de vetores
não resultar necessariamente num ponto do domı́nio
Tende a ser menos sensı́vel a outliers
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 14 / 38
K-Means: Variação
K-Medoids
Vantagens
Pode ser usado tanto com dados contı́nuos quanto discretos
K-means aceita somente contı́nuos, pelo fato da média de vetores
não resultar necessariamente num ponto do domı́nio
Tende a ser menos sensı́vel a outliers
Desvantagem
Calcular o medoid pode ser mais custoso que a média
Médias têm um significado geométrico e estatı́stico claro...
medoids não
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 14 / 38
Aprendizado Não-Supervisionado
Self-Organizing Maps
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 15 / 38
Mapas Auto-Organizáveis
Aprendizado Competitivo
Forma de aprendizado em redes neurais na qual os
neurônios de saı́da da rede competem entre si para
serem ativados
Apenas um neurônio, ou um por grupo, estará ativo por vez
Forma de disputa em que o vencedor fica com tudo
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 16 / 38
Mapas Auto-Organizáveis
Aprendizado Competitivo
Forma de aprendizado em redes neurais na qual os
neurônios de saı́da da rede competem entre si para
serem ativados
Apenas um neurônio, ou um por grupo, estará ativo por vez
Forma de disputa em que o vencedor fica com tudo
A competição pode ser induzida a partir da
topologia da rede
A atualização dos pesos força os neurônios a se
auto-organizarem
Criando assim um mapa auto-organizável
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 16 / 38
Mapas Auto-Organizáveis
Topologia
Os neurônios são
topologicamente
ordenados em uma
malha
Em geral uni ou
bidimensional
Não há conexões entre
eles
Dimensões maiores são
possı́veis mas incomuns
Malha Bidimensional
Malha Unidimensional
Fonte: PR. T&K.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 17 / 38
Mapas Auto-Organizáveis
Topologia
São então ajustados
seletivamente a cada
entrada
Sua localização na malha
fica organizada de modo a
criar um sistema de
coordenadas Φ para cada
atributo da entrada
Malha Bidimensional
Malha Unidimensional
Fonte: PR. T&K.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 18 / 38
Mapas Auto-Organizáveis
Topologia: Significado
A malha torna-se então
um mapa topográfico
Em que a localização
espacial de um neurônio
na malha corresponde a
um domı́nio ou
caracterı́stica particular
dos dados de entrada
Fonte: NNaLM. Haykin.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
Mapas Auto-Organizáveis
Topologia: Significado
A malha torna-se então
um mapa topográfico
Em que a localização
espacial de um neurônio
na malha corresponde a
um domı́nio ou
caracterı́stica particular
dos dados de entrada
Mapeamento Φ
do ponto ~
x na
entrada para o
ponto i(~
x) na saı́da
Fonte: NNaLM. Haykin.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
Mapas Auto-Organizáveis
Topologia: Significado
A malha torna-se então
um mapa topográfico
Em que a localização
espacial de um neurônio
na malha corresponde a
um domı́nio ou
caracterı́stica particular
dos dados de entrada
E do ponto i na
saı́da para o ponto
~
ωi na entrada
Fonte: NNaLM. Haykin.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
Mapas Auto-Organizáveis
Topologia: Significado
A malha torna-se então
um mapa topográfico
Em que a localização
espacial de um neurônio
na malha corresponde a
um domı́nio ou
caracterı́stica particular
dos dados de entrada
Onde ~
ωi é o vetor
de pesos associado
ao neurônio i
Fonte: NNaLM. Haykin.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
Mapas Auto-Organizáveis
Topologia: Significado
A malha torna-se então
um mapa topográfico
Em que a localização
espacial de um neurônio
na malha corresponde a
um domı́nio ou
caracterı́stica particular
dos dados de entrada
Então ~
ωi corres-
ponde à posição
do neurônio no
espaço da entrada
Fonte: NNaLM. Haykin.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
Mapas Auto-Organizáveis
Topologia: Significado
Cada neurônio representa
um conjunto de pontos
(Auto-)Arranjados de modo a
que neurônios próximos
correspondam a pontos
próximos no espaço de
entrada
Fonte: NNaLM. Haykin.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 20 / 38
Mapas Auto-Organizáveis
Topologia: Distância Topológica
A ordenação topológica
implica uma distância
entre neurônios
Ex: Distância Manhattan
ou Euclidiana
E ~
wr está mais próximo
topologicamente de ~
wq
que de ~
ws
Malha Bidimensional
Malha Unidimensional
Fonte: PR. T&K.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 21 / 38
Mapas Auto-Organizáveis
Redes de Kohonen
Embora haja outros
tipos, veremos apenas
as redes de Kohonen
Uma camada bidimensio-
nal de células (sem
conexão direta entre elas)
Cada neurônio conectado
a todos os nós de entrada
Camada computacional
Camada de entrada
Fonte: SOM. Bullinaria.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 22 / 38
Mapas Auto-Organizáveis
Redes de Kohonen
Embora haja outros
tipos, veremos apenas
as redes de Kohonen
Uma camada bidimensio-
nal de células (sem
conexão direta entre elas)
Cada neurônio conectado
a todos os nós de entrada
Sem camada de saı́da
Camada computacional
Camada de entrada
Fonte: SOM. Bullinaria.
Cada nó na malha é um nó de saı́da
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 22 / 38
Redes de Kohonen
Algoritmo
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Conjunto de k exemplos de entrada
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Um exemplo de entrada
é um vetor no espaço d-
dimensional ~
xi = [xi1, . . . , xid ]
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Haverá então d atributos
e consequentes d unida-
des de entrada para a malha
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Número máximo de iterações
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Uma iteração é a análise
de um exemplo de entrada
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Ponto a partir do qual con-
sideramos a malha estável
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Taxa de aprendizado da rede
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Função de vizinhança. De-
fine que pontos pertencem à
vizinhança de um neurônio
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Note que tanto η(t)
quanto h(jm, j, t) depen-
dem do tempo (iteração) t
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Inicializamos aleatoriamente
os pesos ~
ωj (t) = [ωij (t) :
1 ≤ i ≤ d; 1 ≤ j ≤ L]
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Onde ωij (t) é o peso en-
tre a unidade de entrada i
e o neurônio j no instante t
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
E L é o número de
neurônios na malha
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
A única restrição aqui é que ~
ωj (0)
seja diferente para j = 1, 2, . . . , L
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Note que o vetor de pesos de
cada neurônio tem as mesmas
dimensões que o espaço de entrada
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Por isso podemos mapeá-lo
diretamente a esse espaço
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Outra forma de inicializar é selecio-
nar aleatoriamente os ~
ωj (0) a partir
de valores nos vetores de entrada ~
xi
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Calculamos a distância dj entre a
entrada ~
x(t) e cada nó j na malha
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Selecionando o neurônio mais
próximo ao exemplo de en-
trada → o vencedor da disputa
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Também conhecido como
Best Matching Unit (BMU)
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Atualizamos os pesos
de jm e seus vizinhos
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
0 < η(t) < 1 é um termo
de ganho que decresce com o
tempo (iteração), desacelerando
assim a adaptação dos pesos
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
h(jm, j, t) também decresce em
tamanho com o tempo, deixando
menor a vizinhança considerada
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Então, a cada iteração, desace-
leramos a adaptação dos pesos
e reduzimos a vizinhança de jm
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
E na medida em que jm é trazido
para mais perto de ~
x(t), seus
vizinhos também o são, com vizinhos
mais afastados se movendo menos
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Passamos ao próximo exemplo
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Algoritmo
Repetimos até não haver mudança
perceptı́vel no mapa (as posições
dos neurônios se estabilizaram)
Função SOM(X = {~
x1, . . . , ~
xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento
~
ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L
t ← 0
repita
~
x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X
para cada Nó j na malha faça
dj ←
d
X
i=1
(xi (t) − ωij (t))2
jm ← Nó da malha com o menor dj
para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça
~
ωj (t + 1) ← ~
ωj (t) + η(t)h(jm, j, t)(~
x(t) − ~
ωj (t))
t ← t + 1
até (k ~
Wt − ~
W (t − 1)k < ε) ou (t > tmax )
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
Redes de Kohonen
Funcionamento
Posicione os neurônios no espaço
de dados (gerando ~
ωj aleatório)
Fonte: [16]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
Redes de Kohonen
Funcionamento
Selecione um exemplo de entrada
Fonte: [16]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
Redes de Kohonen
Funcionamento
Identifique o neurônio
mais próximo (BMU)
Fonte: [16]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
Redes de Kohonen
Funcionamento
Mova-o para mais
próximo do exemplo
Fonte: [16]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
Redes de Kohonen
Funcionamento
Mova também seus vizinhos,
com vizinhos mais afas-
tados se movendo menos
Fonte: [16]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
Redes de Kohonen
Funcionamento
Mova também seus vizinhos,
com vizinhos mais afas-
tados se movendo menos
Fonte: [16]
Fonte: [17]
(Requer Adobe Acrobat Reader)
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
Redes de Kohonen
Funcionamento
Os nós em torno do
vencedor jm são levados
com ele
Ao longo do ciclo de treino,
convergem para uma
representação “média” da
classe
Fonte: [15]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 25 / 38
Redes de Kohonen
Funcionamento
Os nós em torno do
vencedor jm são levados
com ele
Ao longo do ciclo de treino,
convergem para uma
representação “média” da
classe
Fonte: [15]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 25 / 38
Redes de Kohonen
Funcionamento
Os nós em torno do
vencedor jm são levados
com ele
Ao longo do ciclo de treino,
convergem para uma
representação “média” da
classe
Fonte: [15]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 25 / 38
Redes de Kohonen
Funcionamento
Os nós em torno do
vencedor jm são levados
com ele
Ao longo do ciclo de treino,
convergem para uma
representação “média” da
classe
Gradualmente se juntando
em áreas de alta
densidade de pontos
Fonte: [15]
E assim refletindo agrupamentos nos dados
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 25 / 38
Redes de Kohonen
Funcionamento
Assim, vetores próximos
dos exemplos de treino
serão classificados
corretamente
Mesmo que a rede nunca os
tenha visto
Fonte: [15]
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 26 / 38
Redes de Kohonen
Neurônio
Diferentemente do perceptron, o neurônio do SOM
não possui função de ativação
A decisão sobre que neurônio será ativado vem da distância
ao dado de entrada
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 27 / 38
Redes de Kohonen
Neurônio
Diferentemente do perceptron, o neurônio do SOM
não possui função de ativação
A decisão sobre que neurônio será ativado vem da distância
ao dado de entrada
Da mesma forma, os pesos não são separados dos
nós de saı́da
Eles pertencem ao próprio neurônio
Funcionam como coordenadas do neurônio no espaço da
entrada (um mapa)
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 27 / 38
Redes de Kohonen
Neurônio: Resposta da rede
Depende da aplicação, pode ser
O ı́ndice do neurônio vencedor → um indicativo da classe
O vetor de pesos ~
ωjm mais próximo da entrada
A classe pode então ser representada pelos valores nesse vetor
Ex: se o vetor tiver 3 posições, podemos interpretá-lo como uma cor
(RGB)
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 28 / 38
Redes de Kohonen
Neurônio: Resposta da rede
Depende da aplicação, pode ser
O ı́ndice do neurônio vencedor → um indicativo da classe
O vetor de pesos ~
ωjm mais próximo da entrada
A classe pode então ser representada pelos valores nesse vetor
Ex: se o vetor tiver 3 posições, podemos interpretá-lo como uma cor
(RGB)
Validação
Uma possı́vel validação é verificar se o agrupamento formado
pelos múltiplos pontos que mapeiam a um mesmo neurônio
faz sentido
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 28 / 38
Redes de Kohonen
Definindo h(jm, j, t)
O neurônio vencedor jm define o centro de uma
vizinhança topológica de neurônios cooperativos j
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 29 / 38
Redes de Kohonen
Definindo h(jm, j, t)
O neurônio vencedor jm define o centro de uma
vizinhança topológica de neurônios cooperativos j
Como definir uma vizinhança neurobiologicamente
correta?
Existe evidência para interação lateral entre neurônios
Um neurônio ativado tende a excitar seus vizinhos imediatos
mais que os que estão mais longe
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 29 / 38
Redes de Kohonen
Definindo h(jm, j, t)
O neurônio vencedor jm define o centro de uma
vizinhança topológica de neurônios cooperativos j
Como definir uma vizinhança neurobiologicamente
correta?
Existe evidência para interação lateral entre neurônios
Um neurônio ativado tende a excitar seus vizinhos imediatos
mais que os que estão mais longe
Precisamos então de uma vizinhança h(jm, j) que
decaia suavemente com a distância lateral
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 29 / 38
Redes de Kohonen
Definindo h(jm, j, t)
h(jm, j) deve então
Ser simétrica em torno de jm, onde djm,jm = 0
Decrescer sua amplitude monotonicamente com a distância
lateral na malha djm,j , indo a zero quando djm,j → ∞
djm,j = k~
cjm
− ~
cj k, onde ~
cj é a posição de j na malha
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 30 / 38
Redes de Kohonen
Definindo h(jm, j, t)
h(jm, j) deve então
Ser simétrica em torno de jm, onde djm,jm = 0
Decrescer sua amplitude monotonicamente com a distância
lateral na malha djm,j , indo a zero quando djm,j → ∞
djm,j = k~
cjm
− ~
cj k, onde ~
cj é a posição de j na malha
Escolhemos a Gaussiana
h(jm, j) = exp

−
d2
jm,j
2σ2

onde σ é a largura da vizinhança topológica, medindo o grau
com que os neurônios vizinhos participam no aprendizado
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 30 / 38
Redes de Kohonen
Definindo h(jm, j, t)
Além disso, a vizinhança deve encolher com o
tempo
σ(t) = σ0exp

−
t
τ1

(decaimento exponencial)
onde σ0 é o valor de σ no inı́cio do algoritmo (em t = 0), e
τ1 é uma constante a ser definida em projeto
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 31 / 38
Redes de Kohonen
Definindo h(jm, j, t)
Além disso, a vizinhança deve encolher com o
tempo
σ(t) = σ0exp

−
t
τ1

(decaimento exponencial)
onde σ0 é o valor de σ no inı́cio do algoritmo (em t = 0), e
τ1 é uma constante a ser definida em projeto
E h(jm, j, t) = exp

−
d2
jm,j
2σ2(t)

Assim, a cada iteração a vizinhança de cada nó encolhe
exponencialmente até possuir um único neurônio
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 31 / 38
Redes de Kohonen
Definindo h(jm, j, t)
Em t = 0, h(jm, j, t) deveria incluir quase todos os
neurônios na malha
E então reduzir com o tempo
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 32 / 38
Redes de Kohonen
Definindo h(jm, j, t)
Em t = 0, h(jm, j, t) deveria incluir quase todos os
neurônios na malha
E então reduzir com o tempo
Podemos então fazer σ0 ser igual ao “raio” da
malha (em uma malha bidimensional)
E τ1 =
1000
log(σ0)
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 32 / 38
Redes de Kohonen
Definindo η(t)
A taxa de aprendizado também varia no tempo:
η(t) = η0exp

−
t
τ2

onde η0 é seu valor inicial e τ2 outra constante para o
algoritmo
Em geral, η0 = 0.1 e τ2 = 1000
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 33 / 38
Redes de Kohonen
Definindo η(t)
A taxa de aprendizado também varia no tempo:
η(t) = η0exp

−
t
τ2

onde η0 é seu valor inicial e τ2 outra constante para o
algoritmo
Em geral, η0 = 0.1 e τ2 = 1000
Trata-se de uma heurı́stica, como h(jm, j, t)
Tanto σ0 quanto ηo e τ2, bem como o melhor número de
neurônios na malha devem ser definidos via validação
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 33 / 38
Redes de Kohonen
Vantagens
Não-supervisionado
Nenhuma resposta precisa ser especificada para uma dada
entrada
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 34 / 38
Redes de Kohonen
Vantagens
Não-supervisionado
Nenhuma resposta precisa ser especificada para uma dada
entrada
Sem função de ativação ou conexão com outros
neurônios
Nenhuma derivada precisa ser calculada, como no gradient
descent
A única conexão é a que surge é o “empurra e puxa” dos
nós e BMUs baseada no raio da vizinhança de cada BMU
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 34 / 38
Redes de Kohonen
Desvantagens
Assim como no k-vizinhos e k-médias, SOM usa
distância
Também aqui atributos em diferentes escalas podem influir
na precisão
Também aqui a solução passa por uma normalização de
todas as variáveis, criando assim uma escala uniforme
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 35 / 38
Redes de Kohonen
Desvantagens
Assim como no k-vizinhos e k-médias, SOM usa
distância
Também aqui atributos em diferentes escalas podem influir
na precisão
Também aqui a solução passa por uma normalização de
todas as variáveis, criando assim uma escala uniforme
Não lida bem com variáveis categóricas
Pois assume o espaço dos dados como contı́nuo
Fica difı́cil o mapeamento dos ~
ωj de volta ao espaço dos
dados
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 35 / 38
Referências
1 Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach.
Prentice Hall. 2a e 3a ed.
2 Haykin, S. (2009): Neural Networks and Learning Machines. Pearson. 3
ed.
3 Hastie, T; Tibshirani, R.; Friedman, J. (2017): The Elements of
Statistical Learning: Data Mining, Inference, and Prediction. Springer. 2
ed.
4 Alpaydın, E. (2010): Introduction to Machine Learning. MIT Press. 2 ed.
5 Theodoridis, S.; Koutroumbas, K. (2009): Pattern Recognition.
Academic Press. 4 ed.
6 Michie, D.; Spiegelhalter, D.J.; Taylor, C.C. (1994): Machine Learning,
Neural and Statistical Classification.
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 36 / 38
Referências
7 Beale, R.; Jackson, T. (1990): Neural Computing: An Introduction.
Adam Hilger.
8 Kohonen, T. (1990): The Self-Organizing Map. Proceedings of the IEEE,
78(9). https://sci2s.ugr.es/keel/pdf/algorithm/articulo/
1990-Kohonen-PIEEE.pdf
9 http://dataaspirant.com/2015/04/11/
five-most-popular-similarity-measures-implementation-in-pytho
10 https://en.wikipedia.org/wiki/K-means_clustering
11 https://www.superdatascience.com/blogs/
the-ultimate-guide-to-self-organizing-maps-soms
12 https://stanford.edu/~cpiech/cs221/handouts/kmeans.html
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 37 / 38
Referências
13 Bullinaria, J.A. (2004): Self Organizing Maps: Fundamentals.
http://www.cs.bham.ac.uk/~jxb/NN/l16.pdf
14 https://towardsdatascience.com/self-organizing-maps-
ff5853a118d4
15 https://en.wikipedia.org/wiki/Self-organizing_map
16 https://algobeans.com/2017/11/02/self-organizing-map/
Código em R: https://github.com/algobeans/
Self-Organizing-Map/blob/master/analysis.R
17 https://pt.wikipedia.org/wiki/Mapas_de_Kohonen
Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 38 / 38

Mais conteúdo relacionado

Mais procurados

(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20Norton Trevisan Roman
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoDelacyr Ferreira
 
Existência de raízes
Existência de raízesExistência de raízes
Existência de raízesdicasmat
 
(ACH2055) Arquitetura de Computadores - Aula 04
(ACH2055) Arquitetura de Computadores - Aula 04(ACH2055) Arquitetura de Computadores - Aula 04
(ACH2055) Arquitetura de Computadores - Aula 04Norton Trevisan Roman
 

Mais procurados (11)

(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
Aula 1 ele1
Aula 1 ele1Aula 1 ele1
Aula 1 ele1
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método Guloso
 
Existência de raízes
Existência de raízesExistência de raízes
Existência de raízes
 
(ACH2055) Arquitetura de Computadores - Aula 04
(ACH2055) Arquitetura de Computadores - Aula 04(ACH2055) Arquitetura de Computadores - Aula 04
(ACH2055) Arquitetura de Computadores - Aula 04
 
Redes petri (tutorial cpn tools)
Redes petri (tutorial cpn tools)Redes petri (tutorial cpn tools)
Redes petri (tutorial cpn tools)
 
Método da Bissecção
Método da BissecçãoMétodo da Bissecção
Método da Bissecção
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (17)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16
 

Último

CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
CLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxCLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxFranciely Carvalho
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptxMarlene Cunhada
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficasprofcamilamanz
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 

Último (20)

CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
CLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxCLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptx
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptx
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficas
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 

(ACH2044) Inteligência Artificial - Aula 22

  • 1. Inteligência Artificial – ACH2016 Aula22 – Aprendizado Não-Supervisionado K-Médias e Mapas Auto-Organizáveis Norton Trevisan Roman (norton@usp.br) 3 de junho de 2019 Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 1 / 38
  • 2. Aprendizado Não-Supervisionado Agrupamentos Até agora, todos nossos dados de treinamento possuı́am um rótulo ou valor associados a eles Conhecı́amos o valor da função objetivo para esses dados Tı́nhamos uma medida clara do sucesso ou não de nosso algoritmo Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 2 / 38
  • 3. Aprendizado Não-Supervisionado Agrupamentos Até agora, todos nossos dados de treinamento possuı́am um rótulo ou valor associados a eles Conhecı́amos o valor da função objetivo para esses dados Tı́nhamos uma medida clara do sucesso ou não de nosso algoritmo E se esse não for o caso? Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 2 / 38
  • 4. Aprendizado Não-Supervisionado Agrupamentos Até agora, todos nossos dados de treinamento possuı́am um rótulo ou valor associados a eles Conhecı́amos o valor da função objetivo para esses dados Tı́nhamos uma medida clara do sucesso ou não de nosso algoritmo E se esse não for o caso? Mais, e se sequer saibamos que rótulos usar? Apelamos ao agrupamento (clustering) dos dados Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 2 / 38
  • 5. Aprendizado Não-Supervisionado Análise de Agrupamentos A análise de agrupamentos busca agrupar objetos em subconjuntos (os agrupamentos) De modo a que objetos em um agrupamento estejam mais relacionados uns aos outros que a objetos de fora Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 3 / 38
  • 6. Aprendizado Não-Supervisionado Análise de Agrupamentos A análise de agrupamentos busca agrupar objetos em subconjuntos (os agrupamentos) De modo a que objetos em um agrupamento estejam mais relacionados uns aos outros que a objetos de fora Central a isso é a noção de grau de similaridade entre dois objetos Decisão bastante subjetiva Fonte: http://earthporm.com/wp-content/uploads/2015/ 09/similar-things-look-alike-29__700.jpg Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 3 / 38
  • 7. Aprendizado Não-Supervisionado Similaridade Medida, em geral, como a distância entre pares de pontos Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 4 / 38
  • 8. Aprendizado Não-Supervisionado Similaridade Medida, em geral, como a distância entre pares de pontos Medidas comuns: Distância Euclidiana Distância Manhattan Similaridade de Cosseno etc Fonte: [9] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 4 / 38
  • 9. Aprendizado Não-Supervisionado Similaridade Fonte: [9] Distância Euclidiana d(~ xi , ~ xj ) = k~ xi − ~ xj k2 = n X k=1 (xik − xjk)2 (onde ~ xi = [xi1, xi2, . . . , xin]) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 5 / 38
  • 10. Aprendizado Não-Supervisionado Similaridade Fonte: [9] Distância Manhattan d(~ xi , ~ xj ) = k~ xi − ~ xj k = n X k=1 (xik − xjk) (onde ~ xi = [xi1, xi2, . . . , xin]) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 6 / 38
  • 11. Aprendizado Não-Supervisionado Similaridade Fonte: [9] Similaridade de Cosseno sim(~ xi , ~ xj ) = cos(θ) = ~ xi · ~ xj k~ xi kk~ xj k (onde ~ xi = [xi1, xi2, . . . , xin]) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 7 / 38
  • 12. Aprendizado Não-Supervisionado K-Means Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 8 / 38
  • 13. K-Means Funcionamento Técnica de agrupamento em que Agrupamentos possuem pontos como representantes O quadrado da distância euclidiana é adotado como medida de dissimilaridade entre vetores e representantes de grupos Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 9 / 38
  • 14. K-Means Funcionamento Técnica de agrupamento em que Agrupamentos possuem pontos como representantes O quadrado da distância euclidiana é adotado como medida de dissimilaridade entre vetores e representantes de grupos K-Means cria um conjunto de exatamente k categorias → seus centros (ou centróides) k previamente definido Inicialmente, cada centro é escolhido aleatoriamente O procedimento iterativamente move esses centros Minimizando a variância total dentro do agrupamento Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 9 / 38
  • 15. K-Means Funcionamento: Algoritmo Função K-Means(X = {~ x1, . . . , ~ xn}, k): agrupamento C ← escolheAleatorio(X, k) repita para i = 1 até n faça Determine o representante mais próximo, cp ∈ C, de ~ xi b(i) ← p para j = 1 até k faça Redefina cj como a média dos vetores ~ xi ∈ X com b(i) = j até que nenhuma mudança ocorra em C entre duas iterações sucessivas retorna C Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
  • 16. K-Means Funcionamento: Algoritmo Base de dados Função K-Means(X = {~ x1, . . . , ~ xn}, k): agrupamento C ← escolheAleatorio(X, k) repita para i = 1 até n faça Determine o representante mais próximo, cp ∈ C, de ~ xi b(i) ← p para j = 1 até k faça Redefina cj como a média dos vetores ~ xi ∈ X com b(i) = j até que nenhuma mudança ocorra em C entre duas iterações sucessivas retorna C Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
  • 17. K-Means Funcionamento: Algoritmo Escolha k exemplos ale- atoriamente para re- presentar os k grupos Função K-Means(X = {~ x1, . . . , ~ xn}, k): agrupamento C ← escolheAleatorio(X, k) repita para i = 1 até n faça Determine o representante mais próximo, cp ∈ C, de ~ xi b(i) ← p para j = 1 até k faça Redefina cj como a média dos vetores ~ xi ∈ X com b(i) = j até que nenhuma mudança ocorra em C entre duas iterações sucessivas retorna C Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
  • 18. K-Means Funcionamento: Algoritmo Associa xi à catego- ria mais próxima p Função K-Means(X = {~ x1, . . . , ~ xn}, k): agrupamento C ← escolheAleatorio(X, k) repita para i = 1 até n faça Determine o representante mais próximo, cp ∈ C, de ~ xi b(i) ← p para j = 1 até k faça Redefina cj como a média dos vetores ~ xi ∈ X com b(i) = j até que nenhuma mudança ocorra em C entre duas iterações sucessivas retorna C Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
  • 19. K-Means Funcionamento: Algoritmo Recalcula a média de cada categoria Função K-Means(X = {~ x1, . . . , ~ xn}, k): agrupamento C ← escolheAleatorio(X, k) repita para i = 1 até n faça Determine o representante mais próximo, cp ∈ C, de ~ xi b(i) ← p para j = 1 até k faça Redefina cj como a média dos vetores ~ xi ∈ X com b(i) = j até que nenhuma mudança ocorra em C entre duas iterações sucessivas retorna C Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
  • 20. K-Means Funcionamento: Algoritmo As k médias como repre- sentantes das k categorias Função K-Means(X = {~ x1, . . . , ~ xn}, k): agrupamento C ← escolheAleatorio(X, k) repita para i = 1 até n faça Determine o representante mais próximo, cp ∈ C, de ~ xi b(i) ← p para j = 1 até k faça Redefina cj como a média dos vetores ~ xi ∈ X com b(i) = j até que nenhuma mudança ocorra em C entre duas iterações sucessivas retorna C Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 10 / 38
  • 21. K-Means Funcionamento K-means encontra os melhores centros alternando Associação, baseada nos centros atuais, de pontos a agrupamentos Escolha de novos centros a partir da atual associação de pontos ao agrupamento Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
  • 22. K-Means Funcionamento K-means encontra os melhores centros alternando Associação, baseada nos centros atuais, de pontos a agrupamentos Escolha de novos centros a partir da atual associação de pontos ao agrupamento Começamos com um conjunto de pontos Fonte: [12] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
  • 23. K-Means Funcionamento K-means encontra os melhores centros alternando Associação, baseada nos centros atuais, de pontos a agrupamentos Escolha de novos centros a partir da atual associação de pontos ao agrupamento Criamos então centros aleatórios Fonte: [12] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
  • 24. K-Means Funcionamento K-means encontra os melhores centros alternando Associação, baseada nos centros atuais, de pontos a agrupamentos Escolha de novos centros a partir da atual associação de pontos ao agrupamento Associamos cada exemplo ao centro mais próximo Fonte: [12] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
  • 25. K-Means Funcionamento K-means encontra os melhores centros alternando Associação, baseada nos centros atuais, de pontos a agrupamentos Escolha de novos centros a partir da atual associação de pontos ao agrupamento Então movemos cada cen- tro para a média dos pon- tos em seu agrupamento Fonte: [12] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
  • 26. K-Means Funcionamento K-means encontra os melhores centros alternando Associação, baseada nos centros atuais, de pontos a agrupamentos Escolha de novos centros a partir da atual associação de pontos ao agrupamento Fazemos nova associação dos pontos ao centro mais próximo Fonte: [12] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
  • 27. K-Means Funcionamento K-means encontra os melhores centros alternando Associação, baseada nos centros atuais, de pontos a agrupamentos Escolha de novos centros a partir da atual associação de pontos ao agrupamento E movimentamos nova- mente o centro para a média no novo agrupamento Fonte: [12] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
  • 28. K-Means Funcionamento K-means encontra os melhores centros alternando Associação, baseada nos centros atuais, de pontos a agrupamentos Escolha de novos centros a partir da atual associação de pontos ao agrupamento E assim sucessivamente, até que nenhum centro seja movido Fonte: [12] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 11 / 38
  • 29. K-Means Vantagens e Desvantagens Vantagens Simplicidade computacional Rápido Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 12 / 38
  • 30. K-Means Vantagens e Desvantagens Vantagens Simplicidade computacional Rápido Desvantagens Não é aplicável a dados categóricos (como ficaria a média ou a distância?) Sensı́vel a ruı́do ou outliers (por conta da distância euclidiana) O valor de k precisa ser definido de antemão Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 12 / 38
  • 31. K-Means: Variação K-Medoids K-means: Cada grupo é representado pela média de seus vetores Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 13 / 38
  • 32. K-Means: Variação K-Medoids K-means: Cada grupo é representado pela média de seus vetores K-medoids: Cada grupo é representado por um vetor selecionado dentre os elementos do conjunto de dados – o medoid Recalculado a cada iteração do algoritmo Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 13 / 38
  • 33. K-Means: Variação K-Medoids K-means: Cada grupo é representado pela média de seus vetores K-medoids: Cada grupo é representado por um vetor selecionado dentre os elementos do conjunto de dados – o medoid Recalculado a cada iteração do algoritmo Além do medoid, cada grupo contém todos os vetores que: Não são usados como medoids em outros grupos Estão mais próximos de seu medoid que dos medoids dos demais grupos Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 13 / 38
  • 34. K-Means: Variação K-Medoids Vantagens Pode ser usado tanto com dados contı́nuos quanto discretos K-means aceita somente contı́nuos, pelo fato da média de vetores não resultar necessariamente num ponto do domı́nio Tende a ser menos sensı́vel a outliers Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 14 / 38
  • 35. K-Means: Variação K-Medoids Vantagens Pode ser usado tanto com dados contı́nuos quanto discretos K-means aceita somente contı́nuos, pelo fato da média de vetores não resultar necessariamente num ponto do domı́nio Tende a ser menos sensı́vel a outliers Desvantagem Calcular o medoid pode ser mais custoso que a média Médias têm um significado geométrico e estatı́stico claro... medoids não Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 14 / 38
  • 36. Aprendizado Não-Supervisionado Self-Organizing Maps Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 15 / 38
  • 37. Mapas Auto-Organizáveis Aprendizado Competitivo Forma de aprendizado em redes neurais na qual os neurônios de saı́da da rede competem entre si para serem ativados Apenas um neurônio, ou um por grupo, estará ativo por vez Forma de disputa em que o vencedor fica com tudo Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 16 / 38
  • 38. Mapas Auto-Organizáveis Aprendizado Competitivo Forma de aprendizado em redes neurais na qual os neurônios de saı́da da rede competem entre si para serem ativados Apenas um neurônio, ou um por grupo, estará ativo por vez Forma de disputa em que o vencedor fica com tudo A competição pode ser induzida a partir da topologia da rede A atualização dos pesos força os neurônios a se auto-organizarem Criando assim um mapa auto-organizável Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 16 / 38
  • 39. Mapas Auto-Organizáveis Topologia Os neurônios são topologicamente ordenados em uma malha Em geral uni ou bidimensional Não há conexões entre eles Dimensões maiores são possı́veis mas incomuns Malha Bidimensional Malha Unidimensional Fonte: PR. T&K. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 17 / 38
  • 40. Mapas Auto-Organizáveis Topologia São então ajustados seletivamente a cada entrada Sua localização na malha fica organizada de modo a criar um sistema de coordenadas Φ para cada atributo da entrada Malha Bidimensional Malha Unidimensional Fonte: PR. T&K. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 18 / 38
  • 41. Mapas Auto-Organizáveis Topologia: Significado A malha torna-se então um mapa topográfico Em que a localização espacial de um neurônio na malha corresponde a um domı́nio ou caracterı́stica particular dos dados de entrada Fonte: NNaLM. Haykin. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
  • 42. Mapas Auto-Organizáveis Topologia: Significado A malha torna-se então um mapa topográfico Em que a localização espacial de um neurônio na malha corresponde a um domı́nio ou caracterı́stica particular dos dados de entrada Mapeamento Φ do ponto ~ x na entrada para o ponto i(~ x) na saı́da Fonte: NNaLM. Haykin. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
  • 43. Mapas Auto-Organizáveis Topologia: Significado A malha torna-se então um mapa topográfico Em que a localização espacial de um neurônio na malha corresponde a um domı́nio ou caracterı́stica particular dos dados de entrada E do ponto i na saı́da para o ponto ~ ωi na entrada Fonte: NNaLM. Haykin. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
  • 44. Mapas Auto-Organizáveis Topologia: Significado A malha torna-se então um mapa topográfico Em que a localização espacial de um neurônio na malha corresponde a um domı́nio ou caracterı́stica particular dos dados de entrada Onde ~ ωi é o vetor de pesos associado ao neurônio i Fonte: NNaLM. Haykin. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
  • 45. Mapas Auto-Organizáveis Topologia: Significado A malha torna-se então um mapa topográfico Em que a localização espacial de um neurônio na malha corresponde a um domı́nio ou caracterı́stica particular dos dados de entrada Então ~ ωi corres- ponde à posição do neurônio no espaço da entrada Fonte: NNaLM. Haykin. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 19 / 38
  • 46. Mapas Auto-Organizáveis Topologia: Significado Cada neurônio representa um conjunto de pontos (Auto-)Arranjados de modo a que neurônios próximos correspondam a pontos próximos no espaço de entrada Fonte: NNaLM. Haykin. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 20 / 38
  • 47. Mapas Auto-Organizáveis Topologia: Distância Topológica A ordenação topológica implica uma distância entre neurônios Ex: Distância Manhattan ou Euclidiana E ~ wr está mais próximo topologicamente de ~ wq que de ~ ws Malha Bidimensional Malha Unidimensional Fonte: PR. T&K. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 21 / 38
  • 48. Mapas Auto-Organizáveis Redes de Kohonen Embora haja outros tipos, veremos apenas as redes de Kohonen Uma camada bidimensio- nal de células (sem conexão direta entre elas) Cada neurônio conectado a todos os nós de entrada Camada computacional Camada de entrada Fonte: SOM. Bullinaria. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 22 / 38
  • 49. Mapas Auto-Organizáveis Redes de Kohonen Embora haja outros tipos, veremos apenas as redes de Kohonen Uma camada bidimensio- nal de células (sem conexão direta entre elas) Cada neurônio conectado a todos os nós de entrada Sem camada de saı́da Camada computacional Camada de entrada Fonte: SOM. Bullinaria. Cada nó na malha é um nó de saı́da Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 22 / 38
  • 50. Redes de Kohonen Algoritmo Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 51. Redes de Kohonen Algoritmo Conjunto de k exemplos de entrada Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 52. Redes de Kohonen Algoritmo Um exemplo de entrada é um vetor no espaço d- dimensional ~ xi = [xi1, . . . , xid ] Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 53. Redes de Kohonen Algoritmo Haverá então d atributos e consequentes d unida- des de entrada para a malha Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 54. Redes de Kohonen Algoritmo Número máximo de iterações Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 55. Redes de Kohonen Algoritmo Uma iteração é a análise de um exemplo de entrada Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 56. Redes de Kohonen Algoritmo Ponto a partir do qual con- sideramos a malha estável Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 57. Redes de Kohonen Algoritmo Taxa de aprendizado da rede Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 58. Redes de Kohonen Algoritmo Função de vizinhança. De- fine que pontos pertencem à vizinhança de um neurônio Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 59. Redes de Kohonen Algoritmo Note que tanto η(t) quanto h(jm, j, t) depen- dem do tempo (iteração) t Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 60. Redes de Kohonen Algoritmo Inicializamos aleatoriamente os pesos ~ ωj (t) = [ωij (t) : 1 ≤ i ≤ d; 1 ≤ j ≤ L] Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 61. Redes de Kohonen Algoritmo Onde ωij (t) é o peso en- tre a unidade de entrada i e o neurônio j no instante t Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 62. Redes de Kohonen Algoritmo E L é o número de neurônios na malha Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 63. Redes de Kohonen Algoritmo A única restrição aqui é que ~ ωj (0) seja diferente para j = 1, 2, . . . , L Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 64. Redes de Kohonen Algoritmo Note que o vetor de pesos de cada neurônio tem as mesmas dimensões que o espaço de entrada Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 65. Redes de Kohonen Algoritmo Por isso podemos mapeá-lo diretamente a esse espaço Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 66. Redes de Kohonen Algoritmo Outra forma de inicializar é selecio- nar aleatoriamente os ~ ωj (0) a partir de valores nos vetores de entrada ~ xi Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 67. Redes de Kohonen Algoritmo Calculamos a distância dj entre a entrada ~ x(t) e cada nó j na malha Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 68. Redes de Kohonen Algoritmo Selecionando o neurônio mais próximo ao exemplo de en- trada → o vencedor da disputa Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 69. Redes de Kohonen Algoritmo Também conhecido como Best Matching Unit (BMU) Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 70. Redes de Kohonen Algoritmo Atualizamos os pesos de jm e seus vizinhos Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 71. Redes de Kohonen Algoritmo 0 < η(t) < 1 é um termo de ganho que decresce com o tempo (iteração), desacelerando assim a adaptação dos pesos Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 72. Redes de Kohonen Algoritmo h(jm, j, t) também decresce em tamanho com o tempo, deixando menor a vizinhança considerada Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 73. Redes de Kohonen Algoritmo Então, a cada iteração, desace- leramos a adaptação dos pesos e reduzimos a vizinhança de jm Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 74. Redes de Kohonen Algoritmo E na medida em que jm é trazido para mais perto de ~ x(t), seus vizinhos também o são, com vizinhos mais afastados se movendo menos Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 75. Redes de Kohonen Algoritmo Passamos ao próximo exemplo Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 76. Redes de Kohonen Algoritmo Repetimos até não haver mudança perceptı́vel no mapa (as posições dos neurônios se estabilizaram) Função SOM(X = {~ x1, . . . , ~ xk }, tmax , ε, η(t), h(jm, j, t)): mapeamento ~ ωj (0) ← Escolha aleatoriamente [ωij (0)] pequenos, 1 ≤ i ≤ d e 1 ≤ j ≤ L t ← 0 repita ~ x(t) ← Escolha aleatoriamente um exemplo [x1(t), . . . , xd (t)] ∈ X para cada Nó j na malha faça dj ← d X i=1 (xi (t) − ωij (t))2 jm ← Nó da malha com o menor dj para cada Nó j ∈ h(jm, j, t) (inclusive jm) faça ~ ωj (t + 1) ← ~ ωj (t) + η(t)h(jm, j, t)(~ x(t) − ~ ωj (t)) t ← t + 1 até (k ~ Wt − ~ W (t − 1)k < ε) ou (t > tmax ) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 23 / 38
  • 77. Redes de Kohonen Funcionamento Posicione os neurônios no espaço de dados (gerando ~ ωj aleatório) Fonte: [16] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
  • 78. Redes de Kohonen Funcionamento Selecione um exemplo de entrada Fonte: [16] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
  • 79. Redes de Kohonen Funcionamento Identifique o neurônio mais próximo (BMU) Fonte: [16] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
  • 80. Redes de Kohonen Funcionamento Mova-o para mais próximo do exemplo Fonte: [16] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
  • 81. Redes de Kohonen Funcionamento Mova também seus vizinhos, com vizinhos mais afas- tados se movendo menos Fonte: [16] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
  • 82. Redes de Kohonen Funcionamento Mova também seus vizinhos, com vizinhos mais afas- tados se movendo menos Fonte: [16] Fonte: [17] (Requer Adobe Acrobat Reader) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 24 / 38
  • 83. Redes de Kohonen Funcionamento Os nós em torno do vencedor jm são levados com ele Ao longo do ciclo de treino, convergem para uma representação “média” da classe Fonte: [15] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 25 / 38
  • 84. Redes de Kohonen Funcionamento Os nós em torno do vencedor jm são levados com ele Ao longo do ciclo de treino, convergem para uma representação “média” da classe Fonte: [15] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 25 / 38
  • 85. Redes de Kohonen Funcionamento Os nós em torno do vencedor jm são levados com ele Ao longo do ciclo de treino, convergem para uma representação “média” da classe Fonte: [15] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 25 / 38
  • 86. Redes de Kohonen Funcionamento Os nós em torno do vencedor jm são levados com ele Ao longo do ciclo de treino, convergem para uma representação “média” da classe Gradualmente se juntando em áreas de alta densidade de pontos Fonte: [15] E assim refletindo agrupamentos nos dados Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 25 / 38
  • 87. Redes de Kohonen Funcionamento Assim, vetores próximos dos exemplos de treino serão classificados corretamente Mesmo que a rede nunca os tenha visto Fonte: [15] Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 26 / 38
  • 88. Redes de Kohonen Neurônio Diferentemente do perceptron, o neurônio do SOM não possui função de ativação A decisão sobre que neurônio será ativado vem da distância ao dado de entrada Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 27 / 38
  • 89. Redes de Kohonen Neurônio Diferentemente do perceptron, o neurônio do SOM não possui função de ativação A decisão sobre que neurônio será ativado vem da distância ao dado de entrada Da mesma forma, os pesos não são separados dos nós de saı́da Eles pertencem ao próprio neurônio Funcionam como coordenadas do neurônio no espaço da entrada (um mapa) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 27 / 38
  • 90. Redes de Kohonen Neurônio: Resposta da rede Depende da aplicação, pode ser O ı́ndice do neurônio vencedor → um indicativo da classe O vetor de pesos ~ ωjm mais próximo da entrada A classe pode então ser representada pelos valores nesse vetor Ex: se o vetor tiver 3 posições, podemos interpretá-lo como uma cor (RGB) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 28 / 38
  • 91. Redes de Kohonen Neurônio: Resposta da rede Depende da aplicação, pode ser O ı́ndice do neurônio vencedor → um indicativo da classe O vetor de pesos ~ ωjm mais próximo da entrada A classe pode então ser representada pelos valores nesse vetor Ex: se o vetor tiver 3 posições, podemos interpretá-lo como uma cor (RGB) Validação Uma possı́vel validação é verificar se o agrupamento formado pelos múltiplos pontos que mapeiam a um mesmo neurônio faz sentido Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 28 / 38
  • 92. Redes de Kohonen Definindo h(jm, j, t) O neurônio vencedor jm define o centro de uma vizinhança topológica de neurônios cooperativos j Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 29 / 38
  • 93. Redes de Kohonen Definindo h(jm, j, t) O neurônio vencedor jm define o centro de uma vizinhança topológica de neurônios cooperativos j Como definir uma vizinhança neurobiologicamente correta? Existe evidência para interação lateral entre neurônios Um neurônio ativado tende a excitar seus vizinhos imediatos mais que os que estão mais longe Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 29 / 38
  • 94. Redes de Kohonen Definindo h(jm, j, t) O neurônio vencedor jm define o centro de uma vizinhança topológica de neurônios cooperativos j Como definir uma vizinhança neurobiologicamente correta? Existe evidência para interação lateral entre neurônios Um neurônio ativado tende a excitar seus vizinhos imediatos mais que os que estão mais longe Precisamos então de uma vizinhança h(jm, j) que decaia suavemente com a distância lateral Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 29 / 38
  • 95. Redes de Kohonen Definindo h(jm, j, t) h(jm, j) deve então Ser simétrica em torno de jm, onde djm,jm = 0 Decrescer sua amplitude monotonicamente com a distância lateral na malha djm,j , indo a zero quando djm,j → ∞ djm,j = k~ cjm − ~ cj k, onde ~ cj é a posição de j na malha Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 30 / 38
  • 96. Redes de Kohonen Definindo h(jm, j, t) h(jm, j) deve então Ser simétrica em torno de jm, onde djm,jm = 0 Decrescer sua amplitude monotonicamente com a distância lateral na malha djm,j , indo a zero quando djm,j → ∞ djm,j = k~ cjm − ~ cj k, onde ~ cj é a posição de j na malha Escolhemos a Gaussiana h(jm, j) = exp − d2 jm,j 2σ2 onde σ é a largura da vizinhança topológica, medindo o grau com que os neurônios vizinhos participam no aprendizado Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 30 / 38
  • 97. Redes de Kohonen Definindo h(jm, j, t) Além disso, a vizinhança deve encolher com o tempo σ(t) = σ0exp − t τ1 (decaimento exponencial) onde σ0 é o valor de σ no inı́cio do algoritmo (em t = 0), e τ1 é uma constante a ser definida em projeto Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 31 / 38
  • 98. Redes de Kohonen Definindo h(jm, j, t) Além disso, a vizinhança deve encolher com o tempo σ(t) = σ0exp − t τ1 (decaimento exponencial) onde σ0 é o valor de σ no inı́cio do algoritmo (em t = 0), e τ1 é uma constante a ser definida em projeto E h(jm, j, t) = exp − d2 jm,j 2σ2(t) Assim, a cada iteração a vizinhança de cada nó encolhe exponencialmente até possuir um único neurônio Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 31 / 38
  • 99. Redes de Kohonen Definindo h(jm, j, t) Em t = 0, h(jm, j, t) deveria incluir quase todos os neurônios na malha E então reduzir com o tempo Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 32 / 38
  • 100. Redes de Kohonen Definindo h(jm, j, t) Em t = 0, h(jm, j, t) deveria incluir quase todos os neurônios na malha E então reduzir com o tempo Podemos então fazer σ0 ser igual ao “raio” da malha (em uma malha bidimensional) E τ1 = 1000 log(σ0) Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 32 / 38
  • 101. Redes de Kohonen Definindo η(t) A taxa de aprendizado também varia no tempo: η(t) = η0exp − t τ2 onde η0 é seu valor inicial e τ2 outra constante para o algoritmo Em geral, η0 = 0.1 e τ2 = 1000 Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 33 / 38
  • 102. Redes de Kohonen Definindo η(t) A taxa de aprendizado também varia no tempo: η(t) = η0exp − t τ2 onde η0 é seu valor inicial e τ2 outra constante para o algoritmo Em geral, η0 = 0.1 e τ2 = 1000 Trata-se de uma heurı́stica, como h(jm, j, t) Tanto σ0 quanto ηo e τ2, bem como o melhor número de neurônios na malha devem ser definidos via validação Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 33 / 38
  • 103. Redes de Kohonen Vantagens Não-supervisionado Nenhuma resposta precisa ser especificada para uma dada entrada Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 34 / 38
  • 104. Redes de Kohonen Vantagens Não-supervisionado Nenhuma resposta precisa ser especificada para uma dada entrada Sem função de ativação ou conexão com outros neurônios Nenhuma derivada precisa ser calculada, como no gradient descent A única conexão é a que surge é o “empurra e puxa” dos nós e BMUs baseada no raio da vizinhança de cada BMU Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 34 / 38
  • 105. Redes de Kohonen Desvantagens Assim como no k-vizinhos e k-médias, SOM usa distância Também aqui atributos em diferentes escalas podem influir na precisão Também aqui a solução passa por uma normalização de todas as variáveis, criando assim uma escala uniforme Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 35 / 38
  • 106. Redes de Kohonen Desvantagens Assim como no k-vizinhos e k-médias, SOM usa distância Também aqui atributos em diferentes escalas podem influir na precisão Também aqui a solução passa por uma normalização de todas as variáveis, criando assim uma escala uniforme Não lida bem com variáveis categóricas Pois assume o espaço dos dados como contı́nuo Fica difı́cil o mapeamento dos ~ ωj de volta ao espaço dos dados Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 35 / 38
  • 107. Referências 1 Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice Hall. 2a e 3a ed. 2 Haykin, S. (2009): Neural Networks and Learning Machines. Pearson. 3 ed. 3 Hastie, T; Tibshirani, R.; Friedman, J. (2017): The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer. 2 ed. 4 Alpaydın, E. (2010): Introduction to Machine Learning. MIT Press. 2 ed. 5 Theodoridis, S.; Koutroumbas, K. (2009): Pattern Recognition. Academic Press. 4 ed. 6 Michie, D.; Spiegelhalter, D.J.; Taylor, C.C. (1994): Machine Learning, Neural and Statistical Classification. Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 36 / 38
  • 108. Referências 7 Beale, R.; Jackson, T. (1990): Neural Computing: An Introduction. Adam Hilger. 8 Kohonen, T. (1990): The Self-Organizing Map. Proceedings of the IEEE, 78(9). https://sci2s.ugr.es/keel/pdf/algorithm/articulo/ 1990-Kohonen-PIEEE.pdf 9 http://dataaspirant.com/2015/04/11/ five-most-popular-similarity-measures-implementation-in-pytho 10 https://en.wikipedia.org/wiki/K-means_clustering 11 https://www.superdatascience.com/blogs/ the-ultimate-guide-to-self-organizing-maps-soms 12 https://stanford.edu/~cpiech/cs221/handouts/kmeans.html Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 37 / 38
  • 109. Referências 13 Bullinaria, J.A. (2004): Self Organizing Maps: Fundamentals. http://www.cs.bham.ac.uk/~jxb/NN/l16.pdf 14 https://towardsdatascience.com/self-organizing-maps- ff5853a118d4 15 https://en.wikipedia.org/wiki/Self-organizing_map 16 https://algobeans.com/2017/11/02/self-organizing-map/ Código em R: https://github.com/algobeans/ Self-Organizing-Map/blob/master/analysis.R 17 https://pt.wikipedia.org/wiki/Mapas_de_Kohonen Norton Trevisan Roman(norton@usp.br) 3 de junho de 2019 38 / 38