AI = 强化学习+深度学习
Alpha go是在监督学习的基础上,让两个机器对下
聊天机器人问题:训练完之后不知道聊天是否聊的好,可以考虑使用GAN,添加discriminator去判断聊天是否是人类聊天
强化学习的困难:
接收到positive reward的动作是需要其他没有奖励动作的基础的,游戏系统很容易学成只会开枪而不移动(因为开枪有奖励,而移动没有)
系统需要探索新的行为,不能永远只是移动躲避子弹而不开火
-------------------------------------------------------------------------------------------------------------------
不讲MDP,deep Q-network(deep Q-learning)
直接讲现在最流行的A3C
强化学习方法分为 policy-based(learning an actor) 和value based(learning a critic)两种
结合起来的actor-critic是现在所流行的
机器学习学的是x->y的映射函数,policy-based强化学习学的是给定state,选择action的actor函数
使用深度学习去模拟actor函数,输入是state(如游戏当前画面的像素),输出是各个动作的概率。按照概率分布抽样出动作
如何评价Actor:
用 一个episode的总reward的期望 作为评价指标,越大越好
每次游戏都是一个轨迹
有了目标函数之后,就可以用梯度上升来更新参数了
下图可见,只有红色部分与actor有关
考虑的是cumulative reward而不是 单个动作的reward
---------------------------
下图可以看到,梯度更新可以防止选择认为出现次数多的动作就一定最好
添加 base line
下图,a,b,c为给定s下采取的三个动作,蓝色条代表概率,绿色箭头代表reward。
如果reward均为正的,那么如果各个动作都有被尝试过,则各个动作概率都有更新。
但是如果有一个动作没有试过,由于要归一化,其他动作概率的增加会导致该动作概率的减小,要避免这种情况就要使用base line。
------------------------------------------------------------------------------------------------------------------------
learn a critic
critic就是value function或Q value function
如果动作是有限多的,可以用下图右边形式的网络
critic的训练方法1:
MC蒙特卡洛
critic的训练方法2:
temporal-difference
两种方法计算的value function不一样