(1)Q_learning:reward表,左邊一列是狀態(tài),右邊是動作對應的獎勵。Q表格,一個狀態(tài)轉向另一個狀態(tài)獲得的價值,初始化是為零。計算Q表時,一個狀態(tài)到另一個狀態(tài)的價值等于這個動作的及時獎勵加上下一個狀態(tài)他能轉移到另外一個狀態(tài)所獲得的最大價值(這個也是查上一次所計算得到的Q表所得到的。)
(2)flapybrid一張圖片中一個像素點就對應256種狀態(tài),28*28*3這么多像素點所組成的狀態(tài)太多的,計算不出來它的Q表,所以就用卷積神經網絡代替,已連續(xù)的4幀轉換的二值圖作為一個狀態(tài),把他輸入神經網絡來預測出它的兩個Q值,動作只有兩個上升或者下降,一個動作對應一個Q值,預測的結果(2維的Q值)和動作(二維的0或1的值)點乘,就相當于通過這個動作選擇了下一個狀態(tài)對應的Q值。這是神經網絡配合一個動作得到的Q值,
而這個動作下實際的Q值可以通過下一個狀態(tài)來計算,由于是在訓練數(shù)據中取數(shù),這個下一個已經取好了,它的實際最大Q值可以依據上面Q表格的方法計算出來,動作獎勵+下一個狀態(tài)通過神經網絡得到兩個輸出的中間最大的一個,這就是它能得到的最大的Q值。它和神經網絡預測出來的Q值的誤差作為損失函數(shù),最后來優(yōu)化它。
優(yōu)化好后,網絡每次能準確預測出兩個Q值,取最大的那個的序號,這個序號對應的action的值為1,另外一個為0。這就相當于給他指出了下一步走的方向。按這樣走得到的價值最大,就不會死了。