fix typo & improve translation (#404)

* Update README.ko.md

* Update README.zh-cn.md
pull/408/head
Flex Zhong 3 years ago committed by GitHub
parent 0ad66538ba
commit 04e7adf19c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -121,7 +121,7 @@ cartpole balancing 문제를 풀려면, 대상 환경을 초기화할 필요가
## State discretization ## State discretization
Q=Learning에서, 각 state에서 할 것을 정의하는 Q-Table을 만들 필요가 있습니다. 이렇게 하려면, state가 **discreet**으로 되어야하고, 더 정확해지면, 한정된 discrete 값 숫자를 포함해야 합니다. 그래서, 관측치를 어떻게든지 **discretize** 해서, 한정된 state 세트와 맵핑할 필요가 있습니다. Q-Learning에서, 각 state에서 할 것을 정의하는 Q-Table을 만들 필요가 있습니다. 이렇게 하려면, state가 **discreet**으로 되어야하고, 더 정확해지면, 한정된 discrete 값 숫자를 포함해야 합니다. 그래서, 관측치를 어떻게든지 **discretize** 해서, 한정된 state 세트와 맵핑할 필요가 있습니다.
이렇게 할 수 있는 몇 방식이 있습니다: 이렇게 할 수 있는 몇 방식이 있습니다:
@ -337,4 +337,4 @@ env.close()
지금부터 agent에 게임에서 원하는 state를 정의하는 보상 함수로 제공하고, 검색 공간을 지능적으로 탐색할 기회를 주며 좋은 결과로 도달하도록 어떻게 훈련하는지 배웠습니다. discrete적이고 연속 환경의 케이스에서 Q-Learning 알고리즘을 성공적으로 적용했지만, discrete적인 액션으로 했습니다. 지금부터 agent에 게임에서 원하는 state를 정의하는 보상 함수로 제공하고, 검색 공간을 지능적으로 탐색할 기회를 주며 좋은 결과로 도달하도록 어떻게 훈련하는지 배웠습니다. discrete적이고 연속 환경의 케이스에서 Q-Learning 알고리즘을 성공적으로 적용했지만, discrete적인 액션으로 했습니다.
Atari 게임 스크린에서의 이미지처럼, 액션 상태 또한 연속적이고, 관찰 공간이 조금 더 복잡해지는 시뮬레이션을 공부하는 것도 중요합니다. 이 문제는 좋은 결과에 도달하기 위해서, neural networks처럼, 더 강한 머신러닝 기술을 자주 사용해야 합니다. 이러한 더 구체적인 토픽은 곧 오게 될 더 어려운 AI 코스의 주제입니다. Atari 게임 스크린에서의 이미지처럼, 액션 상태 또한 연속적이고, 관찰 공간이 조금 더 복잡해지는 시뮬레이션을 공부하는 것도 중요합니다. 이 문제는 좋은 결과에 도달하기 위해서, neural networks처럼, 더 강한 머신러닝 기술을 자주 사용해야 합니다. 이러한 더 구체적인 토픽은 곧 오게 될 더 어려운 AI 코스의 주제입니다.

@ -218,7 +218,7 @@ import random
- **计算平均累积奖励**,经过多次模拟。我们每 5000 次迭代打印一次进度,并计算这段时间内累积奖励的平均值。这意味着如果我们得到超过 195 分——我们可以认为问题已经解决,甚至比要求的质量更高。 - **计算平均累积奖励**,经过多次模拟。我们每 5000 次迭代打印一次进度,并计算这段时间内累积奖励的平均值。这意味着如果我们得到超过 195 分——我们可以认为问题已经解决,甚至比要求的质量更高。
- **计算最大平均累积结果**`Qmax`我们将存储与该结果对应的Q-Table。当你运行训练时你会注意到有时平均累积结果开始下降我们希望保留与训练期间观察到的最佳模型相对应的 Q-Table 值。 - **计算最大平均累积结果**`Qmax`,我们将存储与该结果对应的 Q-Table。当你运行训练时你会注意到有时平均累积结果开始下降我们希望保留与训练期间观察到的最佳模型相对应的 Q-Table 值。
1. 在 `rewards` 向量处收集每次模拟的所有累积奖励,用于进一步绘图。(代码块 11 1. 在 `rewards` 向量处收集每次模拟的所有累积奖励,用于进一步绘图。(代码块 11
@ -265,13 +265,13 @@ import random
- **接近我们的目标**。我们非常接近实现在连续 100 多次模拟运行中获得 195 个累积奖励的目标,或者我们可能真的实现了!即使我们得到更小的数字,我们仍然不知道,因为我们平均超过 5000 次运行,而在正式标准中只需要 100 次运行。 - **接近我们的目标**。我们非常接近实现在连续 100 多次模拟运行中获得 195 个累积奖励的目标,或者我们可能真的实现了!即使我们得到更小的数字,我们仍然不知道,因为我们平均超过 5000 次运行,而在正式标准中只需要 100 次运行。
- **奖励开始下降**。有时奖励开始下降,这意味着我们可以"破坏" Q-Table 中已经学习到的值,这些值会使情况变得更糟。 - **奖励开始下降**。有时奖励开始下降,这意味着我们可以“破坏” Q-Table 中已经学习到的值,这些值会使情况变得更糟。
如果我们绘制训练进度图,则这种观察会更加清晰可见。 如果我们绘制训练进度图,则这种观察会更加清晰可见。
## 绘制训练进度 ## 绘制训练进度
在训练期间,我们将每次迭代的累积奖励值收集到`rewards`向量中。以下是我们根据迭代次数绘制它时的样子: 在训练期间,我们将每次迭代的累积奖励值收集到 `rewards` 向量中。以下是我们根据迭代次数绘制它时的样子:
```python ```python
plt.plot(reawrd) plt.plot(reawrd)
@ -279,7 +279,7 @@ plt.plot(reawrd)
![原始进度](../images/train_progress_raw.png) ![原始进度](../images/train_progress_raw.png)
从这张图中,无法说明任何事情,因为由于随机训练过程的性质,训练课程的长度差异很大。为了更好地理解这个图,我们可以计算一系列实验的 **running average**,假设为 100。这可以使用 `np.convolve` 方便地完成:(代码块 12 从这张图中,无法说明任何事情,因为由于随机训练过程的性质,训练课程的长度差异很大。为了更好地理解这个图,我们可以计算一系列实验的 **running average**,假设为 100。这可以使用 `np.convolve` 方便地完成:(代码块 12
```python ```python
def running_average(x,window): def running_average(x,window):
@ -296,9 +296,9 @@ plt.plot(running_average(rewards,100))
- **对于学习率**`alpha`,我们可以从接近 1 的值开始,然后不断减小参数。随着时间的推移,我们将在 Q-Table 中获得良好的概率值,因此我们应该稍微调整它们,而不是用新值完全覆盖。 - **对于学习率**`alpha`,我们可以从接近 1 的值开始,然后不断减小参数。随着时间的推移,我们将在 Q-Table 中获得良好的概率值,因此我们应该稍微调整它们,而不是用新值完全覆盖。
- **增加epsilon**。我们可能希望缓慢增加`epsilon`,以便探索更少,开发更多。从`epsilon`的较低值开始,然后上升到接近 1 可能是有意义的。 - **增加 epsilon**。我们可能希望缓慢增加 `epsilon`,以便探索更少,开发更多。从 `epsilon` 的较低值开始,然后上升到接近 1 可能是有意义的。
> **任务 1**玩转超参数值看看是否可以获得更高的累积奖励。你超过195了吗 > **任务 1**:玩转超参数值,看看是否可以获得更高的累积奖励。你超过 195 了吗?
> **任务 2**:要正式解决问题,你需要在 100 次连续运行中获得 195 的平均奖励。在培训期间衡量并确保你已经正式解决了问题! > **任务 2**:要正式解决问题,你需要在 100 次连续运行中获得 195 的平均奖励。在培训期间衡量并确保你已经正式解决了问题!
@ -326,7 +326,7 @@ env.close()
## 🚀挑战 ## 🚀挑战
> **任务 3**:在这里,我们使用的是 Q-Table 的最终副本,它可能不是最好的。请记住,我们已将性能最佳的 Q-Table 存储到 `Qbest` 变量中!通过将`Qbest`复制到`Q`来尝试使用性能最佳的 Q-Table 的相同示例,看看你是否注意到差异。 > **任务 3**:在这里,我们使用的是 Q-Table 的最终副本,它可能不是最好的。请记住,我们已将性能最佳的 Q-Table 存储到 `Qbest` 变量中!通过将 `Qbest` 复制到 `Q` 来尝试使用性能最佳的 Q-Table 的相同示例,看看你是否注意到差异。
> **任务 4**:这里我们不是在每一步选择最佳动作,而是用相应的概率分布进行采样。始终选择具有最高 Q-Table 值的最佳动作是否更有意义?这可以通过使用 `np.argmax` 函数找出对应于较高 Q-Table 值的动作编号来完成。实施这个策略,看看它是否能改善平衡。 > **任务 4**:这里我们不是在每一步选择最佳动作,而是用相应的概率分布进行采样。始终选择具有最高 Q-Table 值的最佳动作是否更有意义?这可以通过使用 `np.argmax` 函数找出对应于较高 Q-Table 值的动作编号来完成。实施这个策略,看看它是否能改善平衡。

Loading…
Cancel
Save