# 七天搞定强化学习
[Pythonで学ぶ強化学習 -入門から実践まで-](https://www.amazon.co.jp/dp/4065142989/)的实现代码库。
误记和样板代码的执行错误,由Issue进行管理。
**[Issue List](https://github.com/icoxfog417/baby-steps-of-rl-ja/issues)**
* [原书第3版的修正点](https://github.com/icoxfog417/baby-steps-of-rl-ja/milestone/1?closed=1)
* [源代码的修正点](https://github.com/icoxfog417/baby-steps-of-rl-ja/pull/17/files)
* [原书第2版的修正点](https://github.com/icoxfog417/baby-steps-of-rl-ja/milestone/2?closed=1)
* [源代码的修正点](https://github.com/icoxfog417/baby-steps-of-rl-ja/pull/35/files)
误记、拼写错误等意见,以及板代码的执行错误请使用[Issue](https://github.com/icoxfog417/baby-steps-of-rl-ja/issues/new)与我联系。
* 请事先确认Issue中是否已经有这个问题了。
* 关于执行错误,请按照模板来记录执行环境以及发生的错误。
## 索引
* [Setup](https://github.com/icoxfog417/baby-steps-of-rl-ja#setup)
* [Setup with GPU](https://github.com/icoxfog417/baby-steps-of-rl-ja#setup-with-gpu)
* [第1章: 了解强化学习](https://github.com/icoxfog417/baby-steps-of-rl-ja#day1-%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92%E3%81%AE%E4%BD%8D%E7%BD%AE%E3%81%A5%E3%81%91%E3%82%92%E7%9F%A5%E3%82%8B)
* [第2章: 强化学习的解法 (1):根据环境制订计划](https://github.com/icoxfog417/baby-steps-of-rl-ja#day2-%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92%E3%81%AE%E8%A7%A3%E6%B3%951-%E7%92%B0%E5%A2%83%E3%81%8B%E3%82%89%E8%A8%88%E7%94%BB%E3%82%92%E7%AB%8B%E3%81%A6%E3%82%8B)
* [第3章: 强化学习的解法 (2):根据经验制订计划](https://github.com/icoxfog417/baby-steps-of-rl-ja#day3-%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92%E3%81%AE%E8%A7%A3%E6%B3%952-%E7%B5%8C%E9%A8%93%E3%81%8B%E3%82%89%E8%A8%88%E7%94%BB%E3%82%92%E7%AB%8B%E3%81%A6%E3%82%8B)
* [第4章: 使用面向强化学习的神经网络](https://github.com/icoxfog417/baby-steps-of-rl-ja#day4-%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92%E3%81%AB%E5%AF%BE%E3%81%99%E3%82%8B%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%A9%E3%83%AB%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E9%81%A9%E7%94%A8)
* [第5章: 强化学习的弱点](https://github.com/icoxfog417/baby-steps-of-rl-ja#day5-%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92%E3%81%AE%E5%BC%B1%E7%82%B9)
* [第6章: 克服强化学习弱点的方法](https://github.com/icoxfog417/baby-steps-of-rl-ja#day6-%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92%E3%81%AE%E5%BC%B1%E7%82%B9%E3%82%92%E5%85%8B%E6%9C%8D%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E6%89%8B%E6%B3%95)
* [第7章 强化学习的应用领域](https://github.com/icoxfog417/baby-steps-of-rl-ja#day7-%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92%E3%81%AE%E6%B4%BB%E7%94%A8%E9%A0%98%E5%9F%9F)
[Support Content](https://github.com/icoxfog417/baby-steps-of-rl-ja#support-content)
## 安装
下载样板代码需要使用Git,运行需要Python的环境。因此,请下载并安装以下两个软件。此外,本书使用基于Miniconda的Python环境。
1. [Git](https://git-scm.com/)
2. [Python (Miniconda)](https://conda.io/miniconda.html)
* 下载Python3的版本
安装结束之后,首先下载源代码。请打开终端/命令行工具,并在工作目录中执行以下命令。
```
git clone https://github.com/icoxfog417/baby-steps-of-rl-ja.git
```
这个命令执行之后、将创建名为`baby-steps-of-rl-ja`的目录。这样下载就完成了。将其移动到下载的文件夹吧。
```
cd baby-steps-of-rl-ja
```
然后,来创建源代码的运行环境。首先,在安装Miniconda后,可以使用的`conda`命令来创建执行环境。接下来,我们将创建一个环境,也就是本书的执行环境`rl-book`。
```
conda create -n rl-book python=3.6
conda activate rl-book
```
执行`conda activate`之后,在终端的开头会显示`(rl-book)`。这表示运行环境已经启用。执行本书的源代码时,首先请确认执行环境是否有效化,也就是查看`(rl-book)`是否在开头。此外,要禁用时请执行`conda deactivate`的命令。
在执行环境中,安装执行所需的程序库,请先确认`(rl-book)`位于开头后再执行操作。
```
pip install -r requirements.txt
```
如下,请试一下执行`welcome.py`。如果游戏画面正常启动,设置就完成了。
```
python welcome.py
```
## Setup with GPU
Day4中,使用深度学习的强化学习算法(DQN/A2C),这类学习算法必须使用GPU,否则需要消耗数日来进行训练。
使用GPU的训练过程中,GPU自然是必须的(更具体地说,是NVIDIA的GPU)。使用GPU的方法有如下两种:
1. 使用搭载GPU的主机
2. 使用云平台的GPU
* 使用云平台的GPU实例
* 使用Google Colaboratory的GPU
### 本地 GPU 的安装
使用搭载GPU的机器,由以下3个步骤进行安装:
1. 下载安装 NVIDIA Driver
* [NVIDIA驱动下载](https://www.nvidia.co.jp/Download/index.aspx?lang=cn)
* 基本上可以选择自动下载驱动程序。如果不选择,请手动选择并下载。
2. 安装 CUDA Toolkit
* 由[CUDA Toolkit Archive](https://developer.nvidia.com/cuda-toolkit-archive)下载TensorFlow所对应的版本[TensorFlow 1.13以上的版本是CUDA 10](https://www.tensorflow.org/install/gpu))。
3. 安装 cuDNN
* 下载[cuDNN](https://developer.nvidia.com/cudnn)后、展开Toolkit的文件路径。另外cuDNN的下载需要登录用户。
4. 作为`tensorflow`的替代、安装`tensorflow-gpu`(如果已经安装了`tensorflow`,请先卸载)。
运行 `import tensorflow as tf` 如果没有报错,则表明安装完成了。
```
> python
>>> import tensorflow as tf
```
### Cloud GPU Machine Setup
AWS和Azure,GCP都提供GPU实例。如果使用这些服务的话,就没有必要准备搭载GPU的主机。GPU的安装步骤与[Local GPU Machine Setup](https://github.com/icoxfog417/baby-steps-of-rl-ja#local-gpu-machine-setup)一样。如果是已经安装的实例(如SageMaker),则无需再进行安装。
使用GPU实例当然会产生不菲的费用。因此,下面介绍能够免费使用GPU来计算的Google Colaboratory。
* [Day4: 对价值近似使用深度学习: Deep Q-Network](https://colab.research.google.com/drive/1QZs38jqCaSIpoKmoIl8XxVJUwdG78Hb8)
* [Day4: 对策略使用深度学习: Advantage Actor Critic(A2C)](https://colab.research.google.com/drive/1IzXGuNj4ZbsuWC7ei98ZzKrVk7mPS1t-)
Google Colaboratory是能够在线使用Jupyter Notebook的服务。也可以使用GPU进行计算,但是执行的时间有限。虽然不能长期执行,但是可以在可能的范围内进行训练并下载模型。
## Day1: 了解强化学习
**Day1's Goals**
* 理解强化学习与机器学习、人工智能这些关键词之间的关系
* 理解强化学习相对于其他机器学习方法的优点和缺点
* 理解强化学习的基本机制
**Summary**
* 强化学习是什么?
* 强化学习 ⊂ 机器学习 ⊂ 人工智能。
* 机器学习 = 学习「机器」(=模型)的方法。
* 强化学习 = 「学习」方法的其中一种。
* 强化学习的目的是将通过连续动作,来获得的“回报总和”的最大化。
* 学习“动作的评价方法”和(基于评价)选择动作的方法(=策略)。
* 强化学习的优点和缺点
* 优点:即使难以评价的任务也可以处理(因为是学习动作的评价方法)。
* 缺点: 学习什么行动是无法控制的(因为是模型自己获得的)。
* 强化学习的基本构造
* 在强化学习中,假设所设定的“环境”遵循一定的规则。
* 这个规则被称为 **马尔科夫决定过程(Markov Decision Process: MDP)**。
* MDP的构成要素及其关系如下图所示。
* MDP的奖励由“之前的状态和下一个状态”所决定。
* 这种奖励被称为 ** 即时奖励(Immediate reward)**。
* 奖励�
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
【源代码】用Python动手学强化学习.zip (87个子文件)
baby-steps-of-rl-ja-master
DP
application.py 1KB
bellman_equation.py 2KB
planner.py 5KB
templates
index.html 5KB
base.html 893B
run_server.py 465B
environment_demo.py 843B
tests
test_environment.py 1KB
__init__.py 0B
test_planner.py 891B
Procfile 26B
.DS_Store 6KB
static
css
index.css 1KB
images
agent.png 65KB
js
index.js 5KB
.DS_Store 6KB
__init__.py 0B
requirements.txt 260B
README.md 314B
environment.py 5KB
MM
dyna.py 4KB
environment.yml 882B
welcome.py 826B
ISSUE_TEMPLATE.md 540B
FN
fn_framework.py 9KB
policy_gradient_continuous_agent.py 8KB
policy_gradient_agent.py 6KB
.DS_Store 6KB
__init__.py 0B
nn_tutorial
explanation_tf.py 603B
explanation_keras_mnist.py 1KB
explanation_keras_boston.py 871B
explanation_keras_batch.py 359B
explanation_keras.py 385B
explanation_tf_batch.py 796B
gradient.py 282B
dqn_agent.py 8KB
value_function_agent.py 4KB
a2c_agent.py 12KB
LICENSE 11KB
EV
evolution.py 7KB
requirements-colab.txt 594B
requirements.txt 618B
doc
frozen_lake.png 58KB
mdp.png 20KB
sample_improve.png 36KB
rl_ways.png 35KB
train_architecture.png 53KB
td.png 21KB
colab_dqn.png 22KB
application.png 33KB
tradeoffs.png 40KB
irl.png 33KB
be.png 22KB
rl_application.png 34KB
EL
epsilon_greedy.py 3KB
compare_q_s.py 2KB
__pycache__
el_agent.cpython-38.pyc 2KB
frozen_lake_util.cpython-38.pyc 2KB
el_agent.py 2KB
sarsa.py 1KB
.DS_Store 6KB
__init__.py 0B
frozen_lake_util.py 2KB
monte_carlo.py 2KB
notebooks
Epsilon&Greedy.ipynb 86KB
Q-learning.ipynb 50KB
Actor&Critic.ipynb 73KB
Monte Carlo.ipynb 51KB
SARSA.ipynb 51KB
.ipynb_checkpoints
Actor&Critic-checkpoint.ipynb 73KB
Monte Carlo-checkpoint.ipynb 51KB
Epsilon&Greedy-checkpoint.ipynb 86KB
q_learning.py 1KB
actor_critic.py 2KB
IM
dagger.py 6KB
README.md 28KB
IRL
maxent.py 3KB
planner.py 6KB
.DS_Store 6KB
bayesian.py 3KB
backups
irl_from_traj.py 10KB
linear.py 6KB
planner.py 5KB
visualizer.py 3KB
environment.py 5KB
environment.py 6KB
共 87 条
- 1
zcq_41
- 粉丝: 2
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0