![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
强化学习
小柴柴是也
北邮本科:电子信息科学与技术
研究生:电子科学与技术
研究方向:卫星通信+深度强化学习
正在努力从咸鱼开始进化,大家一起进步呀!!
展开
-
MADDPG中环境怎么配置,multiagent包解决
一、环境提供MADDPG: https://github.com/starry-sky6688/MADDPG (pytorch版本)MPE环境:https://github.com/openai/multiagent-particle-envs论文:《Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments》https://arxiv.org/abs/1706.0227二、环境配置过程首先下载MPE环境,然后解原创 2022-04-14 17:24:56 · 3728 阅读 · 6 评论 -
【强化学习】一文带你理清强化学习
一文带你理清强化学习这个图描述的比较清晰,蓝框里是整个强化学习的一些概念基础了,橙色是一些学习方法,可以选择性的选择一些,废话不多说,接下来就按照这个路线图展开。马尔可夫链马尔科夫链:用来描述智能体和环境互动的过程...原创 2021-09-09 22:39:23 · 1001 阅读 · 0 评论 -
从拉格朗日乘数法到KKT条件
从拉格朗日乘数法到KKT条件最近看论文遇到了Karush–Kuhn–Tucker (KKT)条件,想搞清楚这是个什么东东,因此就把这个东西认真学习一下并且分享出来,希望对大家有用。学习KKT就不得不先学习一下拉格朗日乘数法,于是不得不重新翻出被记忆尘封的高数~~1.拉格朗日乘数法在数学最优问题中,拉格朗日乘数法是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入原创 2021-06-18 19:16:57 · 228 阅读 · 0 评论 -
【强化学习】可视化学习tensorboard
tensorflow定义了一个图结构:代码:a = tf.constant(3.0, name="a")b = tf.constant(4.0, name="b")c = tf.add(a, b, name="add")var = tf.Variable(tf.random_normal([2, 3], mean=0.0, stddev=1.0), name="variable")print(a, var)# 必须做一步显示的初始化opinit_op = tf.global_v原创 2021-05-21 14:53:10 · 987 阅读 · 0 评论 -
【强化学习】PPO代码注释版本
# PPO主要通过限制新旧策略的比率,那些远离旧策略的改变不会发生# import tensorflow as tfimport tensorflow.compat.v1 as tftf.compat.v1.disable_eager_execution()import numpy as npimport matplotlib.pyplot as pltimport gym# 定义一些超级参量EP_MAX = 1000 # 最大步数EP_LEN = 200GAMMA = 0.9原创 2021-05-21 11:23:30 · 2918 阅读 · 8 评论 -
【强化学习】A3C代码注释版本
########################################### A3C做出的改进:# 解决AC难以收敛的问题# 不一样的地方:#import threading# import tensorflow as tfimport tensorflow.compat.v1 as tftf.compat.v1.disable_eager_execution()import numpy as npimport gymimport osimport shutilimp原创 2021-05-21 11:21:29 · 1028 阅读 · 0 评论 -
【强化学习】A3C原理
先解释一下什么叫异步、什么叫并发:**异步:**和同步相对,同步是顺序执行,而异步是彼此独立,在等待某个事件的过程中继续做自己的事,不要等待这一事件完成后再工作。线程是实现异步的一个方式,异步是让调用方法的主线程不需要同步等待另一个线程的完成,从而让主线程干其他事情。**并发:**同一时间段有几个程序都处于已经启动到运行完毕之间,并且这几个程序都在同一个处理机上运行,并发的两种关系是同步和互斥。**多线程:**多线程是进程中并发运行的一段代码,能够实现线程之间的切换执行;**异步和多线程:**不是同原创 2021-05-21 11:20:16 · 8606 阅读 · 1 评论 -
【强化学习】AC注释版本
## 强化学习 Actor-critic# 和PG比起来主要的变化:# 评估点由状态价值变成了TD_error,网络形式变了# learn函数长得不一样# action有一个优化函数,优化的是价值函数,希望最大化期望的reward,Critic网络也有一个reward,希望最小化现实和估计的误差(即td——error)# Actor使用我们上一节讲到的策略函数,负责生成动作(Action)并和环境交互。而Critic使用我们之前讲到了的价值函数,负责评估Actor的表现,并指导Actor下一阶段的原创 2021-05-21 11:13:45 · 301 阅读 · 0 评论 -
【强化学习】Actor Critic原理
PG算法是一种只基于policy的一种方法,存在的问题就是该算法需要完整的状态序列,且单独对策略函数进行迭代更新,不太容易收敛。Actor-critic方法呢是一种将 策略(Policy Based)和价值(Value Based)相结合的方法。下面继续来理一下AC方法的思路!Actor-Critic算法包括两部分,Actor网络使用PG里的策略函数,负责生成动作,和环境交互,Critic网络使用价值函数,负责评估Actor的表现,并指导Actor下一阶段的动作。PG中我们用的是蒙特卡罗法来计算每一步原创 2021-05-21 11:12:22 · 500 阅读 · 0 评论 -
【强化学习】Policy Gradients代码注释版本
import gym #import tensorflow as tfimport numpy as np# Hyper ParametersGAMMA = 0.95 # discount factor 折扣因子LEARNING_RATE = 0.01 # 学习率class Policy_Gradient(): # 咱们来搞一下大头! def __init__(self, env): # 初始化 # 先初始化一些参量 self.原创 2021-05-21 11:09:16 · 243 阅读 · 0 评论 -
【强化学习】Policy Gradient原理
1.Policy Gradient和DQN系列强化算法最大的区别在于:DQN系列基于Value,也就是说执行完所有的动作并保存所得到的价值,根据这些价值计算出最优价值函数,并以此选择动作,最终获得一个特定的策略。Policy Gradient基于策略来选择动作,Value Based方法中将动作价值函数进行近似,引入了一个动作价值函数q^,状态s和动作a为输入,价值函数输出,得到近似的动作价值。PG中采用类似的思路,将策略表示成一个连续的函数之后,使用连续函数的优化方法寻找最优策略。2.Policy原创 2021-05-21 11:05:55 · 419 阅读 · 0 评论 -
一些python函数及其用法
1.np.ravel()方法ravel是将数组维度拉成一维数组,也就是将矩阵向量化x = np.array{ [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] }print(np.ravel(x))输出[ 1 2 3 4 5 6 ]2.b = a[np.newaxis,:]import numpy as npa = np.arange(0, 10)print('a.shape',a.shape)print('a',a)b = a[np.newaxis,:]c =原创 2021-04-26 11:23:30 · 135 阅读 · 0 评论 -
【强化学习】一些网站整理
莫烦教程https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/Deep-Q-Network 学习笔记https://www.cnblogs.com/cjnmy36723/p/7017549.html强化学习和自适应控制https://www.cnblogs.com/qpswwww/p/9337740.html贪心算法https://blog.csdn.net/gaoruowen1/article/detail原创 2021-01-10 12:16:38 · 493 阅读 · 0 评论