强化学习
跟同事聊了一会强化学习做AI游戏,感觉难度很大很麻烦,遂断更
- 游戏的奖励频率过低,电子游戏很难像围棋那样计算每一步的收益,就像训狗一样,你让狗坐下给一次奖励,训练效果会很好,但让狗做非常多复杂的组合动作再给一次奖励,就很难训练
- 数据难以收集,AI玩游戏通常是现有一个游戏,再去做AI,这些AI公司一般都没有与游戏公司合作,于是难以拿到原始的状态同步信息,只能抓取屏幕提取参数,难以获得海量数据(比如你难以让几万台机器去玩CSGO来收集数据)
- 状态空间过于复杂,游戏中需要同步的数据非常大,随着状态空间的复杂化,训练所需的数据骤增,训练速度也减慢,而因为第二条,我们已经很难获得数据了,于是雪上加霜
- 没有优秀先例,研究员研究RL很久了,但是至今没有一个极具影响力的RL玩游戏,甚至一些RL大佬都唱衰强化学习,认为这没有用,因此这是一个风险巨大,前路坎坷的方向(当然如果成功了,收益也很高)
强化学习系统由四个部分组成:
- 策略,根据环境和状态决定动作,是一组概率,内容为当智能体状态为s时,采取特定动作a的概率
- 奖励,智能体试图实现的目标,往往配合折扣因子(Discount Factor)设计
- 价值函数
- 环境模型
不断进行着状态Obs—动作A—新状态和奖励的循环
马尔可夫决策
图形学的光追部分,也大量使用了概率论和马尔可夫决策
强化学习涉及序列决策,使用马尔可夫决策过程(Markov Decision Process,MDP)对问题进行建模
马尔可夫条件
未来与过去无关
给定当前状态和所有过去状态,其未来状态(的条件概率)仅与当前状态有关
满足马尔可夫独立性,意味着强化学习模型,不需要记住如何到达当前的状态,只需要根据当前状态就能决定需要做什么
蒙特卡洛:对大量模拟的结果取平均值,用来逼近期望
马尔可夫决策过程
通过引入额外的(可选的)动作,扩展马尔可夫决策链,是否使用这个动作会影响最终的累积回报G,通过比较这两个G,我们可以得到这个动作该不该做
回溯图
其实是一个树
表示从初始状态开始,深度优先搜索每一个可能性,将这个过程化成树
树的每一个叶子结点表示无法得到解返回(或提前返回)的状态,当遇到这种情况,将回溯到父节点,继续遍历
贝尔曼方程
贝尔曼最优方程
Gym
Gym是一个被广泛使用的强化学习框架
CartPole
CartPole是一个在小车上放置了一根竖直向上的细杆,控制小车在X轴上移动,使得细杆尽可能长时间维持竖直向上的任务
import gym |