如何从零开始学习QLearning强化学习算法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计641个文字,预计阅读时间需要3分钟。
相关主题
2. Qlearning讲解
3. CartPole Qlearning代码实战
强化学习是机器学习中很火热的一个领域。相比于传统的监督学习、无监督学习,其是一种独特的学习范式。RL在游戏AI中的应用已经相当成熟,最知名的便是OpenAI。但RL的入门门槛似乎有点高,刚开始就有很多难以理解的概念。涉及到非常多概率统计、微积分的基础知识。实在太劝退了。本文得目的便是引入最少的概念,旨在帮入门者用最短时间完成一个RL项目。熟悉了Qlearning与SARSA的基本流程,再去理解复杂的数学公式,便可轻松上手,水到渠成。
(安利一下科科老师的课,配套推荐的几本书食用更佳。)
这里我们就建立了一个在森林生活的表格,我们根据熊的状态来判断该选取哪一个动作。那么,问题来了:我们咋知道这个表格里哪一个动作评分是咋样的呢?其答案是通过不断尝试,然后一次次根据reward更新。这个表格又称为Q表格。
伪代码:
初始化Q表格,随机每一个状态的Q值 对于每个Episode循环 设置初始状态S 对于每个Step循环 根据Q函数与状态S,选择动作A 做一个动作A,观测R和S' 赋值:Q(S,A)=Q(S,A)+a[R+ymaxQ(S',a)-Q(S,A)] 赋值:S=S' 直到S终止。
'''
再推荐一本书,《白话强化学习与Pytorch》,非常的nice。
S->A->R,S'->A。这里的玄机就在于,用下一刻S'的Q值来更新当前的Q值。因为Q本来就是要预测做了这个动作后,下一刻是好还是坏。那么更新了状态之后,自然会从下一个状态里,选择Q值最高的那个动作。R就是reward,环境给的反馈。有了这些东西,我们开始上路!(有一些前置知识的同学可能会陷入疑问,那个什么动作价值函数,不是和之后每一个动作都相关吗?这里咋就用下一个的来更新呢?我最初学的时候,也陷入了迷惑。但,请先忘记动作价值函数与状态价值函数,撸完这个项目之后,再回过头来仔细思考复杂的积分求和公式。)
本文共计641个文字,预计阅读时间需要3分钟。
相关主题
2. Qlearning讲解
3. CartPole Qlearning代码实战
强化学习是机器学习中很火热的一个领域。相比于传统的监督学习、无监督学习,其是一种独特的学习范式。RL在游戏AI中的应用已经相当成熟,最知名的便是OpenAI。但RL的入门门槛似乎有点高,刚开始就有很多难以理解的概念。涉及到非常多概率统计、微积分的基础知识。实在太劝退了。本文得目的便是引入最少的概念,旨在帮入门者用最短时间完成一个RL项目。熟悉了Qlearning与SARSA的基本流程,再去理解复杂的数学公式,便可轻松上手,水到渠成。
(安利一下科科老师的课,配套推荐的几本书食用更佳。)
这里我们就建立了一个在森林生活的表格,我们根据熊的状态来判断该选取哪一个动作。那么,问题来了:我们咋知道这个表格里哪一个动作评分是咋样的呢?其答案是通过不断尝试,然后一次次根据reward更新。这个表格又称为Q表格。
伪代码:
初始化Q表格,随机每一个状态的Q值 对于每个Episode循环 设置初始状态S 对于每个Step循环 根据Q函数与状态S,选择动作A 做一个动作A,观测R和S' 赋值:Q(S,A)=Q(S,A)+a[R+ymaxQ(S',a)-Q(S,A)] 赋值:S=S' 直到S终止。
'''
再推荐一本书,《白话强化学习与Pytorch》,非常的nice。
S->A->R,S'->A。这里的玄机就在于,用下一刻S'的Q值来更新当前的Q值。因为Q本来就是要预测做了这个动作后,下一刻是好还是坏。那么更新了状态之后,自然会从下一个状态里,选择Q值最高的那个动作。R就是reward,环境给的反馈。有了这些东西,我们开始上路!(有一些前置知识的同学可能会陷入疑问,那个什么动作价值函数,不是和之后每一个动作都相关吗?这里咋就用下一个的来更新呢?我最初学的时候,也陷入了迷惑。但,请先忘记动作价值函数与状态价值函数,撸完这个项目之后,再回过头来仔细思考复杂的积分求和公式。)

