DQN利用深度學習對Q-learning的一個擴展,回顧上篇文章,Q-learning的核心在於Q(s,a)的建模。若是狀態s很是複雜,很難經過一張表來存儲全部的狀態。網絡
異步
可是s多是一個極高維度的向量,a可能只低維度向量(如上下左右),建模起來可能有點困難函數
解決的辦法是,對每一個動做a都建一個網絡。由於對於每一個網絡的a輸入的是個固定值,沒有任何信息量能夠忽略掉,問題就能夠簡化爲對每一個動做創建一個網絡來表示Q(s)學習
更進一步簡化,這些網絡在特徵提取層能夠參數共享一塊兒訓練,在輸出層則輸出各自動做的指望獎勵,作法相似於如今的多任務學習spa
與Q-learning原理相同,Q(s, a)表示了模型根據歷史數據的預測獎勵,而Q'(s,a)表示對當前行動的預測獎勵。一個好的模型,Q(s,a) 和 Q'(s,a)應該儘可能接近,用平方損失函數正好能夠表示深度學習
其餘一些trick:experience replay 和 異步更新(Double DQN),作法都很直白,有須要能夠去了解下it