强化学习PolicyGradients

Policy Gradients

通过奖惩机制reward,来对选择进行反向传递,从而确定是否需要进行加大,或者减小选择的力度
因为Policy Gradients是回合更新,不是每步更新,所以是在回合进行结束后,才对参数和reward进行调整

  1. 建立两个全链接层
  2. 利用softmax将所有的动作值转换成概率
    	self.all_act_prob = tf.nn.softmax(all_act, name='act_prob')
    
  3. 为了套用tf中神经网络的Loss,将动作的概率加负号进行最小化,从而将实际概率值最大化
    	neg_log_prob = tf.reduce_sum(
    		-tf.log(self.all_act_prob)*tf.one_hot(self.tf_acts, self.n_actions), axis=1
    	)
        loss = tf.reduce_mean(neg_log_prob * self.tf_vt)  # reward guided loss
        
        self.train_op = tf.train.AdamOptimizer(self.lr).minimize(loss)
    
  4. 取和存现在的状态
    	def choose_action(self, observation):
            prob_weights = self.sess.run(self.all_act_prob, 
            	feed_dict={self.tf_obs: observation[np.newaxis, :]})
            action = np.random.choice(
            	range(prob_weights.shape[1]), p=prob_weights.ravel())  
            # select action w.r.t the actions prob
            return action
    
        def store_transition(self, s, a, r):
            self.ep_obs.append(s)
            self.ep_as.append(a)
            self.ep_rs.append(r)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值