Core Concepts
본 논문은 NEAT 알고리즘의 효율성을 높이기 위해 네트워크 토폴로지를 균일한 텐서 형태로 변환하는 새로운 텐서화 방법을 제안한다. 이를 통해 NEAT 알고리즘의 다양한 연산을 GPU에서 병렬 처리할 수 있게 되어 성능이 크게 향상된다.
Abstract
본 논문은 NEAT 알고리즘의 GPU 가속을 위한 새로운 텐서화 방법을 제안한다.
NEAT 알고리즘은 신경망의 구조와 가중치를 동시에 진화시키는 대표적인 신경 진화 알고리즘이다. 하지만 NEAT 알고리즘의 계산 효율성은 제한적이어서 확장성이 낮다는 문제가 있다.
이를 해결하기 위해 본 논문에서는 NEAT 알고리즘의 다양한 네트워크 토폴로지와 관련 연산을 균일한 텐서 형태로 변환하는 새로운 텐서화 방법을 제안한다. 이를 통해 NEAT 알고리즘의 연산을 전체 개체군에 걸쳐 병렬 처리할 수 있게 된다.
또한 이 방법을 구현한 TensorNEAT 라이브러리를 개발했다. TensorNEAT은 JAX 프레임워크를 기반으로 하여 자동 함수 벡터화와 하드웨어 가속을 지원한다. 다양한 벤치마크 환경과도 연동되어 있다.
실험 결과, TensorNEAT은 기존 NEAT-Python 구현 대비 최대 500배 이상의 성능 향상을 보였다. 특히 복잡한 과제와 대규모 개체군 환경에서 그 이점이 두드러졌다.
Stats
NEAT-Python 대비 TensorNEAT의 Swimmer 과제 수행 시 최대 196배 가속
NEAT-Python 대비 TensorNEAT의 Hopper 과제 수행 시 최대 60배 가속
NEAT-Python 대비 TensorNEAT의 HalfCheetah 과제 수행 시 최대 544배 가속