SOM Flashcards
O que é a regra de korunen? Qual sua finalidade de aplicação?
Para o neurônio i = i*
iw(q) = iw(q-1) + a(p(q) - iw(q-1))
para i!=i*
iw(q) = iw(q-1)
a linha i* da matriz de pesos move em direção a entrada, ou seja, se move em direção aos dados.
Regra de aprendizagem usada em competitive layer e mapas auto-organizáveis.
Quais os problemas da regra de Korunen quando usada com a Competitive Layer?
- escolha da taxa de aprendizagem entre estabilidade e velocidade de aprendizado. alpha proximo de zero aprende devagar, mas é mais estável próximo ao centro de um cluster. alpha próximo de 1 aprende rápido, mas oscila quando atingi um cluster. Solução: meio termo usando decaimento alpha grande com gamma alpha*1e-gamma.
- estabilide quando os clusters estão próximos
- vetor peso inicial localizado muito longe dos vetores de entrada logo esse nunca ganha a competição (dead neuron). Solução: adicionar bias negativo a entrada e decrescer cada vez que o neuronio ganhar.
- Tem tem o número de classes iguais ao número de neuronios isso pode ser não aceitável para algumas aplicações.
Explique o que são mapas auto-organizavéis e seu funcionamento?
Funciona de forma muito parecida a uma camada competitiva usando a regra de Kohonen. determina-se i* (winning neuron) atualiza-se todos os neuronios que ficam em uma vizinhança Ni(d) de i.
iw(q) = (1-alpha)iw(q-1) + alphap(q)
onde i in Ni(d)
Ni(d) = {j, dij<=d}
Qual a vantagem de mapas auto-organizáveis em relação a competitive layer?
Segue melhor a analogia biológica de atualizar “bolhas” não apenas o vencedor.
Supera os problemas da regra de Korunen quando usada com a Competitive Layer.
Ela aprende não somente a classificar as entradas, mas também aprende a topologia do espaço de entrada.
Explique o que é a rede LVQ (Leaning Vector Quatization)?
É uma rede híbrida. Usa aprendizagem não-supervisionada e supervisionada. É adicionada uma segunda camada a competitive layer que combina multiplas regiões convexas em classes que podem ter qualquer forma.
Cada neuronio da primeira camada é assinalado a uma classe, com vários neuronios assinalados a mesma classe.
A camada de competição calcula a distância diretamente entre o vetor de entrada e o vetor de protótipos (não usa produto interno). n1i = ||iw1 - p||. A vantagem é que os vetores não precisam ser normalizados.
O neuronio vencedor indica uma subclasse em vez de uma classe.
A segunda camada é usada para combinar subclasses em uma única classe.
wki^2 = 1 => subclasse i é parte da classe k
Explique o aprendizado LVQ.
-> Gerar W^2
Assinalar todos elementos de W^2 a zero exceto
Se um neuronio i é assinalado a classe k então setar wki^2=1
->Em cada iteração a entrada p é apresentada a rede e calcula-se n1
os neuronios competem i* ganha e o elemento i* em a1 é setado a 1.
a^2 = W^2* a1
tendo k* (não nulo) indicando que p é assinalado a classe k.
se p é corretamente classificado movemos os pesos iw1 em direção a p.
iw(q) = iw(q-1) + alpha(p(q) - iw1(q-1)) se a2k=1
se p é não é corretamente classificado movemos os pesos iw1 em longe de p.
iw(q) = iw(q-1) - alpha(p(q) - iw1(q-1)) se a2k=1
> > > O resultado será que cada neuronio escondido movem em direção a vetores que caem em classes que formam subclasses e longe de vetores que caem em outras classes.
Explique LVQ2 e sua vantagem em relação LVQ?
se p é corretamente classificado movemos os pesos i*w1 (apenas um) em direção a p.
se p é não é corretamente classificado atualizamos dois neuronios
- um peso se afasta da entrada
- um peso se aproxima da entrada (mais perto neuronio que classificou corretamente)
resolve certos problemas de pesos iniciais que nunca ganham a competição. E pesos que tem que viajar em regiões que não representam.
É as vezes dito que o algoritmo SOM preserva as relações topológicas que existem no espaço de entrada. Estritamente falando, essa propriedade pode ser garantida somente para espaços de entrada igual ou menor que a lattice (grid) neural.
Discuta a validade dessa última sentença.
Essa sentença é falsa.
Uma SOM preserva as relações topológicas da entrada para qualquer dimensão de espaço de entrada. Uma vez que, vetores de entradas n-dimensionais próximos no espaço n-dimensional, segundo a norma L2, mantem a mesma relação topológica na lattice também devido ao algoritmo de kohunen que determina o neurônio vencedor segundo a norma L2 e cooperam com seus vizinhos que são atualizados também.
Apresente a atualização do algoritmo SOM (regre de kohunen) em lote.
No algoritmo incremental (online) a atualização dos pesos ocorre padrão a padrão (amostra a amostra).
Ja no algoritmo em lote a atualização dos pesos ocorre ao final de todos os dados N.
delta_wj(t+1) = delta_wj(t) + alphahcj(xi-wj)
para i=1…N
wi(n_it+1) = wi(n_it) + 1/N*delta_wj
Qual a quantidade “ideal” de neurônios em uma lattice 2D, por exemplo, sendo que o problema tem 4 classes?
Sabendo que o problema apresenta 4 classes deve se ter pelo menos 10 neurônios por classes.
Na verdade deve se ter uma quantidade suficiente de neurônios na lattice que possa se formar depressões e vales que discriminem os agrupamentos.
A “melhor solução” deve ser obtida na tentativa e erro de forma a obter o menor TE (erro topográfico) e aquela com o valor intermediário para o erro de quantização QE (Quantization Error).
QE = 1/N sum_{n=1}^{N}||wj - xn||
TE = 1/N sum_{n=1}^{N}u(xn)
onde u(vn)=1 caso mc e md não são adjacentes.
onde mc (BMU) e md (segundo BMU)
O que é a matriz-U?
É uma ferramenta que permite realizar a discriminação dos agrupamentos -> a partir de uma medida do grau de similaridade (geralmente norma L2) entre os pesos de neurônios adjacentes.
O grau similaridade é plotado na 3D gerando uma superfície em relevo ou usando heatmap.
O algoritmo incremental é bastante sensível a ordem em que os dados são apresentados e sensível à taxa de aprendizado (alpha). Apresente um solução possível.
Uma possível solução é o algoritmo em lote ou em batch.