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.