RL是机器学习的一个分支。
机器学习最常见的套路是【监督学习】Supervised Learning,给定数据和标签,让计算机程序根据数据和标签的对应关系,拟合出一个函数,该函数可以将数据输入映射到标签输出。
例如有一堆宠物的照片,分别贴好标签【猫】或【狗】,送进机器学习程序,拟合(又称训练、学习)出一个【猫狗分类器】函数,该函数可以将输入的任意宠物照片映射到【猫】或【狗】。学习目标是降低拟合误差,提高输出精度。例如对于猫狗分类器,学习目标是提高分类的准确度。
提供的数据量越大,涵盖的各种不同情况越多,【训练】出来的机器学习模型(通常为人工神经网络)的泛化(正确处理训练时没有遇到的数据的能力)效果越好。
当模型在学习过程中犯错误的时候,通过与输入数据及标签比对,可以马上发现错误并进行纠正,好似旁边有人监督一样,故称【监督学习】。
强化学习 Reinforcement Learning 与监督学习不同,强化学习把机器学习模型的输出作为【行动】,【行动】会产生【后果】,然后通过某种方式对后果进行打分,将分数作为待学习的标签。学习的最终目标是提高一段时间内获得的分数。
例如下围棋的AlphaGo模型,输入是棋盘局面,输出是落子位置,后果是一局棋最终的输赢,打分方式是赢则+1,输则-1.
让模型自己与自己对战,随机落子,经过一段时间,可以积累大量的落子与输赢记录。
将所有获胜棋局的所有落子都记+1分,所有失败棋局的所有落子都记-1分,再进行监督学习,模型就可以掌握【在某个特定的局面下,在不同地方落子所值的分数(正比于最终获胜的概率)】。根据这个分数选取落子位置继续对战,会得到更多落子与输赢记录,通过这些数据继续学习,便可不断提高棋力。
强化学习的特点是:最开始没有足够的数据供学习;让模型作随机探索,积累经验;将积累的实战经验作为数据用作学习并逐渐提高,而非根据人类事先指定的数据(如棋谱等)学习。
强化学习的优点是,无需准备实际例子(数据、标签),只需准备【环境】、设定【评分机制(即目标)】,让机器学习模型在【环境】中自由探索,逐渐寻找到最大化评分(即达成【目标】)的方式。
当评分机制(目标)设置不当的时候,强化学习算法往往会因为过度短视地追求分数,而学习到一些违背目标设置者初衷的行为。因此强化学习是用来验证【如何设定目标/评分机制才能最大化学习效果?】的各种假设的完美工具/框架。
今天在推特上看到一个段子,两个学生在讨论强化学习实验,在实验中他莽撞地设定了一个评分机制,而实验结果所揭示的规律,与人类认识世界的局限性及造成的悲剧形成强烈共鸣。
所以我建议各位有机会一定要接触、了解、最好是实操强化学习(推荐David Silver的课程)。了解强化学习的基本规律,对于定性、定量研究人类、其他生物乃至一切具有学习功能的系统在学习过程中遵循的规律有极大帮助。