1. Inteligência Artificial – ACH2016
Aula20 – Redes Neurais Profundas
Aprendizado Baseado em Instâncias
Norton Trevisan Roman
(norton@usp.br)
28 de maio de 2019
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 1 / 43
2. Redes Neurais Profundas
Representação da entrada
Às vezes, é difı́cil saber que caracterı́sticas extrair
A escolha da representação tem um grande efeito no
desempenho de algoritmos de aprendizado
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 2 / 43
3. Redes Neurais Profundas
Representação da entrada
Às vezes, é difı́cil saber que caracterı́sticas extrair
A escolha da representação tem um grande efeito no
desempenho de algoritmos de aprendizado
Ex: separar 2 categorias de forma linear
Fonte: DL. Goodfellow et al.
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 2 / 43
4. Redes Neurais Profundas
Representação da entrada
Às vezes, é difı́cil saber que caracterı́sticas extrair
A escolha da representação tem um grande efeito no
desempenho de algoritmos de aprendizado
Ex: separar 2 categorias de forma linear
A escolha da repre-
sentação determina
se um perceptron irá
ou não dar resultados
Fonte: DL. Goodfellow et al.
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 2 / 43
5. Redes Neurais Profundas
Representação da entrada
Solução: usar o algoritmo para também aprender a
representação
Aprendizado de representação (representation learning)
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 3 / 43
6. Redes Neurais Profundas
Representação da entrada
Solução: usar o algoritmo para também aprender a
representação
Aprendizado de representação (representation learning)
O objetivo passa também a ser separar os fatores de
variação que explicam os dados observados
As fontes (mesmo não observáveis) que influenciam os dados
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 3 / 43
7. Redes Neurais Profundas
Representação da entrada
Solução: usar o algoritmo para também aprender a
representação
Aprendizado de representação (representation learning)
O objetivo passa também a ser separar os fatores de
variação que explicam os dados observados
As fontes (mesmo não observáveis) que influenciam os dados
O problema é que muitos fatores de variação
influenciam o conjunto de dados inteiro
Obter uma representação pode ser tão difı́cil quanto resolver
o problema original
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 3 / 43
8. Redes Neurais Profundas
Representação da entrada
Deep learning
busca então resolver
esse problema
Introduzindo
representações que são
expressas em termos
de outras mais simples
Conceitos complexos
são assim construı́dos
a partir de conceitos
mais simples
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 4 / 43
9. Redes Neurais Profundas
Representação da entrada
Deep learning
busca então resolver
esse problema
Introduzindo
representações que são
expressas em termos
de outras mais simples
Conceitos complexos
são assim construı́dos
a partir de conceitos
mais simples Fonte: DL. Goodfellow et al.
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 4 / 43
10. Redes Neurais Profundas
Tipos comuns
Feedforward
Profunda
Ou Perceptron
Multicamadas
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 5 / 43
11. Redes Neurais Profundas
Tipos comuns
Feedforward
Profunda
Ou Perceptron
Multicamadas
Fonte: DL. Goodfellow et al.
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 5 / 43
12. Redes Neurais Profundas
Tipos comuns
Feedforward
Profunda
Ou Perceptron
Multicamadas
Uma rede
feedforward mais
profunda que a
normalmente usada Fonte: DL. Goodfellow et al.
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 5 / 43
13. Redes Neurais Profundas
Tipos comuns
Recorrente
Especializada no
processamento de
dados sequenciais
Fonte: [1]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 6 / 43
14. Redes Neurais Profundas
Tipos comuns
Recorrente
Especializada no
processamento de
dados sequenciais
Problema:
Leva em conta toda a
sequência de entrada
Fonte: [1]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 6 / 43
15. Redes Neurais Profundas
Tipos comuns
Recorrente
Especializada no
processamento de
dados sequenciais
Problema:
Leva em conta toda a
sequência de entrada
Fonte: [1]
Podemos não precisar saber isso → seria interessante usar janelas
menores
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 6 / 43
16. Redes Neurais Profundas
Tipos comuns
Recorrente
Especializada no
processamento de
dados sequenciais
Problema:
Leva em conta toda a
sequência de entrada
Fonte: [1]
Podemos não precisar saber isso → seria interessante usar janelas
menores
Os gradientes propagados por muitos estágios tendem a dissipar ou
explodir (raramente)
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 6 / 43
17. Redes Neurais Profundas
Tipos comuns
LSTM
Long Short-Term
Memory
Fonte: [2]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 7 / 43
18. Redes Neurais Profundas
Tipos comuns
LSTM
Long Short-Term
Memory
Variação da rede
recorrente
Fonte: [2]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 7 / 43
19. Redes Neurais Profundas
Tipos comuns
LSTM
Long Short-Term
Memory
Variação da rede
recorrente
Solução para o
problema da
dissipação do
gradiente
Fonte: [2]
Permite que a rede continue a aprender ao longo de mais
passos
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 7 / 43
20. Redes Neurais Profundas
Tipos comuns
Convolucional
Especializada no processamento de grades de valores
Ex: imagens
Fonte: [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 8 / 43
21. Redes Neurais Profundas
Tipos comuns: Convolucional
Camada de Convolução
Varre a entrada, aplicando um filtro k × k a partes dela
Executando operações de modo a reduzir a entrada
Fonte: [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 9 / 43
22. Redes Neurais Profundas
Tipos comuns: Convolucional
Camada de Pooling
Busca reduzir ainda mais o tamanho do espaço convolvido
Reduzindo os valores dentro de sub-áreas a seu máximo ou média
Fonte: [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 10 / 43
23. Redes Neurais Profundas
Google TensorFlow Playground
Simulador de
redes feedforward
profundas
Permite ver, dentre
outras coisas, a
saı́da de cada
neurônio
Fonte: https://playground.tensorflow.org/
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 11 / 43
25. Aprendizado Baseado em Instâncias
Modelos Paramétricos
Usam os dados de treinamento para estimar um
conjunto fixo de parâmetros
Ex: Os pesos ωi de uma rede neural
Os exemplos são então resumidos pelos parâmetros
aprendidos
Após o treinamento não precisamos mais dos dados, pois
aprendemos seu padrão de formação
O número de parâmetros é fixo
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 13 / 43
26. Aprendizado Baseado em Instâncias
Modelos Não Paramétricos
Não são caracterizados por um conjunto limitado de
parâmetros
Estes podem crescer com o número de exemplos vistos
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 14 / 43
27. Aprendizado Baseado em Instâncias
Modelos Não Paramétricos
Não são caracterizados por um conjunto limitado de
parâmetros
Estes podem crescer com o número de exemplos vistos
Enfoque conhecido como Aprendizado Baseado
em Instâncias (por Exemplos)
Classificam exemplos não vistos por semelhança com o que
já conhece
Toda vez que uma instância deve ser classificada, sua
relação com os exemplos armazenados é examinada, de
modo a dar um valor-alvo para essa instância
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 14 / 43
28. Modelos Paramétricos
Aprendizado Baseado em Instâncias
Não buscam construir uma função alvo geral a
partir do treinamento
Aprender consiste de simplesmente armazenar os exemplos
de treino
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 15 / 43
29. Modelos Paramétricos
Aprendizado Baseado em Instâncias
Não buscam construir uma função alvo geral a
partir do treinamento
Aprender consiste de simplesmente armazenar os exemplos
de treino
Vantagens: Fácil e rápido
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 15 / 43
30. Modelos Paramétricos
Aprendizado Baseado em Instâncias
Não buscam construir uma função alvo geral a
partir do treinamento
Aprender consiste de simplesmente armazenar os exemplos
de treino
Vantagens: Fácil e rápido
Desvantagens:
Tipicamente considera todos os atributos das instâncias
quando tentam buscar exemplos similares na memória
Se o conceito alvo depender de uns poucos atributos, então
instâncias que são mais similares podem ser descartadas
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 15 / 43
31. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 16 / 43
32. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo
Armazene todos os
exemplos de treino
Fonte: [4].
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 16 / 43
33. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo
Armazene todos os
exemplos de treino
Quando alguém fizer
uma pergunta:
Fonte: [4].
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 16 / 43
34. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo
Armazene todos os
exemplos de treino
Quando alguém fizer
uma pergunta:
Encontre o exemplo
conhecido mais próximo
Fonte: [4].
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 16 / 43
35. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo
Armazene todos os
exemplos de treino
Quando alguém fizer
uma pergunta:
Encontre o exemplo
conhecido mais próximo
Retorne a resposta
associada a ele
Fonte: [4].
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 16 / 43
36. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo
Ideia básica:
É provável que as propriedades de qualquer entrada
particular x sejam similares às dos pontos na vizinhança de x
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 17 / 43
37. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo
Ideia básica:
É provável que as propriedades de qualquer entrada
particular x sejam similares às dos pontos na vizinhança de x
O que significa “ser o vizinho mais próximo”?
Tipicamente, envolve distância euclidiana
x = {a1(x), a2(x), . . . , an(x)}, onde ai (x) são atributos de x
d(xi , xj ) =
v
u
u
t
n
X
r=1
(ar (xi ) − ar (xj ))2
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 17 / 43
38. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo: Problema
Distância euclidiana nem sempre é a melhor
E se quisermos prever o consumo de um carro?
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 18 / 43
39. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo: Problema
Distância euclidiana nem sempre é a melhor
E se quisermos prever o consumo de um carro?
Variáveis:
Peso (em Kg) e número de cilindros
A primeira varia na ordem de centenas ou milhares
A segunda, em unidades
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 18 / 43
40. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo: Problema
Distância euclidiana nem sempre é a melhor
E se quisermos prever o consumo de um carro?
Variáveis:
Peso (em Kg) e número de cilindros
A primeira varia na ordem de centenas ou milhares
A segunda, em unidades
Por mais que aumentemos o número de cilindros, a variação
na distância Euclidiana é pequena
Não corresponde ao fato real
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 18 / 43
41. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo: Solução
Pode-se mudar a escala:
Normalização linear
Para cada atributo aj , faça a0
j =
aj − min(aj )
max(aj ) − min(aj )
Onde min(aj ) é o valor mı́nimo já observado para esse atributo
Contudo, max(aj ) − min(aj ) pode ainda ser muito grande
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 19 / 43
42. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo: Solução
Pode-se mudar a escala:
Normalização linear
Para cada atributo aj , faça a0
j =
aj − min(aj )
max(aj ) − min(aj )
Onde min(aj ) é o valor mı́nimo já observado para esse atributo
Contudo, max(aj ) − min(aj ) pode ainda ser muito grande
Normalização por desvio padrão:
Mudar a escala da entrada de modo a ter média x̄ = 0 e variância
σ2
x = 1
x0
=
x − x̄
σx
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 19 / 43
43. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo: Solução
A mudança de escala coloca os atributos em um
mesmo patamar
De modo que influenciem igualmente
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 20 / 43
44. Aprendizado Baseado em Instâncias
Vizinho Mais Próximo: Solução
A mudança de escala coloca os atributos em um
mesmo patamar
De modo que influenciem igualmente
Contudo, algumas vezes sabemos que algumas
caracterı́sticas são mais importantes, e não
queremos perder essa informação
Multiplique os valores para essa caracterı́stica por um peso,
aumentando sua influência
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 20 / 43
45. Vizinho Mais Próximo
Exemplo – Falência
A G F
3 0,2 N
1 0,3 N
4 0,5 N
2 0,7 N
0 1,0 N
1 1,2 N
1 1,7 N
6 0,2 S
7 0,3 S
6 0,7 S
3 1,1 S
2 1,5 S
4 1,7 S
2 1,9 S
A = no
de pagamentos atrasados / ano
G = despesas / receitas
F = Falência
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 21 / 43
46. Vizinho Mais Próximo
Exemplo – Falência
Suponha que decidimos que
G deveria ser multiplicado
por 5 para ser
apropriadamente comparado
com A
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 22 / 43
47. Vizinho Mais Próximo
Exemplo – Falência
Suponha que decidimos que
G deveria ser multiplicado
por 5 para ser
apropriadamente comparado
com A
Então usamos a distância
euclidiana com G multiplicado
por 5
d(xi , xj ) =
p
(Ai − Aj )2 + 5(Gi − Gj )2
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 22 / 43
48. Vizinho Mais Próximo
Exemplo – Falência
Suponha que decidimos que
G deveria ser multiplicado
por 5 para ser
apropriadamente comparado
com A
Então usamos a distância
euclidiana com G multiplicado
por 5
Suponha que temos o ponto
(2, 0.3)
Qual seu valor para F?
d(xi , xj ) =
p
(Ai − Aj )2 + 5(Gi − Gj )2
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 22 / 43
49. Vizinho Mais Próximo
Exemplo – Falência
Buscamos o ponto mais
próximo
Note que no gráfico os
eixos estão em escala
diferente, por isso o
cı́rculo
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 23 / 43
50. Vizinho Mais Próximo
Exemplo – Falência
Buscamos o ponto mais
próximo
Note que no gráfico os
eixos estão em escala
diferente, por isso o
cı́rculo
Como o ponto é vermelho,
nossa resposta é “não”
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 23 / 43
51. Vizinho Mais Próximo
Exemplo – Falência
Vejamos outro ponto:
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 24 / 43
52. Vizinho Mais Próximo
Exemplo – Falência
Vejamos outro ponto:
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 24 / 43
53. Vizinho Mais Próximo
Exemplo – Falência
Vejamos outro ponto:
Resposta = Sim
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 24 / 43
54. Vizinho Mais Próximo
Qual é a hipótese aprendida?
Diferente dos demais algoritmos, não constrói
explicitamente uma descrição da hipótese com base
nos dados que vê
Apenas acha seu valor
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 25 / 43
55. Vizinho Mais Próximo
Qual é a hipótese aprendida?
Diferente dos demais algoritmos, não constrói
explicitamente uma descrição da hipótese com base
nos dados que vê
Apenas acha seu valor
Partição de Voronoi
Dado um conjunto de pontos (referências), podemos
dividir o espaço em regiões poligonais convexas
Uma para cada referência, representando o conjunto dos
pontos no espaço que estão mais próximos daquela
referência que de qualquer outra
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 25 / 43
56. Vizinho Mais Próximo
Partição de Voronoi
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 26 / 43
57. Vizinho Mais Próximo
Partição de Voronoi
Fonte: Adaptado de [4]
A hipótese será representada pelas arestas na
partição de Voronoi que separam a região de pontos
positivos da com pontos negativos
Nunca calculamos esse limite. Ele surge do processo em si
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 26 / 43
58. Vizinho Mais Próximo
Problemas
Como temos que “lembrar” de todos os dados,
podemos ficar sem memória
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 27 / 43
59. Vizinho Mais Próximo
Problemas
Como temos que “lembrar” de todos os dados,
podemos ficar sem memória
Apague os pontos que estão longe do limite da partição de
Voronoi
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 27 / 43
60. Vizinho Mais Próximo
Problemas
Como temos que “lembrar” de todos os dados,
podemos ficar sem memória
Apague os pontos que estão longe do limite da partição de
Voronoi
Ruido:
Ocorre quando não há como fazer uma partição de Voronoi
perfeita. Nesse caso:
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 27 / 43
61. Vizinho Mais Próximo
Problemas
Como temos que “lembrar” de todos os dados,
podemos ficar sem memória
Apague os pontos que estão longe do limite da partição de
Voronoi
Ruido:
Ocorre quando não há como fazer uma partição de Voronoi
perfeita. Nesse caso:
Ou assumimos que não é ruido, ou seja, que há algum fator válido
que gera esse ponto
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 27 / 43
62. Vizinho Mais Próximo
Problemas
Como temos que “lembrar” de todos os dados,
podemos ficar sem memória
Apague os pontos que estão longe do limite da partição de
Voronoi
Ruido:
Ocorre quando não há como fazer uma partição de Voronoi
perfeita. Nesse caso:
Ou assumimos que não é ruido, ou seja, que há algum fator válido
que gera esse ponto
Ou dizemos que esse ponto é uma anomalia (outlier) → Representa
um caso incomum que preferimos ignorar, não incorporando à
hipótese
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 27 / 43
65. Vizinho Mais Próximo
Ruido
E se quisermos saber
o valor de um ponto
próximo a esse ponto?
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 28 / 43
68. Vizinho Mais Próximo
Ruido
Encontramos o vizinho
mais próximo
Resposta = sim
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 29 / 43
69. Vizinho Mais Próximo
Ruido
Encontramos o vizinho
mais próximo
Resposta = sim
Consistente com a
primeira visão: o ponto
representa alguma
propriedade importante do
problema Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 29 / 43
70. Vizinho Mais Próximo
Ruido
Se acharmos que pode
ser ruı́do (uma
anomalia), devemos
mudar o algoritmo de
modo a ignorá-lo
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 30 / 43
71. Vizinho Mais Próximo
Ruido
Se acharmos que pode
ser ruı́do (uma
anomalia), devemos
mudar o algoritmo de
modo a ignorá-lo
Encontre os k pontos
mais próximos
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 30 / 43
72. Vizinho Mais Próximo
Ruido
Se acharmos que pode
ser ruı́do (uma
anomalia), devemos
mudar o algoritmo de
modo a ignorá-lo
Encontre os k pontos
mais próximos
Seus k-vizinhos
Fonte: Adaptado de [4]
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 30 / 43
73. K-Vizinhos Mais Próximos
K-nearest neighbours
Define a vizinhança de um ponto como sendo algo
grande o suficiente para incluir k pontos
k deve ser grande o suficiente para garantir uma estimativa
significativa
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 31 / 43
74. K-Vizinhos Mais Próximos
K-nearest neighbours
Define a vizinhança de um ponto como sendo algo
grande o suficiente para incluir k pontos
k deve ser grande o suficiente para garantir uma estimativa
significativa
Funciona idêntico ao Vizinho mais Próximo
Exceto que quando queremos saber o valor de um ponto,
buscamos os k pontos mais próximos a ele
Damos, como resposta, a resposta associada à maioria
desses k elementos
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 31 / 43
75. K-Vizinhos Mais Próximo
Problema
Para k fixo, o tamanho
da vizinhança varia
Grande quando os dados
são esparsos
Pequena para dados
densos
Fonte: AIMA (2a ed.). R&N
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 32 / 43
77. K-Vizinhos Mais Próximos
Escolha do K
Nada óbvia
Quanto menor, mais a hipótese será sensı́vel a ruido
Maior o risco de overfitting
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 33 / 43
78. K-Vizinhos Mais Próximos
Escolha do K
Nada óbvia
Quanto menor, mais a hipótese será sensı́vel a ruido
Maior o risco de overfitting
Quanto maior, mais obscura será
No limite, associarı́amos a resposta da maioria dos pontos
no conjunto
Arriscamos não sermos capazes de expressar a hipótese
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 33 / 43
79. K-Vizinhos Mais Próximos
Escolha do K
Nada óbvia
Quanto menor, mais a hipótese será sensı́vel a ruido
Maior o risco de overfitting
Quanto maior, mais obscura será
No limite, associarı́amos a resposta da maioria dos pontos
no conjunto
Arriscamos não sermos capazes de expressar a hipótese
É comum escolher k por meio de validação cruzada
Veremos mais adiante
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 33 / 43
80. K-Vizinhos Mais Próximos
Função-alvo
A função-alvo (o que se pretende definir) pode ser
discreta ou contı́nua
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 34 / 43
81. K-Vizinhos Mais Próximos
Função-alvo
A função-alvo (o que se pretende definir) pode ser
discreta ou contı́nua
Função-alvo discreta:
O resultado será o valor mais comum dentre os k exemplos
de treino mais próximos do ponto-alvo
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 34 / 43
82. K-Vizinhos Mais Próximos
Função-alvo
A função-alvo (o que se pretende definir) pode ser
discreta ou contı́nua
Função-alvo discreta:
O resultado será o valor mais comum dentre os k exemplos
de treino mais próximos do ponto-alvo
Sejam:
f : Rn
→ V a função-alvo a ser aprendida
V = {v1, . . . , vs} os valores possı́veis para f
ˆ
f a hipótese, definida pelo algoritmo, da função-alvo f (ou seja, a
estimativa feita pelo algoritmo)
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 34 / 43
83. K-Vizinhos Mais Próximos
Função-alvo discreta – Algoritmo
Treinamento
Para cada exemplo de treino hx, f (x)i, adicione o exemplo à
lista Exemplos
Classificação
Dada uma nova instância xq a ser classificada:
Sejam x1, . . . , xk as k instâncias de Exemplos que estão mais perto
de xq
Retorne ˆ
f (xq) ← O valor mais comum f (xi ) dentre seus k-vizinhos xi
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 35 / 43
85. K-Vizinhos Mais Próximos
Função-alvo contı́nua
f : Rn
→ R
Em vez de calcularmos o valor mais comum,
calculamos a média dos k exemplos mais próximos
ˆ
f (xq) ←
k
X
i=1
f (xi )
k
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 36 / 43
87. K-Vizinhos Mais Próximos
Refinamento: K-vizinhos com pesos
Damos pesos ωi à contribuição de cada vizinho, de
acordo com sua distância ao ponto de interesse xq
Vizinhos mais próximos terão peso maior
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 37 / 43
88. K-Vizinhos Mais Próximos
Refinamento: K-vizinhos com pesos
Damos pesos ωi à contribuição de cada vizinho, de
acordo com sua distância ao ponto de interesse xq
Vizinhos mais próximos terão peso maior
Para o caso discreto, fazemos o peso proporcional
ao quadrado inverso da distância entre o ponto e xq
ˆ
f (xq) ← argmax
v∈V
k
X
i=1
ωi δ(v, f (xi )), onde ωi =
1
d(xq, xi )2
Para os casos em que d(xq, xi ) = 0, fazemos ˆ
f (xq) = f (xi )
Se houver vários casos assim, ˆ
f (xq) será o valor da maioria
deles
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 37 / 43
89. K-Vizinhos Mais Próximos
Refinamento: K-vizinhos com pesos
Para o caso contı́nuo, fazemos
ˆ
f (xq) ←
k
X
i=1
ωi f (xi )
k
X
i=1
ωi
Note que
Pk
i=1 ωi é uma constante que normaliza as
contribuições dos vários pesos
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 38 / 43
90. K-Vizinhos Mais Próximos
A Maldição da Dimensionalidade
Vizinho mais próximo e k-vizinhos funcionam muito
bem para baixas dimensões
Porém, na medida em que aumentam as dimensões, quase
todos os pontos estão longe uns dos outros
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 39 / 43
91. K-Vizinhos Mais Próximos
A Maldição da Dimensionalidade
Vizinho mais próximo e k-vizinhos funcionam muito
bem para baixas dimensões
Porém, na medida em que aumentam as dimensões, quase
todos os pontos estão longe uns dos outros
Maldição da dimensionalidade:
Ocorre quando a distância entre vizinhos é dominada por um
grande número de atributos irrelevantes
Lembre que a distância é medida com base em todos os atributos
Se um ponto necessitar de poucos atributos para a classificação, ele
pode ser classificado erroneamente, pela proximidade dos outros
atributos (irrelevantes), a outros exemplos
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 39 / 43
92. K-Vizinhos Mais Próximos
A Maldição da Dimensionalidade: como evitar
Podemos dar pesos diferentes a cada atributo
quando do cálculo da distância
Estes terão que ser determinados via tentativa e erro no
conjunto de treino
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 40 / 43
93. K-Vizinhos Mais Próximos
A Maldição da Dimensionalidade: como evitar
Podemos dar pesos diferentes a cada atributo
quando do cálculo da distância
Estes terão que ser determinados via tentativa e erro no
conjunto de treino
Podemos eliminar os atributos menos relevantes do
espaço de instâncias
Reduzimos o problema a um de menor dimensionalidade
Seleção de caracterı́sticas (feature selection)
Ex: Principal Component Analysis (PCA), análise fatorial etc
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 40 / 43
94. Referências
1 Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach.
Prentice Hall. 2a e 3a ed.
1 Slides do livro: aima.eecs.berkeley.edu/slides-pdf/
2 Mitchell, T.M.: Machine Learning. McGraw-Hill. 1997.
3 Goodfellow, I.; Bengio, Y.; Courville, A. (2016): Deep Learning. MIT
Press.
4 http://ocw.mit.edu/OcwWeb/Electrical-Engineering-
and-Computer-Science/6-034Spring-2005/LectureNotes/index.
htm
5 https://www.codingame.com/playgrounds/243/
voronoi-diagrams/what-are-voronoi-diagrams
6 http://mathworld.wolfram.com/VoronoiDiagram.html
Norton Trevisan Roman(norton@usp.br) 28 de maio de 2019 41 / 43