PPO2 開發應用場景心得

・算法上的研究:

1. PPO2 Numeric:

目前使用4層actor + 4層critic架構。

Initializer and Activation: He_Normal + leakyReLu / Glorot_Uniform + Tanh

Tanh層必須再接一層linear乘數來達到我們想要的output range
Ex: action space = -10~10, tanh*5以上(Tanh活躍在-2~2)

這個recipe可以學超快~


2. Numeric轉Discrete output :

pi & old pi必須轉為dist.Categorical,裡面塞softmax之結果 (不建議sigmoid)
w/ hidden units = 2+(看action space)init = Glorot_Normal()

目前Descrete應用不佳,而且容易梯度消失(爆炸?)

可能原因:action過於侷限,難以反映到reward的比例上


3. Entropy Bonuses :

A3C中在Loss前加了Entropy * Entropy_coef(係數)

可以增加action exploration跳出local minimum

實際機制要深翻一下baseline的code



・如何確定模型有train起來,而不是隨機表現佳?

Train full batch / 設一個normalized reward比例(Ex: episode reward / max reward)

確定模型train起來後每step predict一次valid env

抓學起來尚未壞掉的agent後,再看valid狀況選top N agent再weighted by all agents

最後放到Test看結果,不行再回到資料面



・未來資料方向:

1. 傅立葉轉換
2. 混入個股資料
3. 加入prediction close price from other model

留言