對於大學項目,我想訓練一個(模擬的)機器人在給定位置和速度的情況下擊球。首先要嘗試的是策略梯度:我有一個參數軌跡生成器。對於每個訓練位置,我通過我的網絡提供位置,發送彈道到模擬器並獲得回報。我現在可以使用它作爲損失,對梯度進行採樣,將其反饋回來並更新網絡的權重,以便下次更好。Keras中的非符號損失/ TensorFlow
因此,目標是學習從位置到軌跡權重的映射。當使用像Theano和Tensorflow(或Keras)這樣的全明星計算圖形庫時,我有一個問題,我不知道如何實際建模該系統。我想首先有標準的完全連接層,然後輸出是我的軌跡權重。但我如何真正計算損失,以便它可以使用backprop?
在自定義丟失函數中,我會忽略/不指定真正的標籤,運行模擬器並返回它給出的損失。但從我讀到的,你需要返回一個符號的Theano/Tensorflow函數。我的損失相當複雜,所以我不想將它從模擬器移動到網絡。我怎樣才能實現呢?然後問題是區分這種損失,因爲我可能需要抽樣才能得到該梯度。
在TensorFlow中,您可以輸入任何張量。這意味着您可以創建一個虛擬損失的網絡,然後使用'feed_dict'將虛擬損失替換爲外部計算的損失/方向 –