Domanda

Ho lavorato attraverso l'esempio di apprendimento Q-network in questo Il blog di Arthur Juliani. Si basa sulla bella curiosità Lago congelato in palestra aperta esempio. La sua implementazione di base ottiene un tasso di successo di circa il 47% su 3000 iterazioni. Ho deciso di aggiungere un pregiudizio all'implementazione e ho scoperto che ha danneggiato gravemente i risultati senza meglio di casuali.

Cioè, ho aggiunto il termine di distorsione di seguito:

inputs1 = tf.placeholder(shape=[1,16],dtype=tf.float32)
bias = tf.Variable(tf.zeros(shape=[1,4]))
W = tf.Variable(tf.random_uniform([16,4],0,0.01))
Qout = tf.matmul(inputs1,W) + bias
predict = tf.argmax(Qout,1)

Il resto del codice è identico alla soluzione originale. Qualche idea per cui questo influenzerebbe così negativamente la performance?

AggiornareSembra Qualcun altro ha incontrato questo problema, e la risposta data è stata quella

Avere un termine di pregiudizio con la codifica a una punta impedisce ai valori Q di ogni stato di essere indipendenti

Qualche idea per cui questo è il caso? La distorsione viene aggiunta dopo la moltiplicazione, quindi è nella dimensione delle azioni, non gli input. Non vedo perché questo renderebbe l'apprendimento fallire.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top