# 1_state env 實驗 用toy example是否能設計出一個FW會卡在local optimal的設計,然後global sampling能找到一個較佳的解,同時我們想知道在這個情況加入BO是否有幫助 ## 精確critic實驗(toy_env): 1_state env state: [0] action: [0,8] Reward function:(np.cos(2x) + x * np.cos(6x) - np.cos(4.6*x)), x=action ![](https://i.imgur.com/x8TGyZf.png) Reward function設計目的:以簡單的三角函數疊加預期做出很多local optimal的環境,並去嘗試不同演算法是否能脫離local optimal ## algorithm: **FW:** 直接使用Frank–Wolfe的方法去尋找參考action去做policy更新 Global sampling: 使用sobel seq.去尋找critic/reward function最大的action當參考action去做policy更新 **BO:** 使用bayesian optimization去尋找reward function最大的action當參考action去做policy更新 **accurate critic:** 訓練一個critic network並使用true reward function去更新 **inaccurate critic:** 訓練一個critic network並使用true reward function每次都會增加一個30 * N(0,1)去更新,預期訓練出一個不準確的critic **true critic:** 在BO或是global sampling中直接使用true reward function ## learning parameters: epsilon greedy: epsilon = 0.1 seed: 1,2,3 warmup steps = 100 training steps = 99900 lr_c = 0.1 lr_a = 0.01 critic = network critic policy = network policy sample_number = 30 policy_batch_size = 8 critic_batch_size = 64 BO sample number = 20 + 10 BO acquisition function sample number = 1000 policy update old_action <= lr_a * ref_a + (1-lr_a) * old_action ## result: ![](https://i.imgur.com/wUlPvcH.png) 結果討論: Global sampling:主要的表現會取決於critic的訓練情形,我們可以觀察不同的演算法訓練出的critic和實際reward function的差別, ![](https://i.imgur.com/bqkJ0o6.png) 雖然我們可以利用優先權的改變讓一些經驗比較容易在replay buffer中被選取到,但是訓練的精確度可能還是會取決於探索, 舉例來說如果我們要探索到action [6.1~ 6.5]這段的Reward的機率就會是 0.1(epsilon) * (6.5-6.1)/8 = 0.005在我們的實驗步數中可能比較難取到 FW:可以顯現出卡在local optimal的現象(reward function的第一個波峰) BO:雖然testing reward出來的表現看起來不佳,但是我觀察到目前的policy network出來的action都是6.5附近,結果上來說可以幫助我們找到最佳解,但是這邊可能要思考不能收斂的原因