Quando scegliere Stochastic Hill Climbing su Steepest Hill Climbing?


Risposte:


3

Gli algoritmi di arrampicata su pendio più ripidi funzionano bene per l'ottimizzazione convessa. Tuttavia, i problemi del mondo reale sono in genere del tipo di ottimizzazione non convessa: ci sono più picchi. In tali casi, quando questo algoritmo inizia con una soluzione casuale, la probabilità che raggiunga uno dei picchi locali, anziché il picco globale, è elevata. Miglioramenti come la ricottura simulata migliorano questo problema consentendo all'algoritmo di allontanarsi da un picco locale e aumentando così la probabilità di trovare il picco globale.

Ovviamente, per un semplice problema con un solo picco, l'arrampicata più ripida è sempre migliore. Può anche utilizzare l'interruzione anticipata se viene rilevato un picco globale. In confronto, un algoritmo di ricottura simulato sarebbe effettivamente saltare da un picco globale, tornare indietro e saltare di nuovo via. Ciò si ripeterebbe fino al completo raffreddamento o al completamento di un determinato numero predefinito di iterazioni.

I problemi del mondo reale riguardano i dati rumorosi e mancanti. Un approccio stocastico all'arrampicata in collina, sebbene più lento, è più robusto per questi problemi e la routine di ottimizzazione ha una maggiore probabilità di raggiungere il picco globale rispetto all'algoritmo più ripido in salita.

Epilogo: questa è una buona domanda che solleva una domanda persistente quando si progetta una soluzione o si sceglie tra vari algoritmi: il trade-off di costo computazionale-prestazioni. Come avresti potuto sospettare, la risposta è sempre: dipende dalle priorità del tuo algoritmo. Se fa parte di un sistema di apprendimento online che opera su un batch di dati, allora c'è un forte vincolo di tempo, ma un debole vincolo di prestazioni (i successivi lotti di dati correggeranno errori erronei introdotti dal primo lotto di dati). D'altra parte, se si tratta di un'attività di apprendimento offline con in mano tutti i dati disponibili, le prestazioni sono il principale vincolo e sono consigliati gli approcci stocastici.


2

Cominciamo con alcune definizioni prima.
L'arrampicata in salita è un algoritmo di ricerca che esegue semplicemente un ciclo e si muove continuamente nella direzione di un valore crescente, cioè in salita. Il loop termina quando raggiunge un picco e nessun vicino ha un valore più alto.

L'arrampicata stocastica , una variante dell'arrampicata in collina, sceglie una scelta casuale tra le mosse in salita. La probabilità di selezione può variare con la ripidezza della mossa in salita. Due metodi ben noti sono:
Hill climbing di prima scelta: genera successori in modo casuale fino a quando ne viene generato uno che è migliore dello stato attuale. * Considerato buono se lo stato ha molti successori (come migliaia o milioni).
Arrampicata in salita a riavvio casuale:Lavora sulla filosofia di "Se non ci riesci, prova, riprova".

Ora alla tua risposta. L'arrampicata stocastica può effettivamente migliorare in molti casi . Considera il caso seguente. L'immagine mostra il paesaggio dello spazio-stato. L'esempio presente nell'immagine è tratto dal libro Intelligenza artificiale: un approccio moderno .

inserisci qui la descrizione dell'immagine

Supponiamo di essere nel punto indicato dallo stato corrente. Se si implementa un semplice algoritmo di arrampicata in collina, si raggiunge il massimo locale e l'algoritmo termina. Anche se esiste uno stato con un valore della funzione obiettivo più ottimale, ma l'algoritmo non riesce a raggiungerlo perché bloccato al massimo locale. L'algoritmo può anche rimanere bloccato ai massimi locali piatti .
Il riavvio casuale in salita conduce una serie di ricerche in salita da stati iniziali generati casualmente fino a quando non viene trovato uno stato obiettivo.

Il successo dell'arrampicata in collina dipende dalla forma del paesaggio spazio-statale. Nel caso ci siano solo pochi massimi locali, altipiani piatti; la salita in salita a riavvio casuale troverà molto rapidamente una buona soluzione. La maggior parte dei problemi della vita reale ha un paesaggio spaziale molto approssimativo, che li rende non adatti all'uso dell'algoritmo di arrampicata in collina o di una sua variante.

NOTA: l' algoritmo Hill Climb può essere utilizzato anche per trovare il valore minimo e non solo i valori massimi. Ho usato il termine massimo nella mia risposta. Nel caso in cui tu stia cercando valori minimi, tutte le cose saranno inverse, incluso il grafico.


Ci forniresti maggiori dettagli su come funziona davvero l'algoritmo stocastico di arrampicata in collina?
Mostafa Ghadimi,

1

Sono nuovo anche a questi concetti, ma per come l'ho capito, l'arrampicata Stochastic avrebbe prestazioni migliori nei casi in cui il tempo di calcolo è prezioso (include il calcolo della funzione fitness) ma non è davvero necessario raggiungere il meglio possibile soluzione. Raggiungere anche un ottimo locale sarebbe ok. I robot che operano in uno sciame sarebbero un esempio in cui questo potrebbe essere utilizzato.

L'unica differenza che vedo nell'arrampicata su collina più ripida è il fatto che cerca non solo i nodi vicini ma anche i successori dei vicini, praticamente come il modo in cui un algoritmo di scacchi cerca molte più mosse avanti prima di selezionare la mossa migliore.


0

TLDR : se si sta tentando di trovare l'ottimale globale diS, dove S è una funzione di punteggio con più optima locali, in modo tale che non tutti gli optima locali abbiano un valore uguale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.