强化学习(一) —— Q-learning
Q-learning算法中有两个重要术语:状态(state)和行为(action)
引入
我们做事情都会有一个自己的行为准则,比如小时候爸妈常说不写完作业就不准看电视
所以我们在写作业的这种状态下,好的行为准则就是继续写作业,直到写完它,我们就可以继续得到奖励
而如果没有写完作业就去跑去看电视,被爸妈发现后,后果很严重
Q-learning和我们这种情况类似,也是一个决策过程
假设我们现在处于写作业状态,而且我们以前并没有尝试过写作业的时候看电视。
所以现在我们有了两种选择①继续写作业②跑去看电视
因为之前没有被处罚过,所以我选择了看电视,然后继续看电视,还是看电视。最后爸妈回家发现我没有写完作业就去看电视,狠狠地处罚了我一次。于是我记下了这次经历,并将没有写完作业看电视这种行为看作是负面行为
那么,Q-learning根据很多这样的行为是如何决策的呢
假设我们的行为准则已经学习好了,目前我们处在状态s1,我在写作业,有两个行为a1和a2,分别是看电视和写作业。
根据以往经验,在s1的状态下,a2写作业带来的潜在奖励要比a1看电视要高,这里的潜在奖励我们可以用一个有关于s和a的Q表来代替
s1a2>s1a1,所以我们判断要选择a2作为下一个行为
现在我们的状态更新为s2,还是有两个同样的选择,再继续选择a2
Q表是如何更新的呢
在根据s1的Q表进行决策到达s2之后,我们开始更新s2的Q表
接着我们并没有在实际中采取任何行动,而只是在估计自己在s2上采取的两种行动
R是得到的reward,得到的奖励
Q估计就是基于原来的Q-table得到的Q(s1,a2)的值
greedy是用在决策上的一种策略,=0.9时就说明90%的情况我们会根据Q表的最优值来选择行为,10%会随机选择行为
α时学习效率,来决定这一次误差有多少要被学习。α<1
γ是未来奖励的衰减值
我们来想象Q-learning的机器人是近视眼,γ=1时,机器人有一副合适的眼镜,在s1看到的Q值是未来没有任何衰减变化的奖励,即能够清楚地看到最后所有步骤的全部价值
当γ=0,机器人没有了眼镜,只能摸到眼前的奖励,也就只在乎最近的最大奖励
γ~(0,1) 机器人渐渐变得有远见,不仅仅看到眼前的利益,也为自己的未来着想
算法思想
QLearning是强化学习算法中value-based的算法,Q即为Q(s,a)就是在某一时刻的 s 状态下(s∈S),采取 动作a (a∈A)动作能够获得收益的期望,环境会根据agent的动作反馈相应的回报reward r,所以算法的主要思想就是将State与Action构建成一张Q-table来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。
Q-Table a1 a2 s1 q(s1,a1) q(s1,a2) s2 q(s2,a1) q(s2,a2) s3 q(s3,a1) q(s3,a2)