2016-10-10 13 views
5

मैं एक सुदृढीकरण सीखने के कार्यक्रम में काम कर रहा हूं और मैं इस लेख का उपयोग reference के रूप में कर रहा हूं। मैं तंत्रिका नेटवर्क और मैं इस कार्यक्रम के लिए उपयोग कर रहा हूँ छद्म कोड बनाने के लिए keras (थेनो) के साथ अजगर का उपयोग कर रहामजबूती सीखने के लिए कैरस में वजन कैसे अपडेट करें?

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. 

है नुकसान समारोह समीकरण यहाँ इस

enter image description here

है जहाँ मेरा इनाम +1, maxQ (रों ',' एक) = 0.8375 और क्यू (रों, एक) = 0,6892

मेरे एल होगा 1/2*(1+0.8375-0.6892)^2=0.659296445

अब मैं अपने मॉडल तंत्रिका नेटवर्क से ऊपर नुकसान समारोह मूल्य का उपयोग कर वजन अद्यतन करना चाहिए अगर मेरे मॉडल संरचना इस

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') 

उत्तर

0

मान लिया जाये कि एनएन क्यू मूल्य समारोह मॉडलिंग कर रहा है, तो आप सिर्फ लक्ष्य नेटवर्क के पास चला जाएगा । जैसे

model.train_on_batch(state_action_vector, target) 

जहां state_action_vector कुछ प्रीप्रोसेस्ड वेक्टर है जो आपके नेटवर्क पर राज्य-क्रिया इनपुट का प्रतिनिधित्व करता है। चूंकि आपका नेटवर्क एक एमएसई हानि समारोह का उपयोग कर रहा है, यह आगे की ओर राज्य-क्रिया का उपयोग करके भविष्यवाणी अवधि की गणना करेगा और उसके बाद वजन को आपके लक्ष्य के अनुसार अपडेट करेगा।

+0

कृपया अधिक विस्तृत विवरण प्रदान करें। धन्यवाद – RZK

संबंधित मुद्दे