Come si programma la paura in una rete neurale?


8

Se sei stato attaccato da un ragno una volta è probabile che non ti avvicinerai mai più a un ragno.

In un modello di rete neurale, avere una brutta esperienza con un ragno ridurrà leggermente la probabilità di avvicinarti a un ragno a seconda della frequenza di apprendimento.

Questo non è un bene. Come puoi programmare la paura in una rete neurale, in modo tale da non aver bisogno di centinaia di esempi di morso di un ragno per ignorare il ragno. E inoltre, che non riduce solo la probabilità che sceglierai di avvicinarti a un ragno?


La paura è un tasso di apprendimento ridotto con una componente stocastica aumentata, ma senza un centro linguistico il sistema non può dire: "Temo".
FelicityC

Articolo WP Apprendimento one-shoot en.wikipedia.org/wiki/One-shot_learning include una sezione sull'apprendimento con un esempio.
Jaume Oliver Lafont,

Risposte:


5

Ci sono molti approcci che potresti adottare per questo. Creare un analogo artificiale realistico per la paura, implementato biologicamente negli animali, potrebbe essere possibile, ma è molto coinvolto nella risposta alla paura di un animale reale che non si applicherebbe ora nei robot AI più semplici. Ad esempio, un animale che entra in uno stato di paura in genere utilizzerà gli ormoni per segnalare cambiamenti in tutto il corpo, favorendo la spesa di risorse e l'assunzione di rischi ("lotta o fuga").

Nell'apprendimento di base del rinforzo, la rete neurale non dovrebbe decidere direttamente di attivare una "modalità paura". Invece, è possibile utilizzare alcuni design nell'agente e l'algoritmo di apprendimento per aiutare a imparare da eventi rari ma significativi. Ecco alcune idee:

  • Esperienza di replay. Potresti già farlo nello scenario Pacman, se stai usando DQN o qualcosa di simile. Memorizzare la transizione di stato e la ricompensa che ha causato una grande ricompensa positiva o negativa e imparare ripetutamente da essa dovrebbe compensare la tua preoccupazione

  • Spazzamento prioritario. È possibile utilizzare le maggiori differenze riscontrate tra la ricompensa prevista e quella effettiva per distorcere il campionamento dalla memoria di replay verso eventi significativi e quelli strettamente collegati ad essi.

  • Pianificazione. Con un modello predittivo - forse basato su transizioni campionate (è possibile riutilizzare la memoria di replay dell'esperienza per questo), o forse una rete di previsione della transizione di stato addestrata - è possibile guardare più passi avanti simulando. Esiste una forte relazione tra RL e pianificazione del futuro, sono algoritmi molto simili. La differenza è in quali stati e azioni vengono considerati e se vengono simulati o sperimentati. Il replay dell'esperienza confonde la linea qui: può essere inquadrata come apprendimento dalla memoria o miglioramento delle previsioni per la pianificazione. La pianificazione aiuta ottimizzando le decisioni senza la necessità di ripetere altrettanto le esperienze: una combinazione di pianificazione e apprendimento può essere molto più potente che in isolamento.

  • Selezione più intelligente di azioni esplorative. Epsilon-avido, in cui fai un'azione avida o fai un'azione completamente casuale, ignora completamente quanto potresti aver già imparato sulle azioni alternative e sul loro merito relativo. È possibile utilizzare qualcosa come Upper Confidence Bound con un agente basato sul valore.

  • In un mondo deterministico, aumentare le dimensioni del lotto per l'apprendimento e la pianificazione, poiché ci si può fidare che quando si apprende una transizione una volta, si conosce tutto al riguardo.

Dovrai sperimentare in ogni ambiente. Puoi creare agenti di apprendimento più prudenti nell'esplorazione in prossimità di aree a bassa ricompensa. Tuttavia, se l'ambiente è tale che è necessario correre dei rischi per ottenere le migliori ricompense (come spesso accade nei giochi), potrebbe non essere ottimale in termini di tempo di apprendimento avere un agente "timido". Ad esempio nel tuo esempio di Pacman, a volte i fantasmi dovrebbero essere evitati, a volte dovrebbero essere inseguiti. Se inizialmente l'agente avesse imparato una forte avversione, potrebbe volerci molto tempo per superarlo e imparare a inseguirli dopo aver mangiato un potenziamento.

Per il tuo esempio di ragno, come costruttore dell'esperimento, allora sai che il morso è sempre cattivo e che l'agente deve evitarlo il più possibile. Per la maggior parte degli algoritmi RL, non esiste tale conoscenza, tranne quella acquisita attraverso l'esperienza. Un modello mondiale MDP non deve necessariamente corrispondere al buon senso, può darsi che un morso di ragno sia cattivo (ricompensa di -10) il 90% delle volte e un buon 10% delle volte (ricompensa di +1000). L'agente può scoprirlo solo venendo morso più volte. . . RL in genere non inizia con alcun sistema a fare ipotesi su questo genere di cose ed è impossibile elaborare una regola generale su tutti i possibili MDP. Invece, per un sistema RL di base, puoi prendere in considerazione la modifica di iperparametri o concentrarsi sugli eventi chiave come suggerito sopra. Al di fuori di un sistema RL di base potrebbe esserci il merito di replicare altre cose,


1
Sarà un processo piuttosto complesso per modellare qualcosa come la paura ... tassi di apprendimento diversi per oggetti diversi (ma forse è curato dal rischio crescente = aumento del tasso di apprendimento), quindi alcune persone hanno paura irrazionale dei bug ... poi c'è una teoria secondo cui la nostra mente lavora logaritmicamente, cioè hai paura di 1 tigre, sei ancora più afrai di 2 tigri ... hai paura di 100 tigri, ma la tua paura non aumenta tanto per 101 tigri come in l'esempio di 1 -> 2 caso di tigre ..... tutti questi possono essere modellati?
DuttaA,

1
@DuttaA: sono d'accordo, motivo per cui suggerisco un mucchio di cose che non sono "vera paura (tm)". Penso che una "paura istintiva" molto basilare usando RL implicherebbe in qualche modo l'aggiunta di un valore basso precedente nella funzione valore programmaticamente senza esperienza reale.
Neil Slater,

2

Penso che ci siano 2 modi per far sì che ciò accada: 1) programmare esplicitamente la paura come vincolo o parametro in qualche espressione logica, oppure 2) utilizzare un ampio set di dati di allenamento per insegnare la paura.

