首页
CtrlK
Mleon的头像

从零开始的强化学习

从零开始的强化学习
4
从零开始的强化学习
乒乓游戏
乒乓游戏
监督学习
监督学习
强化学习
强化学习
策略梯度
策略梯度
训练原理
训练原理
乒乓游戏
乒乓游戏
AI策略
AI策略
随机权重
随机权重
误差函数
误差函数
颜色表示
颜色表示
赢得不多
赢得不多
监督学习
监督学习
强化学习
强化学习
赢得更多
赢得更多
超过教练
超过教练
局部最小
局部最小
概率策略
概率策略
三步学习
三步学习
跳过监督
跳过监督
照片输入
照片输入
权重图像
权重图像
策略梯度
策略梯度
单集封面
单集封面

从零开始的强化学习

02-12
15 次观看
Mleon的头像
Mleon
粉丝:169
主题:5
描述:7
例子:8
其他:3
字数:2566

从零开始的强化学习

02-12
15 次观看
Mleon的头像
Mleon
粉丝:169
Mleon的头像
Mleon
粉丝:169
主题:5
描述:7
例子:8
其他:3
字数:2566

从零开始的强化学习

乒乓游戏

引言 训练原理

视频链接: https://youtu.be/vXtfdGphr3c?si=OSgYu_SyAS7I8-3q

大家好。在这个视频中,你将学习有关强化学习的所有内容,如何训练ChatGPT并构建世界上最好的围棋程序。

介绍 乒乓游戏

但让我们从更简单的东西开始。还记得《乒乓》吗?它是最早的电子游戏之一。左边的玩家有一个简单的策略。它只是跟着球上下移动。

AI策略

让我们训练一个AI乒乓游戏代理来与它竞争。为此,我们需要定义一个策略,该策略将世界的状态作为输入,并输出一个动作,在这种情况下,我们将球的X和Y位置以及两个球拍的位置作为输入,还会包括速度。所以我们的策略将获得这些输入。为了保持图表的简洁,我不会显示速度,我们将用神经网络来表示我们的策略。我们的网络将每个值乘以一个权重并将它们相加。我们将添加一个sigmoid函数,将结果转换为0到1之间的值。如果结果大于0.5,我们将向上移动,否则向下移动。就是这样。很好。

随机权重

让我们来玩几局乒乓。我们将从随机权重开始。一个随机的乒乓玩家并不怎么厉害。它只是躲在角落里。这就像如果你从未打过网球,而你被安排与塞雷娜·威廉姆斯对战,你可能也会躲起来,或者你可能会问对手怎么打。

监督学习

误差函数

假设你的伙伴告诉你每一步该怎么做。我们可以使用这种监督来训练我们的策略。假设我们的教练说跟着球走。球在我们的球拍上方。所以正确的答案是向上。但假设我们的网络输出是0.2,这意味着向下。我们希望将那个0.2改为1。这是另一种情况,正确的答案是向下,我们希望将输出驱动到零。一个更确定的向下答案,我们可以通过定义一个误差函数并优化权重来减少这个误差。

颜色表示

与其用数字,不如将这些权重画成彩色线条。正权重是蓝色的,负权重是红色的,权重越强,线条越粗。每次优化步骤后,权重会稍微改变一点。

赢得不多

如果我们训练数千个动作,右边的权重开始收敛。现在我们训练好了,让我们来玩几局游戏。我们的乒乓游戏代理现在相当不错,尽管它并不经常赢。我们如何训练我们的代理赢得更多?

监督学习

你可以把游戏看作是一系列可能导致输或赢的动作。假设我们输了。我们希望我们的教练告诉我们。哪些动作出了问题。也许我们在最后搞砸了,然后我们可以根据这个反馈重新训练我们的策略,就像我们之前做的那样。像这样训练网络被称为监督学习,你需要一个非常好的教练。

强化学习

强化学习

