第二届全球未来网络发展峰会

创新·引领·未来

当前位置:嘉宾致词> > 分论坛五

Self-Organizing Networks With Reinforcement Learning

编辑: 共浏览:724次

刚才大家都听了徐雷老师还有钟老师的对人工智能的介绍,他们是做人工智能理论的前辈,我是一个应用者,我是把人工智能应用到无线控制里面,我的背景实际上是做无线网络的。

所以我今天主要是想讲人工智能里面的一个方向,也是刚才钟老师讲的知识转换里面的一个分支就是强化学习。我考虑到听众里面跟我的背景大部分是相似的,以前是做网络信号处理的,所以我想花一点时间快速的介绍一下强化学习,并且点出强化学习一个最新的一个架构,这也是我们那来用到网络控制里面的结果,如果你可以听懂我们前面的简介那就对我讲的就很容易理解了。

如果大家有兴趣学强化学习的话我发现这本书是强化学习讲的最清楚的,在这个领域里面他坚持做相关研究超过30年,谷歌团队里有超过一半的雇员都是这个毕业的,现在专门在他大学附近做了一个分院,所以这本书写的非常详细和清楚的。

刚才两位老师都讲了所以就不详细说基础的概念,大家知道机器学习分为三大块,就是分监督学习,最简单的,你对数据本身每一个样本你对他没有任何的判断,只能进行非监督学习,对数据进行分类,如果你知道对错那我们就可以做这种监督式学习,但是这两种学习都有一个共同的特点,就是我给你一组数据,你对这个数据进行学习,在这个期间你对产生数据的环境是没有任何交互的,所以你可以把它想象成离线的学习。

有什么问题呢?当你学出来这个知识,换了一个环境就不适用了,解决这个问题相应就有第三种机器学习的方式就是强化学习。

我们有一个环境,这个环境里面会产生各种的信息,然后我们有一个(英文)对这个信息进行收集处理分析,然后根据经验做一个判断实施一个(英文),然后(英文),就这样一轮一轮的,他会学习的很多,他所产生的方法就可以达到你想要的目的。

所以这个架构就是强化学习的架构,可以看到当这个环境变化的时候,一个(英文)从办法的信息里学到新的东西,那我的(英文)也可以使用于这个环境,所以就使用于非频稳的应用。

传统的强化学习实际上就是一个简单的通过以前的历史知识进行不断的施措,不断改进自己的问题。强化学习真正强大的地方不是说我可以做纯数据驱动的学习模式,这个当然也可以,尤其是当我们有大量数据样本的时候,你做纯数据驱动的没有问题,最强大的问题就是数据驱动跟非数据驱动相结合,这是我们应用人员最想看到的一种情况,比如说我们做无线通信网络的控制,如果说你抛弃我所有的以前的知识,这个其实是蛮可惜的,让我做纯数据驱动的,这个时候就是说你得到的结果不见得是最有效的,最有的方式就是我现在不断收集驱动我也结合之前做的,产生的策略可能是更优一些。对我们无线通信背景来也是有优势,我们的优势是在于我们知道怎么做这个模型。

传统的纯数据驱动的模式,在这种架构下的强化学习可以理解为这个架构,就是你跟环境交互,然后你收集他的信息,产生一个策略,对这个策略评,然后产生的数据收集起来就是(英文)。传统的强化学习就是通过这个(英文)设置一个评估函数,这个可以想象成一个列表,这个列表有两列,第一列是环境状态跟你(英文),右边这一列是对应这个你能得到的对未来所估计的收益及所以它就是一个打分,第一类是你的(英文),如果你在这个情况下做这个方案你会得到什么样的收益,你对这个表格做好以后对(英文),进来在你系统达到一个状态的时候哪一个(英文)是最优的呢?那这个自然而然就给了我们最优策略的架构,这就是最简单的数据驱动的方法。

这个架构没有问题,如果你有足够大的训练样本,足够长的等待时间,这样的话你就可以把这个表格很快的建立起来,建立起来以后就是一个很容易的工作,但是很多时候我们没有那么足够多的样本,我们也等不了那么长的时间,这个时候就是第二种,模型,因为好多时间我们这个系统有一定的显见之识,比如说我们现在做无线网络控制,我们对用户功率的控制以前已经有非常好的模型了,它可能在非平纹模式下达不到一个最好的效果。

怎么样结合?我这个模型出发点是一个非完整的模型,在这个学习的过程中可以不断的改进自己。比如说这个模型通过历史数据可以直接在里面调用有用的信息作为自我改善的机制,同时他本身可以不断模拟真实的环境产生一下虚假的训练环境,这个模拟的数据本身可以加速自己自我改进的进程,然后跟这个并行,比如说是周期性的,我可以通过模型数据跟本身的真实的数据相结合改善我对这个估值函数的估计。就比如刚才的表格做纯数据的分析的话很慢,用我这个表格的话就可以很快,这个是我们在科研里面我自己的科研里面想用的一个模式。

