Deep Reinforcement learning
AL=DL+RL
Machine 观察到环境的状态,做出一些行为对环境产生影响,环境根据machine的改变给予一个reward。正向的action reward positive。
机器不断学习去最大化期望得分
以alpha-go为例子
environment为对手,落子在不同位置会影响对手的反应
只有赢和输才会得到reward:1,-1。sparse reward。
Supervised vs. Reinforcement
- supervised:根据棋谱做下一步的反应
- reinforcement:和一个人对着下,如果赢了,得到positive reward。没有人告诉它过程中哪个是好的哪个是不好的,需要大量的训练数据,3000万盘以后。
Learning a chat-bot
seq2seq model
让machine不断地去跟人讲话,人生气了就是bad reward。
Chat-bot with RL
让两个chat-bot一起对话,一起训练
action:
-
左右移动
-
开火
-
machine 看到observation s1,实际上是一个由pixel组成的matrix
-
往右移动,得到的reward是0
-
得到observation s2
-
有时候环境的变化是随机的,与machine action是无关的
-
action:开火,得到reward 5
-
observation改变 s3
一直进行下去,直到action 为T个,reward 为 r T r_T rT
进入到了一个state,会让游戏结束。
machine要做的就是在每一个episode里,怎么能得到最大的reward:杀死外星人且自己不被杀死
RL的难点
1、Reward delay
- 只有开火在得到reward,开火前移动没有reward,可能导致机器为了得到reward一直开火,不移动
- 短期的牺牲一些reward,可能会在长期有更大的收益
2、 agent 采取的行为会影响下一个observation。agent要学会做exploration,看到更多的observation。
RL outline
- Policy-based
- Value-based
目前最强的方法:A3C
alpha Go:policy based+value-based+model-based
第一部分: Policy-based Approach:learning an actor
将observation作为input,action作为output,定义function,通过reward来优化function
Three steps for RL
step1: Neural network as actor:deep RL
input:machine 看到的 observation,matrix or vector
output:action
the benefit of using network:
传统的table,根据observation采取一个action
电玩的话变化是pixel,NN可以对没看过的observation,它也会输出一个output,这个结果可能也会理想