但假设你没有教练,你只知道这一系列动作导致了失败,而这一系列动作导致了胜利。这种问题被称为强化学习。我们不知道哪些动作是负责任的,所以我们只会惩罚我们在失败中做出的所有动作,并奖励或强化我们在胜利中做出的所有动作。这将其转化为一个监督学习问题,就像我们在视频的第一部分中解决的那样。

赢得更多

实际上,我们可以做得更好一点,通过更多地惩罚后面的动作,因为游戏失败的错误通常发生在最后。同样地,对于奖励,在训练了3000局游戏后,我们的代理已经改进到与对手打得差不多好。你可以看到比分相当接近。在大约12000局游戏后,我们的代理发现用球拍的角落击球会使球速更快。酷。现在它赢了。

超过教练

大多数时候,强化学习很酷。你通过尝试来学习。有时你会发现连教练都不知道的东西。

局部最小

但这种方法也有一些挑战。我们的神经网络试图最小化一个误差函数。你可以把这个函数想象成一个地形,我们通过使用梯度下降法向下滚动来最小化它。梯度下降可能会陷入局部最小值,所以我们需要探索更广泛的策略以找到最佳策略。

概率策略

所以让我们使策略具有概率性。0.7 现在意味着有 70% 的概率向上移动。所以代理实际上有 30% 的时间会向下移动。这一点随机性使我们的代理能够摆脱一些局部最小值。

总结 三步学习

总结一下,这是我们到目前为止描述的方法。我们将从随机初始化的权重开始。然后我们用监督学习进行训练,并用强化学习进行优化。

跳过监督

令人惊讶的是,我们可以跳过中间步骤,直接从随机初始权重运行强化学习。训练时间更长,但仍然适用于许多问题。

策略梯度

照片输入

我们还可以做更令人惊奇的事情。到目前为止,我们假设球和球拍的位置作为策略的输入提供。假设我们只有屏幕的照片。计算机会将其视为一堆数字,不知道这个数字是球,这些是球拍。换句话说,策略不仅要学习如何行动,还要学习如何看。

编码速度信息也很有帮助。一种方法是从当前帧中减去前一帧。现在,正值代表当前帧,负值代表前一帧。我们将所有行堆叠成一个长像素向量,并将所有这些像素连接到一个神经元。现在我们将添加更多神经元,总共 10 个。我们使用修正线性激活函数。这些非常标准。它们连接到最后的 sigmoid 神经元,它将输出向上移动的概率。这可能看起来很复杂,但对于深度网络来说,它实际上非常小。这个网络中只有 11 个神经元。

权重图像

与人类大脑相比,视觉皮层中有数十亿个神经元。只有 11 个神经元,你怎么能看到?让我们训练网络并找出答案。我们将从完全随机的权重开始。它花了大约 600 万局游戏来学习一个平均能击败计算机的策略。这几乎是在我的 MacBook Air 上运行了一周。

但这个网络实际上在学习什么?它真的学会了如何看吗?让我们检查第一个神经元。它对图像中的每个像素都有一个权重。记住,这些像素形成一个二维图像,每个像素都有一个对应的权重。

所以我们可以将权重可视化为一个形状像乒乓球屏幕的图像。它看起来像噪声,因为我随机初始化了权重。这里的白色具有最大的绝对值。现在我们将通过玩游戏开始训练策略。你可以看到它在 100 万和 600 万局游戏后收敛到一个特定的模式。这些条纹对应于这个神经元关注的球轨迹,它对这些球拍位置特别感兴趣。它也在观察对手的球拍,这是球位置的良好指标。这只是一个神经元。其他的神经元会寻找不同的模式。

策略梯度

所以我们的简单网络已经学会了如何“看”,这种强化学习的方法被称为策略梯度(policy gradient)。你可以通过限制每次更新的规模来进一步改进它,这种方法的一个变体称为PPO(Proximal Policy Optimization, 近端策略优化)。它们共同推动了许多令人兴奋的应用。我们将在接下来的两个视频中讨论其中的两个应用:AlphaGo 和 ChatGPT。敬请期待!

讨论
随记
AI 助理