
agent 정보와 덜 집중해야할 agent 정보가 무엇인지 학습합니다.다양한 reward setting + 다양한 action spaces를 가진 setting)개별화된 reward setting적대적인 settingglobal state를 제공하지 않는 setting

시간 t에서 전체 선수들의 시야 frame(o_1, ..., o_n)과, 시간 t 의 전체경기장 시야 frame(o)을 가져옵니다.시간 t에서 나를 제외한 동료 선수들의 행동(a) 도 데이터셋에서 가져옵니다.시간 t에서 내 시야 frame과(o_i)에서 내가 판단한 내 행동들의 확률분포를 아래 확률 목표와 유사하게 만드는 것이 목표입니다.시간 t에서 전체 선수들의 시야 frame(o_1, ..., o_n) 에서 각 선수들이 현재 생각으로 선택할 행동들(a)을 먼저 계산합니다.시간 t 의 전체경기장 시야 frame(o) 에서, 각 선수들이 현재 생각으로 선택할 행동들(a)을 했을 때의 가치의 확률 분포 - baseline시간 t에서 나를 제외한 동료 선수들의 행동(a)을 dataset에서 가져와서 사용합니다. (실제 내가 돌려본 실험 결과도 이 방법의 성능이 더 좋음)
시간 t 의 전체경기장 시야 frame(o) 에서 내가 한 행동의 가치를 아래와 같게 만들고 싶다.내가 한 행동 행동으로 얻은 보상 + 시간 t+1 의 전체경기장 시야 frame(o')에서 나와 선수들의 현재 판단(a')으로 할 행동을 했을 때의 가치t+1에서 나를 제외한 주변 동료들의 행동(a')을 데이터셋에서 가져옵니다. (실제 내가 돌려본 실험 결과도 이 방법의 성능이 더 좋음)target policy network n개 각각에 (o_i_t+1)을 각각 통과시켜, a'와 prob을 구함.- agent i의 Oi + 나머지 agents들의 Oj, aj를 입력값으로 가짐
nn.BatchNorm1d(sdim + adim)nn.Linear(sdim + adim, hidden_dim)nn.LeakyReLUnn.BatchNorm1d(sdim)nn.Linear(sdim, hidden_dim)nn.LeakyReLU()[ [_, _ , -- n마리], ... num_head... , [_, _ , -- n마리] ]all_head_selectorsnn.Linear(hidden_dim, attend_dim, bias=False)all_head_keysnn.Linear(hidden_dim, attend_dim, bias=False)all_head_valuesnn.Linear(hidden_dim, attend_dim)nn.LeakyReLU()nn.Linear(2 * hidden_dim, hidden_dim)nn.LeakyReLU()nn.Linear(hidden_dim, adim)