大家好
欢迎回来
那么我们这一节还继续基于神经网络的人工智能系统
我们来看看强化学习当中
在有了估值函数或者说状态动作函数的这么
一个定义之后
我们通过什么样的策略来找到这么一个锦囊妙计
显然我们刚开始的时候并不知道对于一个游戏
或者说对于一个状态下
我应该采取什么样的动作的这种策略合适
那么也就是说我并不知道这个Q函数也就是
对于某一个状态下我应该做哪些动作
然后每一个动作的估值这样的一个Q函数并不知道的时候
我们应该怎么办
那么很显然就是要从零开始
一切从头开始
跟我们人类学习的过程是一样的
从当一个婴儿出生
他什么都不知道的情况下
那么都是一切都是从零开始
而不断试错的一个过程
所以我们刚开始就在Q learning里边要需要构造一个
优化的一个Q函数的时候
最开始总往往总是从一个随机的Q函数出发
那么所谓的随机就是我用一个随机数来任意指定
在某一个状态下
对于某一个动作而言
它的估值是多少
其实最开始的时候这些估值是随机的
因为它总需要有一个估值
那么刚开始类似于人的探索过程
什么动作都要去试一下
只有试过了以后
我才能够逐渐的从环境的得到的回馈和他的回复当中
我慢慢的去学习到这一个游戏
它的一个真谛一个过程
那么怎么样去尝试
那么在这个Q函数不够准确
因为最开始是随便的
它是随机生成的估值
那么每次尝试应该怎么样
选择动作
当然这会有两种
那么一种就是把它当做Q函数来用
我从随机数字当中选择一个最好的
然后最高的估值来指导我下一步的动作
那么这个就叫做开发
那么当然我们尤其是在Q还是最开始的时候
都是由随大量的随机数来构成的时候
那么显然如果你这时候用最高估值
其实没有什么道理
对吧
那么还不如用另外一种策略
第二种策略就是所谓的探索
也就是在我不管这个估值是多少
我从当前的状态下可能的动作里头随便找一个
这就叫做探索
所以我们说探索其实是为了更好的学习
生成最佳的Q函数
而尝试各种各样的情况
那么也就是说应该选择不同的一些其他的动作
这个就类似于我们在古代以来治病的过程当中
我们有一个神话传说
神农尝百草
他为了获取至某个病的更好的药物
它要去尝遍百草
各种的这种草药都是一遍
那么这个尝试其实所谓的尝遍百草
那么其实就没有什么目标
你只要拿来去查一下
对于这个病有没有帮助
对于那个也查一下对这个病有没有帮助
那么只有足够多的探索
你才有可能获得新知
也可以得到新的一些知识
那么相对于探索另外一个叫做开发
那么也就是我把这个Q函数就当做是已经是最优的函数来用
我直接选择当前认为最佳的动作
就是我这个状态下有一系列的动作
他每个动作都有一个估值
我就直接选估值最高的这个来用
那么这种过程叫做开发
那么经过采取估值最高的动作
然后再看一下环境有什么回报
那么如果他的回馈是正的或者负的
那么我们再来逐渐修改新的状态下的这些Q值
来反复的进行
那么所以探索和开发它其实是一个相对的
一个是比较激进
我随机生成一个动作去探索未知的动作会产生
什么样的效果
这个其实某些状态下它其实更有利于更新Q值
因为它不断的有新知被加进来
从而可能获得更好的策略
那么开发其实利用当前的Q值来计算出一个最优的动作
我从估值当中选取估值最高的那么一个动作来做
所以这个是所谓的叫做贪婪的一个算法去进行开发的
那么相对来说用开发它就不太好更新出
更高的Q值更优化的Q函数出来
因为它开发的过程并不会产生一些新知出来
他只是遵循原来的指导去做
但是开发可以得到一个更好的一个测试的结果
去用来判断我这个算法是不是有效的
所以我们在更新和生成和优化Q函数的过程当中
从最开始的一个白痴的一无所知的状态
随着完全随机的状态要进化成一个游戏的大师
这一个过程当中探索和开发这两者的结合都是不可缺少的
那么所以就一种简单的一个平衡探索
也开发的这么一个策略
叫做ε-greedy这么一个策略就被人提出来
那么这个策略里头对于随机动作也就是探索有一个小的概率
这个概率叫一个ε的概率
它是一个值
那么除了命中这个概率的时候
我用探索之外
其余的时间都是用开发
剩下的情形就按照Q值最大的动作来进行
所以一般的来讲
对于一些比较保守一些的做法比较平衡一些的做法
因为ε一般是一个很小的值
很小的值
足够我可以在开发不够用的情况下
能够不断的去尝试一些新的东西
然后得到有可能的革命性的一些改变
那么在ε-greedy的策略更新Q函数的策略的过程当中
当然也ε概率也不是一成不变的
我们可以通过更改ε的值来得到不同的
探索和开发之间的比例
那么通常在刚开始学习的时候
因为Q函数本身的这些估值是随机数赋进去的
所以这个时候探索的概率可以稍微大一点
比如说1%的概率
然后随着这个Q函数逐渐在学习的过程当中
得到了环境的反馈
然后在优化的过程当中逐渐优化了以后
可以逐渐地调小ε
比如说调整到0.1%
甚至在后期相当优化的情况下
我就可以一直用开发的过程来进行学习
而不再去进行探索
这时候ε设为零
也就是说不再进行探索
那么这样的一个过程其实让我们可以联想到
先前的遗传基因算法
是吧
遗传基因算法里头相对于探索也有基因突变
对吧
我们如果说知道如果在遗传基因算法里头只有
遗传和只有复制和交叉
只有通过父代各出一半的基因
然后重新组合
只有这样的一个复制和重新组合来去生成下一代的话
那么它的整个的进化过程
他可能就会陷于某种会有一个玻璃天花板
它不会再去变得更好
那么在的整个进化的规则当中
起革命性因素的往往会是这个变异
也就是有随机的一个因素
随机的概率去调整和对基因进行突变
哪怕这些突变是没有方向的
是完全随机的
那么他最终它可能会在大量的进化的代数的情况下
往往会趋向于一个更好更优的一个结果
所以我们在Q learning在强化学习
在去构筑最优的Q函数的过程当中
其实ε-greedy的这种策略也是有类似的这种功效