일러두기 (Disclaimer)
본 글은 AI의 도움을 받아 작성되었습니다. 최대한 정확한 정보를 전달하기 위해 검수를 거쳤으나, AI 모델의 특성상 내용에 일부 오류나 부정확한 정보가 포함될 수 있습니다. 따라서 실제 논문의 상세한 수식이나 실험 세부 조건 등은 반드시 원문을 직접 확인하시기 바랍니다.
논문 링크 : https://arxiv.org/abs/1911.11907
GhostNet: More Features from Cheap Operations
Deploying convolutional neural networks (CNNs) on embedded devices is difficult due to the limited memory and computation resources. The redundancy in feature maps is an important characteristic of those successful CNNs, but has rarely been investigated in
arxiv.org
초록 (Abstract)
임베디드 장치에 컨볼루션 신경망(CNN, Convolutional Neural Networks)을 배포하는 것은 제한된 메모리와 계산 리소스 때문에 상당한 어려움을 수반합니다. 딥러닝 분야에서 높은 성능을 달성한 성공적인 컨볼루션 신경망들의 내부를 살펴보면 특징 맵(Feature maps) 내에 풍부한 중복성(Redundancy)이 존재한다는 중요한 특성을 발견할 수 있지만, 이러한 특성은 그동안 신경망 아키텍처 설계 분야에서 거의 연구되지 않았습니다.
본 논문은 비용이 저렴한 연산(cheap operations)을 통해 더 많은 특징 맵을 생성하는 새로운 고스트 모듈(Ghost module)을 제안합니다. 먼저 소수의 본질적인(intrinsic) 특징 맵 집합을 기존의 방식대로 생성한 뒤, 연산 비용이 낮은 일련의 선형 변환(linear transformations)을 적용하여 본질적 특징에 내재된 정보를 완전히 드러낼 수 있는 다수의 '고스트(ghost)' 특징 맵을 파생시킵니다.
제안된 고스트 모듈은 기존 컨볼루션 신경망을 업그레이드하기 위한 플러그 앤 플레이(plug-and-play) 구성 요소로 손쉽게 활용할 수 있습니다. 또한, 이 고스트 모듈들을 겹겹이 쌓아 올린 고스트 병목 구조(Ghost bottlenecks)를 설계하였고, 이를 바탕으로 경량화된 고스트넷(GhostNet) 아키텍처를 구축할 수 있습니다.
벤치마크 데이터셋에서 수행된 다양한 실험 결과에 따르면, 제안된 고스트 모듈은 베이스라인 모델의 기존 컨볼루션 레이어를 대체할 수 있는 훌륭하고 인상적인 대안입니다. 더 나아가, ImageNet ILSVRC-2012 분류 데이터셋에서 고스트넷은 유사한 계산 비용(FLOPs)을 가진 MobileNetV3보다 더 높은 인식 성능(예: 75.7% top-1 정확도)을 달성하여 그 우수성을 입증했습니다.
1. 한줄 요약 & 3줄 핵심 (Executive Summary)
무거운 합성곱 연산을 최소화하여 소수의 핵심 특징만을 추출하고, 나머지는 가벼운 선형 변환으로 파생시켜 성능 하락 없이 연산량과 매개변수를 극적으로 줄인 혁신적인 네트워크 구조입니다.
- 기존의 문제점 (Pain point): 성능이 뛰어난 딥러닝 모델들은 특징 맵에 유사한 정보가 중복되어 나타나는 경향이 있으며, 이를 일일이 무거운 합성곱 연산으로 생성하느라 막대한 메모리와 계산 자원을 낭비합니다.
- 이 논문의 해결책 (Solution): 소수의 본질적 특징 맵만 기존 합성곱으로 만들고, 나머지는 컴퓨팅 비용이 저렴한 선형 연산(주로 깊이별 합성곱)으로 파생시켜 채우는 '고스트 모듈(Ghost Module)'을 제안합니다.
- 달성한 성과 (Key Result): ImageNet 데이터셋에서 최신 경량 모델인 MobileNetV3와 유사한 연산량으로 75.7%의 더 높은 정확도를 달성했으며, 모바일 ARM 프로세서 환경에서 실제 추론 지연 시간(Latency)을 크게 단축했습니다.
2. 들어가며: 왜 이 연구가 필요했나? (The "Why")
인공지능 모델이 이미지 인식, 객체 탐지, 의미론적 분할(Semantic Segmentation) 등 컴퓨터 비전 분야에서 사람을 뛰어넘는 성능을 보여주기 시작한 배경에는 깊고 방대한 컨볼루션 신경망이 존재합니다. 초기 AlexNet의 성공 이후, VGGNet이나 ResNet 같은 아키텍처로 발전하면서 네트워크는 목적 달성을 위해 점점 더 깊고 넓어졌습니다. 그에 따라 모델이 학습하고 유지해야 할 매개변수(Parameter)와 부동소수점 연산량(FLOPs)은 기하급수적으로 증가했습니다. 예를 들어, 컴퓨터 비전 분야의 표준 백본(Backbone)으로 널리 쓰이는 ResNet-50 모델은 가로 224, 세로 224 해상도의 이미지 한 장을 처리하기 위해 약 2,560만 개의 매개변수와 41억 번의 연산이 필요합니다.
이러한 무거운 모델은 전력 공급이 원활하고 고성능 그래픽 처리 장치(GPU)가 장착된 클라우드 서버 환경에서는 훌륭하게 동작합니다. 하지만 우리가 일상적으로 사용하는 스마트폰, 스마트 워치, 웨어러블 기기, 자율주행 자동차, 무인 드론 등 메모리와 전력이 극도로 제한된 엣지(Edge) 기기에 탑재하기에는 심각한 무리가 따릅니다. 엣지 환경에서 모델이 무거우면 배터리가 빠르게 소모될 뿐만 아니라, 추론 시간이 지연되어 실시간성이 떨어지고 기기에 심각한 발열이 발생합니다. 사용자 경험을 저해하는 이러한 문제를 해결하기 위해, 연구자들은 모델을 가볍게 만드는 다양한 방법을 치열하게 고민해 왔습니다.
기존에는 크게 두 가지 방향의 접근법이 있었습니다. 첫 번째는 학습이 완료된 거대한 모델의 크기를 줄이는 '모델 압축(Model Compression)' 기법입니다. 여기에는 중요도가 낮은 가중치를 0으로 만들어 연산에서 제외하는 가지치기(Pruning), 32비트 부동소수점으로 표현되던 가중치와 활성화 함수 값을 1비트나 8비트 수준의 정수로 압축하는 양자화(Quantization), 그리고 크고 똑똑한 교사 모델(Teacher Model)의 지식을 작고 가벼운 학생 모델(Student Model)에 전달하는 지식 증류(Knowledge Distillation) 등이 포함됩니다. 하지만 이 방법들은 근본적인 한계를 지니고 있었습니다. 모델 압축 기법의 최종 성능은 결국 압축의 대상이 되는 원본 베이스라인 모델의 성능 한계(Upper bound)를 벗어나기 힘들다는 점입니다. 구조 자체가 무거운 모델을 억지로 깎아내는 방식이다 보니, 압축률을 높일수록 성능이 급격히 저하되는 트레이드오프(Trade-off) 현상을 피할 수 없었습니다.
두 번째 방향은 처음부터 효율적인 연산을 수행하도록 네트워크 블록 자체를 새롭게 설계하는 '경량 아키텍처 설계(Compact Model Design)' 방식입니다. 이 분야에서는 괄목할 만한 성과가 있었습니다. 구글이 제안한 MobileNet 시리즈는 일반적인 3x3 합성곱을 공간 방향의 연산과 채널 방향의 연산으로 분리하는 깊이별 분리 합성곱(Depthwise Separable Convolution)을 도입하여 연산량을 획기적으로 줄였습니다. ShuffleNet 시리즈 역시 채널 셔플(Channel Shuffle)과 그룹 합성곱(Group Convolution) 연산을 이용하여 채널 간의 정보 교환을 효율적으로 수행하면서 연산 복잡도를 낮추었습니다.
하지만 연구자들은 이 지점에서 새로운 문제에 직면했습니다. MobileNet이나 ShuffleNet과 같은 혁신적인 경량 모델조차도 내부 구조를 자세히 뜯어보면, 1x1 점별 합성곱(Pointwise Convolution) 레이어가 전체 연산량과 메모리 점유율의 상당 부분을 차지하고 있었기 때문입니다. 깊이별 연산을 통해 공간 연산량을 줄였음에도 불구하고, 채널 방향의 정보를 융합하기 위한 1x1 합성곱은 여전히 수십만에서 수백만 번의 부동소수점 연산을 요구했습니다.
더 효율적인 방법은 없을지 고민하던 GhostNet의 연구진은 발상을 전환하여, 성공적으로 학습된 CNN 모델 내부의 '특징 맵(Feature map)' 그 자체를 시각화하고 분석해 보았습니다. 특징 맵이란 입력 이미지가 합성곱 필터를 통과하면서 추출된 선, 질감, 형태 등의 정보가 담긴 다차원 텐서입니다. 연구진은 ResNet-50 모델이 만들어낸 중간 계층의 특징 맵들을 관찰하다가 매우 흥미로운 사실을 발견했습니다. 수많은 특징 맵 중에서 마치 쌍둥이처럼 서로 비슷하게 생긴 특징 맵 쌍이 무수히 존재했던 것입니다. 어떤 특징 맵은 다른 특징 맵과 미세하게 위치만 다르거나, 약간 흐릿하거나, 반전된 형태를 띠고 있었습니다. 마치 원본과 그 원본의 '유령(Ghost)'처럼 보였습니다.
과거의 연구자들은 이러한 중복된 특징 맵을 단순히 '불필요한 낭비'라고 생각하여, 정규화 기법이나 네트워크 가지치기 등으로 제거하려고만 노력했습니다. 그러나 GhostNet 연구진의 통찰은 달랐습니다. 딥러닝 네트워크가 입력된 이미지의 복잡한 시각적 맥락을 완벽하게 이해하기 위해 이렇게 비슷비슷한 특징 맵들을 풍부하게 만들어내는 것이 필수적이라면, 굳이 무거운 합성곱 연산을 반복적으로 사용해서 이 모든 것을 처음부터 끝까지 다 만들어낼 필요가 있을까에 대한 의문을 품은 것입니다.
이들은 "소수의 핵심적인 특징 맵만 기존의 비싼 합성곱 연산으로 정교하게 만들고, 나머지 유사한 복사본들은 컴퓨팅 비용이 아주 저렴하고 간단한 선형 변환으로 뚝딱 만들어내면 어떨까?"라는 가설을 세웠습니다. 이러한 중복성을 회피할 대상이 아니라, 오히려 비용 효율적으로 적극 활용(Embrace)하자는 철학이 바로 본 논문, GhostNet이 탄생하게 된 결정적인 배경입니다.
3. 이 논문의 뿌리 (Key Reference)
GhostNet은 선행 연구자들의 고민과 성과를 토대로 구축되었습니다. 이 논문이 탄생하기 위해 가장 큰 영감을 제공하고, 때로는 비판적으로 계승한 핵심 연구들은 다음과 같습니다.
- ResNet (2015): 이 논문은 딥러닝 역사상 가장 중요한 아키텍처 중 하나인 ResNet의 내부 특징 맵을 시각적으로 분석하는 것에서 모티브를 얻었습니다. 층이 깊어질수록 학습이 어려워지는 기울기 소실(Gradient Vanishing) 문제를 해결하기 위해 ResNet이 도입한 '잔차 연결(Residual Connection, 입력값을 출력값에 직접 더해주는 구조)'의 유효성을 GhostNet도 수용했습니다. 특히, GhostNet을 구성하는 기본 블록인 '고스트 병목 구조(Ghost Bottleneck)'는 ResNet의 병목 블록 디자인을 기반으로 하되, 그 안의 무거운 일반 합성곱을 제안된 고스트 모듈로 대체하는 방식으로 진화했습니다.
- MobileNet 시리즈 (MobileNetV1 2017, MobileNetV2 2018, MobileNetV3 2019): GhostNet의 가장 강력한 경쟁자이자, 백본 구조의 전반적인 뼈대를 제공한 논문들입니다. MobileNetV1은 깊이별 분리 합성곱(Depthwise Separable Convolution)을 도입하여 파라미터 수를 획기적으로 줄였습니다. MobileNetV2는 입력 채널을 넓혔다가 연산 후 다시 좁히면서 잔차 연결을 수행하는 '역 병목 구조(Inverted Residual)'와 선형 병목(Linear Bottleneck)을 제안하여 정보 손실을 막았습니다. GhostNet의 전체 네트워크 아키텍처 배치는 자동화된 아키텍처 탐색(AutoML)을 거친 MobileNetV3의 형태를 거의 그대로 계승하고 있습니다. 단, MobileNet 구조 내에서 정보 확장을 위해 사용되던 값비싼 1x1 점별 합성곱 연산을 고스트 모듈로 대체함으로써 MobileNet이 가진 연산량의 한계를 보완했습니다.
- ShuffleNet 시리즈 (ShuffleNetV1 2017, ShuffleNetV2 2018): 단순히 수학적인 부동소수점 연산량(FLOPs) 수치만 줄이는 것을 넘어, 실제 기기에서의 데이터 이동에 따른 '메모리 접근 비용(Memory Access Cost, MAC)'과 실제 추론 속도를 고려해야 함을 깊이 있게 증명한 논문입니다. ShuffleNet은 채널 셔플(Channel Shuffle) 연산을 통해 정보의 흐름을 개선했습니다. GhostNet 역시 ShuffleNet의 철학을 크게 참고하여 연산량 감소뿐만 아니라, 모바일 ARM 기기에서의 실제 지연 시간(Latency) 단축을 입증하는 데 많은 실험적 노력을 할애했습니다.
4. 핵심 아이디어: 무엇이 다른가? (The "Aha!" Moment)
GhostNet의 가장 핵심적인 통찰이자 발견은 '비싼 연산을 값싼 연산으로 대체하여 특징 맵을 복제 및 파생시키자'는 것입니다. 이는 기존 컨볼루션 연산의 패러다임을 근본적으로 뒤집는 아이디어입니다. 복잡한 수식을 배제하고, 쉬운 비유를 통해 이 개념을 명확히 알아보겠습니다.
여러분 앞에 고급 레스토랑의 주방장이 있다고 가정해 보겠습니다. 이 주방장은 엄청난 실력을 갖추고 있어 어떤 복잡한 요리도 만들어낼 수 있지만, 요리 속도가 상대적으로 느리고 인건비가 매우 비쌉니다. 이 주방장이 바로 인공지능 모델 내부의 '일반적인 합성곱 필터(Standard Convolution)'입니다. 손님들은 오늘 스테이크에 곁들일 100가지 종류의 미묘하게 다른 다채로운 소스(100개의 특징 맵)를 요구합니다.
- 기존의 방식 (예: VGGNet, ResNet): 주방장(일반 합성곱)이 100가지 소스를 처음부터 끝까지 직접 다 만듭니다. 결과물의 품질은 훌륭하겠지만, 주방장은 과로에 시달리고 식당 주인이 부담해야 할 인건비(매개변수와 연산량)는 폭발적으로 증가합니다.
- 경량화 모델의 방식 (예: MobileNet): 주방장이 직접 모든 것을 조리하는 대신, 재료를 미리 작게 썰어놓고(깊이별 합성곱), 보조 요리사들이 단순히 섞고 조합만 하는 방식(점별 합성곱)으로 공정을 분리했습니다. 확실히 효율적이지만, 100가지의 각기 다른 소스를 만들기 위해 수많은 보조 요리사들이 쉴 새 없이 움직이고 조합해야 하므로 여전히 계산 비용이 만만치 않습니다.
- GhostNet의 방식 (The "Aha!" Moment): 주방장(일반 합성곱)에게는 완벽한 베이스가 되는 절대적인 기본 소스 50가지(본질적 특징 맵, Intrinsic Feature Maps)만 만들게 합니다. 여기까지는 비싼 인건비가 들지만 절반만 만들면 되므로 부담이 적습니다. 그런 다음, 주방장보다 인건비가 훨씬 저렴한 견습생(저렴한 선형 변환, Linear Operations)을 부릅니다. 견습생은 새로운 요리를 창조할 실력은 없지만, 주방장이 만들어 둔 50가지 베이스 소스에 물을 약간 타거나, 소금을 살짝 치거나, 식용 색소만 한 방울 떨어뜨리는 식의 아주 간단한 변형(저렴한 연산)을 가해 새로운 소스 50가지(고스트 특징 맵, Ghost Feature Maps)를 파생시킵니다. 마지막으로 주방장의 원본 소스 50개와 견습생이 파생시킨 소스 50개를 합쳐서, 손님이 요구한 100가지 소스를 쟁반에 담아 내놓습니다.
이러한 발상의 전환을 통해 전체 요리 시간과 비용은 절반 가까이 줄이면서도, 손님은 여전히 100가지의 풍부하고 다채로운 소스를 즐길 수 있게 됩니다.
이전의 경량화 연구들은 모델 성능을 유지하기 위해 어쩔 수 없이 필터 개수를 유지하여 연산량을 증가시키거나, 압축을 위해 유용한 정보까지 무리하게 잘라내야 했습니다. 하지만 고스트넷은 특징 맵들 사이에 자연스럽게 존재하는 유사성에 주목하여 필터 연산을 이원화(본질적 생성 + 파생적 변형)하는 창의적인 발상의 전환을 이루어 낸 것입니다.
5. 작동 원리: 어떻게 돌아가는가? (The "How")
고스트넷은 내부적으로 데이터가 어떻게 흘러가는지, 그 단계별 흐름(Flow)을 수식 대신 직관적인 언어로 살펴보겠습니다. 고스트 모듈은 기존의 합성곱 계층을 완벽하게 대체할 수 있도록 설계되었습니다. 데이터가 입력되어 출력되기까지 크게 세 단계의 과정을 거칩니다.
1단계: 본질적 특징 맵(Intrinsic Feature Maps) 생성
입력 이미지 데이터(예: 3차원 형태의 다채널 행렬)가 고스트 모듈로 들어옵니다. 모듈은 가장 먼저 일반적인 합성곱 연산을 수행합니다. 하지만 목표로 하는 전체 출력 채널 수(예: 64개)를 한 번에 다 만들지 않습니다. 대신 전체의 절반이나 그 이하의 일부(예: 32개)만을 생성하도록 필터의 개수를 엄격하게 제한합니다. 이 단계에서 사용되는 연산은 크기가 제어된 일반적인 합성곱이므로, 입력 데이터의 공간적 정보와 채널 간의 상관관계를 충분히 깊게 학습합니다. 이렇게 만들어진 32개의 맵이 바로 네트워크를 지탱하는 뼈대이자 원본인 '본질적 특징 맵'입니다. 논문에서는 전체 채널 수를 몇 등분할 것인지를 비율 변수 $s$로 정의하며, $s=2$일 때 가장 이상적인 효율을 보인다고 실험을 통해 증명했습니다.
2단계: 저렴한 연산을 통한 고스트(Ghost) 특징 맵 파생
이제 1단계에서 얻은 32개의 본질적 특징 맵을 재료로 삼아 본격적인 파생 작업을 시작합니다. 32개의 맵 각각에 대해 '깊이별 합성곱(Depthwise Convolution)'이라는 매우 가벼운 선형 연산을 적용합니다. 깊이별 합성곱이란 여러 채널의 정보를 복잡하게 섞지 않고, 오직 자기 자신의 채널 영역 안에서만 독립적으로 필터를 통과시키는 방식입니다. 이 연산은 일반 합성곱에 비해 파라미터 수와 연산량이 획기적으로 적습니다. 논문에서는 이 가벼운 선형 변환의 필터 크기(Kernel size)를 $d \times d$로 정의했으며, 실험 결과 3x3 크기($d=3$)의 필터를 사용할 때 성능과 속도 면에서 최적의 결과를 냈습니다. 이 과정을 거쳐 본질적 맵 1개당 1개 이상의 파생된 '고스트 특징 맵'을 새롭게 만들어냅니다 (예: 32개가 새롭게 생성됨).
3단계: 항등 매핑(Identity Mapping)과 결합(Concatenation)
파생 과정에서 원본 정보가 손실되거나 왜곡되면 안 되므로, 1단계에서 정교하게 만든 본질적 특징 맵 32개는 아무런 변형 없이 그대로 보존합니다. 이를 항등 매핑(Identity Mapping)이라고 부릅니다. 마지막으로, 보존된 본질적 맵 32개와 2단계에서 가벼운 연산으로 복제해 낸 고스트 맵 32개를 채널 축을 기준으로 나란히 이어 붙입니다(Concatenation). 그 결과, 모듈은 값비싼 연산 비용을 지불하지 않고도 총 64개의 풍성하고 다채로운 특징 맵을 완성하여 다음 레이어로 넘겨줄 수 있게 됩니다. 이를 통해 얻을 수 있는 이론적인 연산 속도 향상 비율(Speed-up ratio)과 모델 압축 비율(Compression ratio)은 모두 $s$에 근사하게 됩니다. 즉, 절반만 만들면 속도와 압축률이 약 2배 향상되는 것입니다.
고스트 병목 구조 (Ghost Bottlenecks)
네트워크 전체를 구성하기 위해 연구진은 고스트 모듈 2개를 위아래로 쌓아서 하나의 '고스트 병목 구조(Ghost Bottleneck)' 블록을 만들었습니다. 이는 ResNet이나 MobileNetV2에서 널리 쓰이는 잔차 블록(Residual Block) 구조를 차용한 형태입니다. 모델 내부에서 이미지 데이터의 해상도를 유지할 것인지, 줄일 것인지에 따라 두 가지 버전으로 나뉩니다.
- Stride 1 (공간 크기 유지 블록): 입력값이 첫 번째 고스트 모듈을 통과하며 채널 수가 크게 팽창(Expansion)됩니다. 그다음 비선형성을 부여하기 위해 활성화 함수(ReLU)를 거친 후, 두 번째 고스트 모듈을 통과하며 다시 원래의 채널 수로 압축됩니다. 마지막으로 첫 입력값과 최종 출력값을 그대로 더해주는 지름길(Shortcut) 연결이 이루어집니다. 참고로 정보 손실을 막기 위해 두 번째 모듈 뒤에는 ReLU를 사용하지 않는 선형 병목(Linear Bottleneck) 방식을 채택했습니다.
- Stride 2 (공간 크기 축소 블록): 네트워크가 깊어짐에 따라 이미지의 가로세로 해상도를 절반으로 줄여 특징을 추상화해야 할 때 사용합니다. 두 개의 고스트 모듈 사이에 Stride(보폭)가 2인 깊이별 합성곱 층을 끼워 넣어 이미지의 크기를 반으로 줄입니다. 입력값을 출력값에 더해주는 지름길(Shortcut) 경로 역시 크기를 맞추기 위해 다운샘플링 레이어와 깊이별 합성곱을 통과시킨 후 서로 더해줍니다.
고스트넷은 이러한 고스트 병목 블록들을 순차적으로 여러 번 통과시키며 이미지의 추상적인 특징을 고도화해 나가는 흐름으로 작동합니다. 일부 병목 블록에는 채널의 중요도에 따라 가중치를 부여하는 SE(Squeeze-and-Excitation) 어텐션 모듈을 추가하여 성능을 더욱 끌어올렸습니다.
6. 작동 원리: 어떻게 학습하는가? (The "How")
GhostNet 논문에서 새롭게 설계된 신경망 구조가 이미지를 올바르게 인식하도록 학습(Training)시키기 위해 사용된 데이터와 학습 설정은 매우 세심하게 계획되었습니다. 본 논문에서는 모델의 우수한 일반화 능력을 증명하기 위해 여러 가지 표준 벤치마크 데이터를 사용했습니다.
입력 데이터 (Input Data)
가장 대표적이고 핵심적인 학습 데이터는 ImageNet ILSVRC-2012 분류 데이터셋입니다.
- 종류 및 수량: 강아지 종(치와와, 웰시코기 등), 고양이, 자동차, 비행기 등 무려 1,000개의 다채로운 카테고리로 분류된 약 120만 장의 고해상도 학습용 2D 이미지 데이터가 텍스트 정답 레이블(Label)과 함께 쌍을 이루어 사용되었습니다. 모델의 객관적인 성능 평가를 위해서는 학습에 한 번도 사용되지 않은 5만 장의 검증용(Validation) 이미지가 사용됩니다.
- 포맷 및 처리: 모델 학습 시 컴퓨터의 메모리 한계와 효율적인 행렬 연산을 위해 다양한 크기의 원본 이미지를 그대로 넣을 수는 없습니다. 따라서 모든 이미지를 가로 224, 세로 224 크기의 규격화된 사이즈로 변환하고, 빛의 삼원색을 나타내는 RGB 3채널 포맷(즉, $224 \times 224 \times 3$ 형태의 숫자 행렬)으로 전처리하여 입력합니다.
- 데이터 증강(Data Augmentation): 모델이 주어진 학습 이미지를 단순히 외워버리는 과적합(Overfitting) 현상을 막고 일반화 성능을 높이기 위해, 이미지를 학습할 때마다 무작위로 일부만 잘라내거나(Random Crop) 좌우로 반전(Random Flip)시키는 기법을 적용하여 모델이 볼 수 있는 입력 데이터를 다양하게 뻥튀기합니다. CIFAR-10 데이터셋의 경우 가로세로 $32 \times 32$ 픽셀의 아주 작은 이미지 5만 장을 입력으로 사용하기도 합니다.
출력 데이터 (Output Data)
- 출력 포맷: 복잡한 합성곱 층과 평균 풀링(Average Pooling) 층을 완전히 통과한 최종 데이터는 각 클래스에 속할 확률을 나타내는 1,000개의 실수값을 가지는 1차원 벡터 형태가 됩니다.
- 구체적 예시: 1,000개의 값은 각각 해당 이미지가 1번 클래스(예: 치와와)일 확률, 2번 클래스(예: 페르시안 고양이)일 확률 등을 나타냅니다. 예를 들어 치와와 이미지를 입력했다면, 벡터의 1번 인덱스 값이 0.98(98% 확률)로 매우 높게 산출되고 나머지 999개의 인덱스 값들은 0에 가깝게 출력되도록, 정답과 예측값 사이의 오차(Cross-Entropy Loss)를 최소화하는 방향으로 모델을 반복 학습시킵니다.
- MS COCO 객체 탐지 데이터셋으로 학습할 경우에는 이미지 내에 객체가 존재하는 위치(바운딩 박스의 X, Y 좌표 및 너비, 높이)와 그 객체의 클래스 확률을 동시에 출력 벡터로 반환하도록 학습됩니다.
학습 진행 방식 (Hyperparameters)
학습 과정에서 모델 내 수백만 개의 가중치를 업데이트하는 최적화 설정(Hyperparameter)은 매우 정교하게 이루어집니다. 논문의 저자들에 따르면, 학습을 위해 총 8개의 GPU를 하나로 묶어 분산 처리를 수행했으며, 한 번에 1,024장의 이미지(Batch size)를 동시에 병렬로 학습시켜 속도와 기울기 업데이트의 안정성을 확보했습니다. 학습의 보폭을 결정하는 학습률(Learning Rate)은 초기에 0.4라는 비교적 큰 값으로 설정하여 손실 공간을 빠르게 탐색하게 한 뒤, 최적의 해에 다가갈수록 값을 부드럽게 감소시키는 코사인 어닐링(Cosine Annealing) 방식을 따랐습니다. 또한 모델이 학습 데이터에 과도하게 의존하는 것을 방지하기 위해 가중치 붕괴(Weight Decay) 기법과 관성(Momentum) 기법 등 최신 딥러닝 훈련의 모범 사례들이 철저히 동원되었습니다.
7. 결과: 얼마나 좋아졌나? (Results)
학습을 성공적으로 마친 GhostNet의 성능은 동급의 모든 경량화 모델 중 단연 돋보이는 가장 뛰어난 수준을 보여주었습니다. 수많은 실험 지표 중 모델의 가치를 가장 직관적으로 보여주는 임팩트 있는 성과들을 중심으로 살펴보겠습니다.
SOTA(State-of-the-art) 달성 및 파라미터 효율성
전 세계 딥러닝 연구자들의 가장 치열한 격전지인 ImageNet 이미지 분류 데이터셋 결과에서, 고스트넷은 경쟁자들을 수치상으로 명확히 압도했습니다.
| 모델명 | 매개변수 가중치 (Weights) | 부동소수점 연산량 (FLOPs) | ImageNet Top-1 정확도 |
| MobileNetV2 1.0x | 3.5M (350만 개) | 300M (3억 번) | 71.8% |
| MobileNetV3 Large 1.0x | 5.4M (540만 개) | 219M (2.19억 번) | 75.2% |
| GhostNet 1.3x (본 논문) | 7.3M (730만 개) | 226M (2.26억 번) | 75.7% |
표에서 볼 수 있듯, 구글이 고도의 자동화 탐색 기법(AutoML)을 동원해 만든 최신 경량 모델인 MobileNetV3와 거의 비슷한 2억 2,600만 번(226M) 수준의 연산량(FLOPs)을 사용하면서도 정확도는 0.5%p 더 높은 75.7%라는 최고 성능(SOTA) 성과를 달성했습니다. 더 놀라운 점은, 모델의 채널 수를 절반으로 극단적으로 줄인 GhostNet 0.5x 버전에서도 연산량을 단 4,200만 번(42M FLOPs)으로 낮추면서 정확도 66.2%를 기록해, 동급 연산량을 가진 ShuffleNet V2 등 모든 경쟁 모델을 제쳤다는 것입니다.
모바일 기기에서의 실제 속도 (Latency)
논문의 저자들은 이론적인 부동소수점 연산량(FLOPs) 수치 감소에만 매몰되지 않았습니다. 실생활 적용이 목표인 만큼, 실제 ARM 기반 모바일 프로세서(스마트폰 CPU) 칩에 텐서플로우 라이트(TFLite)를 이용해 모델을 직접 올렸을 때의 실제 추론 지연 시간(Inference Latency)을 엄격하게 측정했습니다. 실험 결과, GhostNet은 75.0%의 높은 정확도를 유지하면서도 사진 한 장을 입력받아 처리하는 데 단 40ms(밀리초)밖에 걸리지 않았습니다. 동일한 수준의 정확도를 내기 위해 경쟁자인 MobileNetV3는 약 45ms의 처리 시간이 필요했습니다. 불과 5ms의 차이로 보일 수 있지만, 이는 초당 여러 장의 프레임을 처리해야 하는 실시간 비디오 환경에서는 엄청난 격차입니다. 이는 GhostNet이 스마트폰 카메라 앱의 실시간 얼굴 인식이나 AR(증강현실) 필터처럼 즉각적인 반응이 필수적인 환경에서 배터리를 훨씬 덜 소모하며 매끄럽게 동작할 수 있음을 완벽하게 증명한 결과입니다.
한계점 및 실패 케이스 (Limitations)
하지만 아무리 훌륭한 모델이라도 현실적인 한계점이 존재하기 마련입니다. 본 논문과 후속 연구자들의 활발한 토론 과정에서 지적된 GhostNet의 구조적 맹점은 다음과 같습니다.
- 고성능 GPU 환경에서의 비효율성: Ghost 모듈은 파생 특징 맵을 만들기 위해 '깊이별 합성곱(Depthwise Convolution)'에 크게 의존합니다. 깊이별 합성곱은 파라미터 수는 적지만, 연산 과정에서 데이터를 메모리에서 쉴 새 없이 불러오고 다시 써야 하는 메모리 접근 비용(MAC, Memory Access Cost)이 높다는 치명적인 단점이 있습니다. 수천 개의 코어가 병렬 연산에 특화된 고성능 GPU 환경에서는 연산 장치는 놀고 있는데 메모리에서 데이터를 가져오느라 병목 현상이 발생하여, 오히려 일반 합성곱을 쓰는 구형 모델보다 예상만큼 속도가 빠르지 않거나 느린 현상이 종종 발생합니다. 즉, 이 모델은 철저하게 직렬 처리와 캐시 메모리 관리에 유리한 '모바일 CPU' 환경에 최적화되어 있습니다.
- 텐서 분할 및 결합으로 인한 일시적 메모리 증가: 본질적 맵(Intrinsic maps)을 먼저 만들고, 여기서 파생된 고스트 맵(Ghost maps)을 만든 뒤, 두 텐서를 결합(Concatenation)하는 과정에서 메모리 오버헤드가 발생합니다. 이 두 맵을 합치기 전까지 캐시 메모리에 일시적으로 모두 들고 있어야 하므로, 런타임 GPU 메모리(Run-time memory)의 피크(Peak) 사용량이 일시적으로 증가하는 현상이 나타날 수 있다는 한계가 개발자들에 의해 지적되었습니다.
8. 이 논문의 계보와 발전 (Impact & Follow-ups)
GhostNet은 단발성 아이디어 제시에 그치지 않고, 경량 딥러닝 모델 생태계 전반에 큰 반향을 일으키며 수많은 후속 연구들의 탄생에 결정적인 밑거름이 되었습니다. 본 논문의 우수성이 입증된 후, 원저자들을 포함한 학계는 기존의 약점들을 보완하여 다음과 같은 강력하고 진보된 후속 버전들을 연이어 발표했습니다.
- GhostNetV2 (2022년, NeurIPS Spotlight 논문): 초대 GhostNet 모델이 가진 근본적인 한계는, 계산을 저렴하게 하기 위해 아주 좁은 영역만 보는 3x3 필터 연산에만 의존하다 보니, 사진 속 멀리 떨어진 물체 간의 관계를 파악하는 '전역적 문맥 파악 능력(Long-range dependency)'이 부족하다는 점이었습니다. 2021년경부터 크게 유행하던 Vision Transformer의 셀프-어텐션(Self-Attention) 구조를 도입하면 이 문제가 해결되지만, 어텐션의 2차(Quadratic) 연산 복잡도 때문에 모바일 기기에는 얹을 수가 없었습니다. 이에 연구진은 DFC(Decoupled Fully Connected) Attention이라는 매우 혁신적인 하드웨어 친화적 어텐션 모듈을 고안했습니다. 화면 전체의 픽셀을 한 번에 계산하는 무거운 방식 대신, 완전 연결 계층(FC layer)을 '세로 방향 집계'와 '가로 방향 집계'라는 1차원 연산으로 분리(Decoupling)하여 순차적으로 적용했습니다. 이를 통해 아주 싼 연산 비용으로도 화면 전체의 맥락을 읽어낼 수 있게 되었습니다. 그 결과 GhostNetV2는 ImageNet 정확도를 167M FLOPs 조건에서 75.3%로 크게 향상시켜 V1을 완벽히 압도했습니다.
- GhostNetV3 (2024년): 이 연구는 단순히 모델의 블록 구조를 바꾸는 것을 넘어 "수용력이 작은 경량 모델은 파라미터가 많은 거대 모델과 학습하는 전략 자체가 근본적으로 달라야 한다"는 통찰을 제시한 연구입니다. 그동안 업계에서는 경량 모델을 훈련시킬 때도 ResNet이나 Vision Transformer 같은 거대한 모델을 학습시킬 때 쓰던 강력한 데이터 증강 기법(두 이미지를 반투명하게 섞는 Mixup이나 일부분을 잘라 붙이는 CutMix 등)을 그대로 가져다 쓰는 관행이 있었습니다. 하지만 수용력(Capacity)이 작은 경량 모델에게 이러한 왜곡된 이미지는 오히려 심각한 혼란을 주어 성능을 떨어뜨린다는 것을 실험으로 증명했습니다. GhostNetV3는 강력한 데이터 증강을 배제하는 대신, 재매개변수화(Re-parameterization) 기법과 크고 똑똑한 교사 모델의 예측값을 따라 하게 하는 지식 증류(Knowledge Distillation) 등 경량 체급에 최적화된 새로운 학습 전략을 도입했습니다. 그 결과 모바일 환경에서 14.46ms의 짧은 지연 시간만으로도 79.1%라는 놀라운 정확도를 달성하며 경량 모델의 한계를 한 단계 더 돌파했습니다.
- 현대 객체 탐지 알고리즘과의 융합 (YOLO 응용): 최근의 엣지 환경 응용 비전 연구에서는 YOLOv5나 YOLOv8 같은 실시간 객체 탐지 시스템의 무거운 뼈대(Backbone)를 떼어내고, 그 자리에 기존 모델 대신 GhostNet 계열 모듈(GhostConv, C3Ghost 등)로 교체하여 초경량화하는 방식이 큰 트렌드로 자리 잡았습니다. 감시 카메라를 통한 산불 연기 감지, 해수면 쓰레기 감지, 작업자 안전모 착용 여부 탐지, 비행 드론(UAV) 탐지 등 컴퓨팅 자원이 극도로 제한된 하드웨어에서 실시간 초당 프레임(FPS)을 방어하기 위해 GhostNet 구조가 필수적인 컴포넌트로 맹활약하고 있습니다.
9. 마무리
GhostNet 논문은 딥러닝 연구 역사에서 흔히 발생할 수 있는 "맹목적인 파라미터 개수 줄이기" 경쟁에서 벗어나, 데이터가 모델 내부에서 어떻게 맺히고 흐르는지를 면밀히 관찰(특징 맵의 중복성)한 뒤 자연의 섭리를 거스르지 않고 영리하게 수학적으로 재현해 낸 매우 훌륭하고 모범적인 연구입니다.
기존의 딥러닝 경량화 연구들이 주로 "모델에서 필요 없는 가지를 어떻게 잘라낼까?"에 집중하며 성능 하락의 고통을 겪어야 했다면, GhostNet은 "핵심 뼈대만 제대로 정교하게 만들면, 나머지 풍성한 디테일은 매우 싼값에 얼마든지 쉽게 파생시킬 수 있다"는 철학을 완벽하게 증명했습니다. 무작정 연산량을 줄인 것이 아니라, '특징 재사용(Feature Reuse)'이라는 새로운 길을 개척한 것입니다.
실무에 이 모델을 직접 적용하려는 AI 엔지니어나 개발자라면 앞선 실패 사례에서 언급한 하드웨어적인 특성을 반드시 유의해야 합니다. 만약 여러분이 수행해야 할 작업이 수십 대의 최신 고성능 서버 GPU(예: NVIDIA H100, A100 등) 클러스터를 보유하고 있고, 초거대 이미지를 거대한 배치 사이즈로 병렬 학습시켜야 하는 상황이라면, GhostNet의 구조적 이점(깊이별 합성곱과 분할된 텐서 결합)은 GPU의 메모리 대역폭 한계와 직렬 처리 오버헤드로 인해 오히려 큰 이득을 주지 못하거나 성능 저하를 일으킬 수 있습니다.
반면, 여러분이 개발 중인 서비스가 스마트폰 앱 기반의 실시간 얼굴 인식 및 뷰티 필터 애플리케이션, 저사양 라즈베리파이(Raspberry Pi) 보드가 탑재된 공장 설비의 사물인터넷(IoT) 불량 검출 장비, 전력 소모에 극도로 민감한 야외 순찰용 소형 드론이라면 상황은 180도 달라집니다. 이러한 제한된 환경에서 GhostNet과 그 후속작인 GhostNetV2, V3는 메모리 한계를 극복하고 실시간성을 보장해 줄 수 있는 최고의 백본(Backbone) 선택지가 될 것입니다.
결론적으로 GhostNet은 딥러닝 모델 경량화 역사에 있어 구글의 MobileNet, 쾅시 테크놀로지의 ShuffleNet과 어깨를 나란히 하는 거대한 마일스톤입니다. 하드웨어의 발전 속도보다 인공지능 모델의 크기 증가 속도가 훨씬 빨라지고 있는 현재의 기술 트렌드를 고려할 때, 주어진 척박한 자원 내에서 특징(Feature)의 풍부함을 절대 잃지 않으려는 이 효율적인 아이디어는 앞으로도 수많은 엣지 AI(Edge AI) 응용 분야의 든든하고 견고한 기반이 될 것입니다.