提交 1923a792 编写于 作者: W wizardforcel

2021-01-13 16:33:16

上级 6ecf46f7
......@@ -593,6 +593,6 @@ array([[20., 1.],[ 1., 1.]], dtype=float32)
### 参考
1. Ronan Collobert,Koray Kavukcuoglu 和 Clement Farabet, *Torch7:类似于 Matlab 的机器环境* *学习*[https://pdfs.semanticscholar.org/3449/b65008b27f6e60a73d80c1fd990f048 pdf?_ga = 2.194076141.1591086632.15536​​63514-2047335409.1553576371](https://pdfs.semanticscholar.org/3449/b65008b27f6e60a73d80c1fd990f0481126b.pdf?_ga=2.194076141.1591086632.1553663514-2047335409.1553576371)
2. PyTorch 的主页: [https://pytorch.org/](https://pytorch.org/)
3. *优化深度学习* *学习*的内存消耗( [https://mxnet.incubator.apache.org/versions/master/architecture/note_memory.html](https://mxnet.incubator.apache.org/versions/master/architecture/note_memory.html)
\ No newline at end of file
1. Ronan Collobert,Koray Kavukcuoglu 和 Clement Farabet,[《Torch7:类似于 Matlab 的机器学习环境》](https://pdfs.semanticscholar.org/3449/b65008b27f6e60a73d80c1fd990f0481126b.pdf?_ga=2.194076141.1591086632.1553663514-2047335409.1553576371)
2. [PyTorch 的主页](https://pytorch.org/)
3. [《优化深度学习的内存消耗》](https://mxnet.incubator.apache.org/versions/master/architecture/note_memory.html)
\ No newline at end of file
......@@ -592,7 +592,7 @@ for epoch in range(epochs):
## 参考
1. Fizz buzz Wikipedia 页面, [https://en.wikipedia.org/wiki/Fizz_buzz](https://en.wikipedia.org/wiki/Fizz_buzz)
2. 部门(数学)维基百科页面, [https://zh.wikipedia.org/wiki/Division_(数学)](https://en.wikipedia.org/wiki/Division_(mathematics))
3. Joel Grus, *Fizz B* *在 Tensorflow 中出现*[http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow/](http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow/)
4. Ian Goodfellow,Yoshua Bengio 和 Aaron Courville, *D* *深度学习书*[http://www.deeplearningbook.org/](http://www.deeplearningbook.org/)
\ No newline at end of file
1. [Fizz buzz Wikipedia 页面](https://en.wikipedia.org/wiki/Fizz_buzz)
2. [除法(数学)维基百科页面](https://en.wikipedia.org/wiki/Division_(mathematics))
3. Joel Grus,[《Tensorflow 中的 Fizz buzz》](http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow/)
4. Ian Goodfellow,Yoshua Bengio 和 Aaron Courville,[《深度学习》](http://www.deeplearningbook.org/)
\ No newline at end of file
......@@ -665,5 +665,5 @@ PyTorch 社区正在制作不同的工具和实用程序包以整合到工作流
## 参考
1. `dataclasses`[的 Python 官方文档 https://docs.python.org/3/library/dataclasses.html](https://docs.python.org/3/library/dataclasses.html)
2. Ignite 部分中使用的示例均受 Ignite 的官方示例[的启发[https://github.com/pytorch/ignite/blob/master/examples/mnist/mnist.py](https://github.com/pytorch/ignite/blob/master/examples/mnist/mnist.py)
\ No newline at end of file
1. [`dataclasses`的 Python 官方文档](https://docs.python.org/3/library/dataclasses.html)
2. Ignite 部分中使用的示例均受 Ignite [官方示例](https://github.com/pytorch/ignite/blob/master/examples/mnist/mnist.py)的启发
\ No newline at end of file
......@@ -577,10 +577,10 @@ class SegmentationModel(nn.Module):
### 参考
1. 卷积网络,Udacity, [https://www.youtube.com/watch?v=ISHGyvsT0QY](https://www.youtube.com/watch?v=ISHGyvsT0QY)
2. LinkNet, [https://codeac29.github.io/projects/linknet/](https://codeac29.github.io/projects/linknet/)
3. Matthew D. Zeiler 和 Rob Fergus,*可视化和理解卷积网络*[https://cs.nyu.edu/~fergus/papers/zeilerECCV2014.pdf](https://cs.nyu.edu/~fergus/papers/zeilerECCV2014.pdf)
4. *一百层提拉米苏:用于语义分割的完全卷积 DenseNets*[https://arxiv.org/pdf/1611.09326.pdf](https://arxiv.org/pdf/1611.09326.pdf)
5. *深度学习卷积算法指南*[https://arxiv.org/pdf/1603.07285.pdf](https://arxiv.org/pdf/1603.07285.pdf)
6. 用于卷积算法的 GitHub 存储库 [https://github.com/vdumoulin/conv_arithmetic](https://github.com/vdumoulin/conv_arithmetic)
7. *LinkNet:利用编码器表示形式进行有效的语义分割*,Abhishek Chaurasia 和 Eugenio Culurciello,2017 年, [https://arxiv.org/abs/1707.03718](https://arxiv.org/abs/1707.03718)
\ No newline at end of file
1. [卷积网络,Udacity](https://www.youtube.com/watch?v=ISHGyvsT0QY)
2. [LinkNet](https://codeac29.github.io/projects/linknet/)
3. Matthew D. Zeiler 和 Rob Fergus,[《可视化和理解卷积网络》](https://cs.nyu.edu/~fergus/papers/zeilerECCV2014.pdf)
4. [《一百层提拉米苏:用于语义分割的完全卷积 DenseNets》](https://arxiv.org/pdf/1611.09326.pdf)
5. [《深度学习卷积算法指南》](https://arxiv.org/pdf/1603.07285.pdf)
6. [用于卷积算法的 GitHub 存储库](https://github.com/vdumoulin/conv_arithmetic)
7. [《LinkNet:利用编码器表示形式进行有效的语义分割》](https://arxiv.org/abs/1707.03718),Abhishek Chaurasia 和 Eugenio Culurciello,2017 年
\ No newline at end of file
......@@ -621,8 +621,8 @@ def forward(self, buffers, transitions):
## 参考
1. [https://arxiv.org/pdf/1706.03762.pdf](https://arxiv.org/pdf/1706.03762.pdf)
2. [https://github.com/stanfordnlp/spinn](https://github.com/stanfordnlp/spinn)
3. *LSTM:搜索空间漫游*,Greff,Klaus,Rupesh Kumar Srivastava,JanKoutník,Bas R.Steunebrink 和 JürgenSchmidhuber,IEEE Transactions on Neural Networks and Learning Systems,Vol。 2017 年 12 月 28 日,第 2222-2232 页, [https://arxiv.org/abs/1503.04069](https://arxiv.org/abs/1503.04069)
4. [http://colah.github.io/posts/2015-08-Understanding-LSTMs/](http://colah.github.io/posts/2015-08-Understanding-LSTMs/)
5. *注意就是您所需要的*,Vaswani,Ashish,Noam Shazeer,Niki Parmar,Jakob Uszkoreit,Llion Jones,Aidan N. Gomez,Lukasz Kaiser 和 Illia Polosukhin,NIPS,2017 年
\ No newline at end of file
1. <https://arxiv.org/pdf/1706.03762.pdf>
2. <https://github.com/stanfordnlp/spinn>
3. [《LSTM:搜索空间漫游》](https://arxiv.org/abs/1503.04069),Greff,Klaus,Rupesh Kumar Srivastava,JanKoutník,Bas R.Steunebrink 和 JürgenSchmidhuber,IEEE Transactions on Neural Networks and Learning Systems,2017 年 12 月 28 日,第 2222-2232 页
4. <http://colah.github.io/posts/2015-08-Understanding-LSTMs/>
5. 《您所需要的是注意力》,Vaswani,Ashish,Noam Shazeer,Niki Parmar,Jakob Uszkoreit,Llion Jones,Aidan N. Gomez,Lukasz Kaiser 和 Illia Polosukhin,NIPS,2017 年
\ No newline at end of file
......@@ -639,6 +639,6 @@ class ResidualBlock(nn.Module):
## 参考
1. *使用 PixelCNN 解码器进行条件图像生成*,Oord,Aäronvan den,Nal Kalchbrenner,Oriol Vinyals,Lasse Espeholt,Alex Graves 和 Koray Kavukcuoglu,NIPS,2016 年,[,https://arxiv.org/pdf /1606.05328.pdf](https://arxiv.org/pdf/1606.05328.pdf)
2. *并行 WaveNet:快速高保真语音合成*,Oord,Aäronvan den,Yazhe Li,Igor Babuschkin,Karen Simonyan,Oriol Vinyals,Koray Kavukcuoglu,George van den Driessche,Edward Lockhart,Luis C. Cobo, Florian Stimberg,Norman Casagrande,Dominik Grewe,Seb Noury,Sander Dieleman,Erich Elsen,Nal Kalchbrenner,Heiga Zen,Alex Graves,Helen King,Tom Walters,Dan Belov 和 Demis Hassabis,ICML,2018, [https:// // DeepMind.com/documents/131/Distilling_WaveNet.pdf](https://DeepMind.com/documents/131/Distilling_WaveNet.pdf)
3. 戈尔宾的 WaveNet 存储库 [https://github.com/golbin/WaveNet](https://github.com/golbin/WaveNet)
\ No newline at end of file
1. [《使用 PixelCNN 解码器的条件图像生成》](https://arxiv.org/pdf/1606.05328.pdf),Oord,Aäronvan den,Nal Kalchbrenner,Oriol Vinyals,Lasse Espeholt,Alex Graves 和 Koray Kavukcuoglu,NIPS,2016 年
2. [《并行 WaveNet:快速高保真语音合成》](https://DeepMind.com/documents/131/Distilling_WaveNet.pdf),Oord,Aäronvan den,Yazhe Li,Igor Babuschkin,Karen Simonyan,Oriol Vinyals,Koray Kavukcuoglu,George van den Driessche,Edward Lockhart,Luis C. Cobo, Florian Stimberg,Norman Casagrande,Dominik Grewe,Seb Noury,Sander Dieleman,Erich Elsen,Nal Kalchbrenner,Heiga Zen,Alex Graves,Helen King,Tom Walters,Dan Belov 和 Demis Hassabis,ICML,2018
3. [戈尔宾的 WaveNet 存储库](https://github.com/golbin/WaveNet)
\ No newline at end of file
......@@ -456,6 +456,6 @@ def optimize_model():
## 参考
1. Google DeepMind 挑战赛:Lee Sedol 与 AlphaGo, [https://www.youtube.com/watch?v=vFr3K2DORc8](https://www.youtube.com/watch?v=vFr3K2DORc8)
1. [Google DeepMind 挑战赛:Lee Sedol 与 AlphaGo](https://www.youtube.com/watch?v=vFr3K2DORc8)
本章由 Sudhanshu Passi 贡献。
\ No newline at end of file
......@@ -635,7 +635,7 @@ at::Tensor output = module->forward(inputs).toTensor();
我们已经看到可以通过 TorchScript 获得的优化,但是优化的二进制文件将如何处理? 是的,我们可以在 C ++世界中加载它,并制作 Go 服务器,然后在其中加载它,但这仍然很痛苦。
Redis Labs 和 Orobix 为我们带来了另一个名为 RedisAI 的解决方案。 它是基于 LibTorch 构建的高度优化的运行时,可以接受已编译的 TorchScript 二进制文件,以通过 Redis 协议提供服务。 对于没有 Redis 经验的人, [http://redis.io](http://redis.io) 有很好的文档,那里的介绍文档[3]应该是一个好的开始。
Redis Labs 和 Orobix 为我们带来了另一个名为 RedisAI 的解决方案。 它是基于 LibTorch 构建的高度优化的运行时,可以接受已编译的 TorchScript 二进制文件,以通过 Redis 协议提供服务。 对于没有 Redis 经验的人, [这里](http://redis.io)有很好的文档,那里的介绍文档[3]应该是一个好的开始。
RedisAI 带有三个选项来配置三个后端:PyTorch,TensorFlow 和 ONNX Runtime。 它并不仅限于此:RedisAI 在后端使用 DLPack 来使张量能够通过不同的框架,而无需花费很多转换成本。
......@@ -729,6 +729,6 @@ while True:
## 参考
1. [https://pytorch.org/docs/stable/jit.html](https://pytorch.org/docs/stable/jit.html)
2. [https://github.com/awslabs/mxnet-model-server/blob/master/docs/management_api.md](https://github.com/awslabs/mxnet-model-server/blob/master/docs/management_api.md)
3. [https://redis.io/topics/introduction](https://redis.io/topics/introduction)
\ No newline at end of file
1. <https://pytorch.org/docs/stable/jit.html>
2. <https://github.com/awslabs/mxnet-model-server/blob/master/docs/management_api.md>
3. <https://redis.io/topics/introduction>
\ No newline at end of file
# PyTorch 官方教程 1.7
来源: [https://pytorch.org/tutorials/](https://pytorch.org/tutorials/)
\ No newline at end of file
来源: <https://pytorch.org/tutorials/>
\ No newline at end of file
......@@ -4,7 +4,7 @@
**作者**[Soumith Chintala](http://soumith.ch)
[https://www.youtube.com/embed/u7x8RXwLKcA](https://www.youtube.com/embed/u7x8RXwLKcA)
<https://www.youtube.com/embed/u7x8RXwLKcA>
## 什么是 PyTorch?](docs / modern-java-zh /
......
......@@ -148,7 +148,7 @@ tensorboard --logdir=runs
```
从命令行,然后导航到 [https:// localhost:6006](https://localhost:6006) 应该显示以下内容。
从命令行,然后导航到`https://localhost:6006`应该显示以下内容。
![intermediate/../../_static/img/tensorboard_first_view.png](img/8b09d6361316e495383ceedf9b8407ea.png)
......
......@@ -27,7 +27,7 @@ $ python predict.py Schmidhuber
我假设您至少已经安装了 PyTorch,Python 和 Tensors:
* [https://pytorch.org/](https://pytorch.org/) 有关安装说明
* [安装说明](https://pytorch.org/)
* [使用 PyTorch 进行深度学习:60 分钟的闪电战](../beginner/deep_learning_60min_blitz.html)通常开始使用 PyTorch
* [使用示例](../beginner/pytorch_with_examples.html)学习 PyTorch 进行广泛而深入的概述
* [PyTorch(以前的 Torch 用户)](../beginner/former_torchies_tutorial.html)(如果您以前是 Lua Torch 用户)
......@@ -532,7 +532,7 @@ $ python predict.py Hazaki
```
运行`server.py`并访问 [http:// localhost:5533 /您的名字](http://localhost:5533/Yourname)以获取预测的 JSON 输出。
运行`server.py`并访问`http://localhost:5533/Yourname`以获取预测的 JSON 输出。
## 练习](docs / modern-java-zh /
......
......@@ -35,7 +35,7 @@ Iun
我假设您至少已经安装了 PyTorch,Python 和 Tensors:
* [https://pytorch.org/](https://pytorch.org/) 有关安装说明
* [安装说明](https://pytorch.org/)
* [使用 PyTorch 进行深度学习:60 分钟的闪电战](../beginner/deep_learning_60min_blitz.html)通常开始使用 PyTorch
* [使用示例](../beginner/pytorch_with_examples.html)学习 PyTorch 进行广泛而深入的概述
* [PyTorch(以前的 Torch 用户)](../beginner/former_torchies_tutorial.html)(如果您以前是 Lua Torch 用户)
......
......@@ -41,7 +41,7 @@
我假设您至少已经安装了 PyTorch,Python 和 Tensors:
* [https://pytorch.org/](https://pytorch.org/) 有关安装说明
* [安装说明](https://pytorch.org/)
* [使用 PyTorch 进行深度学习:60 分钟的闪电战](../beginner/deep_learning_60min_blitz.html)通常开始使用 PyTorch
* [使用示例](../beginner/pytorch_with_examples.html)学习 PyTorch 进行广泛而深入的概述
* [PyTorch(以前的 Torch 用户)](../beginner/former_torchies_tutorial.html)(如果您以前是 Lua Torch 用户)
......@@ -85,7 +85,7 @@ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
该项目的数据是成千上万的英语到法语翻译对的集合。
[开放数据堆栈交换](https://opendata.stackexchange.com/questions/3888/dataset-of-sentences-translated-into-many-languages)上的这个问题使我指向开放翻译站点 [https://tatoeba.org/](https://tatoeba.org/) ,该站点可从 [https://tatoeba.org/下载。 eng / downloads](https://tatoeba.org/eng/downloads) -更好的是,有人在这里做了一些额外的工作,将语言对拆分为单独的文本文件: [https://www.manythings.org/anki/](https://www.manythings.org/anki/)
[开放数据堆栈交换](https://opendata.stackexchange.com/questions/3888/dataset-of-sentences-translated-into-many-languages)上的这个问题使我指向[开放翻译站点](https://tatoeba.org/) ,该站点可从[这里](https://tatoeba.org/eng/downloads)下载。更好的是,有人在这里做了一些额外的工作,[将语言对拆分为单独的文本文件](https://www.manythings.org/anki/)
英文对法文对太大,无法包含在仓库中,因此请先下载到`data/eng-fra.txt`,然后再继续。 该文件是制表符分隔的翻译对列表:
......
......@@ -469,7 +469,7 @@ def forward(self,
### 进一步阅读](docs / modern-java-zh /
我们已经完成了教程! 有关更多涉及的演示,请查看 NeurIPS 演示以使用 TorchScript 转换机器翻译模型: [https://colab.research.google.com/drive/1HiICg6jRkBnr5hvK2-VnMi88Vi9pUzEJ](https://colab.research.google.com/drive/1HiICg6jRkBnr5hvK2-VnMi88Vi9pUzEJ)
我们已经完成了教程! 有关更多涉及的演示,[请查看 NeurIPS 演示以使用 TorchScript 转换机器翻译模型](https://colab.research.google.com/drive/1HiICg6jRkBnr5hvK2-VnMi88Vi9pUzEJ)
**脚本的总运行时间:**(0 分钟 0.269 秒)
......
......@@ -256,7 +256,7 @@ std::cout << output.slice(/*dim=*/1, /*start=*/0, /*end=*/5) << '\n';
小费
要总体上了解有关`torch::ones`和 PyTorch C ++ API 之类的功能的更多信息,请参阅 [https://pytorch.org/cppdocs](https://pytorch.org/cppdocs) 上的文档。 PyTorch C ++ API 提供了与 Python API 几乎相同的功能,使您可以像在 Python 中一样进一步操纵和处理张量。
要总体上了解有关`torch::ones`和 PyTorch C ++ API 之类的功能的更多信息,请参阅[这个页面](https://pytorch.org/cppdocs)上的文档。 PyTorch C ++ API 提供了与 Python API 几乎相同的功能,使您可以像在 Python 中一样进一步操纵和处理张量。
在最后一行,我们打印输出的前五个条目。 由于在本教程前面的部分中,我们为 Python 中的模型提供了相同的输入,因此理想情况下,我们应该看到相同的输出。 让我们通过重新编译我们的应用程序并以相同的序列化模型运行它来进行尝试:
......@@ -291,8 +291,8 @@ tensor([-0.2698, -0.0381, 0.4023, -0.3010, -0.0448], grad_fn=<SliceBackward>)
当然,有许多我们没有介绍的概念。 例如,您可能会发现自己想要扩展使用 C ++或 CUDA 实现的自定义运算符来扩展`ScriptModule`,并希望在纯 C ++生产环境中加载的`ScriptModule`内执行该自定义运算符。 好消息是:这是可能的,并且得到了很好的支持! 现在,您可以浏览[这个](https://github.com/pytorch/pytorch/tree/master/test/custom_operator)文件夹作为示例,我们将很快提供一个教程。 目前,以下链接通常可能会有所帮助:
* 火炬脚本参考: [https://pytorch.org/docs/master/jit.html](https://pytorch.org/docs/master/jit.html)
* PyTorch C ++ API 文档: [https://pytorch.org/cppdocs/](https://pytorch.org/cppdocs/)
* PyTorch Python API 文档: [https://pytorch.org/docs/](https://pytorch.org/docs/)
* [Torch 脚本参考](https://pytorch.org/docs/master/jit.html)
* [PyTorch C++ API 文档](https://pytorch.org/cppdocs/)
* [PyTorch Python API 文档](https://pytorch.org/docs/)
与往常一样,如果您遇到任何问题或疑问,可以使用我们的[论坛](https://discuss.pytorch.org/)[GitHub 问题](https://github.com/pytorch/pytorch/issues)进行联系。
\ No newline at end of file
......@@ -206,7 +206,7 @@ True
## 性能提升] [docs / modern-java-zh /
在具有 Tensor Cores 支持的 Nvidia 硬件上观察到了最大的性能提升。 在运行 Nvidia [https://github.com/NVIDIA/apex](https://github.com/NVIDIA/apex) 提供的 AMP(自动混合精度)培训脚本时,我们可以将性能提高 22%以上。
在具有 Tensor Cores 支持的 Nvidia 硬件上观察到了最大的性能提升。 在运行 [Nvidia](https://github.com/NVIDIA/apex) 提供的 AMP(自动混合精度)培训脚本时,我们可以将性能提高 22%以上。
`python main_amp.py -a resnet50 --b 200 --workers 16 --opt-level O2  ./data`
......@@ -304,7 +304,7 @@ output = model(input)
```
但是,并非所有运算符都完全转换为支持 Channels Last(通常返回连续输出)。 这意味着您需要根据支持的运算符列表 [https://github.com/pytorch/pytorch/wiki/Operators-with-Channels-Last-support](https://github.com/pytorch/pytorch/wiki/Operators-with-Channels-Last-support) 来验证已使用运算符的列表,或进行内存格式检查 进入急切的执行模式并运行模型。
但是,并非所有运算符都完全转换为支持 Channels Last(通常返回连续输出)。 这意味着您需要根据[支持的运算符列表](https://github.com/pytorch/pytorch/wiki/Operators-with-Channels-Last-support)来验证已使用运算符的列表,或进行内存格式检查 进入急切的执行模式并运行模型。
运行以下代码后,如果运算符的输出与输入的存储格式不匹配,运算符将引发异常。
......@@ -386,7 +386,7 @@ Optional
```
如果您发现不支持 Channels Last 张量的运算符并且想要贡献力量,请随时使用以下开发人员指南 [https://github.com/pytorch/pytorch/wiki/Writing-memory-format-aware -运算符](https://github.com/pytorch/pytorch/wiki/Writing-memory-format-aware-operators)
如果您发现不支持 Channels Last 张量的运算符并且想要贡献力量,请随时使用[以下开发人员指](https://github.com/pytorch/pytorch/wiki/Writing-memory-format-aware-operators)
下面的代码是恢复火炬的属性。
......
......@@ -184,7 +184,7 @@ def forward(self, x : torch.Tensor) -> torch.Tensor:
此代码段将写出名为`parallel.json`的文件。 如果您将 Google Chrome 浏览器导航到`chrome://tracing`,单击`Load`按钮,然后加载该 JSON 文件,则应该看到类似以下的时间轴:
![https://i.imgur.com/rm5hdG9.png](img/6b495cb0cd4336a2469d9f07696faa3e.png)
![](img/6b495cb0cd4336a2469d9f07696faa3e.png)
时间轴的横轴表示时间,纵轴表示执行线程。 如我们所见,我们一次运行两个`lstm`实例。 这是我们辛勤工作使双向层平行的结果!
......@@ -224,7 +224,7 @@ def forward(self, x : torch.Tensor) -> torch.Tensor:
我们还可以再次使用 Chrome 跟踪器来查看运行情况:
![https://i.imgur.com/kA0gyQm.png](img/ac8752539498c11001a65c1ff470d696.png)
![](img/ac8752539498c11001a65c1ff470d696.png)
现在我们可以看到所有`LSTM`实例都在完全并行运行。
......
......@@ -35,13 +35,13 @@
* Mac 版 Zipeg / iZip / UnRarX
* 适用于 Linux 的 7-Zip / PeaZip
本书的代码包也托管在 GitHub 的 [https://github.com/PacktPublishing/Reinforcement-Learning-with-TensorFlow](https://github.com/PacktPublishing/Reinforcement-Learning-with-TensorFlow) 上。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。
本书的代码包也托管在 [GitHub](https://github.com/PacktPublishing/Reinforcement-Learning-with-TensorFlow) 上。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。
我们还从 **[https://github.com/PacktPublishing/](https://github.com/PacktPublishing/)** 提供了丰富的书籍和视频目录中的其他代码包。 去看一下!
我们还从[这里](https://github.com/PacktPublishing/)提供了丰富的书籍和视频目录中的其他代码包。 去看一下!
# 下载彩色图像
我们还提供了 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 您可以在此处下载: [http://www.packtpub.com/sites/default/files/downloads/ReinforcementLearningwithTensorFlow_ColorImages.pdf](http://www.packtpub.com/sites/default/files/downloads/ReinforcementLearningwithTensorFlow_ColorImages.pdf)
我们还提供了 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 [您可以在此处下载](http://www.packtpub.com/sites/default/files/downloads/ReinforcementLearningwithTensorFlow_ColorImages.pdf)
# 使用约定
......
......@@ -357,7 +357,7 @@ Xavier 初始化是神经网络中权重的初始化,是遵循高斯分布的
因此,xavier 初始化有助于产生最佳权重,以使信号在最佳范围内,从而使信号变得既不会太小也不会太大的机会最小。
前述公式的推导超出了本书的范围。 请随时在此处进行搜索( [http://andyljones.tumblr.com/post/110998971763/an-explanation-of-xavier-initialization](http://andyljones.tumblr.com/post/110998971763/an-explanation-of-xavier-initialization),并进行推导以获得更好的理解。
前述公式的推导超出了本书的范围。 [请随时在此处进行搜索](http://andyljones.tumblr.com/post/110998971763/an-explanation-of-xavier-initialization),并进行推导以获得更好的理解。
# 神经网络模型
......@@ -758,9 +758,7 @@ OpenAI Gym 是一个由 OpenAI 团队创建的强化学习操场,旨在提供
TensorFlow 的基础是我们在本章前面讨论过的**计算图****张量**。 张量是 n 维向量。 因此,标量和矩阵变量也是张量。 在这里,我们将尝试从 TensorFlow 开始的一些基本计算。 请尝试在 python IDE(例如 Jupyter Notebook)中实现本节。
有关 TensorFlow 的安装和依赖项,请参考以下链接:
[https://www.tensorflow.org/install/](https://www.tensorflow.org/install/)
有关 TensorFlow 的安装和依赖项,[请参考以下链接](https://www.tensorflow.org/install/)
通过以下命令导入`tensorflow`
......@@ -973,9 +971,7 @@ OpenAI Gym 由两部分组成:
* **健身房开放源代码库**:它包含许多环境,可以解决不同的测试问题,您可以在其中测试您的强化学习算法。 这足以满足状态和操作空间的信息。
* **OpenAI Gym 服务**:这使您可以将座席的表现与其他经过训练的座席进行比较。
有关安装和依赖项,请参考以下链接:
[https://gym.openai.com/docs/](https://gym.openai.com/docs/)
有关安装和依赖项,[请参考以下链接](https://gym.openai.com/docs/)
在介绍了基础知识之后,现在我们将从下一个[第 2 章](../Text/02.html)*使用 OpenAI Gym* 训练强化学习代理开始使用 OpenAI Gym 实施强化学习。
......
......@@ -137,7 +137,7 @@ Discrete(16)
# 使用 OpenAI Gym 环境对代理进行编程
本节考虑的环境是 **Frozen Lake v0** 。 有关环境的实际文档可以在 [https://gym.openai.com/envs/FrozenLake-v0/](https://gym.openai.com/envs/FrozenLake-v0/) 中找到。
本节考虑的环境是 **Frozen Lake v0** 。 有关环境的实际文档可以在[这个页面](https://gym.openai.com/envs/FrozenLake-v0/)中找到。
此环境由代表一个湖泊的 *4 x 4* 网格组成。 因此,我们有 16 个网格块,其中每个块可以是开始块(S),冻结块(F),目标块(G)或孔块(H)。 因此,代理程序的目标是学会从头到尾进行导航而不会陷入困境:
......
......@@ -15,7 +15,7 @@
2014 年,Google 以高达 5 亿美元的价格收购了伦敦一家名为 DeepMind 的创业公司。 在新闻中,我们了解到他们创建了一个 AI 代理来击败任何 Atari 游戏,但是 Google 付出如此高的价格收购它的主要原因是因为这一突破向**通用人工智能**靠近了一步。 通用人工智能被称为 AI 代理。 它能够完成各种任务并像人类一样泛化。 当它超过这一点时,该点称为人工超级智能。 目前,AI 社区所做的工作就是我们所说的人工智能,即人工智能,其中 AI 代理能够执行多个任务,但不能概括各种任务。
DeepMind 在研究期刊 **Nature** [http://www.davidqiu.com:8888/research/nature14236.pdf)上发表了他们的论文*通过深度强化学习进行人的水平控制*](http://www.davidqiu.com:8888/research/nature14236.pdf)表明,他们的深度强化学习算法可成功应用于 50 种不同的 Atari 游戏,并在其中 30 种游戏中达到高于人类水平的性能。 他们的 AI 代理称为 **Deep-Q 学习者**。 在详细深入学习强化学习之前,让我们回顾一下强化学习的基础知识。
DeepMind 在研究期刊 **Nature** 上发表了他们的论文[《通过深度强化学习进行人类水平控制》](http://www.davidqiu.com:8888/research/nature14236.pdf),这表明,他们的深度强化学习算法可成功应用于 50 种不同的 Atari 游戏,并在其中 30 种游戏中达到高于人类水平的性能。 他们的 AI 代理称为 **Deep-Q 学习者**。 在详细深入学习强化学习之前,让我们回顾一下强化学习的基础知识。
有监督和无监督的学习是 AI 应用社区众所周知的。 **监督学习**处理包含输入特征和目标标签(连续或离散)的标记数据集,并创建将这些输入特征映射到目标标签的模型。 另一方面,**无监督学习**处理仅包含输入特征但不包含目标标签的未标记数据集,其目的是发现基础模式,以将数据分类到不同集群中,并分别定义其效用。 不同集群中特定类型的数据。
......@@ -364,9 +364,9 @@ DeepMind 在其 DQN 网络中使用了三个卷积层和两个完全连接的层
生成目标 Q 值的单独网络是一项重要功能,它使深层 Q 网络具有独特性。 由此单独的目标网络生成的 Q 值用于计算代理在训练过程中采取的每项操作之后的损失。 使用两个网络而不是一个网络的原因在于,由于每个步骤的权重变化,主要的 Q 网络值在每个步骤中都在不断变化,这使得从该网络生成的 Q 值不稳定。
为了获得稳定的 Q 值,使用了另一个神经网络,其权重与主要 Q 网络相比变化缓慢。 这样,训练过程更加稳定。 这也发表在 DeepMind 的文章( [http://www.davidqiu.com:8888/research/nature14236.pdf](http://www.davidqiu.com:8888/research/nature14236.pdf)中。 他们发现这种方法能够稳定培训过程。
为了获得稳定的 Q 值,使用了另一个神经网络,其权重与主要 Q 网络相比变化缓慢。 这样,训练过程更加稳定。 DeepMind 的文章也发表在[这个页面](http://www.davidqiu.com:8888/research/nature14236.pdf)中。 他们发现这种方法能够稳定培训过程。
改编自 Minh 等。 (2015)( [http://www.davidqiu.com:8888/research/nature14236.pdf](http://www.davidqiu.com:8888/research/nature14236.pdf),以下是 DQN 的伪代码:
[改编自 Minh 等,(2015)](http://www.davidqiu.com:8888/research/nature14236.pdf),以下是 DQN 的伪代码:
```py
Input: the image(game frame) pixels
......
......@@ -26,7 +26,7 @@
# 为什么使用异步方法?
**Google DeepMind 和 MILA 的联合团队于 2016 年 6 月发布了用于深度强化学习****同步方法( [https://arxiv.org/pdf/1602.01783.pdf](https://arxiv.org/pdf/1602.01783.pdf) )。 它速度更快,并且能够在多核 CPU 上而不是使用 GPU 上显示出良好的效果。 异步方法也适用于连续动作空间和离散动作空间。**
Google DeepMind 和 MILA 的联合团队于 2016 年 6 月发布了用于深度强化学习的[**同步方法**](https://arxiv.org/pdf/1602.01783.pdf)。 它速度更快,并且能够在多核 CPU 上而不是使用 GPU 上显示出良好的效果。 异步方法也适用于连续动作空间和离散动作空间。
如果我们回想起深度 Q 网络的方法,我们会使用经验重播作为存储所有经验的存储,然后使用其中的随机样本来训练我们的深度神经网络,从而反过来预测最大 Q 值。 有利的行动。 但是,随着时间的流逝,它具有高内存使用和大量计算的缺点。 这背后的基本思想是克服这个问题。 因此,不是使用经验重播,而是创建了环境的多个实例,并且多个代理以异步方式并行执行操作(如下图所示):
......
......@@ -21,13 +21,13 @@
如前所述,游戏是测试这些 AI 算法的最佳测试平台。 除了具有成本效益之外,没有两个游戏是相同的,因此能够使用从一个游戏中学到的知识并将其应用于另一个游戏,这是一般智慧的标志。 单个算法可以应用的游戏越多,它变得越通用。
我们第一次看到向**人工智能****AGI** )迈出了巨大的一步,当时 DeepMind 证明了他们的 AI 可以击败许多 Atari 游戏,使其成为现存最通用的 AI 系统 。 DeepMind 在研究期刊 **Nature** [http://www.davidqiu.com:8888/research/nature14236。)上发表了他们的论文*通过深度强化学习进行人级控制*。 pdf](http://www.davidqiu.com:8888/research/nature14236.pdf) ),由 Silver 等 等 展示了他们的 AI 代理**深度 Q 学习器**,使用了深度强化学习算法,已成功应用于 50 种不同的 Atari 游戏,并在以下截图中显示了其中的 30 种,其性能均达到人类水平。 通用人工智能的发展方向是 Google 购买 DeepMind 的原因:
我们第一次看到向**人工智能****AGI** )迈出了巨大的一步,当时 DeepMind 证明了他们的 AI 可以击败许多 Atari 游戏,使其成为现存最通用的 AI 系统 。 DeepMind 在研究期刊 **Nature** 上发表了他们的论文[《通过深度强化学习进行人类级别控制》](http://www.davidqiu.com:8888/research/nature14236.pdf),由 Silver 等展示了他们的 AI 代理**深度 Q 学习器**,使用了深度强化学习算法,已成功应用于 50 种不同的 Atari 游戏,并在以下截图中显示了其中的 30 种,其性能均达到人类水平。 通用人工智能的发展方向是 Google 购买 DeepMind 的原因:
![](img/1ee7ccc9-af7f-42c3-85ed-94293d4cb9e2.jpg)
比较 50 种不同的 Atari 游戏的性能:通过深度强化学习( [http://www.davidqiu.com),将 DQN 的性能相对于*专业级人类游戏测试仪的规范化 Silver et al.:8888/research/nature14236.pdf*](http://www.davidqiu.com:8888/research/nature14236.pdf) )。 等
比较 50 种不同的 Atari 游戏的性能:DQN 的性能根据专业人类玩家测试员规范化,[《通过深度强化学习的人类水平控制》](http://www.davidqiu.com:8888/research/nature14236.pdf)
2016 年 3 月 9 日,我们见证了 Google DeepMind 的 AlphaGo 在古代中国游戏 Go 中击败 18 届世界冠军 Lee Sedol 的历史。 对于整个 AI 社区来说,这是一个伟大的里程碑。 这是因为人们投入了毕生精力来掌握 Go 游戏。 由于其复杂性,围棋游戏具有很高的挑战性。 根据 1997 年《纽约时报》的文章( [http://www.nytimes.com/1997/07/29/science/to-test-a-powerful-computer-play-an-ancient-game.html](http://www.nytimes.com/1997/07/29/science/to-test-a-powerful-computer-play-an-ancient-game.html)科学家说,围棋是智力水平最高的游戏,要在围棋上击败人类至少要花一个世纪的时间。 但是,由于有了 Google DeepMind,我们得以在不到二十年的时间内实现了这一壮举。 以下是本章将涉及的主题:
2016 年 3 月 9 日,我们见证了 Google DeepMind 的 AlphaGo 在古代中国游戏 Go 中击败 18 届世界冠军 Lee Sedol 的历史。 对于整个 AI 社区来说,这是一个伟大的里程碑。 这是因为人们投入了毕生精力来掌握 Go 游戏。 由于其复杂性,围棋游戏具有很高的挑战性。 根据 1997 年[《纽约时报》的文章](http://www.nytimes.com/1997/07/29/science/to-test-a-powerful-computer-play-an-ancient-game.html)科学家说,围棋是智力水平最高的游戏,要在围棋上击败人类至少要花一个世纪的时间。 但是,由于有了 Google DeepMind,我们得以在不到二十年的时间内实现了这一壮举。 以下是本章将涉及的主题:
* 什么是去?
* AlphaGo-精通 Go
......@@ -165,7 +165,7 @@ Silver et。 等
# AlphaGo 零
第一代 AlphaGo 能够击败专业的 Go 玩家。 2017 年 10 月,Google DeepMind 发表了有关《自然界的 AlphaGo 零》的论文( [https://www.nature.com/articles/nature24270](https://www.nature.com/articles/nature24270)。 AlphaGo Zero 是 AlphaGo 的最新版本。 早期版本的 AlphaGo 在接受过数以千计的从业余到专业游戏的人类游戏训练后,学会了玩游戏。 但是 AlphaGo 的最终版本(即 AlphaGo Zero)从零开始学到了一切,这是从第一个基本原理开始的,既没有使用任何人工数据也没有任何人工干预,并且能够实现最高水平的性能。 因此,AlphaGo Zero 通过与自己对战来学习玩围棋。 最大的壮举之一是,AlphaGo Zero 在 19 小时内就能够学习更高级的围棋策略的基础知识,包括生与死,影响力和领土。 在短短的三天内,AlphaGo Zero 击败了所有先前的 AlphaGo 版本,并在 40 天内超过了人类对 Go 的一千年了解。
第一代 AlphaGo 能够击败专业的 Go 玩家。 2017 年 10 月,Google DeepMind 在 Nature 上发表了有关[《AlphaGo Zero》](https://www.nature.com/articles/nature24270)的论文。 AlphaGo Zero 是 AlphaGo 的最新版本。 早期版本的 AlphaGo 在接受过数以千计的从业余到专业游戏的人类游戏训练后,学会了玩游戏。 但是 AlphaGo 的最终版本(即 AlphaGo Zero)从零开始学到了一切,这是从第一个基本原理开始的,既没有使用任何人工数据也没有任何人工干预,并且能够实现最高水平的性能。 因此,AlphaGo Zero 通过与自己对战来学习玩围棋。 最大的壮举之一是,AlphaGo Zero 在 19 小时内就能够学习更高级的围棋策略的基础知识,包括生与死,影响力和领土。 在短短的三天内,AlphaGo Zero 击败了所有先前的 AlphaGo 版本,并在 40 天内超过了人类对 Go 的一千年了解。
AlphaGo Zero 背后最重要的想法是,它完全从空白状态(即清晰的 Go 棋盘)中学习,并通过自己的玩法自行弄清楚,而无需任何人类知识,没有任何人类游戏示例和数据,甚至没有任何东西 人为干预。 它从最初的基本原理中发现并发展了学习围棋游戏的直觉。 这种从头开始的学习称为**表格学习****空白板学习**
......@@ -215,7 +215,7 @@ Google DeepMind 已经开始使用 AlphaGo Zero 来了解蛋白质折叠,因
![](img/31213861-ace9-4d22-806f-cff174f04933.png)
Silver 等人从 Google DeepMind 的《 AlphaGo Zero in Nature》( [https://www.nature.com/articles/nature24270](https://www.nature.com/articles/nature24270) )出版物中摘取了 AlphaGo Zero 的自玩增强学习架构
Silver 等人从 Google DeepMind 在 Nature 出版物上的[《AlphaGo Zero》](https://www.nature.com/articles/nature24270)中摘取了 AlphaGo Zero 的自玩增强学习架构
基于这些选定的移动集,接收不同的游戏状态,每个状态对应于它们的移动。 由于您模拟了在先前状态下的移动,因此会产生许多不同的状态。 现在,对于这些下一组状态,通过输入这些游戏状态的表示张量来重复前面的过程,并获得其策略向量。
......
......@@ -81,7 +81,7 @@
![](img/a439e6b9-b14f-40fb-84e3-2d8ef4bf84ca.png)
* 识别周围环境的组成部分,其中包括人行道,人,交通信号灯,任何建筑,道路边界,其他车辆等。 对于 AI,由于使用**卷积神经网络****CNN** )和**生成对抗网络****GAN** )。 CNN 和 GAN 的成功可用于自动驾驶环境要素的识别过程。
* **预测**环境的未来状态。 识别当前环境状态的环境的当前组成部分很重要,但是将其用作输入并预测未来环境状态对于计划下一步行动也很有必要。 解决此问题的基本方法之一是创建环境图。 此外,我们可以合并深度神经网络,例如递归神经网络的变体,例如**长短时记忆网络****LSTM** )或**门控循环单元**[ **GRU** ),以整合和整合过去时间步长以及当前时间步长和预测未来中的数据。 正如我们在[第 1 章](../Text/01.html)*深度学习–体系结构和框架*中讨论的那样,由于长期依赖以及 LSTM 单元如何解决该问题,围绕梯度消失的问题仍然存在 RNN 的情况。 RNN 是集成时间序列数据的最新技术,它在 DeepTracking( [https://arxiv.org/pdf/1602.00991.pdf](https://arxiv.org/pdf/1602.00991.pdf)中显示了对象跟踪方面的改进。
* **预测**环境的未来状态。 识别当前环境状态的环境的当前组成部分很重要,但是将其用作输入并预测未来环境状态对于计划下一步行动也很有必要。 解决此问题的基本方法之一是创建环境图。 此外,我们可以合并深度神经网络,例如递归神经网络的变体,例如**长短时记忆网络****LSTM** )或**门控循环单元**[ **GRU** ),以整合和整合过去时间步长以及当前时间步长和预测未来中的数据。 正如我们在[第 1 章](../Text/01.html)*深度学习–体系结构和框架*中讨论的那样,由于长期依赖以及 LSTM 单元如何解决该问题,围绕梯度消失的问题仍然存在 RNN 的情况。 RNN 是集成时间序列数据的最新技术,它在 [DeepTracking](https://arxiv.org/pdf/1602.00991.pdf)中显示了对象跟踪方面的改进。
* **规划**是整个过程中最难的部分。 该任务包括将识别和预测的结果集成在一起,以计划将来的动作序列以及下一个驾驶动作集(向左或向右转向,加速等等),以使导航安全且成功。 这是一项艰巨的任务,因为整合和规划需要处理不可避免的情况才能安全到达目的地。 强化学习最适合此类控制计划任务。 我们已经了解了如何成功地部署强化学习来控制 50 场 Atari 游戏中的计划任务,以及 Google DeepMind 提供的最先进的 AlphaGo Zero。 在这些情况下,我们目睹了深度学习在进行表示学习的同时进行强化学习的规划。
......@@ -103,15 +103,15 @@
因此,强化学习由于其行动奖励机制,可以根据所采取的驾驶行为和所获得的相应奖励进行建模,然后计划采取哪种行动。 测试自动驾驶的奖励机制对于真实汽车来说是非常危险且昂贵的,因为奖励值应基于良好的驾驶和意外情况而保持稳定。 因此,最好在 TORCS 或 Unity 等模拟环境中进行测试。
# 拟议的自动驾驶框架
# 提出的自动驾驶框架
在本节中,我们将讨论 El Sallab 等人给出的拟议的用于自动驾驶的深度强化学习框架。 2017 年版( [https://arxiv.org/pdf/1704.02532.pdf](https://arxiv.org/pdf/1704.02532.pdf)
在本节中,我们将讨论 El Sallab 等人(2017)给出的[提出的用于自动驾驶的深度强化学习框架](https://arxiv.org/pdf/1704.02532.pdf)
以下是端到端深度神经网络的体系结构:
![](img/c0d1b6ca-7308-4b36-b494-851bef3b4473.png)
El Sallab 等人对自动驾驶深层神经网络进行端到端培训。 2017 年末( [https://arxiv.org/pdf/1704.02532.pdf](https://arxiv.org/pdf/1704.02532.pdf)
[El Sallab 等人(2017)对自动驾驶深层神经网络进行端到端培训](https://arxiv.org/pdf/1704.02532.pdf)
让我们详细讨论前面的体系结构。 在这种情况下,输入是多个时间步长上环境状态的汇总。
......@@ -157,7 +157,7 @@ El Sallab 等人对自动驾驶深层神经网络进行端到端培训。 2017
# DeepTraffic –用于自动驾驶的 MIT 模拟器
DeepTraffic( [https://selfdrivingcars.mit.edu/deeptraffic/](https://selfdrivingcars.mit.edu/deeptraffic/)是为课程 *MIT 6.S094:MIT 的自动驾驶汽车深度学习*创建的,由 Lex Fridman 教授 。 课程内容和作业是公开的。 DeepTraffic 由于其排行榜而获得了很多欢迎。 迄今为止,DeepTraffic 拥有 13,000 多个提交文件,竞争非常激烈。 用户必须在`convnet.js`(由 Andrej Karpathy 创建的框架)中使用本节开头提到的链接中存在的编码依据来编写其神经网络。 平均速度最高的座席在排行榜上居首。
[DeepTraffic](https://selfdrivingcars.mit.edu/deeptraffic/) 是为课程 *MIT 6.S094:MIT 的自动驾驶汽车深度学习*创建的,由 Lex Fridman 教授 。 课程内容和作业是公开的。 DeepTraffic 由于其排行榜而获得了很多欢迎。 迄今为止,DeepTraffic 拥有 13,000 多个提交文件,竞争非常激烈。 用户必须在`convnet.js`(由 Andrej Karpathy 创建的框架)中使用本节开头提到的链接中存在的编码依据来编写其神经网络。 平均速度最高的座席在排行榜上居首。
诸如 DeepTraffic 之类的模拟可帮助训练不同的方法,以使汽车代理迅速适应模拟环境。 此外,它的竞争性元素随着时间的推移增加了更好的提交,超过了过去的最高得分。 比赛很有趣,但在现实世界中,学生无法测试他们的深度强化学习脚本。 因此,DeepTraffic 为下一代 AI 开发人员提供了使用不同方法的最佳测试平台,这肯定会导致未来的 AI 开发人员在现实世界中创造出自动驾驶汽车,而这要得益于这些模拟的学习。
......
......@@ -69,7 +69,7 @@
投资组合管理,甚至任何设计的交易算法所需的算法,都应可在不同市场上扩展。 传统算法曾经失败,因为无法在不同的市场上扩展,因为市场受资产类型和资产总数等因素支配,这些因素因市场而异。 这是因为资产的模式和行为因市场而异,并且传统算法没有得到概括。 此处的机器学习具有跨不同垂直方向(即不同金融市场)进行泛化的优势。
此外,如前所述,强化学习在金融投资组合管理中的应用在人工智能界的研究人员中很重要。 在本章中,我们将讨论一个:关于*的最新论文,该论文针对金融投资组合管理问题*[https://arxiv.org/pdf/1706.10059.pdf](https://arxiv.org/pdf/1706.10059.pdf) ),由*的研究者由西安交通大学-利物浦大学**出版。*** 我们将介绍他们采取的方法及其相对于当前在线投资组合管理方法的绩效,如下所示:
此外,如前所述,强化学习在金融投资组合管理中的应用在人工智能界的研究人员中很重要。 在本章中,我们将讨论一个关于[《针对金融投资组合管理问题的深度强化学习框架》](https://arxiv.org/pdf/1706.10059.pdf)的最新论文,该论文由西交利物浦大学的研究者发布。我们将介绍他们采取的方法及其相对于当前在线投资组合管理方法的绩效,如下所示:
* 介绍
* 问题定义
......
......@@ -12,7 +12,7 @@
诸如处理连续动作空间域的策略梯度之类的算法归为**连续动作空间****CAS** )算法。 因此,在行动空间上提供随机表示的基于策略的方法解决了该问题,而不是 DAS 算法中的离散化。 CAS 算法最初是开发并用于低维状态空间,后来使用基于 CNN 的体系结构扩展到高维状态空间。 CAS 算法分为两个子类别:**随机连续动作空间****SCAS** )和**确定性连续动作空间****DCAS** )算法。 它们之间的主要区别在于复杂性,因为 SCAS 算法提供了更好的覆盖范围,因此需要大量的训练样本来学习更好的策略。 在现实世界的机器人应用中获取大量训练样本是非常不可行的,因此,仿真必须以尽可能最佳的方式表示现实世界,否则生成现实世界的数据将非常昂贵。
确定性策略梯度的发现超过了随机策略算法,如 Silver et al( [http://proceedings.mlr.press/v32/silver14.pdf](http://proceedings.mlr.press/v32/silver14.pdf)所述,该技术已包含在[附录 A](../Text/15.html) 中, *强化学习*中的其他主题。 在本章中,我们将介绍机器人强化学习背后的挑战以及当前如何实施机器人强化学习。
确定性策略梯度的发现超过了随机策略算法,如 [Silver 等人](http://proceedings.mlr.press/v32/silver14.pdf)所述,该技术已包含在[附录 A](../Text/15.html) 中, *强化学习*中的其他主题。 在本章中,我们将介绍机器人强化学习背后的挑战以及当前如何实施机器人强化学习。
本章将讨论的主题包括:
......@@ -175,7 +175,7 @@ Perkins 和 Barto(2002)提出了一种基于 Lyapunov 函数构造强化学
在本章中,我们介绍了强化学习算法的现状以及机器人技术方面的挑战。 我们还尝试详细了解每个挑战。 我们还了解了实际挑战及其建议的解决方案。 破解端到端机器人技术的解决方案将是 AI 社区最大的里程碑。 当前,算法和数据处理单元的不断改进面临挑战。 但是,我们看到机器人执行一般人工任务的日子已经过去了。 如果您想跟进机器人强化学习中的一些研究,那么您可以从以下选项开始:
* 顾世祥等人的“ *具有异步非策略更新的*机器人操纵的深度强化学习”。 2016( [https://arxiv.org/pdf/1610.00633.pdf](https://arxiv.org/pdf/1610.00633.pdf)**
* Yahya 等人的“ *具有分布式异步指导策略搜索*的集体机器人强化学习”。 2016( [https://arxiv.org/pdf/1610.00673.pdf](https://arxiv.org/pdf/1610.00673.pdf)
* [顾世祥等人的《具有异步非策略更新的用于机器人操纵的深度强化学习》,2016](https://arxiv.org/pdf/1610.00633.pdf)
* [Yahya 等人的《具有分布式异步指导策略搜索用于集体机器人的强化学习》,2016](https://arxiv.org/pdf/1610.00673.pdf)
在下一章中,我们将尝试涵盖另一个有趣的领域,即广告技术以及如何使用深度强化学习来破坏它。
\ No newline at end of file
......@@ -8,7 +8,7 @@
# 深度强化学习的分层对象检测
在本节中,我们将尝试理解如何根据 Bellver 等人*分层对象检测* *n 中使用深度增强学习*中建议的框架,将深度增强学习应用于分层对象检测。 等 (2016)( [https://arxiv.org/pdf/1611.03718.pdf](https://arxiv.org/pdf/1611.03718.pdf)。 该实验展示了一种使用深度强化学习在图像中执行分层对象检测的方法,该方法主要侧重于承载更丰富信息的图像重要部分。 此处的目的是训练一个深度增强学习代理,为其提供一个图像窗口,并将图像进一步分为五个较小的窗口,并且该代理成功地将注意力集中在较小的窗口之一上。
在本节中,我们将尝试理解如何根据 Bellver 等人(2016)在[《使用深度强化学习的分层对象检测》](https://arxiv.org/pdf/1611.03718.pdf)中建议的框架,将深度增强学习应用于分层对象检测。 该实验展示了一种使用深度强化学习在图像中执行分层对象检测的方法,该方法主要侧重于承载更丰富信息的图像重要部分。 此处的目的是训练一个深度增强学习代理,为其提供一个图像窗口,并将图像进一步分为五个较小的窗口,并且该代理成功地将注意力集中在较小的窗口之一上。
现在,让我们考虑一下人类如何看待图像。 我们总是以顺序的方式提取信息以了解图像的内容:
......@@ -55,7 +55,7 @@ SPP 网络的一大缺点是,只能微调网络的全连接层,而不能进
![](img/a1a79d8b-a348-48f6-87b4-5cc9a116deed.png)
Ross Girshick 的 Fast R-CNN( [https://arxiv.org/pdf/1504.08083.pdf](https://arxiv.org/pdf/1504.08083.pdf)
Ross Girshick 的 [Fast R-CNN](https://arxiv.org/pdf/1504.08083.pdf)
在 Fast R-CNN 中,将输入图像和多个感兴趣区域作为 CNN 的输入。 完成 RoI 的合并以获得固定大小的特征图,然后通过**全连接层****FC** )发送以获得特征向量。 R-CNN 每个感兴趣区域具有两个输出向量,如下所示:
......@@ -157,8 +157,7 @@ YOLO 还可以预测训练中所有班级每个盒子的班级得分。 因此
![](img/c804ff2f-7264-4eac-99a1-8aeb5a3fd5a7.png)
**分层对象检测模型(架构)**来自具有深度强化学习的分层对象检测
[https://arxiv.org/pdf/1611.03718.pdf](https://arxiv.org/pdf/1611.03718.pdf) )Bellver 等。 等 2016 年
**分层对象检测模型(架构)**来自[《具有深度强化学习的分层对象检测》](https://arxiv.org/pdf/1611.03718.pdf),Bellver 等,2016 年
# 培训细节
......
......@@ -93,7 +93,7 @@
![](img/07e5144e-396a-479d-9b24-02f4f54dce41.png)
Paulus 等人在《摘要摘要的深度强化模型》( [https://arxiv.org/pdf/1705.04304.pdf](https://arxiv.org/pdf/1705.04304.pdf) )中发表的时间内注意和解码器内注意。 等 2017 年
Paulus 等人(2017)在[《用于抽象摘要的深度强化模型》](https://arxiv.org/pdf/1705.04304.pdf)中发表的时间内注意和解码器内注意
# 令牌生成和指针
......@@ -172,7 +172,7 @@ Paulus 等人在《摘要摘要的深度强化模型》( [https://arxiv.org/pd
* 强化学习目标还鼓励在文字上相似的答案
* 交叉熵通过鼓励更正确的部署轨迹来帮助政策学习
除了混合训练目标之外,还通过使用深度残差涂层编码器建立输入的更好表示,对现有的动态涂层注意网络进行了改进(Xiong 等人,2017 年)。
除了混合训练目标之外,还通过使用深度残差共同注意编码器建立输入的更好表示,对现有的动态共同注意注意网络进行了改进(Xiong 等人,2017 年)。
来自 **Stanford 问题解答数据集****SQuAD** )(Rajpurkar 等人)的一些示例如下:
......@@ -221,19 +221,19 @@ Ground Truth Answer: Colorado Springs
在 DCN +的新框架中,原始 DCN 框架引入了两个新更改。 它们如下:
* 添加深度残留涂层浓淡度编码器
* 添加深度残留共同注意浓淡度编码器
* 混合训练目标函数,是最大似然交叉熵损失函数和强化学习的奖励函数的组合
# 深层残留涂层编码器
# 深层残留共同注意编码器
由于原始的 DCN 仅具有一个单层涂布编码器,因此形成输入序列的复杂表示的能力也受到限制。 因此,对涂层保持编码器进行了两种修改。 它们如下:
由于原始的 DCN 仅具有一个单层涂布编码器,因此形成输入序列的复杂表示的能力也受到限制。 因此,对共同注意保持编码器进行了两种修改。 它们如下:
* 通过堆叠许多涂层增强层来修改涂层增强编码器,以便网络能够创建更好的复杂表示形式
* 通过堆叠许多共同注意增强层来修改共同注意增强编码器,以便网络能够创建更好的复杂表示形式
* 合并每一层的所有 coattnetion 输出,以减少信号路径长度:
![](img/1cb246af-3935-42e7-b90b-7ca94bf88912.png)
深度残差涂层编码器,发表在 DCN +:问答的混合目标和深度残差涂层( [https://arxiv.org/pdf/1711.00106.pdf](https://arxiv.org/pdf/1711.00106.pdf) ),作者为 Xiong 等。 人
深度残差共同注意编码器,由 Xiong 等人发表在[《DCN+:问答的混合目标和深度残差共同注意》](https://arxiv.org/pdf/1711.00106.pdf)
# 使用自我批评性策略学习的混合目标
......
......@@ -15,11 +15,11 @@
**信任** **区域策略优化****TRPO** )是一种用于优化策略的迭代方法。 TRPO 优化了大型非线性策略。 TRPO 通过对输出策略分布施加约束来限制策略搜索空间。 为此,对策略网络参数使用 KL 散度损失函数(![](img/f32e59af-ab87-4141-bb2b-830cc1d8451b.png))来惩罚这些参数。 新策略和旧策略之间的 KL 差异约束称为信任区域约束。 由于此约束,策略分布中不会发生大规模更改,从而导致策略网络尽早收敛。
TRPO 由 Schulman 等出版。 等 2017 年在名为*信任区域策略优化*[https://arxiv.org/pdf/1502.05477.pdf](https://arxiv.org/pdf/1502.05477.pdf) )的研究出版物中。 在这里,他们提到了一些实验,这些实验证明了 TRPO 在不同任务上的强大性能,例如学习模拟机器人游泳,玩 Atari 游戏等等。 为了详细研究 TRPO,请访问出版物的 arXiv 链接: [https://arxiv.org/pdf/1502.05477.pdf](https://arxiv.org/pdf/1502.05477.pdf)
TRPO 由 Schulman 等(2017)发布在名为[《信任区域策略优化》](https://arxiv.org/pdf/1502.05477.pdf)的研究出版物中。 在这里,他们提到了一些实验,这些实验证明了 TRPO 在不同任务上的强大性能,例如学习模拟机器人游泳,玩 Atari 游戏等等。 [为了详细研究 TRPO,请访问出版物的 arXiv 链接](https://arxiv.org/pdf/1502.05477.pdf)
# 确定性政策梯度
确定性策略梯度由 Silver 等人提出。 等 在名为*确定性策略梯度算法*[http://proceedings.mlr.press/v32/silver14.pdf](http://proceedings.mlr.press/v32/silver14.pdf)的出版物中。 在连续行动空间中,用贪婪方法改进策略变得困难,并且需要全局优化。 因此,最好按以下方向在 *Q* 函数的梯度方向上更新策略网络参数:
确定性策略梯度由 Silver 等人提出在名为[《确定性策略梯度算法》](http://proceedings.mlr.press/v32/silver14.pdf)的出版物中。 在连续行动空间中,用贪婪方法改进策略变得困难,并且需要全局优化。 因此,最好按以下方向在 *Q* 函数的梯度方向上更新策略网络参数:
![](img/b2b45023-7595-4b6f-8f0f-9fba913f1774.png)
......@@ -27,7 +27,7 @@ TRPO 由 Schulman 等出版。 等 2017 年在名为*信任区域策略优化*
![](img/c5f5537b-51ac-414c-9dd1-d8461a257262.png)
可以将先前的更新规则合并到策略网络中,在该策略网络中使用随机梯度上升来更新参数。 这可以通过确定性的行为者批判方法来实现,其中批评者估计动作值函数,而行为者从批评者获得其梯度以更新其参数。 如 Silver 等人在*确定性策略梯度算法*[http://proceedings.mlr.press/v32/silver14.pdf](http://proceedings.mlr.press/v32/silver14.pdf)中所述。 在实验之后,他们能够成功得出结论,确定性的政策梯度比随机的梯度更有效率。 此外,确定性行动者批评者的表现优于随机行动者。 有关此主题的详细说明超出了本书的范围。 因此,请转到前面提到的研究出版物链接。
可以将先前的更新规则合并到策略网络中,在该策略网络中使用随机梯度上升来更新参数。 这可以通过确定性的行为者批判方法来实现,其中批评者估计动作值函数,而行为者从批评者获得其梯度以更新其参数。 如 Silver 等人在[《确定性策略梯度算法》](http://proceedings.mlr.press/v32/silver14.pdf)中所述。 在实验之后,他们能够成功得出结论,确定性的政策梯度比随机的梯度更有效率。 此外,确定性行动者批评者的表现优于随机行动者。 有关此主题的详细说明超出了本书的范围。 因此,请转到前面提到的研究出版物链接。
# NLP 顺序模型中的评分机制
......@@ -52,7 +52,7 @@ TRPO 由 Schulman 等出版。 等 2017 年在名为*信任区域策略优化*
# 什么是 BLEU 分数,它的作用是什么?
BLEU 分数由 Papineni 等发表。 等 2002 年他们的研究出版物 *BLEU:一种自动评估机器翻译的方法*[https://www.aclweb.org/anthology/P02-1040.pdf](https://www.aclweb.org/anthology/P02-1040.pdf)。 BLEU 代表双语评估计划。 对于给定的机器生成的输出(例如,机器翻译为翻译或文本摘要为摘要),分数可衡量输出的优劣,即,机器生成的输出与以下任何一个有多接近 可能的人工生成参考(可能的实际输出)。 因此,输出文本离任何人工生成的参考越近,BLEU 得分就越高。
BLEU 分数由 Papineni 等(2002)发表在他们的研究出版物《BLEU:一种自动评估机器翻译的方法》](https://www.aclweb.org/anthology/P02-1040.pdf)中。 BLEU 代表双语评估计划。 对于给定的机器生成的输出(例如,机器翻译为翻译或文本摘要为摘要),分数可衡量输出的优劣,即,机器生成的输出与以下任何一个有多接近 可能的人工生成参考(可能的实际输出)。 因此,输出文本离任何人工生成的参考越近,BLEU 得分就越高。
BLEU 分数背后的动机是设计一种度量标准,该度量标准可以像人类评估者一样相对于人类产生的引用来评估机器产生的文本。 BLEU 评分背后的直觉是,它考虑了机器生成的输出,并探讨了这些单词是否存在于多个人工生成的引用中的至少一种。
......@@ -141,11 +141,11 @@ BP 称为简短惩罚。 如果机器生成的输出非常短,那么这个代
*s <sub class="calibre209">len</sub> (REF)* =最短的人工生成参考输出的长度
有关更多详细信息,请检查 Papineni 等人关于 BLEU 分数的出版物。 等 2002( [https://www.aclweb.org/anthology/P02-1040.pdf](https://www.aclweb.org/anthology/P02-1040.pdf)
有关更多详细信息,请检查 Papineni 等人(2002)[关于 BLEU 分数的出版物](https://www.aclweb.org/anthology/P02-1040.pdf)
# 红
ROUGE 代表针对召回评估的面向召回的本科。 它也是评估 NLP 中的顺序模型(特别是自动文本摘要和机器翻译)的度量。 CY Lin 在研究出版物*中提出了 ROUGE:ROUGE:摘要自动评估包*[http://www.aclweb.org/anthology/W04-1013](http://www.aclweb.org/anthology/W04-1013) )。 2004 年
ROUGE 代表针对召回评估的面向召回的本科。 它也是评估 NLP 中的顺序模型(特别是自动文本摘要和机器翻译)的度量。 CY Lin(2004)在研究出版物[《ROUGE:摘要自动评估包》](http://www.aclweb.org/anthology/W04-1013)中提出了 ROUG
ROUGE 还可以通过将机器生成的输出(自动摘要或翻译)与一组人工生成的参考进行比较来工作。
......@@ -216,7 +216,7 @@ ROUGE 还可以通过将机器生成的输出(自动摘要或翻译)与一
因此,ROUGE-2 <sub class="calibre209">精度</sub>显示该机器生成的二元语法的 67%与人类生成的参考重叠。
本附录涵盖了 NLP 中顺序模型中 ROUGE 评分的基本概述。 有关 ROUGE-N,ROUGE-L 和 ROUGE-S 的更多详细信息,请浏览 *ROUGE:自动评估摘要的程序包*[http://www.aclweb.org / anthology / W04-1013](http://www.aclweb.org/anthology/W04-1013) ),作者:CY Lin。
本附录涵盖了 NLP 中顺序模型中 ROUGE 评分的基本概述。 有关 ROUGE-N,ROUGE-L 和 ROUGE-S 的更多详细信息,请浏览[《ROUGE:自动摘要评估包》](http://www.aclweb.org/anthology/W04-1013),作者为 CY Lin。
# 概要
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册