现在讲一些基础细节,想理解强化学习首先要理解他最基本的数学模型,就是MDP,这个里面有一个状态空间,S就是规范整个环境的变化,有一个A规范了你所有可以选择的级,然后又一个应P描述了这个动态环境的规律,然后又一个(英文)。这就是它需要做的事情,(英文)我们需要一个函数R,给另一个(英文)进行打分,这个打分是在每一个时刻都进行一次的,(英文)我们需要定义一个(英文)。如果这是无线厂控制过程的话我们就需要(英文)来保证你打分的值是可以收敛的,所以我们就需要一个(英文)。

(英文)

基于这个我们可以对状态ST进行一个估值,这两个可以互换,就是等价,可以基于Q也可以基于V,这个核心就是对这两个函数或者其中一个进行(英文),这个建立以后可能最简单的算法就可以达到最优的策略。

最优的策略是什么意思呢?根据状态值的分析进行整个控制目标就是找到一个最优的(英文)来最大化,从每一个状态开始我可以得到最大的(英文),解这个过程就是解MDP的核心。

大家为什么喜欢这个格式呢?因为他有一定的(英文)尤其是你的环境符合环境的时候,这个值的结构有一个很好的架构,你会看到目标本身包含了你要估计目标的下一个时态的值,这个就暗示了我们可能会有非常高效的算法来帮助我们去估计这个函数值,同样的Qπ也有一个架构。所有的理论基于MDP关于强化学习的归根到底都是跟这个有关系的。

大家可以看到(英文)是可解的,如果你知道所谓的(英文)但实际系统里我们是不可能知道所有的(英文),如果你知道的话你完全可以基于模型叫做(英文)来把这个系统问题解决掉,如果不知道的话这个时候其实就回到了一开始的点就是强化学习,强调学习是什么呢?就是在不知道系统动态变化规律的情况下怎么去解,怎么去解MDP的问题,所以强化学习的数学定义就是这么简单。

    如果你的状态空间跟你(英文)都是可数的,这个情况就非常容易剪的,这里面比较经典的办法比如说TD(英文)。在大部分的控制场景下可能都是连续的不可数的有无限的选择,这样的话可能就不能用了,这个时候就归结到第二个最有用但是最难的情况,这个情况还是没有很多理论的,这个就是近似的办法,怎么做呢?你在无线的控制里面找你的最优级,这个时候就用连续的一个办法,比如说你想最大化一个连续函数再一个连续空间里,自然而然大家就想到梯度下降法或者上升法,如果是在一个无线空间里,你要解决(英文)函数,这个时候我们可以幸得这个梯度最大化或者最小化。

同时还有另外一个极端,与其先做(英文)这样做我们也可以做另外一个方式,就是直接对(英文)这个其实就是现在最新的强化学习的理念。

我们需要在一个无限大的空间里去最大化或者最小化,其实就是近似这个函数,什么样的策略是优的去近似这个函数呢?先说最简单的,我可以假设这个函数是线性的,你想逼近它这个我们是有很成熟的理论去做的,大部分的功率都是非线性,这个时候怎么解这个问题?自然而然跟最新的多层神经网络的结果就产生了联系,对于一个多层的神经网络它理论上比较明确的描述就是如果当程序足够多的时候他可以近似模拟任意一个线型函数,我们就是利用这个结果融入到了强化学习里面。

比如说传统的强化学习,我们叫做Q(英文),你用多层神经网络逼近这个Q函数,大家可能(英文),这个就是它的原因,就是(英文)。这个就是我们想要用的方式。

也里面涉及到两种做多层升级网络做函数,一种就是(英文)一种是(英文)直接做多层神经网络的逼近,这两种方式对应不同的算法。细节我就掠过了,但是你用多层神经网络逼近这个Q函数那你的算法就是Q(英文)。

同样你可以用多层神经网络的办法去逼近这个(英文)函数,这个里面就有很多的延伸的,比如说我建立一个函数,这个函数是(英文)做梯度上升,我们是最大化的是叫梯度上升而不是梯度下降。根据这个梯度算法的理论数学上可以表述为这样,这个时候就涉及到复杂的函数的(英文),这个时候就是用多层神经网络做,我们可以用DP算法,但是如果你直接那样做的话可能他的(英文)会比较大,所以大家发明了(英文)的算法,如果你把这个(英文)对这个微函数当前的估计的话这个算法就叫做(英文),同时你想对这个算法进行加速,你可以把这个观测到的增益函数替换到一个递归的目标函数,这个目标里包含了你的量,这个可能是当前最快的算法,他叫做(英文)的算法,这个意思就是(英文)虽然你是(英文)直接进行梯度搜索,所以你看这里面也有V,这个就是(英文)的部分。