Pensa a un gioco Pacman di base: se Pacman teme i fantasmi o non li teme è difficile da dire, ma SONO fantasmi e Pacman li evita, quindi penso che sia sicuro che possiamo usarlo come esempio base di "paura". Dal momento che, in questo gioco, fear = avoidance, è possibile programmare logicamente l'evitamento in modo che sia una sorta di distanza. Ho provato questo con l'apprendimento del rinforzo di Pacman. Ho cercato di impostare una distanza di 5 quadrati dai fantasmi e ogni volta che Pacman poteva vedere un fantasma entro 5 quadrati, si muoveva in una direzione diversa. Quello che ho scoperto è che mentre Pacman cercherà di evitare i fantasmi, non conosce la strategia (o ha intelligenza). Pacman si sarebbe semplicemente allontanato dai fantasmi fino a quando non fosse stato inscatolato.

Il mio punto è che puoi programmare la tua rete per evitare che i ragni non diventino un po ', ma senza formazione, creerai semplicemente un parametro di base che potrebbe causare problemi se ci sono 100 ragni super aggressivi che ti arrivano! Il modo migliore è usare un po 'di logica di base per evitare i ragni, ma poi addestrare la rete per essere ricompensati quando si evitano i ragni migliori.

Ora, ci sono molte situazioni di paura, quindi questo esempio con Pacman non si applica necessariamente a tutti ... Sto solo cercando di dare un'idea della mia esperienza con l'insegnamento della paura con l'apprendimento di rinforzo in Pacman.


1
Sto pensando che per alcune cose come il fuoco debba essere un istinto. Perché quando avrai avuto alcuni "esempi di allenamento" saresti piuttosto bruciato. Ma con altre cose dovresti solo avere un esempio come farsi morso da un criceto, dovresti imparare che i criceti hanno i denti aguzzi, quindi non mettere la mano in bocca. Quindi per alcune cose l'istinto dovrebbe semplicemente impedirti di fare cose come mettere la mano nel fuoco. O farti tornare indietro. Ma dovresti anche avere paura di avvicinarti al fuoco se apprendi che potresti essere colpito da una scintilla?
Zooby,

2
@zooby nella mia esperienza i bambini piccoli non imparano davvero a temere la stufa calda o il fuoco finché non si bruciano. (Perchè devi tenerli così vicini!) Direi che se l'algoritmo sta imparando a evitare attraverso una tecnica come l'apprendimento per rinforzo, sta "imparando cosa temere", mentre, se ha il meccanismo di elusione pre-programmato, sarebbe "istinto".
DukeZhou

2

Paura di questo tipo è una risposta irrazionale (grande incentivo negativo in risposta a un piccolo rischio). La modellistica della paura dovrebbe modellare un fattore di "volgarità" associato, ad esempio, ai ragni in modo che si verifichi una risposta normalmente non proporzionale. Il fattore "grossolanità" potrebbe manifestarsi in molte altre forme per amplificare una risposta a un'esperienza precedentemente spiacevole, sebbene non particolarmente pericolosa. Tale paura può anche essere ispirata dal sentito dire (pensa l'isteria causata da una notizia sensazionale). Un NN normalmente risponderebbe solo minimamente a un rischio minimo.


1

Vorrei suggerire all'agente di ponderare il suo apprendimento da un determinato evento in base alla gravità delle conseguenze dell'evento. Per esempio. Hanno sviluppato un modello di minaccia come quelli tipicamente elaborati nel campo della sicurezza delle informazioni. Alto rischio ma bassa probabilità è qualcosa che può essere considerato e giudicato contro.

Cercare di imitare direttamente la paura umana sarebbe sciocco, probabilmente finiresti con IA che hanno fobie se ci riuscissi troppo bene.

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.