본문 바로가기
논문 리뷰/MARL algorithm

CommNet (learning communication, PG)

by xi2d 2021. 7. 12.
반응형

Main Paper https://arxiv.org/pdf/1605.07736.pdf

Learning Multiagent Communication with Backpropagation

Abstract

더보기

Typically, the communication protocol between agents is manually specified and not altered during training. In this paper we explore a simple neural model, called CommNet, that uses continuous communication for fully cooperative tasks. The model consists of multiple agents and the communication between them is learned alongside their policy. we can demonstrate the ability of the agents to learn to communicate amongst themselves, yielding improved performance over non-communicative agents and baselines.

*/ 일반적으로 agent의 communication protocol은 manually 지정되며, training 도중 변경 되지 않는다. 이 논문에서는 fully cooperative tasks에 대해서 continuous communication을 사용하는 CommNet이라고 하는 simple Neural model를 탐구한다. model은 multiple agents로 구성되며, agent 간의 communication은 policy와 함께 학습된다. 방법의 적용으로, non-communicative agents & baseline보다 agent가 서로 communicate하는 방법을 배울 시에 성능적 향상을 제공함을 볼 수 있다. */

=> env에 영향을 주는 action과 agent간의 action을 고려한 두개의 network를 각각 최대화하는 RIAL & DIAL의 communication method와 다르게, CommNet에서는 communication은 policy와 동시에 학습된다. 

 


Introduction

더보기

Communication is a fundamental aspect of intelligence, enabling agents to behave as a group, rather than a

collection of individuals. It is vital for performing complex tasks in real-world environments where each actor has limited capabilities and/or visibility of the world. In any partially observed environment, the communication between agents is vital to coordinate the behavior of each individual. While the model controlling each agent is typically learned via reinforcement learning, the specification and format of the communication is usually pre-determined

/* communication은 parital observability를 가지고 있는 real-world에서 복잡한 task를 처리하는데 필수적이고, 이는 agent가 개인의 집합이 아닌 그룹으로 행동할 수 있게끔한다. partially observed env에서 agent간 communication은 각 agent의 action을 조정하는데 매우 중요하다. 각 agent를 제어하는 모델은 일반적으로 RL을 통해 학습되지만, communication의 사양과 형식은 보통 pre-determined된다. */

=> multi-agent problem의 complexity와 partial observability의 특성 때문에 communication이 필수적이고, 이 방식을 사전에 정의하여 agent들이 공동의 목표를 위해 action을 취할 수 있도록 하게 해준다.

 

더보기

Each agent is controlled by a deep feed-forward network, which additionally has access to a communication channel carrying a continuous vector. Through this channel, they receive the summed transmissions of other agents. However, what each agent transmits on the channel is not specified a-priori, being learned instead. Because the communication is continuous, the model can be trained via back-propagation, and thus can be combined with standard single agent RL algorithms or supervised learning.

/* 각 agent는 continuous vector를 전달하는 communication channel에 추가로 접근할 수 있는 deep-feed forward network에 의해 제어된다. 이 channel을 통해 다른 agent의 summed trasmissions를 수신할 수 있다. 그러나 각 agent가 channel에서 전송하는 내용은 a-priori하게 지정되어있지 않고, 그 대신 학습된다. 왜냐하면 communication이 continuous하기 때문에, model은 backpropagation을 통해 훈련될 수 있기 때문이다. 따라서 standard single-agent RL algorithms or supervised learning과 결합이 가능하다. */

=> CommNet의 간단한 structure를 보자면, 처음 agent는 communication channel을 통해서 다른 모든 agent의 state에 대한 feature vector를 가지게 된다. 그 후 communication step을 거치며, agent 마다의 module로 feature vector들에 대한 처리를 통해 다음 step으로 넘겨준다. 이 communication step이 쌓여서 CommNet을 구성하게 된다. 명확한 구조는 뒤에서 상세히 살펴본다. 

 

더보기

We consider the setting where we have J agents, all cooperating to maximize reward R in some environment. We make the simplifying assumption of full cooperation between agents, thus each agent receives R independent of their contribution. In this setting, there is no difference between each agent having its own controller, or viewing them as pieces of a larger model controlling all agents. Taking the latter perspective, our controller is a large feed-forward neural network that maps inputs for all agents to their actions, each agent occupying a subset of units.

/* env에서 reward R를 최대화하기 위해, 모두 cooperate하는 agent J가 있다고 설정한다. 우리는 agent 간의 fully cooperation을 단순화하는 가정을 하고, 따라 각 agent는 그들의 contribution에 따라 R를 받는다. 모든 agent를 제어하는 더 큰 모델의 조각으로 각 agent를 보는 관점에서, 컨트롤러는 모든 agent에 대한 input을 각 agent의 action에 mapping하는 large feed-forward neural network이며 각 agent는 subset을 구성한다. */