(英文)的部分就是说(英文),整个算法的架构叫做(英文),里面用到了两个地方,用到了深度神经网络,(英文)是通过多层神经网络实现的,在每一个我要对当前的值函数进行估计,这也是多层神经网络实现的,所以一个叫做(英文)一个(英文)这个也是阿尔法GO最核心的架构。

接下来我们就看看我们怎么用这个结构去做网络控制,如果你对这个理解了,其实你对网络控制这部分也理解了。

人工智能尤其是前期的人工智能的结果已经在网络里面应用了,因为什么呢?比如说自组织的网络已经提出了很长时间了,就是自我控制的网络,以前可能是基于专家系统的还不够智能,我之前想找一个应用的例子自然而然就想到了这个,用新的强化信息的结果去改善这部分,去比较我们可以得到的增益,三大部分我们就用(英文)就是小区切换的控制,这个大家都知道校区切换是无线网络里面如果这个你控制不好的话那么多用户频繁进行切换对性能的影响很大,所以我们就想减少次数,在保证一定量的时候就达到了我们的目的。

当前的标准里面用的就是比较简单的门限,基于门限的办法,很多人都做过这方法的研究,另外就是我假设对整个系统的动态变化规律都是知道的,那我们就直接解这个(英文),那这个(英文)就是我们通常说的(英文),这个其实就是可以做为一个(英文)但是它的负责度是不可控的。

我们强化学习的办法将来基于两者之间,我们看一下它的性能,具体的细节我们可以不讲,但是有一个大的考量我想讲一下,如果你想强化学习用到蜂窝网里面,那一个东西就必须考虑,他的用户量是非常大的,如果每一个用户进来,我都需要重新运行一遍我的强化学习算法来得到我自身的策略,这个效率非常低的,对整个资源的浪费也是非常大的,我希望我整个的算法架构是这样的,就是用户越多,学习时间就越短,这样才是比较好的算法,可以支持更大的网络系统。

首先在一个环境里面,我们有多个用户的话,我们进行观测,理论上来讲每一个用户学习多的策略应该可以帮助别的用户,我们希望每一个用户学到的东西可以帮助另一一个用户学习加速的东西,我们首先要保证在互相帮助的这一组拥护里面,他们观测到的环境是相关的,那么一个大的系统比如整个南京市的蜂窝网络跟东南大学本部里面的用户这两个用户完全不一样。所以我们第一个想要做的是在第一大系统里面把所有的用户进行聚类,保证一个类里面的用户看到的类是相关的,这样学习才可以促进,所以我们整个算法的第一层架构是做分配,你想想你做的环境是什么,做切换的控制,这个用户的移动规律,我们做分类的时候(英文),把它建成一个大的(英文)然后根据这个进行相对比较简单一点的算法,这个我们就不讲了,但是目的我想大家一定要清楚,就是要抱着每一个群组里面的用户是相关的,现在假设这个簇已经分好了,他们是相关的,这个时候他们怎么互相促进呢?他们首先是要共享信息,加入我们每一个簇里面有一个(英文),每一个用户都单独强化一个学习机制,那我们(英文),最重要的信息就是这个梯度值,那我们保证在每一个时刻,每一个用户都要报告他自己的梯度值去报告到这个(英文)然后把这个全球变量推送给用户,这个就保证了他互相的信息是交互的。

然后多个神经网络的架构我们用的是哪一种呢?考虑到我们蜂窝网的移动是比较慢的,他有记忆效应,所以我们采取了有记忆应的多层神经网络,就是这个一种,叫做LSTM,这个核心你会看到它有两大部分,一个是(英文)一个是(英文)就是对应(英文)的两个部分。

具体性能怎么样?首先我们看一下收敛的情况,一种就是单用户和多用户,我希望我用户越多收敛越快效果越好,比如说我们用一个红线跟绿线,他们的场景是一样的,红线跟绿线比,性能超高了绿色,这就在大规模系统里面应用就比较广泛了。

另外一个红线跟黄线都是10用户,(英文)他什么意思呢?(英文)这个里面就是我刚才讲的怎么基于模型的知识融合进来,有了这个SL的(英文)红线比黄线的效果好了很,验证了我们刚才一些观察,具体的切换性能怎么样呢?我们刚才说了我们想(英文)的次数。

UCB是个什么呢?我们要跟当前最新的结果进行比较,他是最好的一个算法,我们跟他比,绿线是UCB能达到的次数,这个红线我们可以看到远远低于他,这就是我们所能取得的增益。

(英文)如果我们可以找到好的积极学习的架构,结合我们的模型的知识,因为我们的背景都是做网络的,做无线的,其实这个结合是有可能产生很好效果的,所以我也希望我的讲座能鼓励尤其是年轻的学生或者老师能加入到研究领域里面,我觉得是非常有意思的。

谢谢大家。