Domanda

mi piace per fermare l'esecuzione quando Batch SOM diventa convergenti. Che funzione di errore che posso usare per determinare la convergenza?

È stato utile?

Soluzione

Quando si parla di convergenza per SOM, per una mappa data dimensione (n x m), si vuole sapere se iterazioni sufficienti dell'algoritmo hanno eseguito per garantire la mappa è "Stabile". Ciò significa, in senso lato, non nuovi ingressi (osservazioni) alla mappa vengono poste agli stessi vettori neuroni / libro di codici se la mappa viene riqualificato molte volte? (Ignorando la questione del fatto che la disposizione della mappa può passare in giro quando si è addestrato ogni tempo, che è bene fintanto che i cluster sono ancora disposti in modo stabile).

Per aiutare a rispondere alla domanda se sufficiente di iterazioni hanno eseguito, vedere i documenti accademici elencati di seguito. Entrambi i giornali toccano anche sulla questione di ciò che la dimensione della mappa è appropriato (quello n valori x m contribuiscono ad assicurare la convergenza del SOM?).

Uno degli approcci tradizionali, che è stato popolare nei documenti qui è dato:

strumenti statistici per valutare l'affidabilità delle mappe auto-organizzanti (Bodt, Cottrell, Verleysen)

Più di recente, questo metodo è venuto su, che sembra piuttosto promettente:

Un criterio di convergenza per l'auto-organizzazione MAPPE , Maestri tesi, Benjamin h. Ott (Università di Rhode Island)

Questa tesi, a mio parere, era davvero ben scritto e un piacere da leggere. Cosa c'è anche bello è che questa ricerca è stato scritto come un test di SOM di convergenza in un (piuttosto sconosciuto) pacchetto R, chiamato popsom. Check it out:

popsom

Altri suggerimenti

Sono abbastanza sicuro che la funzione di costo si intende invece di funzione di errore.

SOM non richiede una funzione di errore (né una funzione di costo).

Al livello superiore della tassonomia Machine Learning, SOM è un senza supervisione tecnica di apprendimento -. Alcun obiettivo vettore, e quindi nessuna "target-vettore" meno "value_at_the_current_iteration" per ridurre al minimo

Un altro modo di pensarci bene: Il ruolo di una funzione di costo è di ridurre al minimo alcuni costi; in ML, è il delta tra modello di calcolo e dati forniti. In SOM, nessun dato è fornito per l'algoritmo per questo scopo.

(mi rendo conto che questo è un po 'di confusione perché i dati in ingresso da cui si crea la rete è spesso definito come "dati di allenamento" - probabilmente questo è il ruolo dei dati di ingresso nelle tecniche ML vigilati, che sono molto più comuni di quelli privi di sorveglianza e 'probabilmente anche confusione perché Teuvo Kohonen, la persona accreditata con 'inventare' SOM, originariamente denominato loro come una classe di reti neurali -. e, naturalmente, NN è una tecnica sorvegliato e non si basa su una funzione di costo (spesso gradiente discesa.))

Infine, solo per assicurarsi che, ho controllato il mio codice SOM, nonché il codice dal libro di testo ML da Marsland, "Machine Learning: An Algorithmic Perspective". In entrambi il mio codice e la sua, il criterio fermandosi solo qualsiasi valore per "iterazioni massimo" L'utente passati in quando ha chiamato la funzione principale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top