Altre tecniche di ottimizzazione
Tecnica di discesa in gradiente iterata
La discesa del gradiente, nota anche come la discesa più ripida, è un algoritmo di ottimizzazione iterativo per trovare un minimo locale di una funzione. Pur riducendo al minimo la funzione, ci preoccupiamo del costo o dell'errore da minimizzare (Ricorda il problema del venditore in viaggio). È ampiamente utilizzato nell'apprendimento profondo, utile in un'ampia varietà di situazioni. Il punto da ricordare qui è che ci occupiamo di ottimizzazione locale e non di ottimizzazione globale.
Idea di lavoro principale
Possiamo comprendere l'idea di lavoro principale della discesa del gradiente con l'aiuto dei seguenti passaggi:
Innanzitutto, inizia con un'ipotesi iniziale della soluzione.
Quindi, prendi il gradiente della funzione in quel punto.
Successivamente, ripetere il processo portando la soluzione nella direzione negativa del gradiente.
Seguendo i passaggi precedenti, l'algoritmo finirà per convergere dove il gradiente è zero.
Concetto matematico
Supponiamo di avere una funzione f(x)e stiamo cercando di trovare il minimo di questa funzione. Di seguito sono riportati i passaggi per trovare il minimo dif(x).
Innanzitutto, dai un valore iniziale $ x_ {0} \: for \: x $
Ora prendi il gradiente $ \ nabla f $ della funzione, con l'intuizione che il gradiente darà la pendenza della curva in quel punto x e la sua direzione punterà all'aumento della funzione, per trovare la direzione migliore per minimizzarla.
Ora cambia x come segue -
$$ x_ {n \: + \: 1} \: = \: x_ {n} \: - \: \ theta \ nabla f (x_ {n}) $$
Qui, θ > 0 è la frequenza di allenamento (dimensione del passo) che forza l'algoritmo a fare piccoli salti.
Stima della dimensione del passo
In realtà una dimensione del passo sbagliata θpotrebbe non raggiungere la convergenza, quindi un'attenta selezione degli stessi è molto importante. I seguenti punti devono essere ricordati durante la scelta della dimensione del gradino
Non scegliere una dimensione del gradino troppo grande, altrimenti avrà un impatto negativo, ovvero divergerà anziché convergere.
Non scegliere dimensioni del gradino troppo piccole, altrimenti ci vuole molto tempo per convergere.
Alcune opzioni per quanto riguarda la scelta della dimensione del gradino -
Un'opzione è scegliere una dimensione del passo fissa.
Un'altra opzione è scegliere una dimensione del passo diversa per ogni iterazione.
Ricottura simulata
Il concetto di base della ricottura simulata (SA) è motivato dalla ricottura nei solidi. Nel processo di ricottura, se riscaldiamo un metallo al di sopra del suo punto di fusione e lo raffreddiamo, le proprietà strutturali dipenderanno dalla velocità di raffreddamento. Possiamo anche dire che SA simula il processo metallurgico di ricottura.
Utilizzare in ANN
SA è un metodo computazionale stocastico, ispirato all'analogia di Annealing, per approssimare l'ottimizzazione globale di una data funzione. Possiamo usare SA per addestrare reti neurali feed-forward.
Algoritmo
Step 1 - Genera una soluzione casuale.
Step 2 - Calcola il suo costo utilizzando alcune funzioni di costo.
Step 3 - Genera una soluzione adiacente casuale.
Step 4 - Calcola il nuovo costo della soluzione con la stessa funzione di costo.
Step 5 - Confronta il costo di una nuova soluzione con quello di una vecchia soluzione come segue -
Se CostNew Solution < CostOld Solution quindi passare alla nuova soluzione.
Step 6 - Test per la condizione di arresto, che può essere il numero massimo di iterazioni raggiunto o ottenere una soluzione accettabile.