强化学习(一):什么是强化学习?

强化学习(一):什么是强化学习?

这个系列将作为一个强化学习的基础教程,也是我阅读《Easy RL:强化学习教程》的记录。如果你想要更加系统的学习强化学习,我推荐你阅读《Easy RL:强化学习教程》和《强化学习导论(第二版)》。

引言

强化学习(Reinforcement learning,RL)是机器学习的一个领域,目的是让一个智能体(agent)在环境(enviroment)做出动作(action),以获得最大的奖励(reward)。

在传统的监督学习中。例如分类,我们需要准备一个数据集,其中包含许多已经被标注的数据,再通过写出损失函数,通过反向传播来优化。

mnist_fashion.webp

MNIST Fashion数据集

然而这在复杂的环境中是不适用的。例如,我们在2048游戏中,所面临的情况可以认为是无穷的。在这种情况下,传统的方式就不适用了,我们需要用到强化学习。

与监督学习区别

1.数据集并不是一个个独立的,而是序列化的,我理解为后一个依赖于前一个,而使其变化的就是action

2.强化学习需要通过agent自身的不断探索来进行训练,这与动物的学步有很多相似之处

3.强化学习中使用奖励函数(reward function)来引导模型。

奖励函数

接着我们来谈一下奖励函数。奖励函数在强化学习中非常关键,一个好的奖励函数能让模型稳步提升,而一个差的奖励函数则容易让模型不拟合甚至做出极端行为(例如美军在测试使用AI操作无人机时,发现如果不断阻止AI进攻目标,那么AI反而会将操作员杀死,因为操作员阻碍了AI获取reward)。

同时,奖励函数也可以引导agent所关注的方面与偏向的目标,例如在股票交易中是看重短期收益还是长期收益,是激进还是保守。我们可以通过调整在不同情况下所获得的reward的多少来实现这一目标。

值得注意的是,尽管我们可以不断地调整奖励函数,但在大多数情况下,完美的奖励函数是不存在或极其难以个系列将作为一个强化学习的基础教程,也是我阅读《Easy RL:强化学习教程》的记录。如果你想要更加系统的学习强化学习,我推荐你阅读《Easy RL:强化学习教程》和《强化学习导论(第二版)》。

与监督学习区别

1.数据集并不是一个个独立的,而是序列化的,我理解为后一个依赖于前一个,而使其变化的就是action

2.强化学习需要通过agent自身的不断探索来进行训练,这与动物的学步有很多相似之处

3.强化学习中使用奖励函数(reward function)来引导模型。

奖励函数

接着我们来谈一下奖励函数。奖励函数在强化学习中非常关键,一个好的奖励函数能让模型稳步提升,而一个差的奖励函数则容易让模型不拟合甚至做出极端行为(例如美军在测试使用AI操作无人机时,发现如果不断阻止AI进攻目标,那么AI反而会将操作员杀死,因为操作员阻碍了AI获取reward)。

同时,奖励函数也可以引导agent所关注的方面与偏向的目标,例如在股票交易中是看重短期收益还是长期收益,是激进还是保守。我们可以通过调整在不同情况下所获得的reward的多少来实现这一目标。

值得注意的是,尽管我们可以不断地调整奖励函数,但在大多数情况下,完美的奖励函数是不存在或极其难以达到的。

深度强化学习

伴随着机器学习到深度学习(这里我们认为深度学习是独立的一种),强化学习也从标准强化学习进化到了深度强化学习。深度强化学习实现了端到端(end to end)学习,使我们无需人工提取特征,而可以直接将原始数据提供给模型。这极大地扩展了强化学习的适用范围,增强了效果。

强化学习的应用

强化学习适合在一个环境中使用。如训练机器人走路、跑步、拿取,尝试在证券市场中获得利益,游玩复杂的游戏。

2016年的AlphaGo是一个非常好的例子。在围棋中,所要面临的环境是几乎无穷的。在象棋等较为简单的棋类中,可以使用极小化极大搜索,通过枚举来找到最优解。很显然,这种方法在围棋中无法使用因此,引入了强化学习。通过不断地试错来训练,最终agent能观察环境后直接输出action。

接下来介绍强化学习中的重要概念。

LICENSED UNDER CC BY-NC-SA 4.0