Self Organizing Maps - Redes de Kohonen
|
|
|
- Washington Marroquim Caires
- 9 Há anos
- Visualizações:
Transcrição
1 Self Organizing Maps - Redes de Kohonen 1. Redes auto organizáveis Existe uma classe de redes neurais artificias que possuem a capacidade de auto organização, sendo por isto chamadas de redes auto organizáveis. A principal característica das redes auto organizáveis refere-se ao processo de aprendizado, que ocorre através do treinamento não supervisionado: a própria estrutura da rede é responsável pelo ajuste dos parâmetros que determinam o aprendizado da rede com relação ao problema em questão. As redes ( mapas ) SOM (Self Organizing Maps) e ART (Adaptive Resonance Theory) são modelos com tal capacidade. 1.1 Redes SOM (Self Organizing Maps) As redes SOM (Self Organizing Maps) foram desenvolvidas por Teuvo Kohonen professor da Faculdade de Ciência da Informação da Universidade de Helsinqui (Finlândia) na década de 80. Em vários trabalhos estas redes são chamadas de redes de Kohonen, o que pode provocar confusão, uma vez que Kohonen também propôs outros modelos de redes neurais. As redes SOM possuem forte inspiração neurofisiológica. Baseiam-se no mapa topológico presente no córtex cerebral. 1
2 Sabe-se que o cérebro dos animais mais sofisticados possui áreas responsáveis por funções específicas. Existem áreas dedicadas à fala, à visão, ao controle motor, à sensibilidade ao toque, etc. Cada uma dessas áreas contém subáreas. Cada subárea mapeia internamente respostas do órgão sensorial representado por ela. Por exemplo: Córtex auditivo: o mapeamento reflete as diferentes frequências sonoras. Córtex visual: o mapeamento é definido pelas características visuais primitivas, como intensidade de luz, orientação e curvatura de linhas. Observa-se que os neurônios estão espacialmente ordenados dentro destas áreas e, assim, neurônios topologicamente mais próximos tendem a responder a padrões ou estímulos de forma semelhante. Tal ordenação topológica é resultado do uso de feedback lateral entre as células do córtex cerebral. Este feedback lateral é geralmente modelado em redes neurais por uma função conhecida como chapéu mexicano. 2
3 Segundo a função chapéu mexicano, cada neurônio influencia o estado de ativação de seus neurônios vizinhos de três formas possíveis: excitatória (região R1), inibitória (região R2) e levemente excitatória (região R3) Funcionamento básico da rede SOM A estrutura básica de uma rede SOM apresenta apenas duas camadas: a camada input e a camada output, esta última representada normalmente como um grid bidimensional. Os nodos da camada input se ligam a todos os nodos da camada ouptut. Os nodos da camada output estão, por sua vez, ligados entre si ao seus vizinhos geograficamente adjacentes. Um padrão p de entrada é apresentado à rede (via camada input). A rede procura a unidade (neurônio) da camada output mais parecida com p. Durante o treinamento, a rede aumenta a semelhança do nodo (neurônio) escolhido e seus vizinhos em relação ao padrão p. 3
4 Assim, a rede constrói um mapa topológico onde nodos topologicamente mais próximos respondem de forma semelhante a padrões de entrada semelhante. O algoritmo de aprendizado da rede é competitivo: os nodos (neurônios) da camada output competem entre si para serem ativados, ou seja, para ver quem gera o maior valor de saída (resposta) ao padrão p apresentado. 4
5 2. Clusterização utilizando mapas de Kohonen (Revista InfoGeo Ano 2 N o 6 março/abril 1999 pág Segmentação com mapas neurais de Kohonen por Francisco Aranha) Em essência, redes neurais são uma tecnologia de processamento de informações que se inspira no funcionamento do cérebro humano. Apresentadas a uma série de estímulos (os dados a analisar) as redes neurais os organizam e aprendem a reconhecer padrões e fazer previsões. Se as redes neurais recebem informações sobre a magnitude e direção dos erros que cometem na análise, aperfeiçoam seu conhecimento, melhorando as respostas seguintes. 5
6 Em particular, as redes de Kohonen apresentam uma estrutura de rede em duas camadas distintas de neurônios: uma camada de entrada (camada input ) por onde se apresenta o padrão para a rede e uma camada de processamento (camada kohonen ), onde se forma o mapa (resultado da classificação dos padrões apresentados). Os neurônios da camada input se ligam a todos os neurônios da camada kohonen. Cada neurônio da camada kohonen está diretamente ligado aos seus neurônios diretamente adjacentes. O funcionamento básico do mapa de Kohonen assim se processa: Um padrão p 1 é apresentado à rede, através da camada input. Os neurônios da camada input transmitem estes estímulos aos neurônios da camada de processamento kohonen. O neurônio N i da camada kohonen que reagir mais fortemente aos estímulos do padrão p 1 ganha-o para si. Além disso, reforça suas ligações com os vizinhos mais próximos, sensibilizando-os um pouco mais em relação às características do padrão p 1. 6
7 Na próxima oportunidade, quando um padrão p k parecido com p 1 for apresentado ao mapa de Kohonen, toda a vizinhança de N i reagirá um pouco mais intensamente em relação às outras áreas do mapa. Cada nova apresentação de um padrão p r à rede faz com que o perfil de sensibilidade dos neurônios da camada kohonen vá se alterando: isto é o que chamamos treinamento da rede. A medida em que o número de padrões de treinamento vai aumentando, as alterações dos neurônios vão gradualmente se reduzindo, até que a configuração do mapa (camada kohonen) converge para uma disposição estável. Dizemos então que o mapa de Kohonen aprendeu a classificar. 7
8 2.1 Ideias da rede SOM Considere uma pessoa e o seu (virtualmente infinito) vetor de atributos : Considere, que uma determinada livraria gostaria de classificar sua clientela de acordo com apenas duas características (variáveis): sexo e gênero literário de interesse: 8
9 Usando um mapa de Kohonen para classificar (clusterizar) os clientes: 9
10 10
11 11
12 Após o treinamento da rede (apresentação de todos os padrões à rede), são formados grupos (clusters) de perfis de clientes... 12
13 2.2 Como funciona o aprendizado da rede SOM? O truque principal de funcionamento da rede SOM está no vetor de pesos... O vetor de pesos liga todos os atributos do padrão (ou seja, toda camada imput) a todos os neurônios da camada output... Assim, o vetor de pesos armazena vários moldes (vários padrões) de entrada de dados... 13
14 2.3 Como vai surgir o neurônio vencedor (winner neuron)? O primeiro passo do algoritmo de treinamento da rede SOM é inicializar aleatoriamente o vetor de pesos Para simplificar o entendimento e facilitar a visualização, na rede de Kohonem abaixo estamos mostrando apenas os vetores de dois distintos neurônios inicializados aleatoriamente... Denominamos os neurônios de A e B (para fins didáticos OK?)... No exemplo acima, suponha que ao inicializar o vetor de peso de todos os neurônios da camada Kohonen, o neurônio A inicializou com (67,58) e o neurônio B inicializou com (22,31) Agora vamos apresentar um padrão P para a rede SOM. O procedimento consiste em verificar qual dentre todos os neurônios é o molde mais parecido com o padrão apresentado... Lembre-se que no exemplo acima, 14
15 para fins didáticos vamos analisar apenas os moldes dos neurônios A e B... mas na prática se analisam todos os neurônios... Qual vai ser o neurônio vencedor? Resposta: aquele que apresentar menor distância euclideana!!! 15
16 No exemplo acima o neurônio A venceu o neurônio B, pois o seu molde (vetor de pesos) e mais parecido com o padrão P do que o molde do neurônio B Aí o neurônio vencedor sensibiliza o vetor de pesos de seus neurônios vizinhos para apresentarem moldes (vetor de pesos) similares ao padrão P. Ou seja, ocorre ajuste de pesos nos neurônios vizinhos!!!! 16
17 Outro exemplo: se apresentarmos o padrão P(30,40), considerando-se ainda apenas os neurônios A e B, então o vencedor seria B... veja abaixo... Qual vai ser o neurônio vencedor? Resposta: aquele que apresentar menor distância euclideana!!! 17
18 No exemplo acima o neurônio B venceu o neurônio A, pois o seu molde (vetor de pesos) e mais parecido com o padrão P do que o molde do neurônio A 18
19 2.4 Ao final do treinamento da rede SOM... 19
20 2.5 - Exemplo 1 Entendendo SOM Vamos construir um mapa de Kohonen para classificar (agrupar clusterizar) as 14 cidades A, B, C,... N de acordo com o perfil de consumo per capita mensal de laranja e de limão dos habitantes destas cidades. Veja a tabela abaixo: Visualmente podemos notar que existem 3 (ou 4) perfis (padrões) de cidade com relação ao consumo per capita mensal de laranja e de limão. Concorda com isso ou não? Vamos ver como o mapa de Kohonen irá classificar... Obs.: segue anexo o script de execução para treinamento de um mapa de Kohonen para os dados do exemplo usando o software R 20
21 Vamos usar o software R para executar o algoritmo desta rede SOM. O primeiro passo é normalizar os dados... Uma das razões para normalizar/padronizar os dados deve-se ao fato de termos os atributos dos padrões em unidades de medida distintas e, às vezes, com escalas bem discrepantes entre si. Como exemplos de atributos do padrão podemos ter o peso, idade, valor do lucro, número de dependentes, valor da aplicação financeira, quantidade de leite produzida, salário, sexo, gênero literário, número de filiais, etc, etc... Por isso normalizamos os dados... No exemplo foram realizados 3 tipos de normalização (N1, N2 e N3) e foi escolhida a normalização N3, com base na normalização N2. 21
22 Normalização de dados uma forma (no exemplo denominada normalização N1) Veja uma forma de normalização de dados através de um exemplo: 22
23 Normalização de dados outra forma (no exemplo denominada normalização N2) Padronização da variável Veja uma forma de normalização de dados através de um exemplo: Vamos padronizar as variáveis Altura e Peso usando o escore Z: 23
24 Veja por exemplo a padronização da altura e do peso do indivíduo A Então as variáveis Altura e Peso ficam padronizadas assim: Observe também que toda variável padronizada apresenta média 0 e desvio padrão 1 24
25 25
26 Normalização de dados Mais uma outra forma (no exemplo denominada normalização N3) Vamos partir da normalização N2 e calcular a normalização N3... Note que os valores normalizados pela normalização N3 pertencem ao intervalo [0,1] (veja o eixo dos Y da função em formato S (função sigmoidal) Veja o exemplo abaixo 26
27 A Normalização N2 (é a padronização das variáveis...) veja abaixo o exemplo para a cidade A E agora veja a normalização N3 para a cidade A: 27
28 Observe os dados normalizados (calculados no ambiente do R) A execução do algoritmo SOM no ambiente do R exige que selecionemos apenas os campos que serão usados para classificação. No caso selecionamos apenas os campos normalizados no formato N3, ou seja, os campos LARANJA_N3 e LIMAO_N3. 28
29 E vamos alimentar /treinar a rede SOM com os padrões normalizados em formato N3... OK? Então executaremos o algoritmo numa camada (mapa) de dimensão 3 X 3 Pronto... diversos resultados são gerados... 29
30 2.5.1 Resultado: mapa de treinamento do vetor de pesos 30
31 2.5.2 Resultado: Total de padrões alocados pelos neurônios da rede 31
32 2.5.3 Resultado: Padrões alocados nos neurônios 32
33 2.5.4 Resultado: O vetor de pesos dos neurônios e o mapa do vetor de pesos (code vector) 33
34 34
35 2.5.5 Resultado: Cálculo da distância euclideana de um determinado padrão a um determinado neurônio. Um exemplo: 35
36 2.5.6 Resultado: Mapa de calor por variável 36
37 37
38 APÊNDICE I Teste o script em R com o seguinte arquivo: koh_exemplo01.csv CIDADE;LARANJA;LIMAO A;20;20 B;34;34 C;50;50 D;35;55 E;11;31 F;12;10 G;25;11 H;200;200 I;220;220 J;240;240 K;101;103 L;110;90 M;114;103 N;109;112 script em R: R_koh_Exemplo01.R #---> Obs.: para executar este script copie o comando abaixo e execute-o no ambiente do R ##### source("c:/estatistica/kohonen/r_koh_exemplo01.r") # # Pegar o diretório atual... initial.dir<-getwd() # # Mudar para o diretório de trabalho... setwd("c:/estatistica/kohonen") # # Carregar eventuais bibliotecas necessárias ao processamento... library("kohonen") # # Definir o arquivo "log" com resultados do processamento... #sink("result01.out", append = FALSE) 38
39 # # Desligar janelas de apresentação de gráficos... # dev.off(2) dev.off(3) dev.off(4) dev.off(5) dev.off(6) dev.off(7) # # Palette defined by kohonen package # # Shane Lynn coolbluehotred <- function(n, alpha = 1) { rainbow(n, end=4/6, alpha=alpha)[n:1] } # # Ler os dados... vdados <- read.csv("koh_exemplo01.csv", sep=";", dec=".", header=true) # # Normalização dos dados para uso no algoritmo de Kohonen... #---> Normalização 1: Normalizar os dados de entrada - Padronização das variáveis: xi / raiz(x1^2 + x2^ xn^2) #------> Para a variavel LARANJA... vnormalizacao = vdados$laranja / sqrt(vdados$laranja^2 + vdados$limao^2) vdados = cbind(vdados,vnormalizacao) names(vdados)[names(vdados)=="vnormalizacao"] = "LARANJA_N1" # renomear a coluna #------> Para a variavel LIMAO... vnormalizacao = vdados$limao / sqrt(vdados$laranja^2 + vdados$limao^2) vdados = cbind(vdados,vnormalizacao) names(vdados)[names(vdados)=="vnormalizacao"] = "LIMAO_N1" # renomear a coluna #---> Normalização 2: Normalizar os dados de entrada - Padronização das variáveis: (x - xmedia) / desvio-padrão #------> Para a variavel LARANJA... vmedia = mean(vdados$laranja) vdesvpad = sd(vdados$laranja) # desvio padrão da amostra vnormalizacao = (vdados$laranja - vmedia) / vdesvpad vdados = cbind(vdados,vnormalizacao) names(vdados)[names(vdados)=="vnormalizacao"] = "LARANJA_N2" # renomear a coluna #------> Para a variavel LIMAO... vmedia = mean(vdados$limao) vdesvpad = sd(vdados$limao) # desvio padrão da amostra vnormalizacao = (vdados$limao - vmedia) / vdesvpad vdados = cbind(vdados,vnormalizacao) names(vdados)[names(vdados)=="vnormalizacao"] = "LIMAO_N2" # renomear a coluna #---> Normalização 3: Normalizar os dados já normalizados (_N2): função sigmoidal 1 / (1 + (exp(-var_n2)) #------> Para a variavel LARANJA... vnormalizacao = 1 / (1 + exp(-vdados$laranja_n2)) vdados = cbind(vdados,vnormalizacao) names(vdados)[names(vdados)=="vnormalizacao"] = "LARANJA_N3" # renomear a coluna #------> Para a variavel LIMAO... vnormalizacao = 1 / (1 + exp(-vdados$limao_n2)) vdados = cbind(vdados,vnormalizacao) 39
40 # names(vdados)[names(vdados)=="vnormalizacao"] # listar dados... apenas para conferência eventual... = "LIMAO_N3" # renomear a coluna cat("dados originais e normalizados \n") cat(" \n") vtotinputs = nrow(vdados) cat(" Normalização 1 Normalização 2 Normalização 3 "); ; cat("cidade LARANJA LIMAO LARANJA (N1) LIMAO (N1) LARANJA (N2) LIMAO (N2) LARANJA (N3) LIMAO (N3) "); ; cat(" "); ; for (k in 1:vTotInputs) { vaux = vdados[k,"cidade"] vaux = format(vaux, width = 1, justify="left") cat(" "); cat(vaux); cat(" ") vaux = vdados[k,"laranja"] vaux = format(vaux, width = 7, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"limao"] vaux = format(vaux, width = 7, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"laranja_n1"] vaux = sprintf("%2.6f", vaux) vaux = format(vaux, width = 9, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"limao_n1"] vaux = sprintf("%2.6f", vaux) vaux = format(vaux, width = 9, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"laranja_n2"] vaux = sprintf("%2.6f", vaux) vaux = format(vaux, width = 9, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"limao_n2"] vaux = sprintf("%2.6f", vaux) vaux = format(vaux, width = 9, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"laranja_n3"] vaux = sprintf("%2.6f", vaux) vaux = format(vaux, width = 9, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"limao_n3"] vaux = sprintf("%2.6f", vaux) vaux = format(vaux, width = 9, justify="right") cat(""); cat(vaux); cat(" ") } cat("\n\n") cat("vamos usar o terceiro tipo de normalização no algoritmo...'tá ligado'?") cat("\n\n") # # #---> Selecionar somente os campos numéricos normalizados pelo terceiro tipo (N3) vkoh = subset(vdados,select=c("laranja_n3","limao_n3")) 40
41 #---> O algoritmos só funciona se os dados estiverem em formato matrix... então vamos transformar em metrix... vkoh2 = as.matrix(vkoh) # # # Executar o algoritmo SOM (Self Organizing Mpas) ################################################################## #---> Definir o lay-out da camada (grid de neurônios) "Kohonen" ################################################################## vgrid_som = somgrid(xdim=3, ydim=3, topo="rectangular") #---> executa efetivamente o algoritmo... set.seed(7) vmapakohonen = som(data = vkoh2, grid = vgrid_som, rlen = 100, alpha = c(0.05,0.01), keep.data = TRUE, n.hood = "circular" ) cat("\n\n") cat("após a execução do algoritmo de treinamento do mapa de Kohonen temos:") cat("\n\n") ########################################################################################## #---> Gráfico da evolução do treinamento da rede... #------> "changes" shows the mean distance to the closest codebook vector during training. # # Training Progress: # As the SOM training iterations progress, the distance from each node s weights to the samples represented by that node is reduced. Ideally, this # distance should reach a minimum plateau. This plot option shows the progress over time. If the curve is continually decreasing, more iterations # are required. # ########################################################################################## dev.new() # Or X11() dev.1 <- as.integer(dev.cur()) dev.set(dev.1) plot(vmapakohonen, type="changes", main = "Perfis de consumo de Laranja/Limão - treinamento") ################################################################################################### ########## #---> Gráfico de alocação dos padrões de entrada (cidades) pelos neurônios da rede... #---> "counts" shows the number of objects mapped to the individual units. Empty units are depicted in gray. # # Node Counts # The Kohonen packages allows us to visualise the count of how many samples are mapped to each node on the map. This metric can be used as # a measure of map quality ideally the sample distribution is relatively uniform. Large values in some map areas suggests that a larger map # would be benificial. Empty nodes indicate that your map size is too big for the number of samples. Aim for at least 5-10 samples per node when # choosing map size. # ################################################################################################### ########## 41
42 dev.2 <- as.integer(dev.cur()) dev.set(dev.2) dev.new() plot(vmapakohonen, type="counts", main = "Total de objetos (padrões) alocados pela rede") ################################################################################################### ############ #---> Gráfico de distância aos neurônios vizinhos... #---> "dist.neighbours" shows the sum of the distances to all immediate neighbours. This kind of visualisation # is also known as a U-matrix plot. Units near a class boundary can be expected to # have higher average distances to their neighbours. Only available for the "som" and "supersom" # maps, for the moment. # # Neighbour Distance # Often referred to as the U-Matrix, this visualisation is of the distance between each node and its neighbours. Typically viewed with a grayscale # palette, areas of low neighbour distance indicate groups of nodes that are similar. Areas with large distances indicate the nodes are much more # dissimilar and indicate natural boundaries between node clusters. The U-Matrix can be used to identify clusters within the SOM map. # ################################################################################################### ############ dev.new() dev.3 <- as.integer(dev.cur()) dev.set(dev.3) plot(vmapakohonen, type="dist.neighbours", main = "U-Matrix - Matriz de distância aos neurônios vizinhos") ################################################## #---> Gráfico do vetor de pesos... #---> "codes" shows the codebook vectors. # # Codes / Weight vectors # The node weight vectors, or codes, are made up of normalised values of the original variables used to generate the SOM. Each node s weight # vector is representative / similar of the samples mapped to that node. By visualising the weight vectors across the map, we can see patterns in # the distribution of samples and variables. The default visualisation of the weight vectors is a fan diagram, where individual fan representations # of the magnitude of each variable in the weight vector is shown for each node. # ################################################## #####vcores = c("#ff0000", "#00FF00", "#0000FF", "#FF0F0F", "#E0E0E0", "#FF00EE", "#DDCACA", "#CACABB") vcores <- colorramppalette( c('#33cdc7','#f2716b','#e1f505',"#00ff00", "#574DD8", "#FF00EE", "#BFBC30", "#FF0000") ) dev.new() # Or X11() dev.4 <- as.integer(dev.cur()) dev.set(dev.4) plot(vmapakohonen, type="codes", palette.name=vcores, main = "Vetor de pesos dos neurônios") ######################################################### #---> Mapa de calor das variáveis LARANJA e LIMAO... ######################################################### dev.new() # Or X11() dev.5 <- as.integer(dev.cur()) 42
43 #------> Colocar 2 gráficos na mesma janela... par(mfrow=c(2,1)) dev.set(dev.5) #------> A coluna LARANJA_N3 é a primeira coluna de vmapakohonenen e deve ser referenciada assim: vmapakohonen$codes[,1] plot(vmapakohonen, type = "property", property = vmapakohonen$codes[,1], main="mapa de calor - LARANJA", palette.name=coolbluehotred) #------> A coluna LIMAO_N3 é a segunda coluna de vmapakohonenen e deve ser referenciada assim: vmapakohonen$codes[,2] plot(vmapakohonen, type = "property", property = vmapakohonen$codes[,2], main="mapa de calor - LIMÃO", palette.name=coolbluehotred) par(mfrow=c(1,1)) # manter um gráfico por janela... ################################### #----> Resultados impressos... ################################### cat("(0) Resumo geral\n") cat(" \n") print(summary(vmapakohonen)) cat("===========================================================\n") cat("1) Neurônio vencedor do padrão apresentado") cat(" ") vneuroniovencedor = vmapakohonen$unit.classif # resultado do algoritmo vtotinputs = nrow(vkoh) cat("cidade LARANJA LIMAO Neurônio vencedor"); ; cat(" "); ; for (k in 1:vTotInputs) { vaux = vdados[k,"cidade"] vaux = format(vaux, width = 1, justify="left") cat(" "); cat(vaux); cat(" ") vaux = vdados[k,"laranja"] vaux = format(vaux, width = 7, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"limao"] vaux = format(vaux, width = 7, justify="right") cat(""); cat(vaux); cat(" ") vaux = vmapakohonen$unit.classif[k] vaux = format(vaux, width = 3, justify="right") cat(" "); cat(vaux); cat(" ") } cat("2) A matriz de vetores-peso (code vectors) do mapa de Kohonen") cat(" " ) 43
44 cat("\n\n") print(vmapakohonen$codes) cat("3) Gráfico do vetor pesos") cat(" ") cat("-> Em cada neurônio é apresentado seu vetor de pesos que o liga à camada de entrada de dados") cat("-> A imagem do vetor de pesos dentro do neurônio é conhecida como 'diagrama de ventilador'") cat("-> Quanto maior o setor circular de um elemento do vetor de peso, maior é o seu valor") cat("-> Quanto menor o setor circular de um elemento do vetor de peso, menor é o seu valor") cat("-> Note que o vetor de pesos representa, em última instância, um padrão do conjunto de dados de entrada") cat("\n\n") cat("\n\n") cat("4) Gráfico de distância dos vizinhos (gráfico U-Matrix)") cat(" ") cat("-> Conhecido como gráfico 'U-Matrix', permite visualizar a distância entre cada neurônio e seus vizinhos") cat("-> Áreas com baixa distância de vizinhos indica grupo de neurônios similares") cat("-> Áreas com alta distância de vizinhos indica grupo de neurônios disimilares") cat("-> Áreas com alta distância de vizinhos indica então limites 'naturais' entre clusters") cat("-> Desta forma, a U-Matrix serve para identificar clusters no mapa de Kohonen") cat("\n\n") cat("\n\n") cat("5) Mapa de calor da variável LARANJA") cat(" ") cat("-> Observe e interprete o gráfico") cat("\n\n") cat("\n\n") cat("6) Mapa de calor da variável LIMAO") cat(" ") cat("-> Observe e interprete o gráfico") cat("\n\n") cat("7) Distância dos padrões (cidades) ao correspondente neurônio vencedor") cat(" ") vneuroniovencedor = vmapakohonen$unit.classif # resultado do algoritmo 44
45 vtotinputs = nrow(vkoh) vdistanciaaoneuroniovencedor = vmapakohonen$distances # resultado do algoritmo cat("cidade LARANJA LIMAO Neurônio vencedor Distância "); ; cat(" "); ; for (k in 1:vTotInputs) { vaux = vdados[k,"cidade"] vaux = format(vaux, width = 1, justify="left") cat(" "); cat(vaux); cat(" ") vaux = vdados[k,"laranja"] vaux = format(vaux, width = 7, justify="right") cat(""); cat(vaux); cat(" ") vaux = vdados[k,"limao"] vaux = format(vaux, width = 7, justify="right") cat(""); cat(vaux); cat(" ") vaux = vmapakohonen$unit.classif[k] vaux = format(vaux, width = 3, justify="right") cat(" "); cat(vaux); cat(" ") vaux = vmapakohonen$distances[k] vaux = sprintf("%3.6f", vaux) vaux = format(vaux, width = 11, justify="right") cat(" "); cat(vaux); cat(" ") } cat("-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x") cat("===> Unit distances \n\n ") vdists <- unit.distances(vmapakohonen$grid, toroidal=false) print(vmapakohonen$grid$n.hood) print("/n/n acimaa /n") print(vdists) cat(" \n\n") # #---> "mapping" shows where objects are mapped. It needs the "classif" argument, and a "labels" or "pchs" argument. #dev.set(dev.6) #plot(vmapakohonen, type="mapping", labels = vperfil, main = "Perfis ambientais - mapeamento") #---> "quality" shows the mean distance of objects mapped to a unit to the codebook vector of that unit. # The smaller the distances, the better the objects are represented by the codebook vectors. #dev.set(dev.6) #plot(vmapakohonen, type="quality", main = "Perfis ambientais - qualidade da clusterização...") # # Para finalizar... 45
46 #sink() # fechar descarregar o arquivo as bibliotecas de saida eventualemnte usadas... detach("package:kohonen") # volta a apontar ao diretório inicial setwd(initial.dir) #====================================== F I M =============================================== *** FIM *** 46
Self Organizing Maps - Redes de Kohonen
Self Organizing Maps - Redes de Kohonen 1. Redes auto organizáveis Existe uma classe de redes neurais artificias que possuem a capacidade de auto organização, sendo por isto chamadas de redes auto organizáveis.
Mapas Auto Organizáveis SOMs Mapas de Kohonen
Mapas Auto Organizáveis SOMs Mapas de Kohonen PSI 2886 Princípios de Neurocomputação Edição de 2008 1 PSI 5886 Prof. Emilio Self Organizing Maps de Kohonen Estes slides foram usados nas aulas #8 e #9 na
Redes Neurais não Supervisionadas: SOM
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Redes Neurais não Supervisionadas: SOM DCA0121 Inteligência Artificial Aplicada Heitor Medeiros 1 Tópicos
Aula 7 RNA Redes Auto-Organizáveis de Kohonen
2COP229 Aula 7 RNA Redes Auto-Organizáveis de Kohonen 2COP229 Sumário 1- Introdução 2- Processo de Aprendizado Competitivo 3- Mapas auto-organizáveis de Kohonen (SOM) 4- Projeto Prático 1-Introdução 2COP229
Mapas Auto-Organizáveis de Kohonen SOM
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Mapas Auto-Organizáveis de Kohonen SOM Redes Neurais Artificiais Site: http://jeiks.net E-mail: [email protected]
Mapas Auto-Organizáveis de Kohonen SOM
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Mapas Auto-Organizáveis de Kohonen SOM Redes Neurais Artificiais Site: http://jeiks.net E-mail: [email protected]
REGRESSÃO LINEAR SIMPLES Noções preliminares
Pàg 1 de 66 Quando temos duas variáveis numéricas podemos ter: Relação funcional entre as duas variáveis Y = f(x) Relação estatística entre as duas variáveis A relação entre X e Y não é perfeita Exemplo
Redes Neurais e Sistemas Fuzzy
Redes Neurais e Sistemas Fuzzy Mapas Auto-Organizáveis 1. O Mapa Auto-Organizável (SOM) Sistema auto-organizável inspirado no córtex cerebral. Nos mapas tonotópicos do córtex, p. ex., neurônios vizinhos
Inteligência Artificial. IA Conexionista: Perceptron de Múltiplas Camadas Mapas Auto-Organizáveis. Renan Rosado de Almeida
Inteligência Artificial IA Conexionista: Redes Neurais Artificiais Perceptron de Múltiplas Camadas Mapas Auto-Organizáveis Renan Rosado de Almeida [email protected] Perceptron de Múltiplas Camadas
UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica
REDES NEURAIS ARTIFICIAIS AULA 03 Prof. Dr. André A. P. Biscaro 1º Semestre de 2017 INTRODUÇÃO Aprendizagem é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo
Redes Neurais: RBF. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Redes Neurais: RBF DCA0121 Inteligência Artificial Aplicada Heitor Medeiros 1 Tópicos Redes de Funções de
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Francisco A. Rodrigues Departamento de Matemática Aplicada e Estatística - SME Conceitos básicos Classificação não-supervisionada:
MAPAS AUTO-ORGANIZÁVEIS PARA MODELAGEM CHUVA-VAZÃO. Farias, C. A. S.; Carneiro, T. C. & Lourenço, A. M. G.
MAPAS AUTO-ORGANIZÁVEIS PARA MODELAGEM CHUVA-VAZÃO Farias, C. A. S.; Carneiro, T. C. & Lourenço, A. M. G. Motivação O crescimento populacional e consequente aumento das demandas; A situação se agrava em
IA - TAREFA 06. Assunto: Treinamento de perceptron
IA - TAREFA 06 Assunto: Treinamento de perceptron A fábrica de sucos cítricos XYZ Ltda. deseja avaliar cidades que apresentem condições atraentes para instalação de novas filiais da fábrica. Segundo a
Introdução às Redes Neurais Artificiais
Introdução às Redes Neurais Artificiais Mapas Auto-Organizáveis Prof. João Marcos Meirelles da Silva http://www.professores.uff.br/jmarcos Departamento de Engenharia de Telecomunicações Escola de Engenharia
Classificação Linear. André Tavares da Silva.
Classificação Linear André Tavares da Silva [email protected] Roteiro Introduzir os o conceito de classificação linear. LDA (Linear Discriminant Analysis) Funções Discriminantes Lineares Perceptron
Módulo 18- Análise de Cluster Tutorial SPSS Preparação dos Dados e Geração de Tabelas Método Hierárquico e Não-Hierárquico
Tutorial SPSS Módulo 18 Análise de Cluster 1 Módulo 18- Análise de Cluster Tutorial SPSS Preparação dos Dados e Geração de Tabelas Método Hierárquico e Não-Hierárquico Situação Problema Uma varejista de
Aprendizado de Máquina (Machine Learning)
Ciência da Computação Aprendizado de Máquina (Machine Learning) Aula 09 Árvores de Decisão Max Pereira Classificação É a tarefa de organizar objetos em uma entre diversas categorias pré-definidas. Exemplos
Uso da Rede Neural Artificial Self Organizing Maps (SOM) na clusterização de dados meteorológicos
Trabalho apresentado no CMAC-Sul, Curitiba-PR, 2014. Uso da Rede Neural Artificial Self Organizing Maps (SOM) na clusterização de dados meteorológicos Jorge V. R. Bonato, Paulo H. Siqueira Programa de
Aprendizado por Instâncias Janelas de Parzen & Knn
Universidade Federal do Paraná (UFPR) Especialização em Engenharia Industrial 4.0 Aprendizado por Instâncias Janelas de Parzen & Knn David Menotti www.inf.ufpr.br/menotti/ci171-182 Hoje Aprendizado por
Consulta a banco de dados no Spring
UNIVERSIDADE FEDERAL DE MINAS GERAIS INSTITUTO DE GEOCIÊNCIAS DEPARTAMENTO DE CARTOGRAFIA Laboratório de Geoprocessamento Consulta a banco de dados no Spring Grazielle Anjos Carvalho Vladimir Diniz Belo
2. Redes Neurais Artificiais
Computação Bioinspirada - 5955010-1 2. Redes Neurais Artificiais Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 2.2. Perceptron 2.2.1. Introdução 2.2.2. Funcionamento do perceptron
A evolução natural deu ao cérebro humano muitas características desejáveis que não estão presentes na máquina de von Neumann:
Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de Tecnologias PUC-Campinas João Luís Garcia Rosa 2004 2 A evolução natural deu ao cérebro humano muitas características desejáveis
Redes Neurais Artificiais
Redes Neurais Artificiais Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Redes Neurais Biológicas 2. Neurônio Artificial 3. Rede Neural Artificial 4. Keras 1 Redes Neurais Biológicas
Aula 3: Análise Exploratória de Dados Espaciais (AEDE) Prof. Eduardo A. Haddad
Aula 3: Análise Exploratória de Dados Espaciais (AEDE) Prof. Eduardo A. Haddad Exercício 4 (spatial scale and rate of density) Inferência pode mudar com a escala espacial Problemas de agregação espacial
CEFET/RJ. Aprendizado de Máquina - Trabalho 01
CEFET/RJ Programa de Pós-graduação em Ciência da Computação Aprendizado de Máquina - Trabalho 01 Prof. Eduardo Bezerra ([email protected]) Setembro/2017 Conteúdo 1 Regressão Linear com uma Variável
Estatísticas e Relatórios. Treinamento OTRS Help Desk
Estatísticas e Relatórios Treinamento OTRS Help Desk Sumário Estatística... 3 Visão Geral... 3 Gerando Relatórios... 4 Criação de Relatórios... 5 Lista de Chamado... 7 Acumulação de Chamados...10 Tempo
Métodos Não Paramétricos
Universidade Federal do Paraná Departamento de Informática Reconhecimento de Padrões Métodos não Paramétricos Luiz Eduardo S. Oliveira, Ph.D. http://lesoliveira.net Métodos Não Paramétricos Introduzir
Capítulo 7. Mapas Auto-Organizados de Kohonen - SOM
Capítulo 7 Mapas Auto-Organizados de Kohonen - SOM Neste capítulo estudaremos um dos mais populares algoritmos na categoria de aprendizado não-supervisionado, as RNAs conhecidas como Mapas Auto-Organizados
Dados Vetoriais Dados Matriciais Dados Cadastrais. Representação contínua de fenômenos do espaço geográfico
Um pouco sobre a NOSSA MISSÃO Processamento Digital é um endereço da Web criado pelo geógrafo Jorge Santos com objetivo de compartilhar dicas sobre Geoprocessamento e Software Livre. O conteúdo do site
Manual Básico EPIINFO
Manual Básico EPIINFO Disciplina de Políticas Públicas em Alimentação e Nutrição Disciplina de Estágio de Nutrição em Saúde Pública Profª Drª Luciana Cisoto Ribeiro Ribeirão Preto 2017 EPI INFO 7.2 for
UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica
REDES NEURAIS ARTIFICIAIS MÁQUINA DE VETOR DE SUPORTE (SUPPORT VECTOR MACHINES) Prof. Dr. André A. P. Biscaro 1º Semestre de 2017 Introdução Poderosa metodologia para resolver problemas de aprendizagem
Sensoriamento Remoto
LABORATÓRIOS DIDÁTICOS DE GEOPROCESSAMENTO Sensoriamento Remoto Classificação Supervisionada de Imagens de Sensoriamento Remoto Elaboração: Cláudia Soares Machado Mariana Giannotti Rafael Walter de Albuquerque
Módulo 18- Análise de Cluster Tutorial SPSS Análise dos Resultados Método Hierárquico e Não-Hierárquico
Tutorial SPSS Módulo 8 Análise de Cluster Módulo 8- Análise de Cluster Tutorial SPSS Análise dos Resultados Método Hierárquico e Não-Hierárquico Situação Problema Apresentamos novamente a situação problema
Unidade 08 MATLAB Neural Network Toolkit
Unidade 08 MATLAB Neural Network Toolkit 1. Introdução Uma rede neural artificial (NN daqui em diante) é um modelo matemático que consiste de neurônios interconectados que imitam, em uma escala menor,
Módulo 19 - Análise Discriminante Geração de Tabelas
Módulo 19 - Análise Discriminante Geração de Tabelas Situação Problema Um banco deseja classificar seus clientes de acordo com seu perfil de investimento: investidor conservador, investidor moderado ou
A instalação do DCR compreende apenas a descompactação do arquivo DCR.zip num diretório no disco. Descompacte o arquivo DCR.zip num novo diretório.
Manual DCR Sumário Apresentação... 1 Instalar o DCR... 1 Ativar o DCR... 1 Treinamento... 2 Entrar no Modo Treinamento... 2 Criar um Conjunto de Entrada... 2 Treinar a RNA... 4 Retreinar a RNA... 5 Testar
Projeto de Redes Neurais e MATLAB
Projeto de Redes Neurais e MATLAB Centro de Informática Universidade Federal de Pernambuco Sistemas Inteligentes IF684 Arley Ristar [email protected] Thiago Miotto [email protected] Baseado na apresentação
Aprendizado de Máquina (Machine Learning)
Ciência da Computação (Machine Learning) Aula 07 Classificação com o algoritmo knn Max Pereira Classificação com o algoritmo k-nearest Neighbors (knn) Como os filmes são categorizados em gêneros? O que
Como Mudar a Senha do Roteador Pelo IP o.1.1. Configure e Altere a Senha do seu Roteador acessando o IP Acesse o Site e Confira!
Como Mudar a Senha do Roteador Pelo IP 192.168.o.1.1. Configure e Altere a Senha do seu Roteador acessando o IP 192.168.1.1. Acesse o Site e Confira! If you are using the IP address 192.168.0.1.1, take
Laboratório Preprocessamento com WEKA Explorer
Laboratório Preprocessamento com WEKA Explorer Faça o download do dataset test_credit.csv*, e execute as seguintes tarefas: 1. Use o Weka Viewer para ter uma visão geral do dataset original. 2. Substitua
Prof. Marcelo Azevedo Costa. Departamento de Engenharia de Produção Universidade Federal de Minas Gerais
Prof. Marcelo Azevedo Costa Departamento de Engenharia de Produção Universidade Federal de Minas Gerais Leitura de dados: leitura de dados a partir de arquivos leitura de dados a partir de páginas na web.
Classificadores Lineares
Universidade Federal do Paraná (UFPR) Bacharelado em Informática Biomédica Classificadores Lineares David Menotti www.inf.ufpr.br/menotti/ci171-182 Hoje Funções Discriminantes Lineares Perceptron Support
Redes Neurais e Sistemas Fuzzy
Redes Neurais e Sistemas Fuzzy Redes de uma única camada O Perceptron elementar Classificação de padrões por um perceptron A tarefa de classificação consiste em aprender a atribuir rótulos a dados que
SEMINÁRIO DOS ARTIGOS:
SEMINÁRIO DOS ARTIGOS: Text Detection and Character Recognition in Scene Images with Unsupervised Feature Learning End-to-End Text Recognition with Convolutional Neural Networks Fernanda Maria Sirlene
Redes Neurais Artificiais
Redes Neurais Artificiais Neurônio Natural Dendritos: recebe os estímulos transmitidos por outros neurônios Soma Sinapse Axônio Soma: coleta e combina informações vindas de outros neurônios Sinapse Dendrito
Aprender a utilizar o aplicativo Gnuplot para fazer gráficos
Capitulo 11. GRÁFICOS COM GNUPLOT (versão 5.03) OBJETIVOS DO CAPÍTULO Aprender a utilizar o aplicativo Gnuplot para fazer gráficos Aprender a utilizar o aplicativo Gnuplot interativamente com um programa
Introdução à Mineração de Dados com Aplicações em Ciências Espaciais
Introdução à Mineração de Dados com Aplicações em Ciências Espaciais Escola de Verão do Laboratório Associado de Computação e Matemática Aplicada Rafael Santos Dia 2: 1 /59 Programa Dia 1: Apresentação
Capítulo 11. GRÁFICOS COM WGNUPLOT
Capítulo 11. GRÁFICOS COM WGNUPLOT OBJETIVOS DO CAPÍTULO Aprender a utilizar o aplicativo Wgnuplot para fazer gráficos Aprender a utilizar o aplicativo Wgnuplot interativamente com um programa em FORTRAN
Quarto projeto computacional (data de entrega: 05/06/17)
Quarto projeto computacional (data de entrega: 05/06/17) 1. Escreva um programa em MATLAB (ou na sua linguagem favorita) que implemente numericamente o modelo de neurônio integra-e-dispara com vazamento
SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.
LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre
