진화적 프로그래밍 기반 CNN 구조 자동 탐색 GP CNAS
초록
GP-CNAS는 유전 프로그래밍을 활용해 CNN 구조를 트리 형태로 인코딩하고, 동적 교차 연산자를 통해 초기에는 모델 복잡성을, 후반에는 다양성을 강조하며 효율적인 아키텍처 탐색을 수행한다. CIFAR‑10 실험에서 기존 NAS 기법과 경쟁력 있는 성능을 달성하였다.
상세 분석
본 논문은 CNN 아키텍처 탐색을 위해 유전 프로그래밍(GP) 기반 프레임워크인 GP‑CNAS를 제안한다. 핵심 아이디어는 CNN을 잎노드(터미널)와 함수노드(프리미티브 함수)로 구성된 트리 구조로 표현하는 것이다. 터미널은 사전에 정의된 네 종류의 Residual 블록(b1~b4)이며, 함수노드는 네 가지 연산(^2, ^3, +, str)으로 구성된다. ^2와 ^3는 각각 필터 수를 2배, 3배 확대해 네트워크의 폭을 넓히고, + 연산은 두 블록을 순차 연결해 깊이를 증가시키며, str은 스트라이드 크기를 두 배로 늘려 다운샘플링을 수행한다. 이러한 설계는 트리의 깊이와 폭을 동시에 조절할 수 있게 해, 복잡도와 다양성을 균형 있게 탐색하도록 만든다.
진화 과정에서는 초기 인구를 ‘ramped‑half‑and‑half’ 방식으로 생성해 다양한 깊이와 형태의 트리를 확보한다. 선택 단계는 세대가 진행될수록 최적 개체에 더 큰 선택 압력을 가하도록 설계된 동적 토너먼트 크기(τ) 를 사용한다. 가장 혁신적인 부분은 동적 교차 연산자로, 현재 세대와 서브트리 크기 차이를 기반으로 교차점 쌍을 확률적으로 선택한다. 초기 몇 세대에서는 크기 차이가 큰 서브트리를 교환해 모델 복잡성을 빠르게 늘리고, 후반부에서는 크기 차이가 작은 서브트리를 교환해 구조적 다양성을 확보한다. 이는 탐색 초기에 탐색 공간을 넓히고, 후기에 미세 조정을 가능하게 하는 메커니즘이다.
돌연변이는 일정 확률(m) 로 수행되며, 랜덤하게 선택된 잎노드를 새로운 서브트리로 교체한다. 이는 탐색 과정에서 새로운 구조를 지속적으로 도입해 지역 최적에 빠지는 것을 방지한다. 평가 단계에서는 각 개체를 CIFAR‑10 검증 집합에 대해 짧게 학습시킨 후 정확도를 적합도(fitness) 로 사용한다. 엘리트 보존 전략을 통해 최고 성능 개체를 다음 세대로 무조건 전달함으로써 성능 손실을 최소화한다.
실험 결과, 제한된 평가 횟수(≈ 200) 내에서 GP‑CNAS가 설계한 모델은 CIFAR‑10에서 94% 이상의 정확도를 달성했으며, 기존 강화학습 기반 NAS(예: MetaQNN, BlockQNN)와 진화 기반 방법(예: Regularized Evolution)과 비교해 비슷하거나 더 나은 성능을 보였다. 또한, 제안된 트리 인코딩은 Residual 블록 외에도 다른 수동 설계 블록이나 NAS‑generated 블록을 손쉽게 교체할 수 있어 확장성이 높다. 한계점으로는 평가 비용이 여전히 GPU 집약적이며, 트리 구조가 매우 깊어질 경우 교차·돌연변이 연산이 비효율적일 수 있다는 점을 언급한다. 전반적으로 GP‑CNAS는 유전 프로그래밍의 표현력과 동적 연산자를 결합해 CNN 아키텍처 탐색의 효율성과 유연성을 동시에 향상시킨 접근법이라 평가할 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기