深度实践OpenStack:基于Python的OpenStack组件开发—2.2 例说PyTorch
2.2 例说PyTorch
本节来看一个用PyTorch实现的完整应用。在这一节中你会看到一些使用PyTorch的Python语句。也许你不会Python,或是没有安装运行Python的软件,这都没有关系。本书后续的章节会详细介绍软件安装、Python编写和PyTorch的使用。本节只是希望你能对PyTorch的用法有个初步的了解。
图2-1 使用PyTorch实现人工神经网络。左边框内是使用PyTorch的Python代码,右边框内是代码对应的神经网络结构
2.2.1 迷你AlphaGo介绍
本节一起来看一个小程序“迷你AlphaGo”。这个小程序完成了下面的功能:有一个连续可导的函数,它有4个输入,前3个输入是,第4个输入是,它能返回一个实数。我们并不清楚函数的具体形式。我们的目标就是对任意的,找到合适的,使得函数的值最大。用数学语言表示,就是给定函数,求解
这个问题可以用图2-2表示。图中标有问号“?”的方框就是我们想要求解的关系。
这个应用之所以称为“迷你AlphaGo”,是因为这个问题和AlphaGo试图解决的问题非常相似。如果我们把前三个输入看作围棋的当前局势,把看作下一步要下的棋,把函数看作胜率函数,那么这个问题就相当于在给定局势的情况下,找到最优的下棋策略,使得胜率最大(当然,AlphaGo实际比这个复杂得多,例如实际可选的下棋位置只是离散的几个网格交叉点,胜率函数不能非常容易地评估出来等。所以本节的例子只是AlphaGo的一个简化版本)。
“迷你AlphaGo”问题可以用人工神经网络求解。求解思路如下:用一个人工神经网络来代替从到的关系。通过设计人工神经网络的结构、确定合适的参数,使得这个人工神经网络可以实现从到的关系。值得一提的是,由于不知道函数的具体形式,所以也不知道从到的最优关系的形式。实际上,从到的关系甚至可能没有显式表达式。这再一次体现了人工神经网络的强大之处:我们不需要知道解答的形式,只需要搭建人工神经网络;我们不需要告诉机器神经网络中神经元的权重都是多少,PyTorch可以帮助找到神经元的权重。在完成神经网络的搭建、选取合适的权重后,这个人工神经网络就能够实现“迷你AlphaGo”的全部功能。
- 点赞
- 收藏
- 关注作者
评论(0)