最近对强化学习特别是深度强化学习做了一番了解,不像以前只是大概模模糊糊有个影子,为了加深印象,决定把相关内容记到这里。首先对强化学习做简要的介绍,之后介绍一下需要的相关背景知识,然后重点介绍一下深度Q学习(DQN)的算法理论以及实现过程。
关于强化学习,今年最为着名成功实践莫过于谷歌deep mind的alpha go,其于今年三月以4:1的比分击败了现役围棋选手中冠军数最多的李世石九段。由于围棋自身的复杂性,在之前很长的一段时间内被认为是计算机无法超越人类脑力的一个瓶颈。而这次alpha go引起的轰动之大,以至于有人评论说很有可能这是从弱人工智能向强人工智能转变的一个分水岭。这些套话我就不多说了,Alpha go所用的核心算法就是深度强化学习,要了解深度强化学习,就要先了解强化学习。
我们知道,在机器学习中,无论是分类聚类亦或是回归等其他场景,都可以根据训练数据中有无lable,可以将机器学习算法分为监督学习,无监督的学习以及半监督的学习。而有部分人将强化学习归为无监督学习的类别里面,我认为这样并不是十分准确。比如在很多强化学习中,人们会首先利用有监督的样本进行预训练,然后再进行深层次的训练。不过这个不是重点,重点是我们要理解强化学习是做什么的。
那么,什么是强化学习呢?
机器中的很多算法都是借鉴于人或者其他动物学习的过程。强化学习也不例外。
机器进行强化学习也是这个道理。就拿下中国象棋来说,一开始机器只知道简单的走棋规则(马走日字,象走田字等),然后机器会按照基本的规则漫无目的地走,这时候我们可以设定一定的奖励或者惩罚。比如当机器走这一步之后对方的炮就会被吃掉,那么我们就给机器一个小的奖励,假如当机器走了下一步之后对方的帅会被吃掉的话就给机器一个超大的奖励。对应的,假如因为机器自己的走子失误导致自己的帅被吃掉哦,我们可以给机器一个很大的惩罚。机器要做的就是在一次又一次的尝试之中,尽可能获得更大的奖励同时尽可能减少惩罚。训练中,机器刚开始可能会漫无目的地走子,而后经过逐步的奖惩的迭代会收敛于一个还算比较能接受的结果的解。
以上说完之后可能还是模模糊糊,那么我们具体来看一下Q学习是如果让机器自主寻路的一个例子。
首先用极其简单的语言解释一下什么事马尔科夫决策过程,所谓马尔科夫决策过程就是你接下来的所有状态和决策只取决于你当前的状态和决策。比如你在下象棋,和人下到了一半,这时候另一个人过来要帮助你下棋,你就可以走了,为什么他可以帮助你下棋?因为他只要看到当前棋局的状态就可以决定以后该怎么走了,并不需要关注你之前是如果经过那么多步下到现在棋局的状态的。无论你之前下的好坏都已经过去了,现在唯一能对未来发生改变的只有活在当下。
知道了马尔科夫决策过程,以下所有的讨论都是基于马尔科夫决策过程的了。
现在我们回