=> 각 agent가 own controller를 가지는 관점과 모든 agent를 통제하는 super agent J의 관점에 차이는 없지만 후자로 보면, 각 agent가 다른 agent들의 state를 받아서 각 action을 출력하는 large feed-forward network라고 볼 수 있다

 


Communication Model

given time-step t에서 action p(a(t)|s(t), θ)에 대한 distribution을 계산하는데 사용되는 모델을 설명한다. 

 

s_j: j번째 agent 관점에서의 env에 대한 state-view

 

s: all agent's state-view의 concatnation, controller input

 

Φ: mapping controller a = Φ(s), single controller Φ는 agent 간의 communication과 각 agent의 개별 controller 모두를 포괄한다. 

 

a = {a_1, ... , a_J}: discrete actions의 concatnation, controller output

 

 

Controller Structure

multilayer neural network form의 module f^i로 구축된 controller Φ architecture.

 

K: network communication steps 개수

 

 

single agent j module

(1) 각 f^i는 각 agent j에 대해 h^i_j와 c^i_j를 input vector로 h^{i+1}_j output vector를 생성한다.  

equation(1)

h^i_j: hidden state

 

c^i_j: communication

 

 

ith communication step

(2) model main bodyconcatenated vector h^0를 input vector로 받아 output vector를 생성한다. 

equation(2)

h^0: i communication step의 agent 1, ... , J까지의 concatenated vector

 

 

Commnet model

(3) f^i가 non-linearity σ를 가지는 single linear layer인 경우, 아래의 식을 통해

 

아래의 layer가 있는 feedforward network로 model이 보여질 수 있다. 

 

 

 

 

T^i: block form을 취한다.

 

 

 

 

agent 수가 다를 수 있기 때문에 T array의 크기가 동적으로 조정된다. 이는 communication agent 개수에 의해 communication vector를 재조정하는 equation(2)에 normalizing factor J-1이 있는 이유이다. 또한 T^i는 "input vector element의 순서와 상관없이 같은 output을 생성하는" permutation invariant하므로 agent의 순서는 중요하지 않다. 

 

 

at model first layer

encoder function이 사용된다. state-view s_j를 input으로 하여 feature vector h^0_j를 output한다.

encoder function은 problem independent하지만 대부분의 task에서는 single layer neural network이다. 명시되지 않는 이상, 초기 모든 agent j에서 c^0_j=0이다. 

 

at output of model

decoder functionaction space에 대한 distribution을 output하는데 사용된다. 따라 q(h^K_j)는 single layer network form을 취하고 softmax를 거친다. discrete action을 생성하기 위해, a_j ~ q(h^K_j) distribution에서 sampling한다. 

 

 

CommNet model iteration

(i) 모든 agent의 state-view s를 가져와 encoder h^0=r(s)에 통과시킨다. 

(ii) equation(1)과 (2)에서 hc를 반복하여 h^K를 얻는다. 

(iii) q(h^K)에 따라, 모든 agent에 대해 action a를 sampling한다. 

 

 


Model Extensions

Local Connectivity

더보기

An alternative to the broadcast framework described above is to allow agents to communicate to others within a certain range. let N(j) be the set of agents present within communication range of agent j.

: 위에서의 broadcast framework의 대안으로는 certain range에서 다른 agent와 communicate 할 수 있도록 한다. 그러면 equtaion(2)는 다음과 같이 변환된다. 

N(j): agent j의 communication range 내에 존재하는 agent set

 

 

 

Skip Connections

더보기

For some tasks, it is useful to have the input encoding h^0_j present as an input for communication steps beyond the first layer. Thus for agent j at step i, we have:

: 일부 작업의 경우, first layer 이후의 communication step에 대한 input으로 encoding h^0_j를 사용하는 것이 더 유용하다. 따라서 i step의 agent j에서 다음을 수행한다. h^0_j는 r(s_j)의 encoder function으로 초기 feature vector이다. 

 

 

 

Temporal Recurrence

더보기

we also explore having the network be a RNN. this is achieved by simply replacing the communication step i in Eqn. (1) and (2) by a time step t, and using the same module f^t for all t. At every time step, actions will be sampled from q(h^t_j). Note that agents can leave or join the swarm at any time step. If f^t is a single layer network, we obtain plain RNNs that communicate with each other. In later experiments, we also use an LSTM as an f^t module.

: Eqn의 communication step i를 단순히 대체함으로써 network가 RNN이 되게 할 수 있다. (1)과 (2)는 모든 time-step t에 대해 동일한 module f^t를 사용한다. 모든 time-step에서 actions는 q(h^t_j)에서 sampling된다. agent는 언제든지 swarm을 떠나거나 합류할 수 있다는 것은 유의해야 한다. 만약 f^t가 single layer network일 경우, 우리는 서로 communicate하는 plain RNN을 얻을 수 있다. 추후 실험에서는 RNN 대신 LSTM를 f^t module로 사용한다. 

 

 


Code

https://github.com/facebookarchive/CommNet

 

 

 

 

 

 

반응형

댓글