Como exatamente calcular a função de perda profunda do Q-Learning?

10

Tenho uma dúvida sobre como exatamente é treinada a função de perda de uma Deep Q-Learning Network. Estou usando uma rede feedforward de 2 camadas com camada de saída linear e relu camadas ocultas.

  1. Vamos supor que eu tenho 4 ações possíveis. Portanto, a saída da minha rede para o estado atual é . Para torná-lo mais concreto, vamos assumirstQ(st)R4Q(st)=[1.3,0.4,4.3,1.5]
  2. Agora, tomo a ação correspondente ao valor ou seja, a terceira ação, e chego a um novo estado .at=24.3st+1
  3. Em seguida, calculo a passagem direta com o estado e digamos que obtenho os seguintes valores na camada de saída . Também digamos a recompensa e .st+1Q(st+1)=[9.1,2.4,0.1,0.3]rt=2γ=1.0
  4. A perda é dada por:

    L=(11.14.3)2

    OU

    L=14i=03([11.1,11.1,11.1,11.1][1.3,0.4,4.3,1.5])2

    OR

    L=14i=03([11.1,4.4,2.1,2.3][1.3,0.4,4.3,1.5])2

Thank you, sorry I had to write this out in a very basic way... I am confused by all the notation. ( I think the correct answer is the second one...)

A.D
fonte
1
This question with the clear example made me understand deep q learning more than any other medium article I've read in the past week.
dhruvm

Respostas:

5

After reviewing the equations a few more times. I think the correct loss is the following:

L=(11.14.3)2

My reasoning is that the q-learning update rule for the general case is only updating the q-value for a specific state,action pair.

Q(s,a)=r+γmaxaQ(s,a)

This equation means that the update happens only for one specific state,action pair and for the neural q-network that means the loss is calculated only for one specific output unit which corresponds to a specific action.

In the example provided Q(s,a)=4.3 and the target is r+γmaxaQ(s,a)=11.1.

A.D
fonte