如果reward大多數情況下都是0,只有少數是很大的值。
這種情況下就是稀疏reward的問題。
比如你要教機械手臂拴螺絲,只有最后把螺絲栓進去才可以,其余機械手臂的位置都不可以。
額外的reward幫agent學習。reward shaping
射擊游戲cs,這個游戲中,被射擊扣分,射擊到敵人加分,為了防止機器一直原地轉圈圈不去攻擊,所以活著給一個很小的負的reward。
可以設置一個接近目標的reward,比如機械手臂接近棍子,機械手臂從棍子上方接近棍子。reward shaping 需要你對問題理解很深刻。
例子:
讓agent 玩馬里奧,他的reward就是看到新的東西就可以過一些關卡。
=======================================================================
如果沒有reward怎么辦
或者是定義了reward但是機器可能有些不太對的邏輯
比如給機器人定義三個準則:機器人不能傷害人類,在滿足第一條的情況下機器人必須聽從人類,第三條在滿足12的情況下機器人要保護自己。--》機器人得出結論要把人類監禁起來防止人類自殺
那么沒有reward的時,怎么訓練呢
imitation learning
找很多人類示范,t-hat(expert)作為示范
比如人類駕駛的記錄作為示范。
比如機械手臂拿東西,可以人類操作機械手臂示范一次
這不就是監督學習嗎?
但是人類和機器看到的有可能不一樣,比如轉彎的時候人類可以順利的轉彎,但是機器沒轉過去的畫面機器沒看到過。
還有就是人類的有些行為需要模仿有些可能不用模仿。甚至只是模仿人類也會限制機器的能力上限
Inverse Reinforcement Learning
用專家做示范,學習出reward funtion
基本原則是老師的行為是最好的,老師的行為可以得到最高的reward。
先初始化actor,和環境互動,得到trajectories.讓老師與環境做互動,然后得到trajectories.然后這個reward function評估老師的要得到高分,評估actor的比較低。然后估算出reward function
如下圖,可以把reward function看作是gan里的分辨模型,actor是生成模型。
往往操作一個機械手臂完成一個任務,可能需要寫很長的程序,控制他的每個關節等。如果示范給他就可以學習示范動作。
現在還有更新的做法如下圖,給機器一個畫面,讓機器做出畫面中的行文。