티스토리 뷰
최근에 그래프 신경망을 이용한 프로젝트를 진행중인데 아무래도 그래프가 처음 다루는 자료형이다 보니 익숙하지가 않다.
파이썬에서 배열을 다루는데 특화된게 numpy 라면 그래프에서는 networkx가 있다.
networkx.org/documentation/stable/index.html
그래프 신경망을 위한 파이토치라이브러리도 있는데 torch_gemetric이라고 있다.
pytorch-geometric.readthedocs.io/en/latest/index.html
일전에 이를 이용해서 간단하게 카트폴 훈련을 시켰는데 REINFORCE로 학습시킴에도 생각보다 빠르게 학습되는 것에 놀람.
익숙해지는데 시간이 좀 걸릴 것 같아서 아주 작은 개인 프로젝트 형식으로 놀아볼까 했다.
그래프 형식으로 다루기 괜찮은 주제가 생각나는게 서로 일정 범위 안에 들어오면 통신가능한 로봇(agent)들이 돌아다니는 환경을 만들어 보고 싶었다. 중앙 집중형(centralized) 방식도 있을 테고 분산형(distributed)방식도 있을 텐데, 일단 분산형 방식으로 진행해보려 했다.
Agent들의 움직임은 무작위로 움직이고 각자 동일한 통신반경을 가졌을 때, 반경내로 들어오면 서로 연결되고 밖으로 나가면 연결이 끊어지는 것 까지만 구현해봤다.
나중에 얘네들이 서로 연결된 agent의 정보만 얻을 수 있는 환경이라고 가정했을때 뭔가 수행할 만한 어플리케이션을 정해서 진행해 봐도 될듯. 후속작업을 할지 말지는 안정했다. 한게 아까워서 움짤만 올림
각자 랜덤하게 움직여서 시간이 지날수록 거리가 멀어진다. 까만 선이 서로 연결된 녀석을 표현한다. matplot animation 극혐인듯
'keep9oing' 카테고리의 다른 글
강화학습 환경들 (9) | 2021.04.15 |
---|---|
connected agent simulation -2- (6) | 2021.04.07 |
Pretrained Transformers as Universal Computation Engines (0) | 2021.03.24 |
개쩌는 Latex 캡쳐 도구 - Mathpix (3) | 2021.02.05 |
DRQN 구현 (2) | 2021.02.03 |