Apprendimento senza supervisione
Come suggerisce il nome, questo tipo di apprendimento viene svolto senza la supervisione di un insegnante. Questo processo di apprendimento è indipendente. Durante l'addestramento di ANN sotto apprendimento non supervisionato, i vettori di input di tipo simile vengono combinati per formare cluster. Quando viene applicato un nuovo pattern di input, la rete neurale fornisce una risposta di output che indica la classe a cui appartiene il pattern di input. In questo, non ci sarebbe alcun feedback dall'ambiente su quale dovrebbe essere l'output desiderato e se è corretto o errato. Quindi, in questo tipo di apprendimento, la rete stessa deve scoprire i modelli, le caratteristiche dai dati di input e la relazione per i dati di input sull'output.
Winner-Takes-All Networks
Questi tipi di reti si basano sulla regola dell'apprendimento competitivo e utilizzeranno la strategia in cui sceglie il neurone con il maggior numero di input totali come vincitore. Le connessioni tra i neuroni di output mostrano la competizione tra loro e uno di loro sarebbe "ON", il che significa che sarebbe il vincitore e gli altri sarebbero "OFF".
Di seguito sono riportate alcune delle reti basate su questo semplice concetto che utilizzano l'apprendimento senza supervisione.
Rete di Hamming
Nella maggior parte delle reti neurali che utilizzano l'apprendimento non supervisionato, è essenziale calcolare la distanza ed eseguire confronti. Questo tipo di rete è la rete di Hamming, dove per ogni dato vettore di input, sarebbe raggruppato in diversi gruppi. Di seguito sono riportate alcune importanti caratteristiche di Hamming Networks:
Lippmann ha iniziato a lavorare sulle reti di Hamming nel 1987.
È una rete a livello singolo.
Gli ingressi possono essere binari {0, 1} o bipolari {-1, 1}.
I pesi della rete sono calcolati dai vettori esemplari.
È una rete di pesi fissi, il che significa che i pesi rimarrebbero gli stessi anche durante l'allenamento.
Max Net
Questa è anche una rete a peso fisso, che funge da sottorete per la selezione del nodo con l'ingresso più alto. Tutti i nodi sono completamente interconnessi ed esistono pesi simmetrici in tutte queste interconnessioni ponderate.
Architettura
Utilizza il meccanismo che è un processo iterativo e ogni nodo riceve input inibitori da tutti gli altri nodi attraverso le connessioni. Il singolo nodo il cui valore è massimo sarebbe attivo o vincitore e le attivazioni di tutti gli altri nodi sarebbero inattive. Max Net utilizza la funzione di attivazione dell'identità con $$ f (x) \: = \: \ begin {cases} x & if \: x> 0 \\ 0 & if \: x \ leq 0 \ end {cases} $$
Il compito di questa rete è svolto dal peso di autoeccitazione di +1 e dalla grandezza di mutua inibizione, che è impostata come [0 <ɛ <$ \ frac {1} {m} $] dove “m” è il numero totale dei nodi.
Apprendimento competitivo in ANN
Riguarda l'addestramento senza supervisione in cui i nodi di output cercano di competere tra loro per rappresentare il modello di input. Per comprendere questa regola di apprendimento dovremo comprendere la rete competitiva che viene spiegata come segue:
Concetto di base di rete competitiva
Questa rete è proprio come una rete feed-forward a livello singolo con connessione di feedback tra le uscite. Le connessioni tra le uscite sono di tipo inibitorio, che è mostrato da linee tratteggiate, il che significa che i concorrenti non si sostengono mai.
Concetto di base della regola di apprendimento competitivo
Come detto in precedenza, ci sarebbe competizione tra i nodi di output, quindi il concetto principale è: durante l'addestramento, l'unità di output che ha l'attivazione più alta per un dato pattern di input, sarà dichiarata vincitrice. Questa regola è anche chiamata Vincitore prende tutto perché solo il neurone vincente viene aggiornato e il resto dei neuroni rimane invariato.
Formulazione matematica
Di seguito sono riportati i tre fattori importanti per la formulazione matematica di questa regola di apprendimento:
Condizione per essere un vincitore
Supponiamo se un neurone yk vuole essere il vincitore, allora ci sarebbe la seguente condizione
$$ y_ {k} \: = \: \ begin {case} 1 & if \: v_ {k}> v_ {j} \: for \: all \: \: j, \: j \: \ neq \ : k \\ 0 & altrimenti \ end {cases} $$
Significa che se qualche neurone, diciamo, yk vuole vincere, quindi il suo campo locale indotto (l'output dell'unità di somma), diciamo vk, deve essere il più grande tra tutti gli altri neuroni della rete.
Condizione della somma totale del peso
Un altro vincolo sulla regola dell'apprendimento competitivo è che la somma totale dei pesi di un particolare neurone di output sarà 1. Ad esempio, se consideriamo il neurone k poi
$$ \ displaystyle \ sum \ limits_ {k} w_ {kj} \: = \: 1 \: \: \: \: for \: all \: \: k $$
Cambio di peso per il vincitore
Se un neurone non risponde al pattern di input, non avviene alcun apprendimento in quel neurone. Tuttavia, se un particolare neurone vince, i pesi corrispondenti vengono regolati come segue:
$$ \ Delta w_ {kj} \: = \: \ begin {cases} - \ alpha (x_ {j} \: - \: w_ {kj}), & if \: neuron \: k \: wins \\ 0 & if \: neuron \: k \: loss \ end {cases} $$
Qui $ \ alpha $ è il tasso di apprendimento.
Questo mostra chiaramente che stiamo favorendo il neurone vincente regolando il suo peso e se un neurone viene perso, non dobbiamo preoccuparci di riadattare il suo peso.
K-significa algoritmo di clustering
K-means è uno degli algoritmi di clustering più popolari in cui usiamo il concetto di procedura di partizione. Iniziamo con una partizione iniziale e spostiamo ripetutamente i pattern da un cluster all'altro, fino a ottenere un risultato soddisfacente.
Algoritmo
Step 1 - Seleziona kpunti come i centroidi iniziali. Inizializzarek prototipi (w1,…,wk), ad esempio possiamo identificarli con vettori di input scelti a caso -
$$ W_ {j} \: = \: i_ {p}, \: \: \: dove \: j \: \ in \ lbrace1, ...., k \ rbrace \: e \: p \: \ in \ lbrace1, ...., n \ rbrace $$
Ogni cluster Cj è associato al prototipo wj.
Step 2 - Ripetere i passaggi 3-5 finché E non diminuisce più o l'appartenenza al cluster non cambia più.
Step 3 - Per ogni vettore di input ip dove p ∈ {1,…,n}, mettere ip nel cluster Cj* con il prototipo più vicino wj* avendo la seguente relazione
$$ | i_ {p} \: - \: w_ {j *} | \: \ leq \: | i_ {p} \: - \: w_ {j} |, \: j \: \ in \ lbrace1, ...., k \ rbrace $$
Step 4 - Per ogni cluster Cj, dove j ∈ { 1,…,k}, aggiorna il prototipo wj essere il centroide di tutti i campioni attualmente in Cj , così che
$$ w_ {j} \: = \: \ sum_ {i_ {p} \ in C_ {j}} \ frac {i_ {p}} {| C_ {j} |} $$
Step 5 - Calcola l'errore di quantizzazione totale come segue -
$$ E \: = \: \ sum_ {j = 1} ^ k \ sum_ {i_ {p} \ in w_ {j}} | i_ {p} \: - \: w_ {j} | ^ 2 $$
Neocognitron
Si tratta di una rete feedforward multistrato, sviluppata da Fukushima negli anni '80. Questo modello si basa sull'apprendimento supervisionato ed è utilizzato per il riconoscimento visivo di schemi, principalmente caratteri scritti a mano. È fondamentalmente un'estensione della rete Cognitron, che è stata sviluppata anche da Fukushima nel 1975.
Architettura
Si tratta di una rete gerarchica, che comprende molti livelli e in questi livelli esiste un modello di connettività locale.
Come abbiamo visto nel diagramma sopra, il neocognitron è diviso in diversi strati collegati e ogni strato ha due celle. La spiegazione di queste celle è la seguente:
S-Cell - Si chiama cellula semplice, che è addestrata a rispondere a uno schema particolare oa un gruppo di schemi.
C-Cell- Si chiama cella complessa, che combina l'output della cella S e contemporaneamente riduce il numero di unità in ciascun array. In un altro senso, la cellula C sposta il risultato della cellula S.
Algoritmo di formazione
Si è scoperto che l'addestramento del neocognitron procede strato per strato. I pesi dal livello di input al primo livello vengono addestrati e congelati. Quindi vengono allenati i pesi dal primo al secondo e così via. I calcoli interni tra S-cell e Ccell dipendono dai pesi provenienti dagli strati precedenti. Quindi, possiamo dire che l'algoritmo di addestramento dipende dai calcoli su cellule S e cellule C.
Calcoli in S-cell
La S-cell possiede il segnale eccitatorio ricevuto dallo strato precedente e possiede segnali inibitori ottenuti all'interno dello stesso strato.
$$ \ theta = \: \ sqrt {\ sum \ sum t_ {i} c_ {i} ^ 2} $$
Qui, ti è il peso fisso e ci è l'uscita dalla cella C.
L'ingresso in scala della cella S può essere calcolato come segue:
$$ x \: = \: \ frac {1 \: + \: e} {1 \: + \: vw_ {0}} \: - \: 1 $$
Qui $ e \: = \: \ sum_i c_ {i} w_ {i} $
wi è il peso regolato dalla cella C alla cella S.
w0 è il peso regolabile tra l'ingresso e la cella S.
v è l'input eccitatorio dalla cellula C.
L'attivazione del segnale di uscita è,
$$ s \: = \: \ begin {cases} x, & if \: x \ geq 0 \\ 0, & if \: x <0 \ end {cases} $$
Calcoli in C-cell
L'input netto dello strato C è
$$ C \: = \: \ displaystyle \ sum \ limits_i s_ {i} x_ {i} $$
Qui, si è l'output di S-cell e xi è il peso fisso dalla cellula S alla cellula C.
L'output finale è il seguente:
$$ C_ {out} \: = \: \ begin {cases} \ frac {C} {a + C}, & if \: C> 0 \\ 0, & altrimenti \ end {cases} $$
Qui ‘a’ è il parametro che dipende dalle prestazioni della rete.