Pergunta

Eu gosto de interromper a execução quando o lote SOM é convergido. Que função de erro posso usar para determinar a convergência?

Foi útil?

Solução

Ao falar sobre convergência para SOMs, para um determinado tamanho do mapa (NXM), você deseja saber se iterações suficientes do algoritmo foram executadas para garantir que o mapa seja "estável". Isso significa que, frouxamente falando, as novas entradas (observações) no mapa são colocadas nos mesmos vetores de neurônios /cadernos de código se o mapa for treinado muitas vezes? (Ignorando a questão do fato de que o arranjo do mapa pode alternar quando ele é treinado a cada vez, o que é bom, desde que os clusters ainda estivessem dispostos de maneira estável).

Para ajudar a responder à pergunta sobre se as iterações suficientes foram executadas, consulte os trabalhos acadêmicos listados abaixo. Ambos os trabalhos também abordam a questão de qual tamanho de mapa é apropriado (quais valores de NXM ajudam a garantir a convergência do SOM?).

Uma das abordagens tradicionais que tem sido popular em artigos é apresentada aqui:

Ferramentas estatísticas para avaliar a confiabilidade dos mapas auto-organizados (Bodt, Cottrell, Verleysen)

Mais recentemente, esse método surgiu, o que parece bastante promissor:

Um critério de convergência para mapas auto-organizados, tese de mestrado, Benjamin h. OTT (Universidade de Rhode Island)

Esta tese, na minha opinião, foi muito bem escrita e um prazer de ler. O que também é bom é que esta pesquisa foi escrita como um teste de convergência SOM em um pacote (bastante desconhecido) em r, chamado popsom. Confira:

Popsom

Outras dicas

Tenho certeza de que você quer dizer função de custo em vez de função de erro.

O SOM não requer uma função de erro (nem uma função de custo).

No nível superior da taxonomia de aprendizado de máquina, SOM é um Técnica de aprendizado não supervisionada-Não o vetor de destino e, portanto, nenhum "vetor de destino" menos "value_at_the_current_iteration" para minimizar.

Outra maneira de pensar sobre isso: o papel de uma função de custo é minimizar algum custo; No ML, é o delta entre o cálculo do modelo e os dados fornecidos. No SOM, nenhum dado é fornecido ao algoritmo para esse fim.

(Percebo que isso é um pouco confuso porque os dados de entrada a partir dos quais a rede é criada é frequentemente chamada de "dados de treinamento"-provavelmente esse é o papel dos dados de entrada nas técnicas supervisionadas de ML, que são muito mais comuns do que as não supervisionadas. Provavelmente também é confuso porque Teuvo Kohonen, a pessoa creditada com o 'Inventing' SOM, originalmente se referiu a eles como uma classe de redes neurais-e é claro que o NN é uma técnica supervisionada e depende de uma função de custo (geralmente gradiente. )

Finalmente, apenas para ter certeza, verifiquei meu próprio código SOM e o código do livro ML de Marsland, "Machine Learning: uma perspectiva algorítmica". Tanto no meu código quanto no dele, o único critério de parada, qualquer que seja o valor para "iterações máximas", o usuário passou quando chamou a função principal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top