Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

DQNPlayer
深度强化学习游戏者
作者: 杨秀隆 史英锋
FlappyBird
飞扬吧!小鸟
操作人工设定
八分音符酱
超级玛丽、魂斗罗等等
我们是怎么玩的?
但程序呢?
程序玩游戏
人工设定规则
1. 直接编写程序
2. 获得实时数据
3. 判断状态
只有从源代码
没有源码、接口
没有数据
没有设定好的规则
有没有办法?
用图像作数据!
https://github.com/sndnyang/GamePlayer/blob/master/GrabReader.ipynb
游戏过程中不断进行截图
程序玩游戏
人工设定规则

判断状态:
1. 死亡
2. 正确


能不能不在程序里
设定好规则

让程序自己学习规则
小鸟的坐标、 水管的位置、 地面的位置
游戏的结束、 下一步等等
方法一、 像素
从右图可知
  1. 背景黑色像素值为0
  2. 小鸟和管道的灰度不相同
得到小鸟的坐标
方法二、 模板匹配
opencv中有 matchTemplate接口
可以在图中找到小鸟的坐标
方法三?
程序玩游戏
人工设定规则

判断状态:
1. 死亡
2. 正确


能不能不在程序里
预先设定好规则

让程序自己学习规则
什么叫程序自己学习规则
即没有预先设定的规则
自由下落,弹起
左行、右行、小跳、大跳等
游戏状态:
生存还是死亡?
强化、子弹、
刀枪不入?
游戏状态的学习
>
存活?
死亡?
想到什么?
机器学习类别中
     带标签数据的监督学习
分类问题
有问题!
监督学习的学习过程:
          1. 训练
          2. 预测
训练需要数据, 人工方法标注
仍然要回归到预先设定的规则上
     先生成一批数据进行训练
     得到模型
>
更通用的规则

1. 画面不变
2. 操作无反应
对图像进行学习、分类的算法
人工神经网络
深度学习
最state of the art 最先进的应该是 CNN卷积神经网络
什么叫程序自己学习规则
即没有预先设定的规则
自由下落,弹起
左行、右行、小跳、大跳等
游戏状态:
生存还是死亡?
强化、子弹、
刀枪不入?
随机游走
random walk
百科:随机游走
每个状态执行某个动作
到下一个状态的概率
随机游走不是布朗运动
1、 目标是什么? >
2、 如何实现?
让程序一步步运行
通关或一直不死
即可视为掌握规则
给定状态,
寻找最优动作、概率

>
路径未知
方案:
问题:
只能试, 并观察、记录
开始使用初始概率
根据观察结果, 更新概率值

1.左图必须多步之后
才有观察结果
2.结果不能预知
3.同一结果可以来自
不同路径
路径空间太大
实验无法穷举完毕
以相对少量的实验
结果来计算概率

问题:
杯水车薪
错误率高

Use a spacebar or arrow keys to navigate