DQN核心思想理解

  看过Deep learning(convolutional neural network),看过RL(Q-learning)。但是在两者结合这一块一直弄不明白。

  我的疑问在于一直不明白DL是怎样识别出那个特定的物体,比如,木板或者小鸟。以及Q-learning怎样做决策。

  后来才发现,DQN的核心思想并没有识别出特定物体。

  DQN里面的Deep learning部分,输入是原始图像,输出是action对应的Q值(类似于有这么多action类,每一类的概率值)。原始图像就是当前state (current state),把当前state输入到Deep Learning里面,以计算在该state下对应的各Action的Q值。

  有人问,那这怎么计算啊。我们都知道在RL里面,Q值是通过Reward来更新的。但是在DQN里面,Q值是直接算出来的。你可以把中间的neural network部分,看成一个函数f,最后输出的Q(s,a) 就等于 f(s)。这是非常不同的一点。

  这样就算了,那感觉和Q-learning也没多少联系啊。联系在于neural network的loss function部分。我们都知道neural network是需要训练后,才能正常工作的。既然要对Neural network进行训练,那么Loss function就是必须的。那么怎样定义这个loss function呢?我们都知道这个loss function是对neural network的输出Q值进行更新的一个函数。Q值更新?似曾相识啊,这个Q值更新我们参考《Reinforcement Learning: An Introduction》2nd sutton教材的P142页:

  这个就是Q值的Q-learning更新公式。我们就用这个公式来做loss function,保证最后得到的Q值是最优的。

  至于怎样训练,就是类似于RL的通用方法,通过经验值计算。思想就是,大量模拟,在数量达到一定阶段后,这个得到的Q值就非常接近真实的Q值了。学名叫做experience replay(经验池),可以参考蒲丰投针实验。(其实这一点有点模糊,在RL里面,为什么Q会趋近于真实值Q,一是因为有实际的环境模拟,二是因为有一个Reward,这个Reward是按照一个终值的确定Reward,一点点往前面state传递的,所以在很多episodes后,Q值最终会趋向稳定。但是在Neural Network中,这种前后states之间的联系是如何保证的?以及为什么这样计算他就也能像Q-learning那样收敛?难道是weights的原因,毕竟前后states是用同一个neural network。这里有待进一步弄清楚)

 

References:

https://zhuanlan.zhihu.com/p/21421729

posted @ 2018-12-10 17:09  哈萨尅  阅读(638)  评论(0编辑  收藏  举报