Notifications
Article
机器学习背景知识 Background of Machine Learning
Published 25 days ago
6
0
Jason

1简介

考虑到大部分ML Agents的学习者没有正式的Machine Learning知识背景,本文将呈现一个知识概览促进理解,并不是一个全面深入的知识体系,因为网上有很多深入的Machine Learning学习资源供参考。
机器学习是人工智能领域的一个分支,致力于从数据中获取学习模式。主要包含3种:unsupervised learning ,supervised learning,reinforcement learning;每种算法模式的区别点是:他们通过不同类型的数据去学习。接下来的章节将给出介绍和案例。

Unsupervised Learning 无监管学习模型

Unsupervised Learning(无监管状态学习)的目标是把相似的群体分类或聚集到同一个数据集中,例如,一款游戏的玩家,我们可以通过参与度进行分类,邀请高参与度的玩家进行新玩法的测试;同时给参与度低的用户发送帮助教程。我们首先要设置基本属性:玩家时长,玩家花费,玩家等级,把所有玩家的这3个属性输入到Unsupervised Learning模型算法中,提前设置好分成2组,算法会把所有玩家分类为2类,高度参与玩家和轻度参与玩家。
在Unsupervised Learning模型中,我们不指定特定的案例或标签(Labels),比如哪些玩家应该是高参与度的,哪些不是;我们仅仅定义适当的属性(Attributes)并且把属性交给算法,让算法自动发现分组,由于缺少直接的标签指定,所以我们把这些分组称为无标签分组。Unsupervised Learning适用于标签很难确定的场景。接下来我们来看一下Supervised Learning,这种模式可以接受标签输入,同时也可以定义适当的属性。

Supervised Learning 有监管学习模型

在Supervised Learning模式中,我们想要去认识玩家与所属群体的关系,而并不是仅仅把相似的玩家分类。拿上一节的例子来说,我们现在想要去预测哪一个玩家将会停止玩我们的游戏,我们可以查看历史数据并为玩家创建一个属性集合(Data Set of Attributes),同时包含一个他们是否会停玩的停止标签(Churn Label),注意这里用来预测停玩的属性集合与上一节中用来分组的不同。我们把Data Set 和 Churn Label输入Supervised Learning算法,将会得到玩家属性与停玩标签的一个关联。这里Supervised Learning会得知哪一个玩家属性与玩家停玩标签有直接关系,例如游戏时长比较短的用户常常会停止游戏。接下来,如果得知了这种学习模型,我们通过取得新用户的属性,就可以预测新用户是否会出现停玩的现象,并且针对会停玩的用户给出一些激励或诱惑,让他继续玩我们的游戏。
你可能已经注意到了,不管哪种学习模型,我们都要做2件事情:属性选择和模型选择。属性选择(特征选择)应该选择我们想要呈现的兴趣主题,案例中我们选择的使玩家的属性;模型选择应该选择能更好完成学习任务的模型。这2项任务都是目前机器学习领域中的活跃领域,通常需要迭代多次或实验多次才能得到我们想要的结果。
接下来,我们讨论Reinforcement Learning(加强学习)模型,该模型和ML Agents的关联最大,希望读者认知阅读。

Reinforcement Learning

加强学习模型,是连续决策机制的一种形式,通常我们会拿受控制的机器人来做例子讲解。试想一个自动运行的灭火机器人,他的任务是定位到火灾区域,发现火灾并且灭火,在游戏中的每一时刻,机器人需要通过Sensors(感官例如,camera,heat(温度),触摸)去认识理解环境,处理这些信息并且决定一个行为(例如左转,旋转水管,开启水枪)。简而言之,机器人一直在做连续的决定,包括如何与他理解的游戏环境交互,如何采取行动等等。那么加强学习模型的目的恰恰就是让机器人学好如何去做这些决定,并让机器人成为一个优秀的灭火机器。
再具体一点的话,Reinforcement Learning的目标是得到一个Policy(策略),其实就是Observations 与 Actions的Mapping,即映射关系。Observation 是机器人通过Environments获取的所有信息(本例中,是所有的Sensory输入(感官输入),Camera,Heat,Touch);Actions,本质上来说,是机器人配置的改变行为(如,机器人的位置,水管的位置,水枪是否打开)。
最后需要记住的是:Reward Signal。当训练灭火机器人的时候,我们通过Rewards来标记机器人完成任务的好坏。被训练之前,机器人是不知道自己该如何灭火的,正因为机器人的Rewards在它成功灭火后和失误后会加上一个正的和负的值,所以机器人才学会了灭火。实际上,奖励信息是非常稀疏的,仅仅当机器人成功或失误的时候才产生,而Rewards Signal是加强学习模型中定义的特性,这就是为什么得到好的Policy是非常困难地,尤其对于复杂的环境。
学到一个策略通常需要很多的实验和结果迭代更新,具体来讲,机器人需要被放置到不通的灭火场景中并经过一段时间才能更有效的去灭火。很显然,现实世界中当火灾发生的时候,我们不可能不停的训练机器人,这也恰恰解释了为什么使用unity作为仿真器去训练这些行为。尽管在讨论Reinforcement Learning的时候我们讨论的核心是robots机器人,但是在游戏中有一些角色与机器人是很匹配的,例如NPC,因此在Unity中使用Reinforcement Learning模型去探索怎样训练行为是顺其自然的事情,这恰恰是ML Agents要做的事情。
与Unsupervised Learning,Supervised Learning类似,Reinforcement Learning也需要2个任务:属性选择和模型选择。这里属性是NPC的Observations,模型是定义一个策略形式和参数,实际上,训练过程是不断更新的,属性和模型随时都会更新改变。

Training and Inference

训练和实战。上述3种学习模型都需要经历2个阶段:训练阶段和实战阶段(推理阶段,验证阶段),3种学习模式的2个阶段的很多细节都是不一样的,训练阶段要通过提供的数据训练出一个策略模型,而实战阶段要把生成的策略模型用到一个全新的Environment中。具体来说:
Unsupervised Learning,训练阶段要把所有玩家分成2组;实战阶段可以把一个新用户归类到2组中。
Supervised Learning,训练阶段得到玩家属性与指定标签的关联;实践阶段利用这种关联关系去预测新用户的行为是否会符合指定标签。
Reinforcement Learning,训练阶段通过引导式的实验得到一个优化学习策略,实战阶段,Agents利用习得的策略观察新世界,并执行任务。
简明扼要:3中学习模型都有训练阶段和实战阶段,都有属性选择和模型选择的任务,他们的区别点在于他们从哪种类型的数据中学习。Unsupervised Learning的数据是Attributes Data Set;Supervised Learning的数据是Attributes-Labels Pairs;最后,Reinforcement Learning的数据是observation-action-reward数组对。

Deep Learning

深度学习是一个算法集合,能解决所有上述问题的集合,具体来说,它可以完成属性选择和模型选择任务。
深度学习近几年名声鹊起,这归功于它的显著成绩,比如AlphaGo 打败了李世石(世界围棋冠军)。
深度学习的核心特性是:能够从大数据中获取复杂函数的能力。如果使用Unity所谓仿真器或引擎,自然而然使用加强学习模型去处理大量数据。当有数以亿计的仿真环境的时候,我们可以通过复杂环境学到很多的Policies,ML Agents使用了很多深度学习的算法,例如开源库TensorFlow。

Jason
CEO - Manager
5
Comments