强化学习--李宏毅

 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不一样



猜你喜欢

转载自blog.csdn.net/qq_39638957/article/details/80436176
今日推荐