2016-10-10 9 views
5

Bir takviye öğrenme programında çalışıyorum ve bu makaleyi reference olarak kullanıyorum. Ben sinir ağı ve bu program için kullanıyorum sözde kod oluşturmak için keras (Theano) ile piton kullanıyorum burada kayıp fonksiyonu denklemi buTakviye öğrenimi için kerastaki ağırlıklar nasıl güncellenir?

enter image description here

olduğunu

Do a feedforward pass for the current state s to get predicted Q-values for all actions. 

Do a feedforward pass for the next state s’ and calculate maximum overall network outputs max a’ Q(s’, a’). 

Set Q-value target for action to r + γmax a’ Q(s’, a’) (use the max calculated in step 2). For all other actions, set the Q-value target to the same as originally returned from step 1, making the error 0 for those outputs. 

Update the weights using backpropagation. 

olduğu ödülüm + 1, maxQ (s' ') = 0,8375 ve Q (s, bir) = 0,6892

My L olacak olan 1/2*(1+0.8375-0.6892)^2=0.659296445

Şimdi benim model yapısı NN Q değeri fonksiyonunu modelleme olduğunu varsayarsak bu

model = Sequential() 
model.add(Dense(150, input_dim=150)) 
model.add(Dense(10)) 
model.add(Dense(1,activation='sigmoid')) 
model.compile(loss='mse', optimizer='adam') 

cevap

0

ise yukarıdaki kayıp fonksiyonu değerini kullanarak benim modeli sinir ağı ağırlıkları güncelleştirmek nasıl, sadece ağa hedefi geçerdi . Örneğin.

state_action_vector ağınıza devlet aksiyon girişi temsil eden bazı ön işlenmiş vektörüdür
model.train_on_batch(state_action_vector, target) 

. Ağınız bir MSE kaybı işlevi kullandığından, ileri geçişte durum eylemini kullanarak tahmin terimini hesaplar ve ardından hedefinize göre ağırlıkları günceller.

+0

Lütfen daha ayrıntılı bilgi veriniz. Teşekkürler – RZK

İlgili konular