update chapter1.md

This commit is contained in:
qiwang067
2023-07-21 22:52:26 +08:00
parent 385469de70
commit e009758c36

View File

@@ -566,10 +566,10 @@ print('动作数 = {}'.format(env.action_space.n))
由输出可知,观测是形状为 (2,) 的浮点型 np.array动作空间是取 {0,1,2} 的 int 型数值。
接下来考虑智能体。智能体往往是我们自己实现的。我们可以实现一个智能体类————Agent 类,代码如下:
接下来考虑智能体。智能体往往是我们自己实现的。我们可以实现一个智能体类————SimpleAgent 类,代码如下:
```python
class Agent:
class SimpleAgent:
def __init__(self, env):
pass
@@ -587,10 +587,10 @@ class Agent:
def learn(self, *args): # 学习
pass
agent = Agent(env)
agent = SimpleAgent(env)
```
智能体的decide()方法实现了决策功能而learn()方法实现了学习功能。Agent类是一个比较简单的类它只能根据给定的数学表达式进行决策不能有效学习所以它并不是一个真正意义上的强化学习智能体类。但是它用于演示智能体和环境的交互已经足够了。
智能体的decide()方法实现了决策功能而learn()方法实现了学习功能。SimpleAgent类是一个比较简单的类它只能根据给定的数学表达式进行决策不能有效学习所以它并不是一个真正意义上的强化学习智能体类。但是它用于演示智能体和环境的交互已经足够了。
接下来我们试图让智能体与环境交互,代码如下。
@@ -642,7 +642,7 @@ print('平均回合奖励 = {}'.format(np.mean(episode_rewards)))
平均回合奖励 = -106.63
```
小车上山环境有一个参考的回合奖励值 $-$110如果连续 100 个回合的平均回合奖励大于 $-$110则认为这个任务被解决了。Agent 类对应的策略的平均回合奖励就在 $-$110 左右。完整代码实现可参考[小车上山代码](https://github.com/datawhalechina/easy-rl/blob/master/docs/chapter1/RL_example.py)。
小车上山环境有一个参考的回合奖励值 $-$110如果连续 100 个回合的平均回合奖励大于 $-$110则认为这个任务被解决了。SimpleAgent 类对应的策略的平均回合奖励就在 $-$110 左右。完整代码实现可参考[小车上山代码](https://github.com/datawhalechina/easy-rl/blob/master/docs/chapter1/RL_example.py)。
测试智能体在 Gym 库中某个任务的性能时,学术界一般最关心 100 个回合的平均回合奖励。至于为什么是 100 个回合而不是其他回合数(比如 128 个回合),完全是习惯使然,没有什么特别的原因。对于有些任务,还会指定一个参考的回合奖励值,当连续 100 个回合的奖励大于指定的值时,就认为这个任务被解决了。但是,并不是所有的任务都指定了这样的值。对于没有指定值的任务,就无所谓任务被解决了或者没有被解决。