如今,机器学习
(Machine Learning, ML) 和深度学习
(Deep Learning, DL) 领域中有多个子任务。 例如,集群化 (Clusterization)、计算机视觉 (Computer Vision, CV)、自然语言处理 (Natural Language Processing, NLP)、推荐系统 (Recommendation Systems, RecSys) 等等。 但是,所有这些任务都可以分为两类 ML 问题,即监督学习
(Supervised Learning) 或无监督学习
(Unsupervised Learning) 问题。
您可能知道,监督学习
任务是一个需要学习基于示例输入-输出对将输入映射到输出的函数的问题。 为简单起见,在监督学习中,数据被标记。 相反,无监督学习
问题没有任何数据标签,因此,机器学习算法仅通过输入来学习数据。
尽管监督和无监督学习是两个最流行的 ML 问题类别,但还有另一类称为强化学习
(Reinforcement Learning, RL)。 强化学习很特别,因为它与其他课程有很大不同。 截至今天,在数据科学社区,强化学习被认为是最有前途的机器学习领域之一,也是深度学习的子任务。 今天,您将深入了解强化学习,并更多地了解其迷人的概念。
1.什么是强化学习?
首先,让我们用一个简单的例子来谈谈强化学习的一般概念。 想象一下教你的狗一些新技巧。 不幸的是,狗不懂人类的语言,所以你不能直接告诉你的宠物该做什么。 因此,您会模仿这种情况,而您的狗会尝试以一种或另一种方式行事。 如果你的狗做的每件事都正确,例如,在“坐下”命令后坐下,你会给它一个奖励
。 因此,下次在类似的情况下,狗会再次像您预期的那样行动,希望再次得到奖励。 但是,如果您根本不使用零食,您的狗可能永远不会学习新技巧,因为它不会从您身边获得任何积极的刺激。
强化学习的工作原理类似。 你必须给模型一些描述当前情况和可能行动的输入。 然后你必须根据输出奖励它。 在进行强化学习项目时,您的最终目标必须是最大化回报。 现在,让我们重新制定强化学习术语中提到的任务。
- 你的狗是存在于“
environment
”中的“agent
” - “environmennt”是您的家、后院或您教狗和与狗玩耍的任何其他地方
- environment具有随时间变化的“
state
”。 例如,state可能是这样的——你告诉你的狗坐着,而你的狗是站着的。 你的狗做的下一件事——它坐下。 随着狗当前坐着,环境的状态会发生变化。 - 因此,agent会根据改变当前状态的环境状态执行“
action
” - 状态更改后,agent会根据它们执行的动作获得“
reward
”或“penalty
”。 例如,在教狗时,奖励可能是一种招待,而惩罚可能是根本不给予招待 - “
Strategy
”或“policy
”是一种选择动作以达到最佳结果的技术。 如上所述,在强化学习案例中,最好的结果是可能的最大奖励
2.强化学习定义
现在,当您了解强化学习的一般概念后,让我们将上述所有内容形式化并定义必要的术语。
agent
是在给定环境中执行某些操作的机器人、模型或程序environment
是agent可以观察并与之交互的东西,例如游戏模拟器。 环境最简单的例子就是我们周围的世界。 在我们的世界里,我们是agent,而世界是环境- 环境的
state
是对设置agent的环境的完整描述。 例如,环境状态可能是agent在空间中的确切位置。 action
是agent可以在环境中做的事情。 通常,动作取决于环境的状态,因此agent在不同的情况下会采取不同的动作。 一般来说,agent可用的动作数量是有限的,称为动作空间 (action space)reward
是一种“款待”,如果它按预期执行,您必须给予aget。 在解决强化学习问题时,必须不断跟踪奖励函数,因为它在设置算法、优化算法和停止训练时至关重要。 通常,奖励取决于环境的当前状态、刚刚采取的动作以及下一个环境的状态policy
是帮助agent选择下一步动作的规则。 一组策略通常被称为agent的大脑
3.强化学习与深度学习和机器学习有何区别?
如果您想知道强化学习与机器和深度学习之间的关系,那么是时候解决这个问题了。 您可能知道,ML 和 DL 都是人工智能 (Artificial Intelligence, AI) 的子集:
人工智能
是任何使计算机能够模仿人类智能的技术的名称,例如,使用简单的逻辑、if-then 场景,甚至 ML 算法机器学习
是人工智能的一个子集,其中包括多种统计技术,可帮助机器在不同任务中通过经验提高其性能深度学习
是 ML 的一个子集,它通过应用神经网络
(neural network) 概念来发展 ML 算法的思想
至于强化学习,它被认为是一个机器学习问题,因为它不需要使用 DL 技术来解决它。 但是,有一个基于神经网络训练的深度强化学习 (Deep Reinforcement Learning) 概念。 这就是为什么强化学习介于 ML 和 DL 之间的原因。 无论如何,DL 和强化学习概念之间存在明显的界限。 在经典 DL 中,您使用神经网络在训练集上学习,然后在新数据集上使用您的模型。 相反,在强化学习中,您通过基于持续反馈调整agent的动作来动态学习。
4.强化学习与其他机器学习技术相比如何?
让我们一劳永逸地说清楚。 机器学习问题有四类:
- 监督学习——数据被标记,您需要学习一个函数,该函数根据示例输入-输出对将输入映射到输出
- 无监督学习——数据没有标记,你需要在数据中找到一些结构来得出关于它的结论
- 强化学习——你有一个环境、一个agent、一组动作,你需要通过基于持续反馈调整agent的动作来动态学习,以最大化整体奖励
- 半监督学习——你需要解决一些有标签和未标签数据的数据集的问题
您可能会注意到,所有这些类之间存在明显差异,因此确定您必须解决的机器学习问题非常重要。 要制定强化学习问题,您必须完全理解一般的强化学习概念。 强化学习是关于探索 (exploration),因为您的agent会尝试不同的动作,同时找到可以最大化奖励的适当策略。 这是强化学习与其他类型学习之间的关键区别。 在其他类型的学习中,这个概念是不同的。 例如,在监督学习中,agennt只需将其预测与现有标签进行比较并随后更新其策略即可学习。
参考资源
[1] The Fundamentals of Reinforcement Learning and How to Apply It